halmac_bit_8822b.h 929 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870
  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 __INC_HALMAC_BIT_8822B_H
  16. #define __INC_HALMAC_BIT_8822B_H
  17. #define CPU_OPT_WIDTH 0x1F
  18. /* 2 REG_NOT_VALID_8822B */
  19. /* 2 REG_SYS_ISO_CTRL_8822B */
  20. #define BIT_PWC_EV12V_8822B BIT(15)
  21. #define BIT_PWC_EV25V_8822B BIT(14)
  22. #define BIT_PA33V_EN_8822B BIT(13)
  23. #define BIT_PA12V_EN_8822B BIT(12)
  24. #define BIT_UA33V_EN_8822B BIT(11)
  25. #define BIT_UA12V_EN_8822B BIT(10)
  26. #define BIT_ISO_RFDIO_8822B BIT(9)
  27. #define BIT_ISO_EB2CORE_8822B BIT(8)
  28. #define BIT_ISO_DIOE_8822B BIT(7)
  29. #define BIT_ISO_WLPON2PP_8822B BIT(6)
  30. #define BIT_ISO_IP2MAC_WA2PP_8822B BIT(5)
  31. #define BIT_ISO_PD2CORE_8822B BIT(4)
  32. #define BIT_ISO_PA2PCIE_8822B BIT(3)
  33. #define BIT_ISO_UD2CORE_8822B BIT(2)
  34. #define BIT_ISO_UA2USB_8822B BIT(1)
  35. #define BIT_ISO_WD2PP_8822B BIT(0)
  36. /* 2 REG_SYS_FUNC_EN_8822B */
  37. #define BIT_FEN_MREGEN_8822B BIT(15)
  38. #define BIT_FEN_HWPDN_8822B BIT(14)
  39. #define BIT_EN_25_1_8822B BIT(13)
  40. #define BIT_FEN_ELDR_8822B BIT(12)
  41. #define BIT_FEN_DCORE_8822B BIT(11)
  42. #define BIT_FEN_CPUEN_8822B BIT(10)
  43. #define BIT_FEN_DIOE_8822B BIT(9)
  44. #define BIT_FEN_PCIED_8822B BIT(8)
  45. #define BIT_FEN_PPLL_8822B BIT(7)
  46. #define BIT_FEN_PCIEA_8822B BIT(6)
  47. #define BIT_FEN_DIO_PCIE_8822B BIT(5)
  48. #define BIT_FEN_USBD_8822B BIT(4)
  49. #define BIT_FEN_UPLL_8822B BIT(3)
  50. #define BIT_FEN_USBA_8822B BIT(2)
  51. #define BIT_FEN_BB_GLB_RSTN_8822B BIT(1)
  52. #define BIT_FEN_BBRSTB_8822B BIT(0)
  53. /* 2 REG_SYS_PW_CTRL_8822B */
  54. #define BIT_SOP_EABM_8822B BIT(31)
  55. #define BIT_SOP_ACKF_8822B BIT(30)
  56. #define BIT_SOP_ERCK_8822B BIT(29)
  57. #define BIT_SOP_ESWR_8822B BIT(28)
  58. #define BIT_SOP_PWMM_8822B BIT(27)
  59. #define BIT_SOP_EECK_8822B BIT(26)
  60. #define BIT_SOP_EXTL_8822B BIT(24)
  61. #define BIT_SYM_OP_RING_12M_8822B BIT(22)
  62. #define BIT_ROP_SWPR_8822B BIT(21)
  63. #define BIT_DIS_HW_LPLDM_8822B BIT(20)
  64. #define BIT_OPT_SWRST_WLMCU_8822B BIT(19)
  65. #define BIT_RDY_SYSPWR_8822B BIT(17)
  66. #define BIT_EN_WLON_8822B BIT(16)
  67. #define BIT_APDM_HPDN_8822B BIT(15)
  68. #define BIT_AFSM_PCIE_SUS_EN_8822B BIT(12)
  69. #define BIT_AFSM_WLSUS_EN_8822B BIT(11)
  70. #define BIT_APFM_SWLPS_8822B BIT(10)
  71. #define BIT_APFM_OFFMAC_8822B BIT(9)
  72. #define BIT_APFN_ONMAC_8822B BIT(8)
  73. #define BIT_CHIP_PDN_EN_8822B BIT(7)
  74. #define BIT_RDY_MACDIS_8822B BIT(6)
  75. #define BIT_RING_CLK_12M_EN_8822B BIT(4)
  76. #define BIT_PFM_WOWL_8822B BIT(3)
  77. #define BIT_PFM_LDKP_8822B BIT(2)
  78. #define BIT_WL_HCI_ALD_8822B BIT(1)
  79. #define BIT_PFM_LDALL_8822B BIT(0)
  80. /* 2 REG_SYS_CLK_CTRL_8822B */
  81. #define BIT_LDO_DUMMY_8822B BIT(15)
  82. #define BIT_CPU_CLK_EN_8822B BIT(14)
  83. #define BIT_SYMREG_CLK_EN_8822B BIT(13)
  84. #define BIT_HCI_CLK_EN_8822B BIT(12)
  85. #define BIT_MAC_CLK_EN_8822B BIT(11)
  86. #define BIT_SEC_CLK_EN_8822B BIT(10)
  87. #define BIT_PHY_SSC_RSTB_8822B BIT(9)
  88. #define BIT_EXT_32K_EN_8822B BIT(8)
  89. #define BIT_WL_CLK_TEST_8822B BIT(7)
  90. #define BIT_OP_SPS_PWM_EN_8822B BIT(6)
  91. #define BIT_LOADER_CLK_EN_8822B BIT(5)
  92. #define BIT_MACSLP_8822B BIT(4)
  93. #define BIT_WAKEPAD_EN_8822B BIT(3)
  94. #define BIT_ROMD16V_EN_8822B BIT(2)
  95. #define BIT_CKANA12M_EN_8822B BIT(1)
  96. #define BIT_CNTD16V_EN_8822B BIT(0)
  97. /* 2 REG_SYS_EEPROM_CTRL_8822B */
  98. #define BIT_SHIFT_VPDIDX_8822B 8
  99. #define BIT_MASK_VPDIDX_8822B 0xff
  100. #define BIT_VPDIDX_8822B(x) \
  101. (((x) & BIT_MASK_VPDIDX_8822B) << BIT_SHIFT_VPDIDX_8822B)
  102. #define BITS_VPDIDX_8822B (BIT_MASK_VPDIDX_8822B << BIT_SHIFT_VPDIDX_8822B)
  103. #define BIT_CLEAR_VPDIDX_8822B(x) ((x) & (~BITS_VPDIDX_8822B))
  104. #define BIT_GET_VPDIDX_8822B(x) \
  105. (((x) >> BIT_SHIFT_VPDIDX_8822B) & BIT_MASK_VPDIDX_8822B)
  106. #define BIT_SET_VPDIDX_8822B(x, v) \
  107. (BIT_CLEAR_VPDIDX_8822B(x) | BIT_VPDIDX_8822B(v))
  108. #define BIT_SHIFT_EEM1_0_8822B 6
  109. #define BIT_MASK_EEM1_0_8822B 0x3
  110. #define BIT_EEM1_0_8822B(x) \
  111. (((x) & BIT_MASK_EEM1_0_8822B) << BIT_SHIFT_EEM1_0_8822B)
  112. #define BITS_EEM1_0_8822B (BIT_MASK_EEM1_0_8822B << BIT_SHIFT_EEM1_0_8822B)
  113. #define BIT_CLEAR_EEM1_0_8822B(x) ((x) & (~BITS_EEM1_0_8822B))
  114. #define BIT_GET_EEM1_0_8822B(x) \
  115. (((x) >> BIT_SHIFT_EEM1_0_8822B) & BIT_MASK_EEM1_0_8822B)
  116. #define BIT_SET_EEM1_0_8822B(x, v) \
  117. (BIT_CLEAR_EEM1_0_8822B(x) | BIT_EEM1_0_8822B(v))
  118. #define BIT_AUTOLOAD_SUS_8822B BIT(5)
  119. #define BIT_EERPOMSEL_8822B BIT(4)
  120. #define BIT_EECS_V1_8822B BIT(3)
  121. #define BIT_EESK_V1_8822B BIT(2)
  122. #define BIT_EEDI_V1_8822B BIT(1)
  123. #define BIT_EEDO_V1_8822B BIT(0)
  124. /* 2 REG_EE_VPD_8822B */
  125. #define BIT_SHIFT_VPD_DATA_8822B 0
  126. #define BIT_MASK_VPD_DATA_8822B 0xffffffffL
  127. #define BIT_VPD_DATA_8822B(x) \
  128. (((x) & BIT_MASK_VPD_DATA_8822B) << BIT_SHIFT_VPD_DATA_8822B)
  129. #define BITS_VPD_DATA_8822B \
  130. (BIT_MASK_VPD_DATA_8822B << BIT_SHIFT_VPD_DATA_8822B)
  131. #define BIT_CLEAR_VPD_DATA_8822B(x) ((x) & (~BITS_VPD_DATA_8822B))
  132. #define BIT_GET_VPD_DATA_8822B(x) \
  133. (((x) >> BIT_SHIFT_VPD_DATA_8822B) & BIT_MASK_VPD_DATA_8822B)
  134. #define BIT_SET_VPD_DATA_8822B(x, v) \
  135. (BIT_CLEAR_VPD_DATA_8822B(x) | BIT_VPD_DATA_8822B(v))
  136. /* 2 REG_SYS_SWR_CTRL1_8822B */
  137. #define BIT_C2_L_BIT0_8822B BIT(31)
  138. #define BIT_SHIFT_C1_L_8822B 29
  139. #define BIT_MASK_C1_L_8822B 0x3
  140. #define BIT_C1_L_8822B(x) (((x) & BIT_MASK_C1_L_8822B) << BIT_SHIFT_C1_L_8822B)
  141. #define BITS_C1_L_8822B (BIT_MASK_C1_L_8822B << BIT_SHIFT_C1_L_8822B)
  142. #define BIT_CLEAR_C1_L_8822B(x) ((x) & (~BITS_C1_L_8822B))
  143. #define BIT_GET_C1_L_8822B(x) \
  144. (((x) >> BIT_SHIFT_C1_L_8822B) & BIT_MASK_C1_L_8822B)
  145. #define BIT_SET_C1_L_8822B(x, v) (BIT_CLEAR_C1_L_8822B(x) | BIT_C1_L_8822B(v))
  146. #define BIT_SHIFT_REG_FREQ_L_8822B 25
  147. #define BIT_MASK_REG_FREQ_L_8822B 0x7
  148. #define BIT_REG_FREQ_L_8822B(x) \
  149. (((x) & BIT_MASK_REG_FREQ_L_8822B) << BIT_SHIFT_REG_FREQ_L_8822B)
  150. #define BITS_REG_FREQ_L_8822B \
  151. (BIT_MASK_REG_FREQ_L_8822B << BIT_SHIFT_REG_FREQ_L_8822B)
  152. #define BIT_CLEAR_REG_FREQ_L_8822B(x) ((x) & (~BITS_REG_FREQ_L_8822B))
  153. #define BIT_GET_REG_FREQ_L_8822B(x) \
  154. (((x) >> BIT_SHIFT_REG_FREQ_L_8822B) & BIT_MASK_REG_FREQ_L_8822B)
  155. #define BIT_SET_REG_FREQ_L_8822B(x, v) \
  156. (BIT_CLEAR_REG_FREQ_L_8822B(x) | BIT_REG_FREQ_L_8822B(v))
  157. #define BIT_REG_EN_DUTY_8822B BIT(24)
  158. #define BIT_SHIFT_REG_MODE_8822B 22
  159. #define BIT_MASK_REG_MODE_8822B 0x3
  160. #define BIT_REG_MODE_8822B(x) \
  161. (((x) & BIT_MASK_REG_MODE_8822B) << BIT_SHIFT_REG_MODE_8822B)
  162. #define BITS_REG_MODE_8822B \
  163. (BIT_MASK_REG_MODE_8822B << BIT_SHIFT_REG_MODE_8822B)
  164. #define BIT_CLEAR_REG_MODE_8822B(x) ((x) & (~BITS_REG_MODE_8822B))
  165. #define BIT_GET_REG_MODE_8822B(x) \
  166. (((x) >> BIT_SHIFT_REG_MODE_8822B) & BIT_MASK_REG_MODE_8822B)
  167. #define BIT_SET_REG_MODE_8822B(x, v) \
  168. (BIT_CLEAR_REG_MODE_8822B(x) | BIT_REG_MODE_8822B(v))
  169. #define BIT_REG_EN_SP_8822B BIT(21)
  170. #define BIT_REG_AUTO_L_8822B BIT(20)
  171. #define BIT_SW18_SELD_BIT0_8822B BIT(19)
  172. #define BIT_SW18_POWOCP_8822B BIT(18)
  173. #define BIT_SHIFT_OCP_L1_8822B 15
  174. #define BIT_MASK_OCP_L1_8822B 0x7
  175. #define BIT_OCP_L1_8822B(x) \
  176. (((x) & BIT_MASK_OCP_L1_8822B) << BIT_SHIFT_OCP_L1_8822B)
  177. #define BITS_OCP_L1_8822B (BIT_MASK_OCP_L1_8822B << BIT_SHIFT_OCP_L1_8822B)
  178. #define BIT_CLEAR_OCP_L1_8822B(x) ((x) & (~BITS_OCP_L1_8822B))
  179. #define BIT_GET_OCP_L1_8822B(x) \
  180. (((x) >> BIT_SHIFT_OCP_L1_8822B) & BIT_MASK_OCP_L1_8822B)
  181. #define BIT_SET_OCP_L1_8822B(x, v) \
  182. (BIT_CLEAR_OCP_L1_8822B(x) | BIT_OCP_L1_8822B(v))
  183. #define BIT_SHIFT_CF_L_8822B 13
  184. #define BIT_MASK_CF_L_8822B 0x3
  185. #define BIT_CF_L_8822B(x) (((x) & BIT_MASK_CF_L_8822B) << BIT_SHIFT_CF_L_8822B)
  186. #define BITS_CF_L_8822B (BIT_MASK_CF_L_8822B << BIT_SHIFT_CF_L_8822B)
  187. #define BIT_CLEAR_CF_L_8822B(x) ((x) & (~BITS_CF_L_8822B))
  188. #define BIT_GET_CF_L_8822B(x) \
  189. (((x) >> BIT_SHIFT_CF_L_8822B) & BIT_MASK_CF_L_8822B)
  190. #define BIT_SET_CF_L_8822B(x, v) (BIT_CLEAR_CF_L_8822B(x) | BIT_CF_L_8822B(v))
  191. #define BIT_SW18_FPWM_8822B BIT(11)
  192. #define BIT_SW18_SWEN_8822B BIT(9)
  193. #define BIT_SW18_LDEN_8822B BIT(8)
  194. #define BIT_MAC_ID_EN_8822B BIT(7)
  195. #define BIT_AFE_BGEN_8822B BIT(0)
  196. /* 2 REG_SYS_SWR_CTRL2_8822B */
  197. #define BIT_POW_ZCD_L_8822B BIT(31)
  198. #define BIT_AUTOZCD_L_8822B BIT(30)
  199. #define BIT_SHIFT_REG_DELAY_8822B 28
  200. #define BIT_MASK_REG_DELAY_8822B 0x3
  201. #define BIT_REG_DELAY_8822B(x) \
  202. (((x) & BIT_MASK_REG_DELAY_8822B) << BIT_SHIFT_REG_DELAY_8822B)
  203. #define BITS_REG_DELAY_8822B \
  204. (BIT_MASK_REG_DELAY_8822B << BIT_SHIFT_REG_DELAY_8822B)
  205. #define BIT_CLEAR_REG_DELAY_8822B(x) ((x) & (~BITS_REG_DELAY_8822B))
  206. #define BIT_GET_REG_DELAY_8822B(x) \
  207. (((x) >> BIT_SHIFT_REG_DELAY_8822B) & BIT_MASK_REG_DELAY_8822B)
  208. #define BIT_SET_REG_DELAY_8822B(x, v) \
  209. (BIT_CLEAR_REG_DELAY_8822B(x) | BIT_REG_DELAY_8822B(v))
  210. #define BIT_SHIFT_V15ADJ_L1_V1_8822B 24
  211. #define BIT_MASK_V15ADJ_L1_V1_8822B 0x7
  212. #define BIT_V15ADJ_L1_V1_8822B(x) \
  213. (((x) & BIT_MASK_V15ADJ_L1_V1_8822B) << BIT_SHIFT_V15ADJ_L1_V1_8822B)
  214. #define BITS_V15ADJ_L1_V1_8822B \
  215. (BIT_MASK_V15ADJ_L1_V1_8822B << BIT_SHIFT_V15ADJ_L1_V1_8822B)
  216. #define BIT_CLEAR_V15ADJ_L1_V1_8822B(x) ((x) & (~BITS_V15ADJ_L1_V1_8822B))
  217. #define BIT_GET_V15ADJ_L1_V1_8822B(x) \
  218. (((x) >> BIT_SHIFT_V15ADJ_L1_V1_8822B) & BIT_MASK_V15ADJ_L1_V1_8822B)
  219. #define BIT_SET_V15ADJ_L1_V1_8822B(x, v) \
  220. (BIT_CLEAR_V15ADJ_L1_V1_8822B(x) | BIT_V15ADJ_L1_V1_8822B(v))
  221. #define BIT_SHIFT_VOL_L1_V1_8822B 20
  222. #define BIT_MASK_VOL_L1_V1_8822B 0xf
  223. #define BIT_VOL_L1_V1_8822B(x) \
  224. (((x) & BIT_MASK_VOL_L1_V1_8822B) << BIT_SHIFT_VOL_L1_V1_8822B)
  225. #define BITS_VOL_L1_V1_8822B \
  226. (BIT_MASK_VOL_L1_V1_8822B << BIT_SHIFT_VOL_L1_V1_8822B)
  227. #define BIT_CLEAR_VOL_L1_V1_8822B(x) ((x) & (~BITS_VOL_L1_V1_8822B))
  228. #define BIT_GET_VOL_L1_V1_8822B(x) \
  229. (((x) >> BIT_SHIFT_VOL_L1_V1_8822B) & BIT_MASK_VOL_L1_V1_8822B)
  230. #define BIT_SET_VOL_L1_V1_8822B(x, v) \
  231. (BIT_CLEAR_VOL_L1_V1_8822B(x) | BIT_VOL_L1_V1_8822B(v))
  232. #define BIT_SHIFT_IN_L1_V1_8822B 17
  233. #define BIT_MASK_IN_L1_V1_8822B 0x7
  234. #define BIT_IN_L1_V1_8822B(x) \
  235. (((x) & BIT_MASK_IN_L1_V1_8822B) << BIT_SHIFT_IN_L1_V1_8822B)
  236. #define BITS_IN_L1_V1_8822B \
  237. (BIT_MASK_IN_L1_V1_8822B << BIT_SHIFT_IN_L1_V1_8822B)
  238. #define BIT_CLEAR_IN_L1_V1_8822B(x) ((x) & (~BITS_IN_L1_V1_8822B))
  239. #define BIT_GET_IN_L1_V1_8822B(x) \
  240. (((x) >> BIT_SHIFT_IN_L1_V1_8822B) & BIT_MASK_IN_L1_V1_8822B)
  241. #define BIT_SET_IN_L1_V1_8822B(x, v) \
  242. (BIT_CLEAR_IN_L1_V1_8822B(x) | BIT_IN_L1_V1_8822B(v))
  243. #define BIT_SHIFT_TBOX_L1_8822B 15
  244. #define BIT_MASK_TBOX_L1_8822B 0x3
  245. #define BIT_TBOX_L1_8822B(x) \
  246. (((x) & BIT_MASK_TBOX_L1_8822B) << BIT_SHIFT_TBOX_L1_8822B)
  247. #define BITS_TBOX_L1_8822B (BIT_MASK_TBOX_L1_8822B << BIT_SHIFT_TBOX_L1_8822B)
  248. #define BIT_CLEAR_TBOX_L1_8822B(x) ((x) & (~BITS_TBOX_L1_8822B))
  249. #define BIT_GET_TBOX_L1_8822B(x) \
  250. (((x) >> BIT_SHIFT_TBOX_L1_8822B) & BIT_MASK_TBOX_L1_8822B)
  251. #define BIT_SET_TBOX_L1_8822B(x, v) \
  252. (BIT_CLEAR_TBOX_L1_8822B(x) | BIT_TBOX_L1_8822B(v))
  253. #define BIT_SW18_SEL_8822B BIT(13)
  254. /* 2 REG_NOT_VALID_8822B */
  255. #define BIT_SW18_SD_8822B BIT(10)
  256. #define BIT_SHIFT_R3_L_8822B 7
  257. #define BIT_MASK_R3_L_8822B 0x3
  258. #define BIT_R3_L_8822B(x) (((x) & BIT_MASK_R3_L_8822B) << BIT_SHIFT_R3_L_8822B)
  259. #define BITS_R3_L_8822B (BIT_MASK_R3_L_8822B << BIT_SHIFT_R3_L_8822B)
  260. #define BIT_CLEAR_R3_L_8822B(x) ((x) & (~BITS_R3_L_8822B))
  261. #define BIT_GET_R3_L_8822B(x) \
  262. (((x) >> BIT_SHIFT_R3_L_8822B) & BIT_MASK_R3_L_8822B)
  263. #define BIT_SET_R3_L_8822B(x, v) (BIT_CLEAR_R3_L_8822B(x) | BIT_R3_L_8822B(v))
  264. #define BIT_SHIFT_SW18_R2_8822B 5
  265. #define BIT_MASK_SW18_R2_8822B 0x3
  266. #define BIT_SW18_R2_8822B(x) \
  267. (((x) & BIT_MASK_SW18_R2_8822B) << BIT_SHIFT_SW18_R2_8822B)
  268. #define BITS_SW18_R2_8822B (BIT_MASK_SW18_R2_8822B << BIT_SHIFT_SW18_R2_8822B)
  269. #define BIT_CLEAR_SW18_R2_8822B(x) ((x) & (~BITS_SW18_R2_8822B))
  270. #define BIT_GET_SW18_R2_8822B(x) \
  271. (((x) >> BIT_SHIFT_SW18_R2_8822B) & BIT_MASK_SW18_R2_8822B)
  272. #define BIT_SET_SW18_R2_8822B(x, v) \
  273. (BIT_CLEAR_SW18_R2_8822B(x) | BIT_SW18_R2_8822B(v))
  274. #define BIT_SHIFT_SW18_R1_8822B 3
  275. #define BIT_MASK_SW18_R1_8822B 0x3
  276. #define BIT_SW18_R1_8822B(x) \
  277. (((x) & BIT_MASK_SW18_R1_8822B) << BIT_SHIFT_SW18_R1_8822B)
  278. #define BITS_SW18_R1_8822B (BIT_MASK_SW18_R1_8822B << BIT_SHIFT_SW18_R1_8822B)
  279. #define BIT_CLEAR_SW18_R1_8822B(x) ((x) & (~BITS_SW18_R1_8822B))
  280. #define BIT_GET_SW18_R1_8822B(x) \
  281. (((x) >> BIT_SHIFT_SW18_R1_8822B) & BIT_MASK_SW18_R1_8822B)
  282. #define BIT_SET_SW18_R1_8822B(x, v) \
  283. (BIT_CLEAR_SW18_R1_8822B(x) | BIT_SW18_R1_8822B(v))
  284. #define BIT_SHIFT_C3_L_C3_8822B 1
  285. #define BIT_MASK_C3_L_C3_8822B 0x3
  286. #define BIT_C3_L_C3_8822B(x) \
  287. (((x) & BIT_MASK_C3_L_C3_8822B) << BIT_SHIFT_C3_L_C3_8822B)
  288. #define BITS_C3_L_C3_8822B (BIT_MASK_C3_L_C3_8822B << BIT_SHIFT_C3_L_C3_8822B)
  289. #define BIT_CLEAR_C3_L_C3_8822B(x) ((x) & (~BITS_C3_L_C3_8822B))
  290. #define BIT_GET_C3_L_C3_8822B(x) \
  291. (((x) >> BIT_SHIFT_C3_L_C3_8822B) & BIT_MASK_C3_L_C3_8822B)
  292. #define BIT_SET_C3_L_C3_8822B(x, v) \
  293. (BIT_CLEAR_C3_L_C3_8822B(x) | BIT_C3_L_C3_8822B(v))
  294. #define BIT_C2_L_BIT1_8822B BIT(0)
  295. /* 2 REG_SYS_SWR_CTRL3_8822B */
  296. #define BIT_SPS18_OCP_DIS_8822B BIT(31)
  297. #define BIT_SHIFT_SPS18_OCP_TH_8822B 16
  298. #define BIT_MASK_SPS18_OCP_TH_8822B 0x7fff
  299. #define BIT_SPS18_OCP_TH_8822B(x) \
  300. (((x) & BIT_MASK_SPS18_OCP_TH_8822B) << BIT_SHIFT_SPS18_OCP_TH_8822B)
  301. #define BITS_SPS18_OCP_TH_8822B \
  302. (BIT_MASK_SPS18_OCP_TH_8822B << BIT_SHIFT_SPS18_OCP_TH_8822B)
  303. #define BIT_CLEAR_SPS18_OCP_TH_8822B(x) ((x) & (~BITS_SPS18_OCP_TH_8822B))
  304. #define BIT_GET_SPS18_OCP_TH_8822B(x) \
  305. (((x) >> BIT_SHIFT_SPS18_OCP_TH_8822B) & BIT_MASK_SPS18_OCP_TH_8822B)
  306. #define BIT_SET_SPS18_OCP_TH_8822B(x, v) \
  307. (BIT_CLEAR_SPS18_OCP_TH_8822B(x) | BIT_SPS18_OCP_TH_8822B(v))
  308. #define BIT_SHIFT_OCP_WINDOW_8822B 0
  309. #define BIT_MASK_OCP_WINDOW_8822B 0xffff
  310. #define BIT_OCP_WINDOW_8822B(x) \
  311. (((x) & BIT_MASK_OCP_WINDOW_8822B) << BIT_SHIFT_OCP_WINDOW_8822B)
  312. #define BITS_OCP_WINDOW_8822B \
  313. (BIT_MASK_OCP_WINDOW_8822B << BIT_SHIFT_OCP_WINDOW_8822B)
  314. #define BIT_CLEAR_OCP_WINDOW_8822B(x) ((x) & (~BITS_OCP_WINDOW_8822B))
  315. #define BIT_GET_OCP_WINDOW_8822B(x) \
  316. (((x) >> BIT_SHIFT_OCP_WINDOW_8822B) & BIT_MASK_OCP_WINDOW_8822B)
  317. #define BIT_SET_OCP_WINDOW_8822B(x, v) \
  318. (BIT_CLEAR_OCP_WINDOW_8822B(x) | BIT_OCP_WINDOW_8822B(v))
  319. /* 2 REG_RSV_CTRL_8822B */
  320. #define BIT_HREG_DBG_8822B BIT(23)
  321. #define BIT_WLMCUIOIF_8822B BIT(8)
  322. #define BIT_LOCK_ALL_EN_8822B BIT(7)
  323. #define BIT_R_DIS_PRST_8822B BIT(6)
  324. #define BIT_WLOCK_1C_B6_8822B BIT(5)
  325. #define BIT_WLOCK_40_8822B BIT(4)
  326. #define BIT_WLOCK_08_8822B BIT(3)
  327. #define BIT_WLOCK_04_8822B BIT(2)
  328. #define BIT_WLOCK_00_8822B BIT(1)
  329. #define BIT_WLOCK_ALL_8822B BIT(0)
  330. /* 2 REG_RF_CTRL_8822B */
  331. #define BIT_RF_SDMRSTB_8822B BIT(2)
  332. #define BIT_RF_RSTB_8822B BIT(1)
  333. #define BIT_RF_EN_8822B BIT(0)
  334. /* 2 REG_AFE_LDO_CTRL_8822B */
  335. #define BIT_SHIFT_LPLDH12_RSV_8822B 29
  336. #define BIT_MASK_LPLDH12_RSV_8822B 0x7
  337. #define BIT_LPLDH12_RSV_8822B(x) \
  338. (((x) & BIT_MASK_LPLDH12_RSV_8822B) << BIT_SHIFT_LPLDH12_RSV_8822B)
  339. #define BITS_LPLDH12_RSV_8822B \
  340. (BIT_MASK_LPLDH12_RSV_8822B << BIT_SHIFT_LPLDH12_RSV_8822B)
  341. #define BIT_CLEAR_LPLDH12_RSV_8822B(x) ((x) & (~BITS_LPLDH12_RSV_8822B))
  342. #define BIT_GET_LPLDH12_RSV_8822B(x) \
  343. (((x) >> BIT_SHIFT_LPLDH12_RSV_8822B) & BIT_MASK_LPLDH12_RSV_8822B)
  344. #define BIT_SET_LPLDH12_RSV_8822B(x, v) \
  345. (BIT_CLEAR_LPLDH12_RSV_8822B(x) | BIT_LPLDH12_RSV_8822B(v))
  346. #define BIT_LPLDH12_SLP_8822B BIT(28)
  347. #define BIT_SHIFT_LPLDH12_VADJ_8822B 24
  348. #define BIT_MASK_LPLDH12_VADJ_8822B 0xf
  349. #define BIT_LPLDH12_VADJ_8822B(x) \
  350. (((x) & BIT_MASK_LPLDH12_VADJ_8822B) << BIT_SHIFT_LPLDH12_VADJ_8822B)
  351. #define BITS_LPLDH12_VADJ_8822B \
  352. (BIT_MASK_LPLDH12_VADJ_8822B << BIT_SHIFT_LPLDH12_VADJ_8822B)
  353. #define BIT_CLEAR_LPLDH12_VADJ_8822B(x) ((x) & (~BITS_LPLDH12_VADJ_8822B))
  354. #define BIT_GET_LPLDH12_VADJ_8822B(x) \
  355. (((x) >> BIT_SHIFT_LPLDH12_VADJ_8822B) & BIT_MASK_LPLDH12_VADJ_8822B)
  356. #define BIT_SET_LPLDH12_VADJ_8822B(x, v) \
  357. (BIT_CLEAR_LPLDH12_VADJ_8822B(x) | BIT_LPLDH12_VADJ_8822B(v))
  358. #define BIT_LDH12_EN_8822B BIT(16)
  359. #define BIT_WLBBOFF_BIG_PWC_EN_8822B BIT(14)
  360. #define BIT_WLBBOFF_SMALL_PWC_EN_8822B BIT(13)
  361. #define BIT_WLMACOFF_BIG_PWC_EN_8822B BIT(12)
  362. #define BIT_WLPON_PWC_EN_8822B BIT(11)
  363. #define BIT_POW_REGU_P1_8822B BIT(10)
  364. #define BIT_LDOV12W_EN_8822B BIT(8)
  365. #define BIT_EX_XTAL_DRV_DIGI_8822B BIT(7)
  366. #define BIT_EX_XTAL_DRV_USB_8822B BIT(6)
  367. #define BIT_EX_XTAL_DRV_AFE_8822B BIT(5)
  368. #define BIT_EX_XTAL_DRV_RF2_8822B BIT(4)
  369. #define BIT_EX_XTAL_DRV_RF1_8822B BIT(3)
  370. #define BIT_POW_REGU_P0_8822B BIT(2)
  371. /* 2 REG_NOT_VALID_8822B */
  372. #define BIT_POW_PLL_LDO_8822B BIT(0)
  373. /* 2 REG_AFE_CTRL1_8822B */
  374. #define BIT_AGPIO_GPE_8822B BIT(31)
  375. #define BIT_SHIFT_XTAL_CAP_XI_8822B 25
  376. #define BIT_MASK_XTAL_CAP_XI_8822B 0x3f
  377. #define BIT_XTAL_CAP_XI_8822B(x) \
  378. (((x) & BIT_MASK_XTAL_CAP_XI_8822B) << BIT_SHIFT_XTAL_CAP_XI_8822B)
  379. #define BITS_XTAL_CAP_XI_8822B \
  380. (BIT_MASK_XTAL_CAP_XI_8822B << BIT_SHIFT_XTAL_CAP_XI_8822B)
  381. #define BIT_CLEAR_XTAL_CAP_XI_8822B(x) ((x) & (~BITS_XTAL_CAP_XI_8822B))
  382. #define BIT_GET_XTAL_CAP_XI_8822B(x) \
  383. (((x) >> BIT_SHIFT_XTAL_CAP_XI_8822B) & BIT_MASK_XTAL_CAP_XI_8822B)
  384. #define BIT_SET_XTAL_CAP_XI_8822B(x, v) \
  385. (BIT_CLEAR_XTAL_CAP_XI_8822B(x) | BIT_XTAL_CAP_XI_8822B(v))
  386. #define BIT_SHIFT_XTAL_DRV_DIGI_8822B 23
  387. #define BIT_MASK_XTAL_DRV_DIGI_8822B 0x3
  388. #define BIT_XTAL_DRV_DIGI_8822B(x) \
  389. (((x) & BIT_MASK_XTAL_DRV_DIGI_8822B) << BIT_SHIFT_XTAL_DRV_DIGI_8822B)
  390. #define BITS_XTAL_DRV_DIGI_8822B \
  391. (BIT_MASK_XTAL_DRV_DIGI_8822B << BIT_SHIFT_XTAL_DRV_DIGI_8822B)
  392. #define BIT_CLEAR_XTAL_DRV_DIGI_8822B(x) ((x) & (~BITS_XTAL_DRV_DIGI_8822B))
  393. #define BIT_GET_XTAL_DRV_DIGI_8822B(x) \
  394. (((x) >> BIT_SHIFT_XTAL_DRV_DIGI_8822B) & BIT_MASK_XTAL_DRV_DIGI_8822B)
  395. #define BIT_SET_XTAL_DRV_DIGI_8822B(x, v) \
  396. (BIT_CLEAR_XTAL_DRV_DIGI_8822B(x) | BIT_XTAL_DRV_DIGI_8822B(v))
  397. #define BIT_XTAL_DRV_USB_BIT1_8822B BIT(22)
  398. #define BIT_SHIFT_MAC_CLK_SEL_8822B 20
  399. #define BIT_MASK_MAC_CLK_SEL_8822B 0x3
  400. #define BIT_MAC_CLK_SEL_8822B(x) \
  401. (((x) & BIT_MASK_MAC_CLK_SEL_8822B) << BIT_SHIFT_MAC_CLK_SEL_8822B)
  402. #define BITS_MAC_CLK_SEL_8822B \
  403. (BIT_MASK_MAC_CLK_SEL_8822B << BIT_SHIFT_MAC_CLK_SEL_8822B)
  404. #define BIT_CLEAR_MAC_CLK_SEL_8822B(x) ((x) & (~BITS_MAC_CLK_SEL_8822B))
  405. #define BIT_GET_MAC_CLK_SEL_8822B(x) \
  406. (((x) >> BIT_SHIFT_MAC_CLK_SEL_8822B) & BIT_MASK_MAC_CLK_SEL_8822B)
  407. #define BIT_SET_MAC_CLK_SEL_8822B(x, v) \
  408. (BIT_CLEAR_MAC_CLK_SEL_8822B(x) | BIT_MAC_CLK_SEL_8822B(v))
  409. #define BIT_XTAL_DRV_USB_BIT0_8822B BIT(19)
  410. #define BIT_SHIFT_XTAL_DRV_AFE_8822B 17
  411. #define BIT_MASK_XTAL_DRV_AFE_8822B 0x3
  412. #define BIT_XTAL_DRV_AFE_8822B(x) \
  413. (((x) & BIT_MASK_XTAL_DRV_AFE_8822B) << BIT_SHIFT_XTAL_DRV_AFE_8822B)
  414. #define BITS_XTAL_DRV_AFE_8822B \
  415. (BIT_MASK_XTAL_DRV_AFE_8822B << BIT_SHIFT_XTAL_DRV_AFE_8822B)
  416. #define BIT_CLEAR_XTAL_DRV_AFE_8822B(x) ((x) & (~BITS_XTAL_DRV_AFE_8822B))
  417. #define BIT_GET_XTAL_DRV_AFE_8822B(x) \
  418. (((x) >> BIT_SHIFT_XTAL_DRV_AFE_8822B) & BIT_MASK_XTAL_DRV_AFE_8822B)
  419. #define BIT_SET_XTAL_DRV_AFE_8822B(x, v) \
  420. (BIT_CLEAR_XTAL_DRV_AFE_8822B(x) | BIT_XTAL_DRV_AFE_8822B(v))
  421. #define BIT_SHIFT_XTAL_DRV_RF2_8822B 15
  422. #define BIT_MASK_XTAL_DRV_RF2_8822B 0x3
  423. #define BIT_XTAL_DRV_RF2_8822B(x) \
  424. (((x) & BIT_MASK_XTAL_DRV_RF2_8822B) << BIT_SHIFT_XTAL_DRV_RF2_8822B)
  425. #define BITS_XTAL_DRV_RF2_8822B \
  426. (BIT_MASK_XTAL_DRV_RF2_8822B << BIT_SHIFT_XTAL_DRV_RF2_8822B)
  427. #define BIT_CLEAR_XTAL_DRV_RF2_8822B(x) ((x) & (~BITS_XTAL_DRV_RF2_8822B))
  428. #define BIT_GET_XTAL_DRV_RF2_8822B(x) \
  429. (((x) >> BIT_SHIFT_XTAL_DRV_RF2_8822B) & BIT_MASK_XTAL_DRV_RF2_8822B)
  430. #define BIT_SET_XTAL_DRV_RF2_8822B(x, v) \
  431. (BIT_CLEAR_XTAL_DRV_RF2_8822B(x) | BIT_XTAL_DRV_RF2_8822B(v))
  432. #define BIT_SHIFT_XTAL_DRV_RF1_8822B 13
  433. #define BIT_MASK_XTAL_DRV_RF1_8822B 0x3
  434. #define BIT_XTAL_DRV_RF1_8822B(x) \
  435. (((x) & BIT_MASK_XTAL_DRV_RF1_8822B) << BIT_SHIFT_XTAL_DRV_RF1_8822B)
  436. #define BITS_XTAL_DRV_RF1_8822B \
  437. (BIT_MASK_XTAL_DRV_RF1_8822B << BIT_SHIFT_XTAL_DRV_RF1_8822B)
  438. #define BIT_CLEAR_XTAL_DRV_RF1_8822B(x) ((x) & (~BITS_XTAL_DRV_RF1_8822B))
  439. #define BIT_GET_XTAL_DRV_RF1_8822B(x) \
  440. (((x) >> BIT_SHIFT_XTAL_DRV_RF1_8822B) & BIT_MASK_XTAL_DRV_RF1_8822B)
  441. #define BIT_SET_XTAL_DRV_RF1_8822B(x, v) \
  442. (BIT_CLEAR_XTAL_DRV_RF1_8822B(x) | BIT_XTAL_DRV_RF1_8822B(v))
  443. #define BIT_XTAL_DELAY_DIGI_8822B BIT(12)
  444. #define BIT_XTAL_DELAY_USB_8822B BIT(11)
  445. #define BIT_XTAL_DELAY_AFE_8822B BIT(10)
  446. #define BIT_SHIFT_XTAL_LDO_VREF_8822B 7
  447. #define BIT_MASK_XTAL_LDO_VREF_8822B 0x7
  448. #define BIT_XTAL_LDO_VREF_8822B(x) \
  449. (((x) & BIT_MASK_XTAL_LDO_VREF_8822B) << BIT_SHIFT_XTAL_LDO_VREF_8822B)
  450. #define BITS_XTAL_LDO_VREF_8822B \
  451. (BIT_MASK_XTAL_LDO_VREF_8822B << BIT_SHIFT_XTAL_LDO_VREF_8822B)
  452. #define BIT_CLEAR_XTAL_LDO_VREF_8822B(x) ((x) & (~BITS_XTAL_LDO_VREF_8822B))
  453. #define BIT_GET_XTAL_LDO_VREF_8822B(x) \
  454. (((x) >> BIT_SHIFT_XTAL_LDO_VREF_8822B) & BIT_MASK_XTAL_LDO_VREF_8822B)
  455. #define BIT_SET_XTAL_LDO_VREF_8822B(x, v) \
  456. (BIT_CLEAR_XTAL_LDO_VREF_8822B(x) | BIT_XTAL_LDO_VREF_8822B(v))
  457. #define BIT_XTAL_XQSEL_RF_8822B BIT(6)
  458. #define BIT_XTAL_XQSEL_8822B BIT(5)
  459. #define BIT_SHIFT_XTAL_GMN_V2_8822B 3
  460. #define BIT_MASK_XTAL_GMN_V2_8822B 0x3
  461. #define BIT_XTAL_GMN_V2_8822B(x) \
  462. (((x) & BIT_MASK_XTAL_GMN_V2_8822B) << BIT_SHIFT_XTAL_GMN_V2_8822B)
  463. #define BITS_XTAL_GMN_V2_8822B \
  464. (BIT_MASK_XTAL_GMN_V2_8822B << BIT_SHIFT_XTAL_GMN_V2_8822B)
  465. #define BIT_CLEAR_XTAL_GMN_V2_8822B(x) ((x) & (~BITS_XTAL_GMN_V2_8822B))
  466. #define BIT_GET_XTAL_GMN_V2_8822B(x) \
  467. (((x) >> BIT_SHIFT_XTAL_GMN_V2_8822B) & BIT_MASK_XTAL_GMN_V2_8822B)
  468. #define BIT_SET_XTAL_GMN_V2_8822B(x, v) \
  469. (BIT_CLEAR_XTAL_GMN_V2_8822B(x) | BIT_XTAL_GMN_V2_8822B(v))
  470. #define BIT_SHIFT_XTAL_GMP_V2_8822B 1
  471. #define BIT_MASK_XTAL_GMP_V2_8822B 0x3
  472. #define BIT_XTAL_GMP_V2_8822B(x) \
  473. (((x) & BIT_MASK_XTAL_GMP_V2_8822B) << BIT_SHIFT_XTAL_GMP_V2_8822B)
  474. #define BITS_XTAL_GMP_V2_8822B \
  475. (BIT_MASK_XTAL_GMP_V2_8822B << BIT_SHIFT_XTAL_GMP_V2_8822B)
  476. #define BIT_CLEAR_XTAL_GMP_V2_8822B(x) ((x) & (~BITS_XTAL_GMP_V2_8822B))
  477. #define BIT_GET_XTAL_GMP_V2_8822B(x) \
  478. (((x) >> BIT_SHIFT_XTAL_GMP_V2_8822B) & BIT_MASK_XTAL_GMP_V2_8822B)
  479. #define BIT_SET_XTAL_GMP_V2_8822B(x, v) \
  480. (BIT_CLEAR_XTAL_GMP_V2_8822B(x) | BIT_XTAL_GMP_V2_8822B(v))
  481. #define BIT_XTAL_EN_8822B BIT(0)
  482. /* 2 REG_AFE_CTRL2_8822B */
  483. #define BIT_SHIFT_REG_C3_V4_8822B 30
  484. #define BIT_MASK_REG_C3_V4_8822B 0x3
  485. #define BIT_REG_C3_V4_8822B(x) \
  486. (((x) & BIT_MASK_REG_C3_V4_8822B) << BIT_SHIFT_REG_C3_V4_8822B)
  487. #define BITS_REG_C3_V4_8822B \
  488. (BIT_MASK_REG_C3_V4_8822B << BIT_SHIFT_REG_C3_V4_8822B)
  489. #define BIT_CLEAR_REG_C3_V4_8822B(x) ((x) & (~BITS_REG_C3_V4_8822B))
  490. #define BIT_GET_REG_C3_V4_8822B(x) \
  491. (((x) >> BIT_SHIFT_REG_C3_V4_8822B) & BIT_MASK_REG_C3_V4_8822B)
  492. #define BIT_SET_REG_C3_V4_8822B(x, v) \
  493. (BIT_CLEAR_REG_C3_V4_8822B(x) | BIT_REG_C3_V4_8822B(v))
  494. #define BIT_REG_CP_BIT1_8822B BIT(29)
  495. #define BIT_SHIFT_REG_RS_V4_8822B 26
  496. #define BIT_MASK_REG_RS_V4_8822B 0x7
  497. #define BIT_REG_RS_V4_8822B(x) \
  498. (((x) & BIT_MASK_REG_RS_V4_8822B) << BIT_SHIFT_REG_RS_V4_8822B)
  499. #define BITS_REG_RS_V4_8822B \
  500. (BIT_MASK_REG_RS_V4_8822B << BIT_SHIFT_REG_RS_V4_8822B)
  501. #define BIT_CLEAR_REG_RS_V4_8822B(x) ((x) & (~BITS_REG_RS_V4_8822B))
  502. #define BIT_GET_REG_RS_V4_8822B(x) \
  503. (((x) >> BIT_SHIFT_REG_RS_V4_8822B) & BIT_MASK_REG_RS_V4_8822B)
  504. #define BIT_SET_REG_RS_V4_8822B(x, v) \
  505. (BIT_CLEAR_REG_RS_V4_8822B(x) | BIT_REG_RS_V4_8822B(v))
  506. #define BIT_SHIFT_REG__CS_8822B 24
  507. #define BIT_MASK_REG__CS_8822B 0x3
  508. #define BIT_REG__CS_8822B(x) \
  509. (((x) & BIT_MASK_REG__CS_8822B) << BIT_SHIFT_REG__CS_8822B)
  510. #define BITS_REG__CS_8822B (BIT_MASK_REG__CS_8822B << BIT_SHIFT_REG__CS_8822B)
  511. #define BIT_CLEAR_REG__CS_8822B(x) ((x) & (~BITS_REG__CS_8822B))
  512. #define BIT_GET_REG__CS_8822B(x) \
  513. (((x) >> BIT_SHIFT_REG__CS_8822B) & BIT_MASK_REG__CS_8822B)
  514. #define BIT_SET_REG__CS_8822B(x, v) \
  515. (BIT_CLEAR_REG__CS_8822B(x) | BIT_REG__CS_8822B(v))
  516. #define BIT_SHIFT_REG_CP_OFFSET_8822B 21
  517. #define BIT_MASK_REG_CP_OFFSET_8822B 0x7
  518. #define BIT_REG_CP_OFFSET_8822B(x) \
  519. (((x) & BIT_MASK_REG_CP_OFFSET_8822B) << BIT_SHIFT_REG_CP_OFFSET_8822B)
  520. #define BITS_REG_CP_OFFSET_8822B \
  521. (BIT_MASK_REG_CP_OFFSET_8822B << BIT_SHIFT_REG_CP_OFFSET_8822B)
  522. #define BIT_CLEAR_REG_CP_OFFSET_8822B(x) ((x) & (~BITS_REG_CP_OFFSET_8822B))
  523. #define BIT_GET_REG_CP_OFFSET_8822B(x) \
  524. (((x) >> BIT_SHIFT_REG_CP_OFFSET_8822B) & BIT_MASK_REG_CP_OFFSET_8822B)
  525. #define BIT_SET_REG_CP_OFFSET_8822B(x, v) \
  526. (BIT_CLEAR_REG_CP_OFFSET_8822B(x) | BIT_REG_CP_OFFSET_8822B(v))
  527. #define BIT_SHIFT_CP_BIAS_8822B 18
  528. #define BIT_MASK_CP_BIAS_8822B 0x7
  529. #define BIT_CP_BIAS_8822B(x) \
  530. (((x) & BIT_MASK_CP_BIAS_8822B) << BIT_SHIFT_CP_BIAS_8822B)
  531. #define BITS_CP_BIAS_8822B (BIT_MASK_CP_BIAS_8822B << BIT_SHIFT_CP_BIAS_8822B)
  532. #define BIT_CLEAR_CP_BIAS_8822B(x) ((x) & (~BITS_CP_BIAS_8822B))
  533. #define BIT_GET_CP_BIAS_8822B(x) \
  534. (((x) >> BIT_SHIFT_CP_BIAS_8822B) & BIT_MASK_CP_BIAS_8822B)
  535. #define BIT_SET_CP_BIAS_8822B(x, v) \
  536. (BIT_CLEAR_CP_BIAS_8822B(x) | BIT_CP_BIAS_8822B(v))
  537. #define BIT_REG_IDOUBLE_V2_8822B BIT(17)
  538. #define BIT_EN_SYN_8822B BIT(16)
  539. #define BIT_SHIFT_MCCO_8822B 14
  540. #define BIT_MASK_MCCO_8822B 0x3
  541. #define BIT_MCCO_8822B(x) (((x) & BIT_MASK_MCCO_8822B) << BIT_SHIFT_MCCO_8822B)
  542. #define BITS_MCCO_8822B (BIT_MASK_MCCO_8822B << BIT_SHIFT_MCCO_8822B)
  543. #define BIT_CLEAR_MCCO_8822B(x) ((x) & (~BITS_MCCO_8822B))
  544. #define BIT_GET_MCCO_8822B(x) \
  545. (((x) >> BIT_SHIFT_MCCO_8822B) & BIT_MASK_MCCO_8822B)
  546. #define BIT_SET_MCCO_8822B(x, v) (BIT_CLEAR_MCCO_8822B(x) | BIT_MCCO_8822B(v))
  547. #define BIT_SHIFT_REG_LDO_SEL_8822B 12
  548. #define BIT_MASK_REG_LDO_SEL_8822B 0x3
  549. #define BIT_REG_LDO_SEL_8822B(x) \
  550. (((x) & BIT_MASK_REG_LDO_SEL_8822B) << BIT_SHIFT_REG_LDO_SEL_8822B)
  551. #define BITS_REG_LDO_SEL_8822B \
  552. (BIT_MASK_REG_LDO_SEL_8822B << BIT_SHIFT_REG_LDO_SEL_8822B)
  553. #define BIT_CLEAR_REG_LDO_SEL_8822B(x) ((x) & (~BITS_REG_LDO_SEL_8822B))
  554. #define BIT_GET_REG_LDO_SEL_8822B(x) \
  555. (((x) >> BIT_SHIFT_REG_LDO_SEL_8822B) & BIT_MASK_REG_LDO_SEL_8822B)
  556. #define BIT_SET_REG_LDO_SEL_8822B(x, v) \
  557. (BIT_CLEAR_REG_LDO_SEL_8822B(x) | BIT_REG_LDO_SEL_8822B(v))
  558. #define BIT_REG_KVCO_V2_8822B BIT(10)
  559. #define BIT_AGPIO_GPO_8822B BIT(9)
  560. #define BIT_SHIFT_AGPIO_DRV_8822B 7
  561. #define BIT_MASK_AGPIO_DRV_8822B 0x3
  562. #define BIT_AGPIO_DRV_8822B(x) \
  563. (((x) & BIT_MASK_AGPIO_DRV_8822B) << BIT_SHIFT_AGPIO_DRV_8822B)
  564. #define BITS_AGPIO_DRV_8822B \
  565. (BIT_MASK_AGPIO_DRV_8822B << BIT_SHIFT_AGPIO_DRV_8822B)
  566. #define BIT_CLEAR_AGPIO_DRV_8822B(x) ((x) & (~BITS_AGPIO_DRV_8822B))
  567. #define BIT_GET_AGPIO_DRV_8822B(x) \
  568. (((x) >> BIT_SHIFT_AGPIO_DRV_8822B) & BIT_MASK_AGPIO_DRV_8822B)
  569. #define BIT_SET_AGPIO_DRV_8822B(x, v) \
  570. (BIT_CLEAR_AGPIO_DRV_8822B(x) | BIT_AGPIO_DRV_8822B(v))
  571. #define BIT_SHIFT_XTAL_CAP_XO_8822B 1
  572. #define BIT_MASK_XTAL_CAP_XO_8822B 0x3f
  573. #define BIT_XTAL_CAP_XO_8822B(x) \
  574. (((x) & BIT_MASK_XTAL_CAP_XO_8822B) << BIT_SHIFT_XTAL_CAP_XO_8822B)
  575. #define BITS_XTAL_CAP_XO_8822B \
  576. (BIT_MASK_XTAL_CAP_XO_8822B << BIT_SHIFT_XTAL_CAP_XO_8822B)
  577. #define BIT_CLEAR_XTAL_CAP_XO_8822B(x) ((x) & (~BITS_XTAL_CAP_XO_8822B))
  578. #define BIT_GET_XTAL_CAP_XO_8822B(x) \
  579. (((x) >> BIT_SHIFT_XTAL_CAP_XO_8822B) & BIT_MASK_XTAL_CAP_XO_8822B)
  580. #define BIT_SET_XTAL_CAP_XO_8822B(x, v) \
  581. (BIT_CLEAR_XTAL_CAP_XO_8822B(x) | BIT_XTAL_CAP_XO_8822B(v))
  582. #define BIT_POW_PLL_8822B BIT(0)
  583. /* 2 REG_AFE_CTRL3_8822B */
  584. #define BIT_SHIFT_PS_8822B 7
  585. #define BIT_MASK_PS_8822B 0x7
  586. #define BIT_PS_8822B(x) (((x) & BIT_MASK_PS_8822B) << BIT_SHIFT_PS_8822B)
  587. #define BITS_PS_8822B (BIT_MASK_PS_8822B << BIT_SHIFT_PS_8822B)
  588. #define BIT_CLEAR_PS_8822B(x) ((x) & (~BITS_PS_8822B))
  589. #define BIT_GET_PS_8822B(x) (((x) >> BIT_SHIFT_PS_8822B) & BIT_MASK_PS_8822B)
  590. #define BIT_SET_PS_8822B(x, v) (BIT_CLEAR_PS_8822B(x) | BIT_PS_8822B(v))
  591. #define BIT_PSEN_8822B BIT(6)
  592. #define BIT_DOGENB_8822B BIT(5)
  593. #define BIT_REG_MBIAS_8822B BIT(4)
  594. #define BIT_SHIFT_REG_R3_V4_8822B 1
  595. #define BIT_MASK_REG_R3_V4_8822B 0x7
  596. #define BIT_REG_R3_V4_8822B(x) \
  597. (((x) & BIT_MASK_REG_R3_V4_8822B) << BIT_SHIFT_REG_R3_V4_8822B)
  598. #define BITS_REG_R3_V4_8822B \
  599. (BIT_MASK_REG_R3_V4_8822B << BIT_SHIFT_REG_R3_V4_8822B)
  600. #define BIT_CLEAR_REG_R3_V4_8822B(x) ((x) & (~BITS_REG_R3_V4_8822B))
  601. #define BIT_GET_REG_R3_V4_8822B(x) \
  602. (((x) >> BIT_SHIFT_REG_R3_V4_8822B) & BIT_MASK_REG_R3_V4_8822B)
  603. #define BIT_SET_REG_R3_V4_8822B(x, v) \
  604. (BIT_CLEAR_REG_R3_V4_8822B(x) | BIT_REG_R3_V4_8822B(v))
  605. #define BIT_REG_CP_BIT0_8822B BIT(0)
  606. /* 2 REG_EFUSE_CTRL_8822B */
  607. #define BIT_EF_FLAG_8822B BIT(31)
  608. #define BIT_SHIFT_EF_PGPD_8822B 28
  609. #define BIT_MASK_EF_PGPD_8822B 0x7
  610. #define BIT_EF_PGPD_8822B(x) \
  611. (((x) & BIT_MASK_EF_PGPD_8822B) << BIT_SHIFT_EF_PGPD_8822B)
  612. #define BITS_EF_PGPD_8822B (BIT_MASK_EF_PGPD_8822B << BIT_SHIFT_EF_PGPD_8822B)
  613. #define BIT_CLEAR_EF_PGPD_8822B(x) ((x) & (~BITS_EF_PGPD_8822B))
  614. #define BIT_GET_EF_PGPD_8822B(x) \
  615. (((x) >> BIT_SHIFT_EF_PGPD_8822B) & BIT_MASK_EF_PGPD_8822B)
  616. #define BIT_SET_EF_PGPD_8822B(x, v) \
  617. (BIT_CLEAR_EF_PGPD_8822B(x) | BIT_EF_PGPD_8822B(v))
  618. #define BIT_SHIFT_EF_RDT_8822B 24
  619. #define BIT_MASK_EF_RDT_8822B 0xf
  620. #define BIT_EF_RDT_8822B(x) \
  621. (((x) & BIT_MASK_EF_RDT_8822B) << BIT_SHIFT_EF_RDT_8822B)
  622. #define BITS_EF_RDT_8822B (BIT_MASK_EF_RDT_8822B << BIT_SHIFT_EF_RDT_8822B)
  623. #define BIT_CLEAR_EF_RDT_8822B(x) ((x) & (~BITS_EF_RDT_8822B))
  624. #define BIT_GET_EF_RDT_8822B(x) \
  625. (((x) >> BIT_SHIFT_EF_RDT_8822B) & BIT_MASK_EF_RDT_8822B)
  626. #define BIT_SET_EF_RDT_8822B(x, v) \
  627. (BIT_CLEAR_EF_RDT_8822B(x) | BIT_EF_RDT_8822B(v))
  628. #define BIT_SHIFT_EF_PGTS_8822B 20
  629. #define BIT_MASK_EF_PGTS_8822B 0xf
  630. #define BIT_EF_PGTS_8822B(x) \
  631. (((x) & BIT_MASK_EF_PGTS_8822B) << BIT_SHIFT_EF_PGTS_8822B)
  632. #define BITS_EF_PGTS_8822B (BIT_MASK_EF_PGTS_8822B << BIT_SHIFT_EF_PGTS_8822B)
  633. #define BIT_CLEAR_EF_PGTS_8822B(x) ((x) & (~BITS_EF_PGTS_8822B))
  634. #define BIT_GET_EF_PGTS_8822B(x) \
  635. (((x) >> BIT_SHIFT_EF_PGTS_8822B) & BIT_MASK_EF_PGTS_8822B)
  636. #define BIT_SET_EF_PGTS_8822B(x, v) \
  637. (BIT_CLEAR_EF_PGTS_8822B(x) | BIT_EF_PGTS_8822B(v))
  638. #define BIT_EF_PDWN_8822B BIT(19)
  639. #define BIT_EF_ALDEN_8822B BIT(18)
  640. #define BIT_SHIFT_EF_ADDR_8822B 8
  641. #define BIT_MASK_EF_ADDR_8822B 0x3ff
  642. #define BIT_EF_ADDR_8822B(x) \
  643. (((x) & BIT_MASK_EF_ADDR_8822B) << BIT_SHIFT_EF_ADDR_8822B)
  644. #define BITS_EF_ADDR_8822B (BIT_MASK_EF_ADDR_8822B << BIT_SHIFT_EF_ADDR_8822B)
  645. #define BIT_CLEAR_EF_ADDR_8822B(x) ((x) & (~BITS_EF_ADDR_8822B))
  646. #define BIT_GET_EF_ADDR_8822B(x) \
  647. (((x) >> BIT_SHIFT_EF_ADDR_8822B) & BIT_MASK_EF_ADDR_8822B)
  648. #define BIT_SET_EF_ADDR_8822B(x, v) \
  649. (BIT_CLEAR_EF_ADDR_8822B(x) | BIT_EF_ADDR_8822B(v))
  650. #define BIT_SHIFT_EF_DATA_8822B 0
  651. #define BIT_MASK_EF_DATA_8822B 0xff
  652. #define BIT_EF_DATA_8822B(x) \
  653. (((x) & BIT_MASK_EF_DATA_8822B) << BIT_SHIFT_EF_DATA_8822B)
  654. #define BITS_EF_DATA_8822B (BIT_MASK_EF_DATA_8822B << BIT_SHIFT_EF_DATA_8822B)
  655. #define BIT_CLEAR_EF_DATA_8822B(x) ((x) & (~BITS_EF_DATA_8822B))
  656. #define BIT_GET_EF_DATA_8822B(x) \
  657. (((x) >> BIT_SHIFT_EF_DATA_8822B) & BIT_MASK_EF_DATA_8822B)
  658. #define BIT_SET_EF_DATA_8822B(x, v) \
  659. (BIT_CLEAR_EF_DATA_8822B(x) | BIT_EF_DATA_8822B(v))
  660. /* 2 REG_LDO_EFUSE_CTRL_8822B */
  661. #define BIT_LDOE25_EN_8822B BIT(31)
  662. #define BIT_SHIFT_LDOE25_V12ADJ_L_8822B 27
  663. #define BIT_MASK_LDOE25_V12ADJ_L_8822B 0xf
  664. #define BIT_LDOE25_V12ADJ_L_8822B(x) \
  665. (((x) & BIT_MASK_LDOE25_V12ADJ_L_8822B) \
  666. << BIT_SHIFT_LDOE25_V12ADJ_L_8822B)
  667. #define BITS_LDOE25_V12ADJ_L_8822B \
  668. (BIT_MASK_LDOE25_V12ADJ_L_8822B << BIT_SHIFT_LDOE25_V12ADJ_L_8822B)
  669. #define BIT_CLEAR_LDOE25_V12ADJ_L_8822B(x) ((x) & (~BITS_LDOE25_V12ADJ_L_8822B))
  670. #define BIT_GET_LDOE25_V12ADJ_L_8822B(x) \
  671. (((x) >> BIT_SHIFT_LDOE25_V12ADJ_L_8822B) & \
  672. BIT_MASK_LDOE25_V12ADJ_L_8822B)
  673. #define BIT_SET_LDOE25_V12ADJ_L_8822B(x, v) \
  674. (BIT_CLEAR_LDOE25_V12ADJ_L_8822B(x) | BIT_LDOE25_V12ADJ_L_8822B(v))
  675. #define BIT_EF_CRES_SEL_8822B BIT(26)
  676. #define BIT_SHIFT_EF_SCAN_START_V1_8822B 16
  677. #define BIT_MASK_EF_SCAN_START_V1_8822B 0x3ff
  678. #define BIT_EF_SCAN_START_V1_8822B(x) \
  679. (((x) & BIT_MASK_EF_SCAN_START_V1_8822B) \
  680. << BIT_SHIFT_EF_SCAN_START_V1_8822B)
  681. #define BITS_EF_SCAN_START_V1_8822B \
  682. (BIT_MASK_EF_SCAN_START_V1_8822B << BIT_SHIFT_EF_SCAN_START_V1_8822B)
  683. #define BIT_CLEAR_EF_SCAN_START_V1_8822B(x) \
  684. ((x) & (~BITS_EF_SCAN_START_V1_8822B))
  685. #define BIT_GET_EF_SCAN_START_V1_8822B(x) \
  686. (((x) >> BIT_SHIFT_EF_SCAN_START_V1_8822B) & \
  687. BIT_MASK_EF_SCAN_START_V1_8822B)
  688. #define BIT_SET_EF_SCAN_START_V1_8822B(x, v) \
  689. (BIT_CLEAR_EF_SCAN_START_V1_8822B(x) | BIT_EF_SCAN_START_V1_8822B(v))
  690. #define BIT_SHIFT_EF_SCAN_END_8822B 12
  691. #define BIT_MASK_EF_SCAN_END_8822B 0xf
  692. #define BIT_EF_SCAN_END_8822B(x) \
  693. (((x) & BIT_MASK_EF_SCAN_END_8822B) << BIT_SHIFT_EF_SCAN_END_8822B)
  694. #define BITS_EF_SCAN_END_8822B \
  695. (BIT_MASK_EF_SCAN_END_8822B << BIT_SHIFT_EF_SCAN_END_8822B)
  696. #define BIT_CLEAR_EF_SCAN_END_8822B(x) ((x) & (~BITS_EF_SCAN_END_8822B))
  697. #define BIT_GET_EF_SCAN_END_8822B(x) \
  698. (((x) >> BIT_SHIFT_EF_SCAN_END_8822B) & BIT_MASK_EF_SCAN_END_8822B)
  699. #define BIT_SET_EF_SCAN_END_8822B(x, v) \
  700. (BIT_CLEAR_EF_SCAN_END_8822B(x) | BIT_EF_SCAN_END_8822B(v))
  701. #define BIT_EF_PD_DIS_8822B BIT(11)
  702. #define BIT_SHIFT_EF_CELL_SEL_8822B 8
  703. #define BIT_MASK_EF_CELL_SEL_8822B 0x3
  704. #define BIT_EF_CELL_SEL_8822B(x) \
  705. (((x) & BIT_MASK_EF_CELL_SEL_8822B) << BIT_SHIFT_EF_CELL_SEL_8822B)
  706. #define BITS_EF_CELL_SEL_8822B \
  707. (BIT_MASK_EF_CELL_SEL_8822B << BIT_SHIFT_EF_CELL_SEL_8822B)
  708. #define BIT_CLEAR_EF_CELL_SEL_8822B(x) ((x) & (~BITS_EF_CELL_SEL_8822B))
  709. #define BIT_GET_EF_CELL_SEL_8822B(x) \
  710. (((x) >> BIT_SHIFT_EF_CELL_SEL_8822B) & BIT_MASK_EF_CELL_SEL_8822B)
  711. #define BIT_SET_EF_CELL_SEL_8822B(x, v) \
  712. (BIT_CLEAR_EF_CELL_SEL_8822B(x) | BIT_EF_CELL_SEL_8822B(v))
  713. #define BIT_EF_TRPT_8822B BIT(7)
  714. #define BIT_SHIFT_EF_TTHD_8822B 0
  715. #define BIT_MASK_EF_TTHD_8822B 0x7f
  716. #define BIT_EF_TTHD_8822B(x) \
  717. (((x) & BIT_MASK_EF_TTHD_8822B) << BIT_SHIFT_EF_TTHD_8822B)
  718. #define BITS_EF_TTHD_8822B (BIT_MASK_EF_TTHD_8822B << BIT_SHIFT_EF_TTHD_8822B)
  719. #define BIT_CLEAR_EF_TTHD_8822B(x) ((x) & (~BITS_EF_TTHD_8822B))
  720. #define BIT_GET_EF_TTHD_8822B(x) \
  721. (((x) >> BIT_SHIFT_EF_TTHD_8822B) & BIT_MASK_EF_TTHD_8822B)
  722. #define BIT_SET_EF_TTHD_8822B(x, v) \
  723. (BIT_CLEAR_EF_TTHD_8822B(x) | BIT_EF_TTHD_8822B(v))
  724. /* 2 REG_PWR_OPTION_CTRL_8822B */
  725. #define BIT_SHIFT_DBG_SEL_V1_8822B 16
  726. #define BIT_MASK_DBG_SEL_V1_8822B 0xff
  727. #define BIT_DBG_SEL_V1_8822B(x) \
  728. (((x) & BIT_MASK_DBG_SEL_V1_8822B) << BIT_SHIFT_DBG_SEL_V1_8822B)
  729. #define BITS_DBG_SEL_V1_8822B \
  730. (BIT_MASK_DBG_SEL_V1_8822B << BIT_SHIFT_DBG_SEL_V1_8822B)
  731. #define BIT_CLEAR_DBG_SEL_V1_8822B(x) ((x) & (~BITS_DBG_SEL_V1_8822B))
  732. #define BIT_GET_DBG_SEL_V1_8822B(x) \
  733. (((x) >> BIT_SHIFT_DBG_SEL_V1_8822B) & BIT_MASK_DBG_SEL_V1_8822B)
  734. #define BIT_SET_DBG_SEL_V1_8822B(x, v) \
  735. (BIT_CLEAR_DBG_SEL_V1_8822B(x) | BIT_DBG_SEL_V1_8822B(v))
  736. #define BIT_SHIFT_DBG_SEL_BYTE_8822B 14
  737. #define BIT_MASK_DBG_SEL_BYTE_8822B 0x3
  738. #define BIT_DBG_SEL_BYTE_8822B(x) \
  739. (((x) & BIT_MASK_DBG_SEL_BYTE_8822B) << BIT_SHIFT_DBG_SEL_BYTE_8822B)
  740. #define BITS_DBG_SEL_BYTE_8822B \
  741. (BIT_MASK_DBG_SEL_BYTE_8822B << BIT_SHIFT_DBG_SEL_BYTE_8822B)
  742. #define BIT_CLEAR_DBG_SEL_BYTE_8822B(x) ((x) & (~BITS_DBG_SEL_BYTE_8822B))
  743. #define BIT_GET_DBG_SEL_BYTE_8822B(x) \
  744. (((x) >> BIT_SHIFT_DBG_SEL_BYTE_8822B) & BIT_MASK_DBG_SEL_BYTE_8822B)
  745. #define BIT_SET_DBG_SEL_BYTE_8822B(x, v) \
  746. (BIT_CLEAR_DBG_SEL_BYTE_8822B(x) | BIT_DBG_SEL_BYTE_8822B(v))
  747. #define BIT_SHIFT_STD_L1_V1_8822B 12
  748. #define BIT_MASK_STD_L1_V1_8822B 0x3
  749. #define BIT_STD_L1_V1_8822B(x) \
  750. (((x) & BIT_MASK_STD_L1_V1_8822B) << BIT_SHIFT_STD_L1_V1_8822B)
  751. #define BITS_STD_L1_V1_8822B \
  752. (BIT_MASK_STD_L1_V1_8822B << BIT_SHIFT_STD_L1_V1_8822B)
  753. #define BIT_CLEAR_STD_L1_V1_8822B(x) ((x) & (~BITS_STD_L1_V1_8822B))
  754. #define BIT_GET_STD_L1_V1_8822B(x) \
  755. (((x) >> BIT_SHIFT_STD_L1_V1_8822B) & BIT_MASK_STD_L1_V1_8822B)
  756. #define BIT_SET_STD_L1_V1_8822B(x, v) \
  757. (BIT_CLEAR_STD_L1_V1_8822B(x) | BIT_STD_L1_V1_8822B(v))
  758. #define BIT_SYSON_DBG_PAD_E2_8822B BIT(11)
  759. #define BIT_SYSON_LED_PAD_E2_8822B BIT(10)
  760. #define BIT_SYSON_GPEE_PAD_E2_8822B BIT(9)
  761. #define BIT_SYSON_PCI_PAD_E2_8822B BIT(8)
  762. #define BIT_AUTO_SW_LDO_VOL_EN_8822B BIT(7)
  763. #define BIT_SHIFT_SYSON_SPS0WWV_WT_8822B 4
  764. #define BIT_MASK_SYSON_SPS0WWV_WT_8822B 0x3
  765. #define BIT_SYSON_SPS0WWV_WT_8822B(x) \
  766. (((x) & BIT_MASK_SYSON_SPS0WWV_WT_8822B) \
  767. << BIT_SHIFT_SYSON_SPS0WWV_WT_8822B)
  768. #define BITS_SYSON_SPS0WWV_WT_8822B \
  769. (BIT_MASK_SYSON_SPS0WWV_WT_8822B << BIT_SHIFT_SYSON_SPS0WWV_WT_8822B)
  770. #define BIT_CLEAR_SYSON_SPS0WWV_WT_8822B(x) \
  771. ((x) & (~BITS_SYSON_SPS0WWV_WT_8822B))
  772. #define BIT_GET_SYSON_SPS0WWV_WT_8822B(x) \
  773. (((x) >> BIT_SHIFT_SYSON_SPS0WWV_WT_8822B) & \
  774. BIT_MASK_SYSON_SPS0WWV_WT_8822B)
  775. #define BIT_SET_SYSON_SPS0WWV_WT_8822B(x, v) \
  776. (BIT_CLEAR_SYSON_SPS0WWV_WT_8822B(x) | BIT_SYSON_SPS0WWV_WT_8822B(v))
  777. #define BIT_SHIFT_SYSON_SPS0LDO_WT_8822B 2
  778. #define BIT_MASK_SYSON_SPS0LDO_WT_8822B 0x3
  779. #define BIT_SYSON_SPS0LDO_WT_8822B(x) \
  780. (((x) & BIT_MASK_SYSON_SPS0LDO_WT_8822B) \
  781. << BIT_SHIFT_SYSON_SPS0LDO_WT_8822B)
  782. #define BITS_SYSON_SPS0LDO_WT_8822B \
  783. (BIT_MASK_SYSON_SPS0LDO_WT_8822B << BIT_SHIFT_SYSON_SPS0LDO_WT_8822B)
  784. #define BIT_CLEAR_SYSON_SPS0LDO_WT_8822B(x) \
  785. ((x) & (~BITS_SYSON_SPS0LDO_WT_8822B))
  786. #define BIT_GET_SYSON_SPS0LDO_WT_8822B(x) \
  787. (((x) >> BIT_SHIFT_SYSON_SPS0LDO_WT_8822B) & \
  788. BIT_MASK_SYSON_SPS0LDO_WT_8822B)
  789. #define BIT_SET_SYSON_SPS0LDO_WT_8822B(x, v) \
  790. (BIT_CLEAR_SYSON_SPS0LDO_WT_8822B(x) | BIT_SYSON_SPS0LDO_WT_8822B(v))
  791. #define BIT_SHIFT_SYSON_RCLK_SCALE_8822B 0
  792. #define BIT_MASK_SYSON_RCLK_SCALE_8822B 0x3
  793. #define BIT_SYSON_RCLK_SCALE_8822B(x) \
  794. (((x) & BIT_MASK_SYSON_RCLK_SCALE_8822B) \
  795. << BIT_SHIFT_SYSON_RCLK_SCALE_8822B)
  796. #define BITS_SYSON_RCLK_SCALE_8822B \
  797. (BIT_MASK_SYSON_RCLK_SCALE_8822B << BIT_SHIFT_SYSON_RCLK_SCALE_8822B)
  798. #define BIT_CLEAR_SYSON_RCLK_SCALE_8822B(x) \
  799. ((x) & (~BITS_SYSON_RCLK_SCALE_8822B))
  800. #define BIT_GET_SYSON_RCLK_SCALE_8822B(x) \
  801. (((x) >> BIT_SHIFT_SYSON_RCLK_SCALE_8822B) & \
  802. BIT_MASK_SYSON_RCLK_SCALE_8822B)
  803. #define BIT_SET_SYSON_RCLK_SCALE_8822B(x, v) \
  804. (BIT_CLEAR_SYSON_RCLK_SCALE_8822B(x) | BIT_SYSON_RCLK_SCALE_8822B(v))
  805. /* 2 REG_CAL_TIMER_8822B */
  806. #define BIT_SHIFT_MATCH_CNT_8822B 8
  807. #define BIT_MASK_MATCH_CNT_8822B 0xff
  808. #define BIT_MATCH_CNT_8822B(x) \
  809. (((x) & BIT_MASK_MATCH_CNT_8822B) << BIT_SHIFT_MATCH_CNT_8822B)
  810. #define BITS_MATCH_CNT_8822B \
  811. (BIT_MASK_MATCH_CNT_8822B << BIT_SHIFT_MATCH_CNT_8822B)
  812. #define BIT_CLEAR_MATCH_CNT_8822B(x) ((x) & (~BITS_MATCH_CNT_8822B))
  813. #define BIT_GET_MATCH_CNT_8822B(x) \
  814. (((x) >> BIT_SHIFT_MATCH_CNT_8822B) & BIT_MASK_MATCH_CNT_8822B)
  815. #define BIT_SET_MATCH_CNT_8822B(x, v) \
  816. (BIT_CLEAR_MATCH_CNT_8822B(x) | BIT_MATCH_CNT_8822B(v))
  817. #define BIT_SHIFT_CAL_SCAL_8822B 0
  818. #define BIT_MASK_CAL_SCAL_8822B 0xff
  819. #define BIT_CAL_SCAL_8822B(x) \
  820. (((x) & BIT_MASK_CAL_SCAL_8822B) << BIT_SHIFT_CAL_SCAL_8822B)
  821. #define BITS_CAL_SCAL_8822B \
  822. (BIT_MASK_CAL_SCAL_8822B << BIT_SHIFT_CAL_SCAL_8822B)
  823. #define BIT_CLEAR_CAL_SCAL_8822B(x) ((x) & (~BITS_CAL_SCAL_8822B))
  824. #define BIT_GET_CAL_SCAL_8822B(x) \
  825. (((x) >> BIT_SHIFT_CAL_SCAL_8822B) & BIT_MASK_CAL_SCAL_8822B)
  826. #define BIT_SET_CAL_SCAL_8822B(x, v) \
  827. (BIT_CLEAR_CAL_SCAL_8822B(x) | BIT_CAL_SCAL_8822B(v))
  828. /* 2 REG_ACLK_MON_8822B */
  829. #define BIT_SHIFT_RCLK_MON_8822B 5
  830. #define BIT_MASK_RCLK_MON_8822B 0x7ff
  831. #define BIT_RCLK_MON_8822B(x) \
  832. (((x) & BIT_MASK_RCLK_MON_8822B) << BIT_SHIFT_RCLK_MON_8822B)
  833. #define BITS_RCLK_MON_8822B \
  834. (BIT_MASK_RCLK_MON_8822B << BIT_SHIFT_RCLK_MON_8822B)
  835. #define BIT_CLEAR_RCLK_MON_8822B(x) ((x) & (~BITS_RCLK_MON_8822B))
  836. #define BIT_GET_RCLK_MON_8822B(x) \
  837. (((x) >> BIT_SHIFT_RCLK_MON_8822B) & BIT_MASK_RCLK_MON_8822B)
  838. #define BIT_SET_RCLK_MON_8822B(x, v) \
  839. (BIT_CLEAR_RCLK_MON_8822B(x) | BIT_RCLK_MON_8822B(v))
  840. #define BIT_CAL_EN_8822B BIT(4)
  841. #define BIT_SHIFT_DPSTU_8822B 2
  842. #define BIT_MASK_DPSTU_8822B 0x3
  843. #define BIT_DPSTU_8822B(x) \
  844. (((x) & BIT_MASK_DPSTU_8822B) << BIT_SHIFT_DPSTU_8822B)
  845. #define BITS_DPSTU_8822B (BIT_MASK_DPSTU_8822B << BIT_SHIFT_DPSTU_8822B)
  846. #define BIT_CLEAR_DPSTU_8822B(x) ((x) & (~BITS_DPSTU_8822B))
  847. #define BIT_GET_DPSTU_8822B(x) \
  848. (((x) >> BIT_SHIFT_DPSTU_8822B) & BIT_MASK_DPSTU_8822B)
  849. #define BIT_SET_DPSTU_8822B(x, v) \
  850. (BIT_CLEAR_DPSTU_8822B(x) | BIT_DPSTU_8822B(v))
  851. #define BIT_SUS_16X_8822B BIT(1)
  852. /* 2 REG_GPIO_MUXCFG_8822B */
  853. #define BIT_FSPI_EN_8822B BIT(19)
  854. #define BIT_WL_RTS_EXT_32K_SEL_8822B BIT(18)
  855. #define BIT_WLGP_SPI_EN_8822B BIT(16)
  856. #define BIT_SIC_LBK_8822B BIT(15)
  857. #define BIT_ENHTP_8822B BIT(14)
  858. #define BIT_ENSIC_8822B BIT(12)
  859. #define BIT_SIC_SWRST_8822B BIT(11)
  860. #define BIT_PO_WIFI_PTA_PINS_8822B BIT(10)
  861. #define BIT_PO_BT_PTA_PINS_8822B BIT(9)
  862. #define BIT_ENUART_8822B BIT(8)
  863. #define BIT_SHIFT_BTMODE_8822B 6
  864. #define BIT_MASK_BTMODE_8822B 0x3
  865. #define BIT_BTMODE_8822B(x) \
  866. (((x) & BIT_MASK_BTMODE_8822B) << BIT_SHIFT_BTMODE_8822B)
  867. #define BITS_BTMODE_8822B (BIT_MASK_BTMODE_8822B << BIT_SHIFT_BTMODE_8822B)
  868. #define BIT_CLEAR_BTMODE_8822B(x) ((x) & (~BITS_BTMODE_8822B))
  869. #define BIT_GET_BTMODE_8822B(x) \
  870. (((x) >> BIT_SHIFT_BTMODE_8822B) & BIT_MASK_BTMODE_8822B)
  871. #define BIT_SET_BTMODE_8822B(x, v) \
  872. (BIT_CLEAR_BTMODE_8822B(x) | BIT_BTMODE_8822B(v))
  873. #define BIT_ENBT_8822B BIT(5)
  874. #define BIT_EROM_EN_8822B BIT(4)
  875. #define BIT_WLRFE_6_7_EN_8822B BIT(3)
  876. #define BIT_WLRFE_4_5_EN_8822B BIT(2)
  877. #define BIT_SHIFT_GPIOSEL_8822B 0
  878. #define BIT_MASK_GPIOSEL_8822B 0x3
  879. #define BIT_GPIOSEL_8822B(x) \
  880. (((x) & BIT_MASK_GPIOSEL_8822B) << BIT_SHIFT_GPIOSEL_8822B)
  881. #define BITS_GPIOSEL_8822B (BIT_MASK_GPIOSEL_8822B << BIT_SHIFT_GPIOSEL_8822B)
  882. #define BIT_CLEAR_GPIOSEL_8822B(x) ((x) & (~BITS_GPIOSEL_8822B))
  883. #define BIT_GET_GPIOSEL_8822B(x) \
  884. (((x) >> BIT_SHIFT_GPIOSEL_8822B) & BIT_MASK_GPIOSEL_8822B)
  885. #define BIT_SET_GPIOSEL_8822B(x, v) \
  886. (BIT_CLEAR_GPIOSEL_8822B(x) | BIT_GPIOSEL_8822B(v))
  887. /* 2 REG_GPIO_PIN_CTRL_8822B */
  888. #define BIT_SHIFT_GPIO_MOD_7_TO_0_8822B 24
  889. #define BIT_MASK_GPIO_MOD_7_TO_0_8822B 0xff
  890. #define BIT_GPIO_MOD_7_TO_0_8822B(x) \
  891. (((x) & BIT_MASK_GPIO_MOD_7_TO_0_8822B) \
  892. << BIT_SHIFT_GPIO_MOD_7_TO_0_8822B)
  893. #define BITS_GPIO_MOD_7_TO_0_8822B \
  894. (BIT_MASK_GPIO_MOD_7_TO_0_8822B << BIT_SHIFT_GPIO_MOD_7_TO_0_8822B)
  895. #define BIT_CLEAR_GPIO_MOD_7_TO_0_8822B(x) ((x) & (~BITS_GPIO_MOD_7_TO_0_8822B))
  896. #define BIT_GET_GPIO_MOD_7_TO_0_8822B(x) \
  897. (((x) >> BIT_SHIFT_GPIO_MOD_7_TO_0_8822B) & \
  898. BIT_MASK_GPIO_MOD_7_TO_0_8822B)
  899. #define BIT_SET_GPIO_MOD_7_TO_0_8822B(x, v) \
  900. (BIT_CLEAR_GPIO_MOD_7_TO_0_8822B(x) | BIT_GPIO_MOD_7_TO_0_8822B(v))
  901. #define BIT_SHIFT_GPIO_IO_SEL_7_TO_0_8822B 16
  902. #define BIT_MASK_GPIO_IO_SEL_7_TO_0_8822B 0xff
  903. #define BIT_GPIO_IO_SEL_7_TO_0_8822B(x) \
  904. (((x) & BIT_MASK_GPIO_IO_SEL_7_TO_0_8822B) \
  905. << BIT_SHIFT_GPIO_IO_SEL_7_TO_0_8822B)
  906. #define BITS_GPIO_IO_SEL_7_TO_0_8822B \
  907. (BIT_MASK_GPIO_IO_SEL_7_TO_0_8822B \
  908. << BIT_SHIFT_GPIO_IO_SEL_7_TO_0_8822B)
  909. #define BIT_CLEAR_GPIO_IO_SEL_7_TO_0_8822B(x) \
  910. ((x) & (~BITS_GPIO_IO_SEL_7_TO_0_8822B))
  911. #define BIT_GET_GPIO_IO_SEL_7_TO_0_8822B(x) \
  912. (((x) >> BIT_SHIFT_GPIO_IO_SEL_7_TO_0_8822B) & \
  913. BIT_MASK_GPIO_IO_SEL_7_TO_0_8822B)
  914. #define BIT_SET_GPIO_IO_SEL_7_TO_0_8822B(x, v) \
  915. (BIT_CLEAR_GPIO_IO_SEL_7_TO_0_8822B(x) | \
  916. BIT_GPIO_IO_SEL_7_TO_0_8822B(v))
  917. #define BIT_SHIFT_GPIO_OUT_7_TO_0_8822B 8
  918. #define BIT_MASK_GPIO_OUT_7_TO_0_8822B 0xff
  919. #define BIT_GPIO_OUT_7_TO_0_8822B(x) \
  920. (((x) & BIT_MASK_GPIO_OUT_7_TO_0_8822B) \
  921. << BIT_SHIFT_GPIO_OUT_7_TO_0_8822B)
  922. #define BITS_GPIO_OUT_7_TO_0_8822B \
  923. (BIT_MASK_GPIO_OUT_7_TO_0_8822B << BIT_SHIFT_GPIO_OUT_7_TO_0_8822B)
  924. #define BIT_CLEAR_GPIO_OUT_7_TO_0_8822B(x) ((x) & (~BITS_GPIO_OUT_7_TO_0_8822B))
  925. #define BIT_GET_GPIO_OUT_7_TO_0_8822B(x) \
  926. (((x) >> BIT_SHIFT_GPIO_OUT_7_TO_0_8822B) & \
  927. BIT_MASK_GPIO_OUT_7_TO_0_8822B)
  928. #define BIT_SET_GPIO_OUT_7_TO_0_8822B(x, v) \
  929. (BIT_CLEAR_GPIO_OUT_7_TO_0_8822B(x) | BIT_GPIO_OUT_7_TO_0_8822B(v))
  930. #define BIT_SHIFT_GPIO_IN_7_TO_0_8822B 0
  931. #define BIT_MASK_GPIO_IN_7_TO_0_8822B 0xff
  932. #define BIT_GPIO_IN_7_TO_0_8822B(x) \
  933. (((x) & BIT_MASK_GPIO_IN_7_TO_0_8822B) \
  934. << BIT_SHIFT_GPIO_IN_7_TO_0_8822B)
  935. #define BITS_GPIO_IN_7_TO_0_8822B \
  936. (BIT_MASK_GPIO_IN_7_TO_0_8822B << BIT_SHIFT_GPIO_IN_7_TO_0_8822B)
  937. #define BIT_CLEAR_GPIO_IN_7_TO_0_8822B(x) ((x) & (~BITS_GPIO_IN_7_TO_0_8822B))
  938. #define BIT_GET_GPIO_IN_7_TO_0_8822B(x) \
  939. (((x) >> BIT_SHIFT_GPIO_IN_7_TO_0_8822B) & \
  940. BIT_MASK_GPIO_IN_7_TO_0_8822B)
  941. #define BIT_SET_GPIO_IN_7_TO_0_8822B(x, v) \
  942. (BIT_CLEAR_GPIO_IN_7_TO_0_8822B(x) | BIT_GPIO_IN_7_TO_0_8822B(v))
  943. /* 2 REG_GPIO_INTM_8822B */
  944. #define BIT_SHIFT_MUXDBG_SEL_8822B 30
  945. #define BIT_MASK_MUXDBG_SEL_8822B 0x3
  946. #define BIT_MUXDBG_SEL_8822B(x) \
  947. (((x) & BIT_MASK_MUXDBG_SEL_8822B) << BIT_SHIFT_MUXDBG_SEL_8822B)
  948. #define BITS_MUXDBG_SEL_8822B \
  949. (BIT_MASK_MUXDBG_SEL_8822B << BIT_SHIFT_MUXDBG_SEL_8822B)
  950. #define BIT_CLEAR_MUXDBG_SEL_8822B(x) ((x) & (~BITS_MUXDBG_SEL_8822B))
  951. #define BIT_GET_MUXDBG_SEL_8822B(x) \
  952. (((x) >> BIT_SHIFT_MUXDBG_SEL_8822B) & BIT_MASK_MUXDBG_SEL_8822B)
  953. #define BIT_SET_MUXDBG_SEL_8822B(x, v) \
  954. (BIT_CLEAR_MUXDBG_SEL_8822B(x) | BIT_MUXDBG_SEL_8822B(v))
  955. #define BIT_EXTWOL_SEL_8822B BIT(17)
  956. #define BIT_EXTWOL_EN_8822B BIT(16)
  957. #define BIT_GPIOF_INT_MD_8822B BIT(15)
  958. #define BIT_GPIOE_INT_MD_8822B BIT(14)
  959. #define BIT_GPIOD_INT_MD_8822B BIT(13)
  960. #define BIT_GPIOF_INT_MD_8822B BIT(15)
  961. #define BIT_GPIOE_INT_MD_8822B BIT(14)
  962. #define BIT_GPIOD_INT_MD_8822B BIT(13)
  963. #define BIT_GPIOC_INT_MD_8822B BIT(12)
  964. #define BIT_GPIOB_INT_MD_8822B BIT(11)
  965. #define BIT_GPIOA_INT_MD_8822B BIT(10)
  966. #define BIT_GPIO9_INT_MD_8822B BIT(9)
  967. #define BIT_GPIO8_INT_MD_8822B BIT(8)
  968. #define BIT_GPIO7_INT_MD_8822B BIT(7)
  969. #define BIT_GPIO6_INT_MD_8822B BIT(6)
  970. #define BIT_GPIO5_INT_MD_8822B BIT(5)
  971. #define BIT_GPIO4_INT_MD_8822B BIT(4)
  972. #define BIT_GPIO3_INT_MD_8822B BIT(3)
  973. #define BIT_GPIO2_INT_MD_8822B BIT(2)
  974. #define BIT_GPIO1_INT_MD_8822B BIT(1)
  975. #define BIT_GPIO0_INT_MD_8822B BIT(0)
  976. /* 2 REG_LED_CFG_8822B */
  977. #define BIT_GPIO3_WL_CTRL_EN_8822B BIT(27)
  978. #define BIT_LNAON_SEL_EN_8822B BIT(26)
  979. #define BIT_PAPE_SEL_EN_8822B BIT(25)
  980. #define BIT_DPDT_WLBT_SEL_8822B BIT(24)
  981. #define BIT_DPDT_SEL_EN_8822B BIT(23)
  982. #define BIT_GPIO13_14_WL_CTRL_EN_8822B BIT(22)
  983. #define BIT_GPIO13_14_WL_CTRL_EN_8822B BIT(22)
  984. #define BIT_LED2DIS_8822B BIT(21)
  985. #define BIT_LED2PL_8822B BIT(20)
  986. #define BIT_LED2SV_8822B BIT(19)
  987. #define BIT_SHIFT_LED2CM_8822B 16
  988. #define BIT_MASK_LED2CM_8822B 0x7
  989. #define BIT_LED2CM_8822B(x) \
  990. (((x) & BIT_MASK_LED2CM_8822B) << BIT_SHIFT_LED2CM_8822B)
  991. #define BITS_LED2CM_8822B (BIT_MASK_LED2CM_8822B << BIT_SHIFT_LED2CM_8822B)
  992. #define BIT_CLEAR_LED2CM_8822B(x) ((x) & (~BITS_LED2CM_8822B))
  993. #define BIT_GET_LED2CM_8822B(x) \
  994. (((x) >> BIT_SHIFT_LED2CM_8822B) & BIT_MASK_LED2CM_8822B)
  995. #define BIT_SET_LED2CM_8822B(x, v) \
  996. (BIT_CLEAR_LED2CM_8822B(x) | BIT_LED2CM_8822B(v))
  997. #define BIT_LED1DIS_8822B BIT(15)
  998. #define BIT_LED1PL_8822B BIT(12)
  999. #define BIT_LED1SV_8822B BIT(11)
  1000. #define BIT_SHIFT_LED1CM_8822B 8
  1001. #define BIT_MASK_LED1CM_8822B 0x7
  1002. #define BIT_LED1CM_8822B(x) \
  1003. (((x) & BIT_MASK_LED1CM_8822B) << BIT_SHIFT_LED1CM_8822B)
  1004. #define BITS_LED1CM_8822B (BIT_MASK_LED1CM_8822B << BIT_SHIFT_LED1CM_8822B)
  1005. #define BIT_CLEAR_LED1CM_8822B(x) ((x) & (~BITS_LED1CM_8822B))
  1006. #define BIT_GET_LED1CM_8822B(x) \
  1007. (((x) >> BIT_SHIFT_LED1CM_8822B) & BIT_MASK_LED1CM_8822B)
  1008. #define BIT_SET_LED1CM_8822B(x, v) \
  1009. (BIT_CLEAR_LED1CM_8822B(x) | BIT_LED1CM_8822B(v))
  1010. #define BIT_LED0DIS_8822B BIT(7)
  1011. #define BIT_SHIFT_AFE_LDO_SWR_CHECK_8822B 5
  1012. #define BIT_MASK_AFE_LDO_SWR_CHECK_8822B 0x3
  1013. #define BIT_AFE_LDO_SWR_CHECK_8822B(x) \
  1014. (((x) & BIT_MASK_AFE_LDO_SWR_CHECK_8822B) \
  1015. << BIT_SHIFT_AFE_LDO_SWR_CHECK_8822B)
  1016. #define BITS_AFE_LDO_SWR_CHECK_8822B \
  1017. (BIT_MASK_AFE_LDO_SWR_CHECK_8822B << BIT_SHIFT_AFE_LDO_SWR_CHECK_8822B)
  1018. #define BIT_CLEAR_AFE_LDO_SWR_CHECK_8822B(x) \
  1019. ((x) & (~BITS_AFE_LDO_SWR_CHECK_8822B))
  1020. #define BIT_GET_AFE_LDO_SWR_CHECK_8822B(x) \
  1021. (((x) >> BIT_SHIFT_AFE_LDO_SWR_CHECK_8822B) & \
  1022. BIT_MASK_AFE_LDO_SWR_CHECK_8822B)
  1023. #define BIT_SET_AFE_LDO_SWR_CHECK_8822B(x, v) \
  1024. (BIT_CLEAR_AFE_LDO_SWR_CHECK_8822B(x) | BIT_AFE_LDO_SWR_CHECK_8822B(v))
  1025. #define BIT_LED0PL_8822B BIT(4)
  1026. #define BIT_LED0SV_8822B BIT(3)
  1027. #define BIT_SHIFT_LED0CM_8822B 0
  1028. #define BIT_MASK_LED0CM_8822B 0x7
  1029. #define BIT_LED0CM_8822B(x) \
  1030. (((x) & BIT_MASK_LED0CM_8822B) << BIT_SHIFT_LED0CM_8822B)
  1031. #define BITS_LED0CM_8822B (BIT_MASK_LED0CM_8822B << BIT_SHIFT_LED0CM_8822B)
  1032. #define BIT_CLEAR_LED0CM_8822B(x) ((x) & (~BITS_LED0CM_8822B))
  1033. #define BIT_GET_LED0CM_8822B(x) \
  1034. (((x) >> BIT_SHIFT_LED0CM_8822B) & BIT_MASK_LED0CM_8822B)
  1035. #define BIT_SET_LED0CM_8822B(x, v) \
  1036. (BIT_CLEAR_LED0CM_8822B(x) | BIT_LED0CM_8822B(v))
  1037. /* 2 REG_FSIMR_8822B */
  1038. #define BIT_FS_PDNINT_EN_8822B BIT(31)
  1039. #define BIT_NFC_INT_PAD_EN_8822B BIT(30)
  1040. #define BIT_FS_SPS_OCP_INT_EN_8822B BIT(29)
  1041. #define BIT_FS_PWMERR_INT_EN_8822B BIT(28)
  1042. #define BIT_FS_GPIOF_INT_EN_8822B BIT(27)
  1043. #define BIT_FS_GPIOE_INT_EN_8822B BIT(26)
  1044. #define BIT_FS_GPIOD_INT_EN_8822B BIT(25)
  1045. #define BIT_FS_GPIOC_INT_EN_8822B BIT(24)
  1046. #define BIT_FS_GPIOB_INT_EN_8822B BIT(23)
  1047. #define BIT_FS_GPIOA_INT_EN_8822B BIT(22)
  1048. #define BIT_FS_GPIO9_INT_EN_8822B BIT(21)
  1049. #define BIT_FS_GPIO8_INT_EN_8822B BIT(20)
  1050. #define BIT_FS_GPIO7_INT_EN_8822B BIT(19)
  1051. #define BIT_FS_GPIO6_INT_EN_8822B BIT(18)
  1052. #define BIT_FS_GPIO5_INT_EN_8822B BIT(17)
  1053. #define BIT_FS_GPIO4_INT_EN_8822B BIT(16)
  1054. #define BIT_FS_GPIO3_INT_EN_8822B BIT(15)
  1055. #define BIT_FS_GPIO2_INT_EN_8822B BIT(14)
  1056. #define BIT_FS_GPIO1_INT_EN_8822B BIT(13)
  1057. #define BIT_FS_GPIO0_INT_EN_8822B BIT(12)
  1058. #define BIT_FS_HCI_SUS_EN_8822B BIT(11)
  1059. #define BIT_FS_HCI_RES_EN_8822B BIT(10)
  1060. #define BIT_FS_HCI_RESET_EN_8822B BIT(9)
  1061. #define BIT_FS_BTON_STS_UPDATE_MSK_EN_8822B BIT(7)
  1062. #define BIT_ACT2RECOVERY_INT_EN_V1_8822B BIT(6)
  1063. #define BIT_GEN1GEN2_SWITCH_8822B BIT(5)
  1064. #define BIT_HCI_TXDMA_REQ_HIMR_8822B BIT(4)
  1065. #define BIT_FS_32K_LEAVE_SETTING_MAK_8822B BIT(3)
  1066. #define BIT_FS_32K_ENTER_SETTING_MAK_8822B BIT(2)
  1067. #define BIT_FS_USB_LPMRSM_MSK_8822B BIT(1)
  1068. #define BIT_FS_USB_LPMINT_MSK_8822B BIT(0)
  1069. /* 2 REG_FSISR_8822B */
  1070. #define BIT_FS_PDNINT_8822B BIT(31)
  1071. #define BIT_FS_SPS_OCP_INT_8822B BIT(29)
  1072. #define BIT_FS_PWMERR_INT_8822B BIT(28)
  1073. #define BIT_FS_GPIOF_INT_8822B BIT(27)
  1074. #define BIT_FS_GPIOE_INT_8822B BIT(26)
  1075. #define BIT_FS_GPIOD_INT_8822B BIT(25)
  1076. #define BIT_FS_GPIOC_INT_8822B BIT(24)
  1077. #define BIT_FS_GPIOB_INT_8822B BIT(23)
  1078. #define BIT_FS_GPIOA_INT_8822B BIT(22)
  1079. #define BIT_FS_GPIO9_INT_8822B BIT(21)
  1080. #define BIT_FS_GPIO8_INT_8822B BIT(20)
  1081. #define BIT_FS_GPIO7_INT_8822B BIT(19)
  1082. #define BIT_FS_GPIO6_INT_8822B BIT(18)
  1083. #define BIT_FS_GPIO5_INT_8822B BIT(17)
  1084. #define BIT_FS_GPIO4_INT_8822B BIT(16)
  1085. #define BIT_FS_GPIO3_INT_8822B BIT(15)
  1086. #define BIT_FS_GPIO2_INT_8822B BIT(14)
  1087. #define BIT_FS_GPIO1_INT_8822B BIT(13)
  1088. #define BIT_FS_GPIO0_INT_8822B BIT(12)
  1089. #define BIT_FS_HCI_SUS_INT_8822B BIT(11)
  1090. #define BIT_FS_HCI_RES_INT_8822B BIT(10)
  1091. #define BIT_FS_HCI_RESET_INT_8822B BIT(9)
  1092. #define BIT_ACT2RECOVERY_8822B BIT(6)
  1093. #define BIT_GEN1GEN2_SWITCH_8822B BIT(5)
  1094. #define BIT_HCI_TXDMA_REQ_HISR_8822B BIT(4)
  1095. #define BIT_FS_32K_LEAVE_SETTING_INT_8822B BIT(3)
  1096. #define BIT_FS_32K_ENTER_SETTING_INT_8822B BIT(2)
  1097. #define BIT_FS_USB_LPMRSM_INT_8822B BIT(1)
  1098. #define BIT_FS_USB_LPMINT_INT_8822B BIT(0)
  1099. /* 2 REG_HSIMR_8822B */
  1100. #define BIT_GPIOF_INT_EN_8822B BIT(31)
  1101. #define BIT_GPIOE_INT_EN_8822B BIT(30)
  1102. #define BIT_GPIOD_INT_EN_8822B BIT(29)
  1103. #define BIT_GPIOC_INT_EN_8822B BIT(28)
  1104. #define BIT_GPIOB_INT_EN_8822B BIT(27)
  1105. #define BIT_GPIOA_INT_EN_8822B BIT(26)
  1106. #define BIT_GPIO9_INT_EN_8822B BIT(25)
  1107. #define BIT_GPIO8_INT_EN_8822B BIT(24)
  1108. #define BIT_GPIO7_INT_EN_8822B BIT(23)
  1109. #define BIT_GPIO6_INT_EN_8822B BIT(22)
  1110. #define BIT_GPIO5_INT_EN_8822B BIT(21)
  1111. #define BIT_GPIO4_INT_EN_8822B BIT(20)
  1112. #define BIT_GPIO3_INT_EN_8822B BIT(19)
  1113. #define BIT_GPIO2_INT_EN_V1_8822B BIT(18)
  1114. #define BIT_GPIO1_INT_EN_8822B BIT(17)
  1115. #define BIT_GPIO0_INT_EN_8822B BIT(16)
  1116. #define BIT_PDNINT_EN_8822B BIT(7)
  1117. #define BIT_RON_INT_EN_8822B BIT(6)
  1118. #define BIT_SPS_OCP_INT_EN_8822B BIT(5)
  1119. #define BIT_GPIO15_0_INT_EN_8822B BIT(0)
  1120. /* 2 REG_HSISR_8822B */
  1121. #define BIT_GPIOF_INT_8822B BIT(31)
  1122. #define BIT_GPIOE_INT_8822B BIT(30)
  1123. #define BIT_GPIOD_INT_8822B BIT(29)
  1124. #define BIT_GPIOC_INT_8822B BIT(28)
  1125. #define BIT_GPIOB_INT_8822B BIT(27)
  1126. #define BIT_GPIOA_INT_8822B BIT(26)
  1127. #define BIT_GPIO9_INT_8822B BIT(25)
  1128. #define BIT_GPIO8_INT_8822B BIT(24)
  1129. #define BIT_GPIO7_INT_8822B BIT(23)
  1130. #define BIT_GPIO6_INT_8822B BIT(22)
  1131. #define BIT_GPIO5_INT_8822B BIT(21)
  1132. #define BIT_GPIO4_INT_8822B BIT(20)
  1133. #define BIT_GPIO3_INT_8822B BIT(19)
  1134. #define BIT_GPIO2_INT_V1_8822B BIT(18)
  1135. #define BIT_GPIO1_INT_8822B BIT(17)
  1136. #define BIT_GPIO0_INT_8822B BIT(16)
  1137. #define BIT_PDNINT_8822B BIT(7)
  1138. #define BIT_RON_INT_8822B BIT(6)
  1139. #define BIT_SPS_OCP_INT_8822B BIT(5)
  1140. #define BIT_GPIO15_0_INT_8822B BIT(0)
  1141. /* 2 REG_GPIO_EXT_CTRL_8822B */
  1142. #define BIT_SHIFT_GPIO_MOD_15_TO_8_8822B 24
  1143. #define BIT_MASK_GPIO_MOD_15_TO_8_8822B 0xff
  1144. #define BIT_GPIO_MOD_15_TO_8_8822B(x) \
  1145. (((x) & BIT_MASK_GPIO_MOD_15_TO_8_8822B) \
  1146. << BIT_SHIFT_GPIO_MOD_15_TO_8_8822B)
  1147. #define BITS_GPIO_MOD_15_TO_8_8822B \
  1148. (BIT_MASK_GPIO_MOD_15_TO_8_8822B << BIT_SHIFT_GPIO_MOD_15_TO_8_8822B)
  1149. #define BIT_CLEAR_GPIO_MOD_15_TO_8_8822B(x) \
  1150. ((x) & (~BITS_GPIO_MOD_15_TO_8_8822B))
  1151. #define BIT_GET_GPIO_MOD_15_TO_8_8822B(x) \
  1152. (((x) >> BIT_SHIFT_GPIO_MOD_15_TO_8_8822B) & \
  1153. BIT_MASK_GPIO_MOD_15_TO_8_8822B)
  1154. #define BIT_SET_GPIO_MOD_15_TO_8_8822B(x, v) \
  1155. (BIT_CLEAR_GPIO_MOD_15_TO_8_8822B(x) | BIT_GPIO_MOD_15_TO_8_8822B(v))
  1156. #define BIT_SHIFT_GPIO_IO_SEL_15_TO_8_8822B 16
  1157. #define BIT_MASK_GPIO_IO_SEL_15_TO_8_8822B 0xff
  1158. #define BIT_GPIO_IO_SEL_15_TO_8_8822B(x) \
  1159. (((x) & BIT_MASK_GPIO_IO_SEL_15_TO_8_8822B) \
  1160. << BIT_SHIFT_GPIO_IO_SEL_15_TO_8_8822B)
  1161. #define BITS_GPIO_IO_SEL_15_TO_8_8822B \
  1162. (BIT_MASK_GPIO_IO_SEL_15_TO_8_8822B \
  1163. << BIT_SHIFT_GPIO_IO_SEL_15_TO_8_8822B)
  1164. #define BIT_CLEAR_GPIO_IO_SEL_15_TO_8_8822B(x) \
  1165. ((x) & (~BITS_GPIO_IO_SEL_15_TO_8_8822B))
  1166. #define BIT_GET_GPIO_IO_SEL_15_TO_8_8822B(x) \
  1167. (((x) >> BIT_SHIFT_GPIO_IO_SEL_15_TO_8_8822B) & \
  1168. BIT_MASK_GPIO_IO_SEL_15_TO_8_8822B)
  1169. #define BIT_SET_GPIO_IO_SEL_15_TO_8_8822B(x, v) \
  1170. (BIT_CLEAR_GPIO_IO_SEL_15_TO_8_8822B(x) | \
  1171. BIT_GPIO_IO_SEL_15_TO_8_8822B(v))
  1172. #define BIT_SHIFT_GPIO_OUT_15_TO_8_8822B 8
  1173. #define BIT_MASK_GPIO_OUT_15_TO_8_8822B 0xff
  1174. #define BIT_GPIO_OUT_15_TO_8_8822B(x) \
  1175. (((x) & BIT_MASK_GPIO_OUT_15_TO_8_8822B) \
  1176. << BIT_SHIFT_GPIO_OUT_15_TO_8_8822B)
  1177. #define BITS_GPIO_OUT_15_TO_8_8822B \
  1178. (BIT_MASK_GPIO_OUT_15_TO_8_8822B << BIT_SHIFT_GPIO_OUT_15_TO_8_8822B)
  1179. #define BIT_CLEAR_GPIO_OUT_15_TO_8_8822B(x) \
  1180. ((x) & (~BITS_GPIO_OUT_15_TO_8_8822B))
  1181. #define BIT_GET_GPIO_OUT_15_TO_8_8822B(x) \
  1182. (((x) >> BIT_SHIFT_GPIO_OUT_15_TO_8_8822B) & \
  1183. BIT_MASK_GPIO_OUT_15_TO_8_8822B)
  1184. #define BIT_SET_GPIO_OUT_15_TO_8_8822B(x, v) \
  1185. (BIT_CLEAR_GPIO_OUT_15_TO_8_8822B(x) | BIT_GPIO_OUT_15_TO_8_8822B(v))
  1186. #define BIT_SHIFT_GPIO_IN_15_TO_8_8822B 0
  1187. #define BIT_MASK_GPIO_IN_15_TO_8_8822B 0xff
  1188. #define BIT_GPIO_IN_15_TO_8_8822B(x) \
  1189. (((x) & BIT_MASK_GPIO_IN_15_TO_8_8822B) \
  1190. << BIT_SHIFT_GPIO_IN_15_TO_8_8822B)
  1191. #define BITS_GPIO_IN_15_TO_8_8822B \
  1192. (BIT_MASK_GPIO_IN_15_TO_8_8822B << BIT_SHIFT_GPIO_IN_15_TO_8_8822B)
  1193. #define BIT_CLEAR_GPIO_IN_15_TO_8_8822B(x) ((x) & (~BITS_GPIO_IN_15_TO_8_8822B))
  1194. #define BIT_GET_GPIO_IN_15_TO_8_8822B(x) \
  1195. (((x) >> BIT_SHIFT_GPIO_IN_15_TO_8_8822B) & \
  1196. BIT_MASK_GPIO_IN_15_TO_8_8822B)
  1197. #define BIT_SET_GPIO_IN_15_TO_8_8822B(x, v) \
  1198. (BIT_CLEAR_GPIO_IN_15_TO_8_8822B(x) | BIT_GPIO_IN_15_TO_8_8822B(v))
  1199. /* 2 REG_PAD_CTRL1_8822B */
  1200. #define BIT_PAPE_WLBT_SEL_8822B BIT(29)
  1201. #define BIT_LNAON_WLBT_SEL_8822B BIT(28)
  1202. #define BIT_BTGP_GPG3_FEN_8822B BIT(26)
  1203. #define BIT_BTGP_GPG2_FEN_8822B BIT(25)
  1204. #define BIT_BTGP_JTAG_EN_8822B BIT(24)
  1205. #define BIT_XTAL_CLK_EXTARNAL_EN_8822B BIT(23)
  1206. #define BIT_BTGP_UART0_EN_8822B BIT(22)
  1207. #define BIT_BTGP_UART1_EN_8822B BIT(21)
  1208. #define BIT_BTGP_SPI_EN_8822B BIT(20)
  1209. #define BIT_BTGP_GPIO_E2_8822B BIT(19)
  1210. #define BIT_BTGP_GPIO_EN_8822B BIT(18)
  1211. #define BIT_SHIFT_BTGP_GPIO_SL_8822B 16
  1212. #define BIT_MASK_BTGP_GPIO_SL_8822B 0x3
  1213. #define BIT_BTGP_GPIO_SL_8822B(x) \
  1214. (((x) & BIT_MASK_BTGP_GPIO_SL_8822B) << BIT_SHIFT_BTGP_GPIO_SL_8822B)
  1215. #define BITS_BTGP_GPIO_SL_8822B \
  1216. (BIT_MASK_BTGP_GPIO_SL_8822B << BIT_SHIFT_BTGP_GPIO_SL_8822B)
  1217. #define BIT_CLEAR_BTGP_GPIO_SL_8822B(x) ((x) & (~BITS_BTGP_GPIO_SL_8822B))
  1218. #define BIT_GET_BTGP_GPIO_SL_8822B(x) \
  1219. (((x) >> BIT_SHIFT_BTGP_GPIO_SL_8822B) & BIT_MASK_BTGP_GPIO_SL_8822B)
  1220. #define BIT_SET_BTGP_GPIO_SL_8822B(x, v) \
  1221. (BIT_CLEAR_BTGP_GPIO_SL_8822B(x) | BIT_BTGP_GPIO_SL_8822B(v))
  1222. #define BIT_PAD_SDIO_SR_8822B BIT(14)
  1223. #define BIT_GPIO14_OUTPUT_PL_8822B BIT(13)
  1224. #define BIT_HOST_WAKE_PAD_PULL_EN_8822B BIT(12)
  1225. #define BIT_HOST_WAKE_PAD_SL_8822B BIT(11)
  1226. #define BIT_PAD_LNAON_SR_8822B BIT(10)
  1227. #define BIT_PAD_LNAON_E2_8822B BIT(9)
  1228. #define BIT_SW_LNAON_G_SEL_DATA_8822B BIT(8)
  1229. #define BIT_SW_LNAON_A_SEL_DATA_8822B BIT(7)
  1230. #define BIT_PAD_PAPE_SR_8822B BIT(6)
  1231. #define BIT_PAD_PAPE_E2_8822B BIT(5)
  1232. #define BIT_SW_PAPE_G_SEL_DATA_8822B BIT(4)
  1233. #define BIT_SW_PAPE_A_SEL_DATA_8822B BIT(3)
  1234. #define BIT_PAD_DPDT_SR_8822B BIT(2)
  1235. #define BIT_PAD_DPDT_PAD_E2_8822B BIT(1)
  1236. #define BIT_SW_DPDT_SEL_DATA_8822B BIT(0)
  1237. /* 2 REG_WL_BT_PWR_CTRL_8822B */
  1238. #define BIT_ISO_BD2PP_8822B BIT(31)
  1239. #define BIT_LDOV12B_EN_8822B BIT(30)
  1240. #define BIT_CKEN_BTGPS_8822B BIT(29)
  1241. #define BIT_FEN_BTGPS_8822B BIT(28)
  1242. #define BIT_BTCPU_BOOTSEL_8822B BIT(27)
  1243. #define BIT_SPI_SPEEDUP_8822B BIT(26)
  1244. #define BIT_DEVWAKE_PAD_TYPE_SEL_8822B BIT(24)
  1245. #define BIT_CLKREQ_PAD_TYPE_SEL_8822B BIT(23)
  1246. #define BIT_ISO_BTPON2PP_8822B BIT(22)
  1247. #define BIT_BT_HWROF_EN_8822B BIT(19)
  1248. #define BIT_BT_FUNC_EN_8822B BIT(18)
  1249. #define BIT_BT_HWPDN_SL_8822B BIT(17)
  1250. #define BIT_BT_DISN_EN_8822B BIT(16)
  1251. #define BIT_BT_PDN_PULL_EN_8822B BIT(15)
  1252. #define BIT_WL_PDN_PULL_EN_8822B BIT(14)
  1253. #define BIT_EXTERNAL_REQUEST_PL_8822B BIT(13)
  1254. #define BIT_GPIO0_2_3_PULL_LOW_EN_8822B BIT(12)
  1255. #define BIT_ISO_BA2PP_8822B BIT(11)
  1256. #define BIT_BT_AFE_LDO_EN_8822B BIT(10)
  1257. #define BIT_BT_AFE_PLL_EN_8822B BIT(9)
  1258. #define BIT_BT_DIG_CLK_EN_8822B BIT(8)
  1259. #define BIT_WL_DRV_EXIST_IDX_8822B BIT(5)
  1260. #define BIT_DOP_EHPAD_8822B BIT(4)
  1261. #define BIT_WL_HWROF_EN_8822B BIT(3)
  1262. #define BIT_WL_FUNC_EN_8822B BIT(2)
  1263. #define BIT_WL_HWPDN_SL_8822B BIT(1)
  1264. #define BIT_WL_HWPDN_EN_8822B BIT(0)
  1265. /* 2 REG_SDM_DEBUG_8822B */
  1266. #define BIT_SHIFT_WLCLK_PHASE_8822B 0
  1267. #define BIT_MASK_WLCLK_PHASE_8822B 0x1f
  1268. #define BIT_WLCLK_PHASE_8822B(x) \
  1269. (((x) & BIT_MASK_WLCLK_PHASE_8822B) << BIT_SHIFT_WLCLK_PHASE_8822B)
  1270. #define BITS_WLCLK_PHASE_8822B \
  1271. (BIT_MASK_WLCLK_PHASE_8822B << BIT_SHIFT_WLCLK_PHASE_8822B)
  1272. #define BIT_CLEAR_WLCLK_PHASE_8822B(x) ((x) & (~BITS_WLCLK_PHASE_8822B))
  1273. #define BIT_GET_WLCLK_PHASE_8822B(x) \
  1274. (((x) >> BIT_SHIFT_WLCLK_PHASE_8822B) & BIT_MASK_WLCLK_PHASE_8822B)
  1275. #define BIT_SET_WLCLK_PHASE_8822B(x, v) \
  1276. (BIT_CLEAR_WLCLK_PHASE_8822B(x) | BIT_WLCLK_PHASE_8822B(v))
  1277. /* 2 REG_SYS_SDIO_CTRL_8822B */
  1278. #define BIT_DBG_GNT_WL_BT_8822B BIT(27)
  1279. #define BIT_LTE_MUX_CTRL_PATH_8822B BIT(26)
  1280. #define BIT_LTE_COEX_UART_8822B BIT(25)
  1281. #define BIT_3W_LTE_WL_GPIO_8822B BIT(24)
  1282. #define BIT_SDIO_INT_POLARITY_8822B BIT(19)
  1283. #define BIT_SDIO_INT_8822B BIT(18)
  1284. #define BIT_SDIO_OFF_EN_8822B BIT(17)
  1285. #define BIT_SDIO_ON_EN_8822B BIT(16)
  1286. #define BIT_PCIE_WAIT_TIMEOUT_EVENT_8822B BIT(10)
  1287. #define BIT_PCIE_WAIT_TIME_8822B BIT(9)
  1288. #define BIT_MPCIE_REFCLK_XTAL_SEL_8822B BIT(8)
  1289. #define BIT_SHIFT_SI_AUTHORIZATION_8822B 0
  1290. #define BIT_MASK_SI_AUTHORIZATION_8822B 0xff
  1291. #define BIT_SI_AUTHORIZATION_8822B(x) \
  1292. (((x) & BIT_MASK_SI_AUTHORIZATION_8822B) \
  1293. << BIT_SHIFT_SI_AUTHORIZATION_8822B)
  1294. #define BITS_SI_AUTHORIZATION_8822B \
  1295. (BIT_MASK_SI_AUTHORIZATION_8822B << BIT_SHIFT_SI_AUTHORIZATION_8822B)
  1296. #define BIT_CLEAR_SI_AUTHORIZATION_8822B(x) \
  1297. ((x) & (~BITS_SI_AUTHORIZATION_8822B))
  1298. #define BIT_GET_SI_AUTHORIZATION_8822B(x) \
  1299. (((x) >> BIT_SHIFT_SI_AUTHORIZATION_8822B) & \
  1300. BIT_MASK_SI_AUTHORIZATION_8822B)
  1301. #define BIT_SET_SI_AUTHORIZATION_8822B(x, v) \
  1302. (BIT_CLEAR_SI_AUTHORIZATION_8822B(x) | BIT_SI_AUTHORIZATION_8822B(v))
  1303. /* 2 REG_HCI_OPT_CTRL_8822B */
  1304. #define BIT_SHIFT_TSFT_SEL_8822B 29
  1305. #define BIT_MASK_TSFT_SEL_8822B 0x7
  1306. #define BIT_TSFT_SEL_8822B(x) \
  1307. (((x) & BIT_MASK_TSFT_SEL_8822B) << BIT_SHIFT_TSFT_SEL_8822B)
  1308. #define BITS_TSFT_SEL_8822B \
  1309. (BIT_MASK_TSFT_SEL_8822B << BIT_SHIFT_TSFT_SEL_8822B)
  1310. #define BIT_CLEAR_TSFT_SEL_8822B(x) ((x) & (~BITS_TSFT_SEL_8822B))
  1311. #define BIT_GET_TSFT_SEL_8822B(x) \
  1312. (((x) >> BIT_SHIFT_TSFT_SEL_8822B) & BIT_MASK_TSFT_SEL_8822B)
  1313. #define BIT_SET_TSFT_SEL_8822B(x, v) \
  1314. (BIT_CLEAR_TSFT_SEL_8822B(x) | BIT_TSFT_SEL_8822B(v))
  1315. #define BIT_USB_HOST_PWR_OFF_EN_8822B BIT(12)
  1316. #define BIT_SYM_LPS_BLOCK_EN_8822B BIT(11)
  1317. #define BIT_USB_LPM_ACT_EN_8822B BIT(10)
  1318. #define BIT_USB_LPM_NY_8822B BIT(9)
  1319. #define BIT_USB_SUS_DIS_8822B BIT(8)
  1320. #define BIT_SHIFT_SDIO_PAD_E_8822B 5
  1321. #define BIT_MASK_SDIO_PAD_E_8822B 0x7
  1322. #define BIT_SDIO_PAD_E_8822B(x) \
  1323. (((x) & BIT_MASK_SDIO_PAD_E_8822B) << BIT_SHIFT_SDIO_PAD_E_8822B)
  1324. #define BITS_SDIO_PAD_E_8822B \
  1325. (BIT_MASK_SDIO_PAD_E_8822B << BIT_SHIFT_SDIO_PAD_E_8822B)
  1326. #define BIT_CLEAR_SDIO_PAD_E_8822B(x) ((x) & (~BITS_SDIO_PAD_E_8822B))
  1327. #define BIT_GET_SDIO_PAD_E_8822B(x) \
  1328. (((x) >> BIT_SHIFT_SDIO_PAD_E_8822B) & BIT_MASK_SDIO_PAD_E_8822B)
  1329. #define BIT_SET_SDIO_PAD_E_8822B(x, v) \
  1330. (BIT_CLEAR_SDIO_PAD_E_8822B(x) | BIT_SDIO_PAD_E_8822B(v))
  1331. #define BIT_USB_LPPLL_EN_8822B BIT(4)
  1332. #define BIT_ROP_SW15_8822B BIT(2)
  1333. #define BIT_PCI_CKRDY_OPT_8822B BIT(1)
  1334. #define BIT_PCI_VAUX_EN_8822B BIT(0)
  1335. /* 2 REG_AFE_CTRL4_8822B */
  1336. /* 2 REG_LDO_SWR_CTRL_8822B */
  1337. #define BIT_ZCD_HW_AUTO_EN_8822B BIT(27)
  1338. #define BIT_ZCD_REGSEL_8822B BIT(26)
  1339. #define BIT_SHIFT_AUTO_ZCD_IN_CODE_8822B 21
  1340. #define BIT_MASK_AUTO_ZCD_IN_CODE_8822B 0x1f
  1341. #define BIT_AUTO_ZCD_IN_CODE_8822B(x) \
  1342. (((x) & BIT_MASK_AUTO_ZCD_IN_CODE_8822B) \
  1343. << BIT_SHIFT_AUTO_ZCD_IN_CODE_8822B)
  1344. #define BITS_AUTO_ZCD_IN_CODE_8822B \
  1345. (BIT_MASK_AUTO_ZCD_IN_CODE_8822B << BIT_SHIFT_AUTO_ZCD_IN_CODE_8822B)
  1346. #define BIT_CLEAR_AUTO_ZCD_IN_CODE_8822B(x) \
  1347. ((x) & (~BITS_AUTO_ZCD_IN_CODE_8822B))
  1348. #define BIT_GET_AUTO_ZCD_IN_CODE_8822B(x) \
  1349. (((x) >> BIT_SHIFT_AUTO_ZCD_IN_CODE_8822B) & \
  1350. BIT_MASK_AUTO_ZCD_IN_CODE_8822B)
  1351. #define BIT_SET_AUTO_ZCD_IN_CODE_8822B(x, v) \
  1352. (BIT_CLEAR_AUTO_ZCD_IN_CODE_8822B(x) | BIT_AUTO_ZCD_IN_CODE_8822B(v))
  1353. #define BIT_SHIFT_ZCD_CODE_IN_L_8822B 16
  1354. #define BIT_MASK_ZCD_CODE_IN_L_8822B 0x1f
  1355. #define BIT_ZCD_CODE_IN_L_8822B(x) \
  1356. (((x) & BIT_MASK_ZCD_CODE_IN_L_8822B) << BIT_SHIFT_ZCD_CODE_IN_L_8822B)
  1357. #define BITS_ZCD_CODE_IN_L_8822B \
  1358. (BIT_MASK_ZCD_CODE_IN_L_8822B << BIT_SHIFT_ZCD_CODE_IN_L_8822B)
  1359. #define BIT_CLEAR_ZCD_CODE_IN_L_8822B(x) ((x) & (~BITS_ZCD_CODE_IN_L_8822B))
  1360. #define BIT_GET_ZCD_CODE_IN_L_8822B(x) \
  1361. (((x) >> BIT_SHIFT_ZCD_CODE_IN_L_8822B) & BIT_MASK_ZCD_CODE_IN_L_8822B)
  1362. #define BIT_SET_ZCD_CODE_IN_L_8822B(x, v) \
  1363. (BIT_CLEAR_ZCD_CODE_IN_L_8822B(x) | BIT_ZCD_CODE_IN_L_8822B(v))
  1364. #define BIT_SHIFT_LDO_HV5_DUMMY_8822B 14
  1365. #define BIT_MASK_LDO_HV5_DUMMY_8822B 0x3
  1366. #define BIT_LDO_HV5_DUMMY_8822B(x) \
  1367. (((x) & BIT_MASK_LDO_HV5_DUMMY_8822B) << BIT_SHIFT_LDO_HV5_DUMMY_8822B)
  1368. #define BITS_LDO_HV5_DUMMY_8822B \
  1369. (BIT_MASK_LDO_HV5_DUMMY_8822B << BIT_SHIFT_LDO_HV5_DUMMY_8822B)
  1370. #define BIT_CLEAR_LDO_HV5_DUMMY_8822B(x) ((x) & (~BITS_LDO_HV5_DUMMY_8822B))
  1371. #define BIT_GET_LDO_HV5_DUMMY_8822B(x) \
  1372. (((x) >> BIT_SHIFT_LDO_HV5_DUMMY_8822B) & BIT_MASK_LDO_HV5_DUMMY_8822B)
  1373. #define BIT_SET_LDO_HV5_DUMMY_8822B(x, v) \
  1374. (BIT_CLEAR_LDO_HV5_DUMMY_8822B(x) | BIT_LDO_HV5_DUMMY_8822B(v))
  1375. #define BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1_8822B 12
  1376. #define BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1_8822B 0x3
  1377. #define BIT_REG_VTUNE33_BIT0_TO_BIT1_8822B(x) \
  1378. (((x) & BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1_8822B) \
  1379. << BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1_8822B)
  1380. #define BITS_REG_VTUNE33_BIT0_TO_BIT1_8822B \
  1381. (BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1_8822B \
  1382. << BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1_8822B)
  1383. #define BIT_CLEAR_REG_VTUNE33_BIT0_TO_BIT1_8822B(x) \
  1384. ((x) & (~BITS_REG_VTUNE33_BIT0_TO_BIT1_8822B))
  1385. #define BIT_GET_REG_VTUNE33_BIT0_TO_BIT1_8822B(x) \
  1386. (((x) >> BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1_8822B) & \
  1387. BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1_8822B)
  1388. #define BIT_SET_REG_VTUNE33_BIT0_TO_BIT1_8822B(x, v) \
  1389. (BIT_CLEAR_REG_VTUNE33_BIT0_TO_BIT1_8822B(x) | \
  1390. BIT_REG_VTUNE33_BIT0_TO_BIT1_8822B(v))
  1391. #define BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1_8822B 10
  1392. #define BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1_8822B 0x3
  1393. #define BIT_REG_STANDBY33_BIT0_TO_BIT1_8822B(x) \
  1394. (((x) & BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1_8822B) \
  1395. << BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1_8822B)
  1396. #define BITS_REG_STANDBY33_BIT0_TO_BIT1_8822B \
  1397. (BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1_8822B \
  1398. << BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1_8822B)
  1399. #define BIT_CLEAR_REG_STANDBY33_BIT0_TO_BIT1_8822B(x) \
  1400. ((x) & (~BITS_REG_STANDBY33_BIT0_TO_BIT1_8822B))
  1401. #define BIT_GET_REG_STANDBY33_BIT0_TO_BIT1_8822B(x) \
  1402. (((x) >> BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1_8822B) & \
  1403. BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1_8822B)
  1404. #define BIT_SET_REG_STANDBY33_BIT0_TO_BIT1_8822B(x, v) \
  1405. (BIT_CLEAR_REG_STANDBY33_BIT0_TO_BIT1_8822B(x) | \
  1406. BIT_REG_STANDBY33_BIT0_TO_BIT1_8822B(v))
  1407. #define BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1_8822B 8
  1408. #define BIT_MASK_REG_LOAD33_BIT0_TO_BIT1_8822B 0x3
  1409. #define BIT_REG_LOAD33_BIT0_TO_BIT1_8822B(x) \
  1410. (((x) & BIT_MASK_REG_LOAD33_BIT0_TO_BIT1_8822B) \
  1411. << BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1_8822B)
  1412. #define BITS_REG_LOAD33_BIT0_TO_BIT1_8822B \
  1413. (BIT_MASK_REG_LOAD33_BIT0_TO_BIT1_8822B \
  1414. << BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1_8822B)
  1415. #define BIT_CLEAR_REG_LOAD33_BIT0_TO_BIT1_8822B(x) \
  1416. ((x) & (~BITS_REG_LOAD33_BIT0_TO_BIT1_8822B))
  1417. #define BIT_GET_REG_LOAD33_BIT0_TO_BIT1_8822B(x) \
  1418. (((x) >> BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1_8822B) & \
  1419. BIT_MASK_REG_LOAD33_BIT0_TO_BIT1_8822B)
  1420. #define BIT_SET_REG_LOAD33_BIT0_TO_BIT1_8822B(x, v) \
  1421. (BIT_CLEAR_REG_LOAD33_BIT0_TO_BIT1_8822B(x) | \
  1422. BIT_REG_LOAD33_BIT0_TO_BIT1_8822B(v))
  1423. #define BIT_REG_BYPASS_L_8822B BIT(7)
  1424. #define BIT_REG_LDOF_L_8822B BIT(6)
  1425. #define BIT_REG_TYPE_L_V1_8822B BIT(5)
  1426. #define BIT_ARENB_L_8822B BIT(3)
  1427. #define BIT_SHIFT_CFC_L_8822B 1
  1428. #define BIT_MASK_CFC_L_8822B 0x3
  1429. #define BIT_CFC_L_8822B(x) \
  1430. (((x) & BIT_MASK_CFC_L_8822B) << BIT_SHIFT_CFC_L_8822B)
  1431. #define BITS_CFC_L_8822B (BIT_MASK_CFC_L_8822B << BIT_SHIFT_CFC_L_8822B)
  1432. #define BIT_CLEAR_CFC_L_8822B(x) ((x) & (~BITS_CFC_L_8822B))
  1433. #define BIT_GET_CFC_L_8822B(x) \
  1434. (((x) >> BIT_SHIFT_CFC_L_8822B) & BIT_MASK_CFC_L_8822B)
  1435. #define BIT_SET_CFC_L_8822B(x, v) \
  1436. (BIT_CLEAR_CFC_L_8822B(x) | BIT_CFC_L_8822B(v))
  1437. #define BIT_REG_OCPS_L_V1_8822B BIT(0)
  1438. /* 2 REG_MCUFW_CTRL_8822B */
  1439. #define BIT_SHIFT_RPWM_8822B 24
  1440. #define BIT_MASK_RPWM_8822B 0xff
  1441. #define BIT_RPWM_8822B(x) (((x) & BIT_MASK_RPWM_8822B) << BIT_SHIFT_RPWM_8822B)
  1442. #define BITS_RPWM_8822B (BIT_MASK_RPWM_8822B << BIT_SHIFT_RPWM_8822B)
  1443. #define BIT_CLEAR_RPWM_8822B(x) ((x) & (~BITS_RPWM_8822B))
  1444. #define BIT_GET_RPWM_8822B(x) \
  1445. (((x) >> BIT_SHIFT_RPWM_8822B) & BIT_MASK_RPWM_8822B)
  1446. #define BIT_SET_RPWM_8822B(x, v) (BIT_CLEAR_RPWM_8822B(x) | BIT_RPWM_8822B(v))
  1447. #define BIT_ANA_PORT_EN_8822B BIT(22)
  1448. #define BIT_MAC_PORT_EN_8822B BIT(21)
  1449. #define BIT_BOOT_FSPI_EN_8822B BIT(20)
  1450. #define BIT_ROM_DLEN_8822B BIT(19)
  1451. #define BIT_SHIFT_ROM_PGE_8822B 16
  1452. #define BIT_MASK_ROM_PGE_8822B 0x7
  1453. #define BIT_ROM_PGE_8822B(x) \
  1454. (((x) & BIT_MASK_ROM_PGE_8822B) << BIT_SHIFT_ROM_PGE_8822B)
  1455. #define BITS_ROM_PGE_8822B (BIT_MASK_ROM_PGE_8822B << BIT_SHIFT_ROM_PGE_8822B)
  1456. #define BIT_CLEAR_ROM_PGE_8822B(x) ((x) & (~BITS_ROM_PGE_8822B))
  1457. #define BIT_GET_ROM_PGE_8822B(x) \
  1458. (((x) >> BIT_SHIFT_ROM_PGE_8822B) & BIT_MASK_ROM_PGE_8822B)
  1459. #define BIT_SET_ROM_PGE_8822B(x, v) \
  1460. (BIT_CLEAR_ROM_PGE_8822B(x) | BIT_ROM_PGE_8822B(v))
  1461. #define BIT_FW_INIT_RDY_8822B BIT(15)
  1462. #define BIT_FW_DW_RDY_8822B BIT(14)
  1463. #define BIT_SHIFT_CPU_CLK_SEL_8822B 12
  1464. #define BIT_MASK_CPU_CLK_SEL_8822B 0x3
  1465. #define BIT_CPU_CLK_SEL_8822B(x) \
  1466. (((x) & BIT_MASK_CPU_CLK_SEL_8822B) << BIT_SHIFT_CPU_CLK_SEL_8822B)
  1467. #define BITS_CPU_CLK_SEL_8822B \
  1468. (BIT_MASK_CPU_CLK_SEL_8822B << BIT_SHIFT_CPU_CLK_SEL_8822B)
  1469. #define BIT_CLEAR_CPU_CLK_SEL_8822B(x) ((x) & (~BITS_CPU_CLK_SEL_8822B))
  1470. #define BIT_GET_CPU_CLK_SEL_8822B(x) \
  1471. (((x) >> BIT_SHIFT_CPU_CLK_SEL_8822B) & BIT_MASK_CPU_CLK_SEL_8822B)
  1472. #define BIT_SET_CPU_CLK_SEL_8822B(x, v) \
  1473. (BIT_CLEAR_CPU_CLK_SEL_8822B(x) | BIT_CPU_CLK_SEL_8822B(v))
  1474. #define BIT_CCLK_CHG_MASK_8822B BIT(11)
  1475. #define BIT_EMEM__TXBUF_CHKSUM_OK_8822B BIT(10)
  1476. #define BIT_EMEM_TXBUF_DW_RDY_8822B BIT(9)
  1477. #define BIT_EMEM_CHKSUM_OK_8822B BIT(8)
  1478. #define BIT_EMEM_DW_OK_8822B BIT(7)
  1479. #define BIT_DMEM_CHKSUM_OK_8822B BIT(6)
  1480. #define BIT_DMEM_DW_OK_8822B BIT(5)
  1481. #define BIT_IMEM_CHKSUM_OK_8822B BIT(4)
  1482. #define BIT_IMEM_DW_OK_8822B BIT(3)
  1483. #define BIT_IMEM_BOOT_LOAD_CHKSUM_OK_8822B BIT(2)
  1484. #define BIT_IMEM_BOOT_LOAD_DW_OK_8822B BIT(1)
  1485. #define BIT_MCUFWDL_EN_8822B BIT(0)
  1486. /* 2 REG_MCU_TST_CFG_8822B */
  1487. #define BIT_SHIFT_C2H_MSG_8822B 0
  1488. #define BIT_MASK_C2H_MSG_8822B 0xffff
  1489. #define BIT_C2H_MSG_8822B(x) \
  1490. (((x) & BIT_MASK_C2H_MSG_8822B) << BIT_SHIFT_C2H_MSG_8822B)
  1491. #define BITS_C2H_MSG_8822B (BIT_MASK_C2H_MSG_8822B << BIT_SHIFT_C2H_MSG_8822B)
  1492. #define BIT_CLEAR_C2H_MSG_8822B(x) ((x) & (~BITS_C2H_MSG_8822B))
  1493. #define BIT_GET_C2H_MSG_8822B(x) \
  1494. (((x) >> BIT_SHIFT_C2H_MSG_8822B) & BIT_MASK_C2H_MSG_8822B)
  1495. #define BIT_SET_C2H_MSG_8822B(x, v) \
  1496. (BIT_CLEAR_C2H_MSG_8822B(x) | BIT_C2H_MSG_8822B(v))
  1497. /* 2 REG_HMEBOX_E0_E1_8822B */
  1498. #define BIT_SHIFT_HOST_MSG_E1_8822B 16
  1499. #define BIT_MASK_HOST_MSG_E1_8822B 0xffff
  1500. #define BIT_HOST_MSG_E1_8822B(x) \
  1501. (((x) & BIT_MASK_HOST_MSG_E1_8822B) << BIT_SHIFT_HOST_MSG_E1_8822B)
  1502. #define BITS_HOST_MSG_E1_8822B \
  1503. (BIT_MASK_HOST_MSG_E1_8822B << BIT_SHIFT_HOST_MSG_E1_8822B)
  1504. #define BIT_CLEAR_HOST_MSG_E1_8822B(x) ((x) & (~BITS_HOST_MSG_E1_8822B))
  1505. #define BIT_GET_HOST_MSG_E1_8822B(x) \
  1506. (((x) >> BIT_SHIFT_HOST_MSG_E1_8822B) & BIT_MASK_HOST_MSG_E1_8822B)
  1507. #define BIT_SET_HOST_MSG_E1_8822B(x, v) \
  1508. (BIT_CLEAR_HOST_MSG_E1_8822B(x) | BIT_HOST_MSG_E1_8822B(v))
  1509. #define BIT_SHIFT_HOST_MSG_E0_8822B 0
  1510. #define BIT_MASK_HOST_MSG_E0_8822B 0xffff
  1511. #define BIT_HOST_MSG_E0_8822B(x) \
  1512. (((x) & BIT_MASK_HOST_MSG_E0_8822B) << BIT_SHIFT_HOST_MSG_E0_8822B)
  1513. #define BITS_HOST_MSG_E0_8822B \
  1514. (BIT_MASK_HOST_MSG_E0_8822B << BIT_SHIFT_HOST_MSG_E0_8822B)
  1515. #define BIT_CLEAR_HOST_MSG_E0_8822B(x) ((x) & (~BITS_HOST_MSG_E0_8822B))
  1516. #define BIT_GET_HOST_MSG_E0_8822B(x) \
  1517. (((x) >> BIT_SHIFT_HOST_MSG_E0_8822B) & BIT_MASK_HOST_MSG_E0_8822B)
  1518. #define BIT_SET_HOST_MSG_E0_8822B(x, v) \
  1519. (BIT_CLEAR_HOST_MSG_E0_8822B(x) | BIT_HOST_MSG_E0_8822B(v))
  1520. /* 2 REG_HMEBOX_E2_E3_8822B */
  1521. #define BIT_SHIFT_HOST_MSG_E3_8822B 16
  1522. #define BIT_MASK_HOST_MSG_E3_8822B 0xffff
  1523. #define BIT_HOST_MSG_E3_8822B(x) \
  1524. (((x) & BIT_MASK_HOST_MSG_E3_8822B) << BIT_SHIFT_HOST_MSG_E3_8822B)
  1525. #define BITS_HOST_MSG_E3_8822B \
  1526. (BIT_MASK_HOST_MSG_E3_8822B << BIT_SHIFT_HOST_MSG_E3_8822B)
  1527. #define BIT_CLEAR_HOST_MSG_E3_8822B(x) ((x) & (~BITS_HOST_MSG_E3_8822B))
  1528. #define BIT_GET_HOST_MSG_E3_8822B(x) \
  1529. (((x) >> BIT_SHIFT_HOST_MSG_E3_8822B) & BIT_MASK_HOST_MSG_E3_8822B)
  1530. #define BIT_SET_HOST_MSG_E3_8822B(x, v) \
  1531. (BIT_CLEAR_HOST_MSG_E3_8822B(x) | BIT_HOST_MSG_E3_8822B(v))
  1532. #define BIT_SHIFT_HOST_MSG_E2_8822B 0
  1533. #define BIT_MASK_HOST_MSG_E2_8822B 0xffff
  1534. #define BIT_HOST_MSG_E2_8822B(x) \
  1535. (((x) & BIT_MASK_HOST_MSG_E2_8822B) << BIT_SHIFT_HOST_MSG_E2_8822B)
  1536. #define BITS_HOST_MSG_E2_8822B \
  1537. (BIT_MASK_HOST_MSG_E2_8822B << BIT_SHIFT_HOST_MSG_E2_8822B)
  1538. #define BIT_CLEAR_HOST_MSG_E2_8822B(x) ((x) & (~BITS_HOST_MSG_E2_8822B))
  1539. #define BIT_GET_HOST_MSG_E2_8822B(x) \
  1540. (((x) >> BIT_SHIFT_HOST_MSG_E2_8822B) & BIT_MASK_HOST_MSG_E2_8822B)
  1541. #define BIT_SET_HOST_MSG_E2_8822B(x, v) \
  1542. (BIT_CLEAR_HOST_MSG_E2_8822B(x) | BIT_HOST_MSG_E2_8822B(v))
  1543. /* 2 REG_WLLPS_CTRL_8822B */
  1544. #define BIT_WLLPSOP_EABM_8822B BIT(31)
  1545. #define BIT_WLLPSOP_ACKF_8822B BIT(30)
  1546. #define BIT_WLLPSOP_DLDM_8822B BIT(29)
  1547. #define BIT_WLLPSOP_ESWR_8822B BIT(28)
  1548. #define BIT_WLLPSOP_PWMM_8822B BIT(27)
  1549. #define BIT_WLLPSOP_EECK_8822B BIT(26)
  1550. #define BIT_WLLPSOP_WLMACOFF_8822B BIT(25)
  1551. #define BIT_WLLPSOP_EXTAL_8822B BIT(24)
  1552. #define BIT_WL_SYNPON_VOLTSPDN_8822B BIT(23)
  1553. #define BIT_WLLPSOP_WLBBOFF_8822B BIT(22)
  1554. #define BIT_WLLPSOP_WLMEM_DS_8822B BIT(21)
  1555. #define BIT_SHIFT_LPLDH12_VADJ_STEP_DN_8822B 12
  1556. #define BIT_MASK_LPLDH12_VADJ_STEP_DN_8822B 0xf
  1557. #define BIT_LPLDH12_VADJ_STEP_DN_8822B(x) \
  1558. (((x) & BIT_MASK_LPLDH12_VADJ_STEP_DN_8822B) \
  1559. << BIT_SHIFT_LPLDH12_VADJ_STEP_DN_8822B)
  1560. #define BITS_LPLDH12_VADJ_STEP_DN_8822B \
  1561. (BIT_MASK_LPLDH12_VADJ_STEP_DN_8822B \
  1562. << BIT_SHIFT_LPLDH12_VADJ_STEP_DN_8822B)
  1563. #define BIT_CLEAR_LPLDH12_VADJ_STEP_DN_8822B(x) \
  1564. ((x) & (~BITS_LPLDH12_VADJ_STEP_DN_8822B))
  1565. #define BIT_GET_LPLDH12_VADJ_STEP_DN_8822B(x) \
  1566. (((x) >> BIT_SHIFT_LPLDH12_VADJ_STEP_DN_8822B) & \
  1567. BIT_MASK_LPLDH12_VADJ_STEP_DN_8822B)
  1568. #define BIT_SET_LPLDH12_VADJ_STEP_DN_8822B(x, v) \
  1569. (BIT_CLEAR_LPLDH12_VADJ_STEP_DN_8822B(x) | \
  1570. BIT_LPLDH12_VADJ_STEP_DN_8822B(v))
  1571. #define BIT_SHIFT_V15ADJ_L1_STEP_DN_8822B 8
  1572. #define BIT_MASK_V15ADJ_L1_STEP_DN_8822B 0x7
  1573. #define BIT_V15ADJ_L1_STEP_DN_8822B(x) \
  1574. (((x) & BIT_MASK_V15ADJ_L1_STEP_DN_8822B) \
  1575. << BIT_SHIFT_V15ADJ_L1_STEP_DN_8822B)
  1576. #define BITS_V15ADJ_L1_STEP_DN_8822B \
  1577. (BIT_MASK_V15ADJ_L1_STEP_DN_8822B << BIT_SHIFT_V15ADJ_L1_STEP_DN_8822B)
  1578. #define BIT_CLEAR_V15ADJ_L1_STEP_DN_8822B(x) \
  1579. ((x) & (~BITS_V15ADJ_L1_STEP_DN_8822B))
  1580. #define BIT_GET_V15ADJ_L1_STEP_DN_8822B(x) \
  1581. (((x) >> BIT_SHIFT_V15ADJ_L1_STEP_DN_8822B) & \
  1582. BIT_MASK_V15ADJ_L1_STEP_DN_8822B)
  1583. #define BIT_SET_V15ADJ_L1_STEP_DN_8822B(x, v) \
  1584. (BIT_CLEAR_V15ADJ_L1_STEP_DN_8822B(x) | BIT_V15ADJ_L1_STEP_DN_8822B(v))
  1585. #define BIT_REGU_32K_CLK_EN_8822B BIT(1)
  1586. #define BIT_WL_LPS_EN_8822B BIT(0)
  1587. /* 2 REG_AFE_CTRL5_8822B */
  1588. #define BIT_BB_DBG_SEL_AFE_SDM_BIT0_8822B BIT(31)
  1589. #define BIT_ORDER_SDM_8822B BIT(30)
  1590. #define BIT_RFE_SEL_SDM_8822B BIT(29)
  1591. #define BIT_SHIFT_REF_SEL_8822B 25
  1592. #define BIT_MASK_REF_SEL_8822B 0xf
  1593. #define BIT_REF_SEL_8822B(x) \
  1594. (((x) & BIT_MASK_REF_SEL_8822B) << BIT_SHIFT_REF_SEL_8822B)
  1595. #define BITS_REF_SEL_8822B (BIT_MASK_REF_SEL_8822B << BIT_SHIFT_REF_SEL_8822B)
  1596. #define BIT_CLEAR_REF_SEL_8822B(x) ((x) & (~BITS_REF_SEL_8822B))
  1597. #define BIT_GET_REF_SEL_8822B(x) \
  1598. (((x) >> BIT_SHIFT_REF_SEL_8822B) & BIT_MASK_REF_SEL_8822B)
  1599. #define BIT_SET_REF_SEL_8822B(x, v) \
  1600. (BIT_CLEAR_REF_SEL_8822B(x) | BIT_REF_SEL_8822B(v))
  1601. #define BIT_SHIFT_F0F_SDM_8822B 12
  1602. #define BIT_MASK_F0F_SDM_8822B 0x1fff
  1603. #define BIT_F0F_SDM_8822B(x) \
  1604. (((x) & BIT_MASK_F0F_SDM_8822B) << BIT_SHIFT_F0F_SDM_8822B)
  1605. #define BITS_F0F_SDM_8822B (BIT_MASK_F0F_SDM_8822B << BIT_SHIFT_F0F_SDM_8822B)
  1606. #define BIT_CLEAR_F0F_SDM_8822B(x) ((x) & (~BITS_F0F_SDM_8822B))
  1607. #define BIT_GET_F0F_SDM_8822B(x) \
  1608. (((x) >> BIT_SHIFT_F0F_SDM_8822B) & BIT_MASK_F0F_SDM_8822B)
  1609. #define BIT_SET_F0F_SDM_8822B(x, v) \
  1610. (BIT_CLEAR_F0F_SDM_8822B(x) | BIT_F0F_SDM_8822B(v))
  1611. #define BIT_SHIFT_F0N_SDM_8822B 9
  1612. #define BIT_MASK_F0N_SDM_8822B 0x7
  1613. #define BIT_F0N_SDM_8822B(x) \
  1614. (((x) & BIT_MASK_F0N_SDM_8822B) << BIT_SHIFT_F0N_SDM_8822B)
  1615. #define BITS_F0N_SDM_8822B (BIT_MASK_F0N_SDM_8822B << BIT_SHIFT_F0N_SDM_8822B)
  1616. #define BIT_CLEAR_F0N_SDM_8822B(x) ((x) & (~BITS_F0N_SDM_8822B))
  1617. #define BIT_GET_F0N_SDM_8822B(x) \
  1618. (((x) >> BIT_SHIFT_F0N_SDM_8822B) & BIT_MASK_F0N_SDM_8822B)
  1619. #define BIT_SET_F0N_SDM_8822B(x, v) \
  1620. (BIT_CLEAR_F0N_SDM_8822B(x) | BIT_F0N_SDM_8822B(v))
  1621. #define BIT_SHIFT_DIVN_SDM_8822B 3
  1622. #define BIT_MASK_DIVN_SDM_8822B 0x3f
  1623. #define BIT_DIVN_SDM_8822B(x) \
  1624. (((x) & BIT_MASK_DIVN_SDM_8822B) << BIT_SHIFT_DIVN_SDM_8822B)
  1625. #define BITS_DIVN_SDM_8822B \
  1626. (BIT_MASK_DIVN_SDM_8822B << BIT_SHIFT_DIVN_SDM_8822B)
  1627. #define BIT_CLEAR_DIVN_SDM_8822B(x) ((x) & (~BITS_DIVN_SDM_8822B))
  1628. #define BIT_GET_DIVN_SDM_8822B(x) \
  1629. (((x) >> BIT_SHIFT_DIVN_SDM_8822B) & BIT_MASK_DIVN_SDM_8822B)
  1630. #define BIT_SET_DIVN_SDM_8822B(x, v) \
  1631. (BIT_CLEAR_DIVN_SDM_8822B(x) | BIT_DIVN_SDM_8822B(v))
  1632. /* 2 REG_GPIO_DEBOUNCE_CTRL_8822B */
  1633. #define BIT_WLGP_DBC1EN_8822B BIT(15)
  1634. #define BIT_SHIFT_WLGP_DBC1_8822B 8
  1635. #define BIT_MASK_WLGP_DBC1_8822B 0xf
  1636. #define BIT_WLGP_DBC1_8822B(x) \
  1637. (((x) & BIT_MASK_WLGP_DBC1_8822B) << BIT_SHIFT_WLGP_DBC1_8822B)
  1638. #define BITS_WLGP_DBC1_8822B \
  1639. (BIT_MASK_WLGP_DBC1_8822B << BIT_SHIFT_WLGP_DBC1_8822B)
  1640. #define BIT_CLEAR_WLGP_DBC1_8822B(x) ((x) & (~BITS_WLGP_DBC1_8822B))
  1641. #define BIT_GET_WLGP_DBC1_8822B(x) \
  1642. (((x) >> BIT_SHIFT_WLGP_DBC1_8822B) & BIT_MASK_WLGP_DBC1_8822B)
  1643. #define BIT_SET_WLGP_DBC1_8822B(x, v) \
  1644. (BIT_CLEAR_WLGP_DBC1_8822B(x) | BIT_WLGP_DBC1_8822B(v))
  1645. #define BIT_WLGP_DBC0EN_8822B BIT(7)
  1646. #define BIT_SHIFT_WLGP_DBC0_8822B 0
  1647. #define BIT_MASK_WLGP_DBC0_8822B 0xf
  1648. #define BIT_WLGP_DBC0_8822B(x) \
  1649. (((x) & BIT_MASK_WLGP_DBC0_8822B) << BIT_SHIFT_WLGP_DBC0_8822B)
  1650. #define BITS_WLGP_DBC0_8822B \
  1651. (BIT_MASK_WLGP_DBC0_8822B << BIT_SHIFT_WLGP_DBC0_8822B)
  1652. #define BIT_CLEAR_WLGP_DBC0_8822B(x) ((x) & (~BITS_WLGP_DBC0_8822B))
  1653. #define BIT_GET_WLGP_DBC0_8822B(x) \
  1654. (((x) >> BIT_SHIFT_WLGP_DBC0_8822B) & BIT_MASK_WLGP_DBC0_8822B)
  1655. #define BIT_SET_WLGP_DBC0_8822B(x, v) \
  1656. (BIT_CLEAR_WLGP_DBC0_8822B(x) | BIT_WLGP_DBC0_8822B(v))
  1657. /* 2 REG_RPWM2_8822B */
  1658. #define BIT_SHIFT_RPWM2_8822B 16
  1659. #define BIT_MASK_RPWM2_8822B 0xffff
  1660. #define BIT_RPWM2_8822B(x) \
  1661. (((x) & BIT_MASK_RPWM2_8822B) << BIT_SHIFT_RPWM2_8822B)
  1662. #define BITS_RPWM2_8822B (BIT_MASK_RPWM2_8822B << BIT_SHIFT_RPWM2_8822B)
  1663. #define BIT_CLEAR_RPWM2_8822B(x) ((x) & (~BITS_RPWM2_8822B))
  1664. #define BIT_GET_RPWM2_8822B(x) \
  1665. (((x) >> BIT_SHIFT_RPWM2_8822B) & BIT_MASK_RPWM2_8822B)
  1666. #define BIT_SET_RPWM2_8822B(x, v) \
  1667. (BIT_CLEAR_RPWM2_8822B(x) | BIT_RPWM2_8822B(v))
  1668. /* 2 REG_SYSON_FSM_MON_8822B */
  1669. #define BIT_SHIFT_FSM_MON_SEL_8822B 24
  1670. #define BIT_MASK_FSM_MON_SEL_8822B 0x7
  1671. #define BIT_FSM_MON_SEL_8822B(x) \
  1672. (((x) & BIT_MASK_FSM_MON_SEL_8822B) << BIT_SHIFT_FSM_MON_SEL_8822B)
  1673. #define BITS_FSM_MON_SEL_8822B \
  1674. (BIT_MASK_FSM_MON_SEL_8822B << BIT_SHIFT_FSM_MON_SEL_8822B)
  1675. #define BIT_CLEAR_FSM_MON_SEL_8822B(x) ((x) & (~BITS_FSM_MON_SEL_8822B))
  1676. #define BIT_GET_FSM_MON_SEL_8822B(x) \
  1677. (((x) >> BIT_SHIFT_FSM_MON_SEL_8822B) & BIT_MASK_FSM_MON_SEL_8822B)
  1678. #define BIT_SET_FSM_MON_SEL_8822B(x, v) \
  1679. (BIT_CLEAR_FSM_MON_SEL_8822B(x) | BIT_FSM_MON_SEL_8822B(v))
  1680. #define BIT_DOP_ELDO_8822B BIT(23)
  1681. #define BIT_FSM_MON_UPD_8822B BIT(15)
  1682. #define BIT_SHIFT_FSM_PAR_8822B 0
  1683. #define BIT_MASK_FSM_PAR_8822B 0x7fff
  1684. #define BIT_FSM_PAR_8822B(x) \
  1685. (((x) & BIT_MASK_FSM_PAR_8822B) << BIT_SHIFT_FSM_PAR_8822B)
  1686. #define BITS_FSM_PAR_8822B (BIT_MASK_FSM_PAR_8822B << BIT_SHIFT_FSM_PAR_8822B)
  1687. #define BIT_CLEAR_FSM_PAR_8822B(x) ((x) & (~BITS_FSM_PAR_8822B))
  1688. #define BIT_GET_FSM_PAR_8822B(x) \
  1689. (((x) >> BIT_SHIFT_FSM_PAR_8822B) & BIT_MASK_FSM_PAR_8822B)
  1690. #define BIT_SET_FSM_PAR_8822B(x, v) \
  1691. (BIT_CLEAR_FSM_PAR_8822B(x) | BIT_FSM_PAR_8822B(v))
  1692. /* 2 REG_AFE_CTRL6_8822B */
  1693. #define BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B 0
  1694. #define BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B 0x7
  1695. #define BIT_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B(x) \
  1696. (((x) & BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B) \
  1697. << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B)
  1698. #define BITS_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B \
  1699. (BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B \
  1700. << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B)
  1701. #define BIT_CLEAR_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B(x) \
  1702. ((x) & (~BITS_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B))
  1703. #define BIT_GET_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B(x) \
  1704. (((x) >> BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B) & \
  1705. BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B)
  1706. #define BIT_SET_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B(x, v) \
  1707. (BIT_CLEAR_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B(x) | \
  1708. BIT_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B(v))
  1709. /* 2 REG_PMC_DBG_CTRL1_8822B */
  1710. #define BIT_BT_INT_EN_8822B BIT(31)
  1711. #define BIT_SHIFT_RD_WR_WIFI_BT_INFO_8822B 16
  1712. #define BIT_MASK_RD_WR_WIFI_BT_INFO_8822B 0x7fff
  1713. #define BIT_RD_WR_WIFI_BT_INFO_8822B(x) \
  1714. (((x) & BIT_MASK_RD_WR_WIFI_BT_INFO_8822B) \
  1715. << BIT_SHIFT_RD_WR_WIFI_BT_INFO_8822B)
  1716. #define BITS_RD_WR_WIFI_BT_INFO_8822B \
  1717. (BIT_MASK_RD_WR_WIFI_BT_INFO_8822B \
  1718. << BIT_SHIFT_RD_WR_WIFI_BT_INFO_8822B)
  1719. #define BIT_CLEAR_RD_WR_WIFI_BT_INFO_8822B(x) \
  1720. ((x) & (~BITS_RD_WR_WIFI_BT_INFO_8822B))
  1721. #define BIT_GET_RD_WR_WIFI_BT_INFO_8822B(x) \
  1722. (((x) >> BIT_SHIFT_RD_WR_WIFI_BT_INFO_8822B) & \
  1723. BIT_MASK_RD_WR_WIFI_BT_INFO_8822B)
  1724. #define BIT_SET_RD_WR_WIFI_BT_INFO_8822B(x, v) \
  1725. (BIT_CLEAR_RD_WR_WIFI_BT_INFO_8822B(x) | \
  1726. BIT_RD_WR_WIFI_BT_INFO_8822B(v))
  1727. #define BIT_PMC_WR_OVF_8822B BIT(8)
  1728. #define BIT_SHIFT_WLPMC_ERRINT_8822B 0
  1729. #define BIT_MASK_WLPMC_ERRINT_8822B 0xff
  1730. #define BIT_WLPMC_ERRINT_8822B(x) \
  1731. (((x) & BIT_MASK_WLPMC_ERRINT_8822B) << BIT_SHIFT_WLPMC_ERRINT_8822B)
  1732. #define BITS_WLPMC_ERRINT_8822B \
  1733. (BIT_MASK_WLPMC_ERRINT_8822B << BIT_SHIFT_WLPMC_ERRINT_8822B)
  1734. #define BIT_CLEAR_WLPMC_ERRINT_8822B(x) ((x) & (~BITS_WLPMC_ERRINT_8822B))
  1735. #define BIT_GET_WLPMC_ERRINT_8822B(x) \
  1736. (((x) >> BIT_SHIFT_WLPMC_ERRINT_8822B) & BIT_MASK_WLPMC_ERRINT_8822B)
  1737. #define BIT_SET_WLPMC_ERRINT_8822B(x, v) \
  1738. (BIT_CLEAR_WLPMC_ERRINT_8822B(x) | BIT_WLPMC_ERRINT_8822B(v))
  1739. /* 2 REG_AFE_CTRL7_8822B */
  1740. #define BIT_SHIFT_SEL_V_8822B 30
  1741. #define BIT_MASK_SEL_V_8822B 0x3
  1742. #define BIT_SEL_V_8822B(x) \
  1743. (((x) & BIT_MASK_SEL_V_8822B) << BIT_SHIFT_SEL_V_8822B)
  1744. #define BITS_SEL_V_8822B (BIT_MASK_SEL_V_8822B << BIT_SHIFT_SEL_V_8822B)
  1745. #define BIT_CLEAR_SEL_V_8822B(x) ((x) & (~BITS_SEL_V_8822B))
  1746. #define BIT_GET_SEL_V_8822B(x) \
  1747. (((x) >> BIT_SHIFT_SEL_V_8822B) & BIT_MASK_SEL_V_8822B)
  1748. #define BIT_SET_SEL_V_8822B(x, v) \
  1749. (BIT_CLEAR_SEL_V_8822B(x) | BIT_SEL_V_8822B(v))
  1750. #define BIT_SEL_LDO_PC_8822B BIT(29)
  1751. #define BIT_SHIFT_CK_MON_SEL_8822B 26
  1752. #define BIT_MASK_CK_MON_SEL_8822B 0x7
  1753. #define BIT_CK_MON_SEL_8822B(x) \
  1754. (((x) & BIT_MASK_CK_MON_SEL_8822B) << BIT_SHIFT_CK_MON_SEL_8822B)
  1755. #define BITS_CK_MON_SEL_8822B \
  1756. (BIT_MASK_CK_MON_SEL_8822B << BIT_SHIFT_CK_MON_SEL_8822B)
  1757. #define BIT_CLEAR_CK_MON_SEL_8822B(x) ((x) & (~BITS_CK_MON_SEL_8822B))
  1758. #define BIT_GET_CK_MON_SEL_8822B(x) \
  1759. (((x) >> BIT_SHIFT_CK_MON_SEL_8822B) & BIT_MASK_CK_MON_SEL_8822B)
  1760. #define BIT_SET_CK_MON_SEL_8822B(x, v) \
  1761. (BIT_CLEAR_CK_MON_SEL_8822B(x) | BIT_CK_MON_SEL_8822B(v))
  1762. #define BIT_CK_MON_EN_8822B BIT(25)
  1763. #define BIT_FREF_EDGE_8822B BIT(24)
  1764. #define BIT_CK320M_EN_8822B BIT(23)
  1765. #define BIT_CK_5M_EN_8822B BIT(22)
  1766. #define BIT_TESTEN_8822B BIT(21)
  1767. /* 2 REG_HIMR0_8822B */
  1768. #define BIT_TIMEOUT_INTERRUPT2_MASK_8822B BIT(31)
  1769. #define BIT_TIMEOUT_INTERRUTP1_MASK_8822B BIT(30)
  1770. #define BIT_PSTIMEOUT_MSK_8822B BIT(29)
  1771. #define BIT_GTINT4_MSK_8822B BIT(28)
  1772. #define BIT_GTINT3_MSK_8822B BIT(27)
  1773. #define BIT_TXBCN0ERR_MSK_8822B BIT(26)
  1774. #define BIT_TXBCN0OK_MSK_8822B BIT(25)
  1775. #define BIT_TSF_BIT32_TOGGLE_MSK_8822B BIT(24)
  1776. #define BIT_BCNDMAINT0_MSK_8822B BIT(20)
  1777. #define BIT_BCNDERR0_MSK_8822B BIT(16)
  1778. #define BIT_HSISR_IND_ON_INT_MSK_8822B BIT(15)
  1779. #define BIT_HISR3_IND_INT_MSK_8822B BIT(14)
  1780. #define BIT_HISR2_IND_INT_MSK_8822B BIT(13)
  1781. #define BIT_HISR1_IND_MSK_8822B BIT(11)
  1782. #define BIT_C2HCMD_MSK_8822B BIT(10)
  1783. #define BIT_CPWM2_MSK_8822B BIT(9)
  1784. #define BIT_CPWM_MSK_8822B BIT(8)
  1785. #define BIT_HIGHDOK_MSK_8822B BIT(7)
  1786. #define BIT_MGTDOK_MSK_8822B BIT(6)
  1787. #define BIT_BKDOK_MSK_8822B BIT(5)
  1788. #define BIT_BEDOK_MSK_8822B BIT(4)
  1789. #define BIT_VIDOK_MSK_8822B BIT(3)
  1790. #define BIT_VODOK_MSK_8822B BIT(2)
  1791. #define BIT_RDU_MSK_8822B BIT(1)
  1792. #define BIT_RXOK_MSK_8822B BIT(0)
  1793. /* 2 REG_HISR0_8822B */
  1794. #define BIT_PSTIMEOUT2_8822B BIT(31)
  1795. #define BIT_PSTIMEOUT1_8822B BIT(30)
  1796. #define BIT_PSTIMEOUT_8822B BIT(29)
  1797. #define BIT_GTINT4_8822B BIT(28)
  1798. #define BIT_GTINT3_8822B BIT(27)
  1799. #define BIT_TXBCN0ERR_8822B BIT(26)
  1800. #define BIT_TXBCN0OK_8822B BIT(25)
  1801. #define BIT_TSF_BIT32_TOGGLE_8822B BIT(24)
  1802. #define BIT_BCNDMAINT0_8822B BIT(20)
  1803. #define BIT_BCNDERR0_8822B BIT(16)
  1804. #define BIT_HSISR_IND_ON_INT_8822B BIT(15)
  1805. #define BIT_HISR3_IND_INT_8822B BIT(14)
  1806. #define BIT_HISR2_IND_INT_8822B BIT(13)
  1807. #define BIT_HISR1_IND_INT_8822B BIT(11)
  1808. #define BIT_C2HCMD_8822B BIT(10)
  1809. #define BIT_CPWM2_8822B BIT(9)
  1810. #define BIT_CPWM_8822B BIT(8)
  1811. #define BIT_HIGHDOK_8822B BIT(7)
  1812. #define BIT_MGTDOK_8822B BIT(6)
  1813. #define BIT_BKDOK_8822B BIT(5)
  1814. #define BIT_BEDOK_8822B BIT(4)
  1815. #define BIT_VIDOK_8822B BIT(3)
  1816. #define BIT_VODOK_8822B BIT(2)
  1817. #define BIT_RDU_8822B BIT(1)
  1818. #define BIT_RXOK_8822B BIT(0)
  1819. /* 2 REG_HIMR1_8822B */
  1820. #define BIT_TXFIFO_TH_INT_8822B BIT(30)
  1821. #define BIT_BTON_STS_UPDATE_MASK_8822B BIT(29)
  1822. #define BIT_BCNDMAINT7__MSK_8822B BIT(27)
  1823. #define BIT_BCNDMAINT6__MSK_8822B BIT(26)
  1824. #define BIT_BCNDMAINT5__MSK_8822B BIT(25)
  1825. #define BIT_BCNDMAINT4__MSK_8822B BIT(24)
  1826. #define BIT_BCNDMAINT3_MSK_8822B BIT(23)
  1827. #define BIT_BCNDMAINT2_MSK_8822B BIT(22)
  1828. #define BIT_BCNDMAINT1_MSK_8822B BIT(21)
  1829. #define BIT_BCNDERR7_MSK_8822B BIT(20)
  1830. #define BIT_BCNDERR6_MSK_8822B BIT(19)
  1831. #define BIT_BCNDERR5_MSK_8822B BIT(18)
  1832. #define BIT_BCNDERR4_MSK_8822B BIT(17)
  1833. #define BIT_BCNDERR3_MSK_8822B BIT(16)
  1834. #define BIT_BCNDERR2_MSK_8822B BIT(15)
  1835. #define BIT_BCNDERR1_MSK_8822B BIT(14)
  1836. #define BIT_ATIMEND_E_V1_MSK_8822B BIT(12)
  1837. #define BIT_TXERR_MSK_8822B BIT(11)
  1838. #define BIT_RXERR_MSK_8822B BIT(10)
  1839. #define BIT_TXFOVW_MSK_8822B BIT(9)
  1840. #define BIT_FOVW_MSK_8822B BIT(8)
  1841. #define BIT_CPU_MGQ_TXDONE_MSK_8822B BIT(5)
  1842. #define BIT_PS_TIMER_C_MSK_8822B BIT(4)
  1843. #define BIT_PS_TIMER_B_MSK_8822B BIT(3)
  1844. #define BIT_PS_TIMER_A_MSK_8822B BIT(2)
  1845. #define BIT_CPUMGQ_TX_TIMER_MSK_8822B BIT(1)
  1846. /* 2 REG_HISR1_8822B */
  1847. #define BIT_TXFIFO_TH_INT_8822B BIT(30)
  1848. #define BIT_BTON_STS_UPDATE_INT_8822B BIT(29)
  1849. #define BIT_BCNDMAINT7_8822B BIT(27)
  1850. #define BIT_BCNDMAINT6_8822B BIT(26)
  1851. #define BIT_BCNDMAINT5_8822B BIT(25)
  1852. #define BIT_BCNDMAINT4_8822B BIT(24)
  1853. #define BIT_BCNDMAINT3_8822B BIT(23)
  1854. #define BIT_BCNDMAINT2_8822B BIT(22)
  1855. #define BIT_BCNDMAINT1_8822B BIT(21)
  1856. #define BIT_BCNDERR7_8822B BIT(20)
  1857. #define BIT_BCNDERR6_8822B BIT(19)
  1858. #define BIT_BCNDERR5_8822B BIT(18)
  1859. #define BIT_BCNDERR4_8822B BIT(17)
  1860. #define BIT_BCNDERR3_8822B BIT(16)
  1861. #define BIT_BCNDERR2_8822B BIT(15)
  1862. #define BIT_BCNDERR1_8822B BIT(14)
  1863. #define BIT_ATIMEND_E_V1_INT_8822B BIT(12)
  1864. #define BIT_TXERR_INT_8822B BIT(11)
  1865. #define BIT_RXERR_INT_8822B BIT(10)
  1866. #define BIT_TXFOVW_8822B BIT(9)
  1867. #define BIT_FOVW_8822B BIT(8)
  1868. #define BIT_CPU_MGQ_TXDONE_8822B BIT(5)
  1869. #define BIT_PS_TIMER_C_8822B BIT(4)
  1870. #define BIT_PS_TIMER_B_8822B BIT(3)
  1871. #define BIT_PS_TIMER_A_8822B BIT(2)
  1872. #define BIT_CPUMGQ_TX_TIMER_8822B BIT(1)
  1873. /* 2 REG_DBG_PORT_SEL_8822B */
  1874. #define BIT_SHIFT_DEBUG_ST_8822B 0
  1875. #define BIT_MASK_DEBUG_ST_8822B 0xffffffffL
  1876. #define BIT_DEBUG_ST_8822B(x) \
  1877. (((x) & BIT_MASK_DEBUG_ST_8822B) << BIT_SHIFT_DEBUG_ST_8822B)
  1878. #define BITS_DEBUG_ST_8822B \
  1879. (BIT_MASK_DEBUG_ST_8822B << BIT_SHIFT_DEBUG_ST_8822B)
  1880. #define BIT_CLEAR_DEBUG_ST_8822B(x) ((x) & (~BITS_DEBUG_ST_8822B))
  1881. #define BIT_GET_DEBUG_ST_8822B(x) \
  1882. (((x) >> BIT_SHIFT_DEBUG_ST_8822B) & BIT_MASK_DEBUG_ST_8822B)
  1883. #define BIT_SET_DEBUG_ST_8822B(x, v) \
  1884. (BIT_CLEAR_DEBUG_ST_8822B(x) | BIT_DEBUG_ST_8822B(v))
  1885. /* 2 REG_PAD_CTRL2_8822B */
  1886. #define BIT_USB3_USB2_TRANSITION_8822B BIT(20)
  1887. #define BIT_SHIFT_USB23_SW_MODE_V1_8822B 18
  1888. #define BIT_MASK_USB23_SW_MODE_V1_8822B 0x3
  1889. #define BIT_USB23_SW_MODE_V1_8822B(x) \
  1890. (((x) & BIT_MASK_USB23_SW_MODE_V1_8822B) \
  1891. << BIT_SHIFT_USB23_SW_MODE_V1_8822B)
  1892. #define BITS_USB23_SW_MODE_V1_8822B \
  1893. (BIT_MASK_USB23_SW_MODE_V1_8822B << BIT_SHIFT_USB23_SW_MODE_V1_8822B)
  1894. #define BIT_CLEAR_USB23_SW_MODE_V1_8822B(x) \
  1895. ((x) & (~BITS_USB23_SW_MODE_V1_8822B))
  1896. #define BIT_GET_USB23_SW_MODE_V1_8822B(x) \
  1897. (((x) >> BIT_SHIFT_USB23_SW_MODE_V1_8822B) & \
  1898. BIT_MASK_USB23_SW_MODE_V1_8822B)
  1899. #define BIT_SET_USB23_SW_MODE_V1_8822B(x, v) \
  1900. (BIT_CLEAR_USB23_SW_MODE_V1_8822B(x) | BIT_USB23_SW_MODE_V1_8822B(v))
  1901. #define BIT_NO_PDN_CHIPOFF_V1_8822B BIT(17)
  1902. #define BIT_RSM_EN_V1_8822B BIT(16)
  1903. #define BIT_SHIFT_MATCH_CNT_8822B 8
  1904. #define BIT_MASK_MATCH_CNT_8822B 0xff
  1905. #define BIT_MATCH_CNT_8822B(x) \
  1906. (((x) & BIT_MASK_MATCH_CNT_8822B) << BIT_SHIFT_MATCH_CNT_8822B)
  1907. #define BITS_MATCH_CNT_8822B \
  1908. (BIT_MASK_MATCH_CNT_8822B << BIT_SHIFT_MATCH_CNT_8822B)
  1909. #define BIT_CLEAR_MATCH_CNT_8822B(x) ((x) & (~BITS_MATCH_CNT_8822B))
  1910. #define BIT_GET_MATCH_CNT_8822B(x) \
  1911. (((x) >> BIT_SHIFT_MATCH_CNT_8822B) & BIT_MASK_MATCH_CNT_8822B)
  1912. #define BIT_SET_MATCH_CNT_8822B(x, v) \
  1913. (BIT_CLEAR_MATCH_CNT_8822B(x) | BIT_MATCH_CNT_8822B(v))
  1914. #define BIT_LD_B12V_EN_8822B BIT(7)
  1915. #define BIT_EECS_IOSEL_V1_8822B BIT(6)
  1916. #define BIT_EECS_DATA_O_V1_8822B BIT(5)
  1917. #define BIT_EECS_DATA_I_V1_8822B BIT(4)
  1918. #define BIT_EESK_IOSEL_V1_8822B BIT(2)
  1919. #define BIT_EESK_DATA_O_V1_8822B BIT(1)
  1920. #define BIT_EESK_DATA_I_V1_8822B BIT(0)
  1921. /* 2 REG_NOT_VALID_8822B */
  1922. /* 2 REG_PMC_DBG_CTRL2_8822B */
  1923. #define BIT_SHIFT_EFUSE_BURN_GNT_8822B 24
  1924. #define BIT_MASK_EFUSE_BURN_GNT_8822B 0xff
  1925. #define BIT_EFUSE_BURN_GNT_8822B(x) \
  1926. (((x) & BIT_MASK_EFUSE_BURN_GNT_8822B) \
  1927. << BIT_SHIFT_EFUSE_BURN_GNT_8822B)
  1928. #define BITS_EFUSE_BURN_GNT_8822B \
  1929. (BIT_MASK_EFUSE_BURN_GNT_8822B << BIT_SHIFT_EFUSE_BURN_GNT_8822B)
  1930. #define BIT_CLEAR_EFUSE_BURN_GNT_8822B(x) ((x) & (~BITS_EFUSE_BURN_GNT_8822B))
  1931. #define BIT_GET_EFUSE_BURN_GNT_8822B(x) \
  1932. (((x) >> BIT_SHIFT_EFUSE_BURN_GNT_8822B) & \
  1933. BIT_MASK_EFUSE_BURN_GNT_8822B)
  1934. #define BIT_SET_EFUSE_BURN_GNT_8822B(x, v) \
  1935. (BIT_CLEAR_EFUSE_BURN_GNT_8822B(x) | BIT_EFUSE_BURN_GNT_8822B(v))
  1936. #define BIT_STOP_WL_PMC_8822B BIT(9)
  1937. #define BIT_STOP_SYM_PMC_8822B BIT(8)
  1938. #define BIT_REG_RST_WLPMC_8822B BIT(5)
  1939. #define BIT_REG_RST_PD12N_8822B BIT(4)
  1940. #define BIT_SYSON_DIS_WLREG_WRMSK_8822B BIT(3)
  1941. #define BIT_SYSON_DIS_PMCREG_WRMSK_8822B BIT(2)
  1942. #define BIT_SHIFT_SYSON_REG_ARB_8822B 0
  1943. #define BIT_MASK_SYSON_REG_ARB_8822B 0x3
  1944. #define BIT_SYSON_REG_ARB_8822B(x) \
  1945. (((x) & BIT_MASK_SYSON_REG_ARB_8822B) << BIT_SHIFT_SYSON_REG_ARB_8822B)
  1946. #define BITS_SYSON_REG_ARB_8822B \
  1947. (BIT_MASK_SYSON_REG_ARB_8822B << BIT_SHIFT_SYSON_REG_ARB_8822B)
  1948. #define BIT_CLEAR_SYSON_REG_ARB_8822B(x) ((x) & (~BITS_SYSON_REG_ARB_8822B))
  1949. #define BIT_GET_SYSON_REG_ARB_8822B(x) \
  1950. (((x) >> BIT_SHIFT_SYSON_REG_ARB_8822B) & BIT_MASK_SYSON_REG_ARB_8822B)
  1951. #define BIT_SET_SYSON_REG_ARB_8822B(x, v) \
  1952. (BIT_CLEAR_SYSON_REG_ARB_8822B(x) | BIT_SYSON_REG_ARB_8822B(v))
  1953. /* 2 REG_BIST_CTRL_8822B */
  1954. #define BIT_BIST_USB_DIS_8822B BIT(27)
  1955. #define BIT_BIST_PCI_DIS_8822B BIT(26)
  1956. #define BIT_BIST_BT_DIS_8822B BIT(25)
  1957. #define BIT_BIST_WL_DIS_8822B BIT(24)
  1958. #define BIT_SHIFT_BIST_RPT_SEL_8822B 16
  1959. #define BIT_MASK_BIST_RPT_SEL_8822B 0xf
  1960. #define BIT_BIST_RPT_SEL_8822B(x) \
  1961. (((x) & BIT_MASK_BIST_RPT_SEL_8822B) << BIT_SHIFT_BIST_RPT_SEL_8822B)
  1962. #define BITS_BIST_RPT_SEL_8822B \
  1963. (BIT_MASK_BIST_RPT_SEL_8822B << BIT_SHIFT_BIST_RPT_SEL_8822B)
  1964. #define BIT_CLEAR_BIST_RPT_SEL_8822B(x) ((x) & (~BITS_BIST_RPT_SEL_8822B))
  1965. #define BIT_GET_BIST_RPT_SEL_8822B(x) \
  1966. (((x) >> BIT_SHIFT_BIST_RPT_SEL_8822B) & BIT_MASK_BIST_RPT_SEL_8822B)
  1967. #define BIT_SET_BIST_RPT_SEL_8822B(x, v) \
  1968. (BIT_CLEAR_BIST_RPT_SEL_8822B(x) | BIT_BIST_RPT_SEL_8822B(v))
  1969. #define BIT_BIST_RESUME_PS_8822B BIT(4)
  1970. #define BIT_BIST_RESUME_8822B BIT(3)
  1971. #define BIT_BIST_NORMAL_8822B BIT(2)
  1972. #define BIT_BIST_RSTN_8822B BIT(1)
  1973. #define BIT_BIST_CLK_EN_8822B BIT(0)
  1974. /* 2 REG_BIST_RPT_8822B */
  1975. #define BIT_SHIFT_MBIST_REPORT_8822B 0
  1976. #define BIT_MASK_MBIST_REPORT_8822B 0xffffffffL
  1977. #define BIT_MBIST_REPORT_8822B(x) \
  1978. (((x) & BIT_MASK_MBIST_REPORT_8822B) << BIT_SHIFT_MBIST_REPORT_8822B)
  1979. #define BITS_MBIST_REPORT_8822B \
  1980. (BIT_MASK_MBIST_REPORT_8822B << BIT_SHIFT_MBIST_REPORT_8822B)
  1981. #define BIT_CLEAR_MBIST_REPORT_8822B(x) ((x) & (~BITS_MBIST_REPORT_8822B))
  1982. #define BIT_GET_MBIST_REPORT_8822B(x) \
  1983. (((x) >> BIT_SHIFT_MBIST_REPORT_8822B) & BIT_MASK_MBIST_REPORT_8822B)
  1984. #define BIT_SET_MBIST_REPORT_8822B(x, v) \
  1985. (BIT_CLEAR_MBIST_REPORT_8822B(x) | BIT_MBIST_REPORT_8822B(v))
  1986. /* 2 REG_MEM_CTRL_8822B */
  1987. #define BIT_UMEM_RME_8822B BIT(31)
  1988. #define BIT_SHIFT_BT_SPRAM_8822B 28
  1989. #define BIT_MASK_BT_SPRAM_8822B 0x3
  1990. #define BIT_BT_SPRAM_8822B(x) \
  1991. (((x) & BIT_MASK_BT_SPRAM_8822B) << BIT_SHIFT_BT_SPRAM_8822B)
  1992. #define BITS_BT_SPRAM_8822B \
  1993. (BIT_MASK_BT_SPRAM_8822B << BIT_SHIFT_BT_SPRAM_8822B)
  1994. #define BIT_CLEAR_BT_SPRAM_8822B(x) ((x) & (~BITS_BT_SPRAM_8822B))
  1995. #define BIT_GET_BT_SPRAM_8822B(x) \
  1996. (((x) >> BIT_SHIFT_BT_SPRAM_8822B) & BIT_MASK_BT_SPRAM_8822B)
  1997. #define BIT_SET_BT_SPRAM_8822B(x, v) \
  1998. (BIT_CLEAR_BT_SPRAM_8822B(x) | BIT_BT_SPRAM_8822B(v))
  1999. #define BIT_SHIFT_BT_ROM_8822B 24
  2000. #define BIT_MASK_BT_ROM_8822B 0xf
  2001. #define BIT_BT_ROM_8822B(x) \
  2002. (((x) & BIT_MASK_BT_ROM_8822B) << BIT_SHIFT_BT_ROM_8822B)
  2003. #define BITS_BT_ROM_8822B (BIT_MASK_BT_ROM_8822B << BIT_SHIFT_BT_ROM_8822B)
  2004. #define BIT_CLEAR_BT_ROM_8822B(x) ((x) & (~BITS_BT_ROM_8822B))
  2005. #define BIT_GET_BT_ROM_8822B(x) \
  2006. (((x) >> BIT_SHIFT_BT_ROM_8822B) & BIT_MASK_BT_ROM_8822B)
  2007. #define BIT_SET_BT_ROM_8822B(x, v) \
  2008. (BIT_CLEAR_BT_ROM_8822B(x) | BIT_BT_ROM_8822B(v))
  2009. #define BIT_SHIFT_PCI_DPRAM_8822B 10
  2010. #define BIT_MASK_PCI_DPRAM_8822B 0x3
  2011. #define BIT_PCI_DPRAM_8822B(x) \
  2012. (((x) & BIT_MASK_PCI_DPRAM_8822B) << BIT_SHIFT_PCI_DPRAM_8822B)
  2013. #define BITS_PCI_DPRAM_8822B \
  2014. (BIT_MASK_PCI_DPRAM_8822B << BIT_SHIFT_PCI_DPRAM_8822B)
  2015. #define BIT_CLEAR_PCI_DPRAM_8822B(x) ((x) & (~BITS_PCI_DPRAM_8822B))
  2016. #define BIT_GET_PCI_DPRAM_8822B(x) \
  2017. (((x) >> BIT_SHIFT_PCI_DPRAM_8822B) & BIT_MASK_PCI_DPRAM_8822B)
  2018. #define BIT_SET_PCI_DPRAM_8822B(x, v) \
  2019. (BIT_CLEAR_PCI_DPRAM_8822B(x) | BIT_PCI_DPRAM_8822B(v))
  2020. #define BIT_SHIFT_PCI_SPRAM_8822B 8
  2021. #define BIT_MASK_PCI_SPRAM_8822B 0x3
  2022. #define BIT_PCI_SPRAM_8822B(x) \
  2023. (((x) & BIT_MASK_PCI_SPRAM_8822B) << BIT_SHIFT_PCI_SPRAM_8822B)
  2024. #define BITS_PCI_SPRAM_8822B \
  2025. (BIT_MASK_PCI_SPRAM_8822B << BIT_SHIFT_PCI_SPRAM_8822B)
  2026. #define BIT_CLEAR_PCI_SPRAM_8822B(x) ((x) & (~BITS_PCI_SPRAM_8822B))
  2027. #define BIT_GET_PCI_SPRAM_8822B(x) \
  2028. (((x) >> BIT_SHIFT_PCI_SPRAM_8822B) & BIT_MASK_PCI_SPRAM_8822B)
  2029. #define BIT_SET_PCI_SPRAM_8822B(x, v) \
  2030. (BIT_CLEAR_PCI_SPRAM_8822B(x) | BIT_PCI_SPRAM_8822B(v))
  2031. #define BIT_SHIFT_USB_SPRAM_8822B 6
  2032. #define BIT_MASK_USB_SPRAM_8822B 0x3
  2033. #define BIT_USB_SPRAM_8822B(x) \
  2034. (((x) & BIT_MASK_USB_SPRAM_8822B) << BIT_SHIFT_USB_SPRAM_8822B)
  2035. #define BITS_USB_SPRAM_8822B \
  2036. (BIT_MASK_USB_SPRAM_8822B << BIT_SHIFT_USB_SPRAM_8822B)
  2037. #define BIT_CLEAR_USB_SPRAM_8822B(x) ((x) & (~BITS_USB_SPRAM_8822B))
  2038. #define BIT_GET_USB_SPRAM_8822B(x) \
  2039. (((x) >> BIT_SHIFT_USB_SPRAM_8822B) & BIT_MASK_USB_SPRAM_8822B)
  2040. #define BIT_SET_USB_SPRAM_8822B(x, v) \
  2041. (BIT_CLEAR_USB_SPRAM_8822B(x) | BIT_USB_SPRAM_8822B(v))
  2042. #define BIT_SHIFT_USB_SPRF_8822B 4
  2043. #define BIT_MASK_USB_SPRF_8822B 0x3
  2044. #define BIT_USB_SPRF_8822B(x) \
  2045. (((x) & BIT_MASK_USB_SPRF_8822B) << BIT_SHIFT_USB_SPRF_8822B)
  2046. #define BITS_USB_SPRF_8822B \
  2047. (BIT_MASK_USB_SPRF_8822B << BIT_SHIFT_USB_SPRF_8822B)
  2048. #define BIT_CLEAR_USB_SPRF_8822B(x) ((x) & (~BITS_USB_SPRF_8822B))
  2049. #define BIT_GET_USB_SPRF_8822B(x) \
  2050. (((x) >> BIT_SHIFT_USB_SPRF_8822B) & BIT_MASK_USB_SPRF_8822B)
  2051. #define BIT_SET_USB_SPRF_8822B(x, v) \
  2052. (BIT_CLEAR_USB_SPRF_8822B(x) | BIT_USB_SPRF_8822B(v))
  2053. #define BIT_SHIFT_MCU_ROM_8822B 0
  2054. #define BIT_MASK_MCU_ROM_8822B 0xf
  2055. #define BIT_MCU_ROM_8822B(x) \
  2056. (((x) & BIT_MASK_MCU_ROM_8822B) << BIT_SHIFT_MCU_ROM_8822B)
  2057. #define BITS_MCU_ROM_8822B (BIT_MASK_MCU_ROM_8822B << BIT_SHIFT_MCU_ROM_8822B)
  2058. #define BIT_CLEAR_MCU_ROM_8822B(x) ((x) & (~BITS_MCU_ROM_8822B))
  2059. #define BIT_GET_MCU_ROM_8822B(x) \
  2060. (((x) >> BIT_SHIFT_MCU_ROM_8822B) & BIT_MASK_MCU_ROM_8822B)
  2061. #define BIT_SET_MCU_ROM_8822B(x, v) \
  2062. (BIT_CLEAR_MCU_ROM_8822B(x) | BIT_MCU_ROM_8822B(v))
  2063. /* 2 REG_AFE_CTRL8_8822B */
  2064. #define BIT_SYN_AGPIO_8822B BIT(20)
  2065. #define BIT_XTAL_LP_8822B BIT(4)
  2066. #define BIT_XTAL_GM_SEP_8822B BIT(3)
  2067. #define BIT_SHIFT_XTAL_SEL_TOK_8822B 0
  2068. #define BIT_MASK_XTAL_SEL_TOK_8822B 0x7
  2069. #define BIT_XTAL_SEL_TOK_8822B(x) \
  2070. (((x) & BIT_MASK_XTAL_SEL_TOK_8822B) << BIT_SHIFT_XTAL_SEL_TOK_8822B)
  2071. #define BITS_XTAL_SEL_TOK_8822B \
  2072. (BIT_MASK_XTAL_SEL_TOK_8822B << BIT_SHIFT_XTAL_SEL_TOK_8822B)
  2073. #define BIT_CLEAR_XTAL_SEL_TOK_8822B(x) ((x) & (~BITS_XTAL_SEL_TOK_8822B))
  2074. #define BIT_GET_XTAL_SEL_TOK_8822B(x) \
  2075. (((x) >> BIT_SHIFT_XTAL_SEL_TOK_8822B) & BIT_MASK_XTAL_SEL_TOK_8822B)
  2076. #define BIT_SET_XTAL_SEL_TOK_8822B(x, v) \
  2077. (BIT_CLEAR_XTAL_SEL_TOK_8822B(x) | BIT_XTAL_SEL_TOK_8822B(v))
  2078. /* 2 REG_USB_SIE_INTF_8822B */
  2079. #define BIT_RD_SEL_8822B BIT(31)
  2080. #define BIT_USB_SIE_INTF_WE_V1_8822B BIT(30)
  2081. #define BIT_USB_SIE_INTF_BYIOREG_V1_8822B BIT(29)
  2082. #define BIT_USB_SIE_SELECT_8822B BIT(28)
  2083. #define BIT_SHIFT_USB_SIE_INTF_ADDR_V1_8822B 16
  2084. #define BIT_MASK_USB_SIE_INTF_ADDR_V1_8822B 0x1ff
  2085. #define BIT_USB_SIE_INTF_ADDR_V1_8822B(x) \
  2086. (((x) & BIT_MASK_USB_SIE_INTF_ADDR_V1_8822B) \
  2087. << BIT_SHIFT_USB_SIE_INTF_ADDR_V1_8822B)
  2088. #define BITS_USB_SIE_INTF_ADDR_V1_8822B \
  2089. (BIT_MASK_USB_SIE_INTF_ADDR_V1_8822B \
  2090. << BIT_SHIFT_USB_SIE_INTF_ADDR_V1_8822B)
  2091. #define BIT_CLEAR_USB_SIE_INTF_ADDR_V1_8822B(x) \
  2092. ((x) & (~BITS_USB_SIE_INTF_ADDR_V1_8822B))
  2093. #define BIT_GET_USB_SIE_INTF_ADDR_V1_8822B(x) \
  2094. (((x) >> BIT_SHIFT_USB_SIE_INTF_ADDR_V1_8822B) & \
  2095. BIT_MASK_USB_SIE_INTF_ADDR_V1_8822B)
  2096. #define BIT_SET_USB_SIE_INTF_ADDR_V1_8822B(x, v) \
  2097. (BIT_CLEAR_USB_SIE_INTF_ADDR_V1_8822B(x) | \
  2098. BIT_USB_SIE_INTF_ADDR_V1_8822B(v))
  2099. #define BIT_SHIFT_USB_SIE_INTF_RD_8822B 8
  2100. #define BIT_MASK_USB_SIE_INTF_RD_8822B 0xff
  2101. #define BIT_USB_SIE_INTF_RD_8822B(x) \
  2102. (((x) & BIT_MASK_USB_SIE_INTF_RD_8822B) \
  2103. << BIT_SHIFT_USB_SIE_INTF_RD_8822B)
  2104. #define BITS_USB_SIE_INTF_RD_8822B \
  2105. (BIT_MASK_USB_SIE_INTF_RD_8822B << BIT_SHIFT_USB_SIE_INTF_RD_8822B)
  2106. #define BIT_CLEAR_USB_SIE_INTF_RD_8822B(x) ((x) & (~BITS_USB_SIE_INTF_RD_8822B))
  2107. #define BIT_GET_USB_SIE_INTF_RD_8822B(x) \
  2108. (((x) >> BIT_SHIFT_USB_SIE_INTF_RD_8822B) & \
  2109. BIT_MASK_USB_SIE_INTF_RD_8822B)
  2110. #define BIT_SET_USB_SIE_INTF_RD_8822B(x, v) \
  2111. (BIT_CLEAR_USB_SIE_INTF_RD_8822B(x) | BIT_USB_SIE_INTF_RD_8822B(v))
  2112. #define BIT_SHIFT_USB_SIE_INTF_WD_8822B 0
  2113. #define BIT_MASK_USB_SIE_INTF_WD_8822B 0xff
  2114. #define BIT_USB_SIE_INTF_WD_8822B(x) \
  2115. (((x) & BIT_MASK_USB_SIE_INTF_WD_8822B) \
  2116. << BIT_SHIFT_USB_SIE_INTF_WD_8822B)
  2117. #define BITS_USB_SIE_INTF_WD_8822B \
  2118. (BIT_MASK_USB_SIE_INTF_WD_8822B << BIT_SHIFT_USB_SIE_INTF_WD_8822B)
  2119. #define BIT_CLEAR_USB_SIE_INTF_WD_8822B(x) ((x) & (~BITS_USB_SIE_INTF_WD_8822B))
  2120. #define BIT_GET_USB_SIE_INTF_WD_8822B(x) \
  2121. (((x) >> BIT_SHIFT_USB_SIE_INTF_WD_8822B) & \
  2122. BIT_MASK_USB_SIE_INTF_WD_8822B)
  2123. #define BIT_SET_USB_SIE_INTF_WD_8822B(x, v) \
  2124. (BIT_CLEAR_USB_SIE_INTF_WD_8822B(x) | BIT_USB_SIE_INTF_WD_8822B(v))
  2125. /* 2 REG_PCIE_MIO_INTF_8822B */
  2126. #define BIT_PCIE_MIO_BYIOREG_8822B BIT(13)
  2127. #define BIT_PCIE_MIO_RE_8822B BIT(12)
  2128. #define BIT_SHIFT_PCIE_MIO_WE_8822B 8
  2129. #define BIT_MASK_PCIE_MIO_WE_8822B 0xf
  2130. #define BIT_PCIE_MIO_WE_8822B(x) \
  2131. (((x) & BIT_MASK_PCIE_MIO_WE_8822B) << BIT_SHIFT_PCIE_MIO_WE_8822B)
  2132. #define BITS_PCIE_MIO_WE_8822B \
  2133. (BIT_MASK_PCIE_MIO_WE_8822B << BIT_SHIFT_PCIE_MIO_WE_8822B)
  2134. #define BIT_CLEAR_PCIE_MIO_WE_8822B(x) ((x) & (~BITS_PCIE_MIO_WE_8822B))
  2135. #define BIT_GET_PCIE_MIO_WE_8822B(x) \
  2136. (((x) >> BIT_SHIFT_PCIE_MIO_WE_8822B) & BIT_MASK_PCIE_MIO_WE_8822B)
  2137. #define BIT_SET_PCIE_MIO_WE_8822B(x, v) \
  2138. (BIT_CLEAR_PCIE_MIO_WE_8822B(x) | BIT_PCIE_MIO_WE_8822B(v))
  2139. #define BIT_SHIFT_PCIE_MIO_ADDR_8822B 0
  2140. #define BIT_MASK_PCIE_MIO_ADDR_8822B 0xff
  2141. #define BIT_PCIE_MIO_ADDR_8822B(x) \
  2142. (((x) & BIT_MASK_PCIE_MIO_ADDR_8822B) << BIT_SHIFT_PCIE_MIO_ADDR_8822B)
  2143. #define BITS_PCIE_MIO_ADDR_8822B \
  2144. (BIT_MASK_PCIE_MIO_ADDR_8822B << BIT_SHIFT_PCIE_MIO_ADDR_8822B)
  2145. #define BIT_CLEAR_PCIE_MIO_ADDR_8822B(x) ((x) & (~BITS_PCIE_MIO_ADDR_8822B))
  2146. #define BIT_GET_PCIE_MIO_ADDR_8822B(x) \
  2147. (((x) >> BIT_SHIFT_PCIE_MIO_ADDR_8822B) & BIT_MASK_PCIE_MIO_ADDR_8822B)
  2148. #define BIT_SET_PCIE_MIO_ADDR_8822B(x, v) \
  2149. (BIT_CLEAR_PCIE_MIO_ADDR_8822B(x) | BIT_PCIE_MIO_ADDR_8822B(v))
  2150. /* 2 REG_PCIE_MIO_INTD_8822B */
  2151. #define BIT_SHIFT_PCIE_MIO_DATA_8822B 0
  2152. #define BIT_MASK_PCIE_MIO_DATA_8822B 0xffffffffL
  2153. #define BIT_PCIE_MIO_DATA_8822B(x) \
  2154. (((x) & BIT_MASK_PCIE_MIO_DATA_8822B) << BIT_SHIFT_PCIE_MIO_DATA_8822B)
  2155. #define BITS_PCIE_MIO_DATA_8822B \
  2156. (BIT_MASK_PCIE_MIO_DATA_8822B << BIT_SHIFT_PCIE_MIO_DATA_8822B)
  2157. #define BIT_CLEAR_PCIE_MIO_DATA_8822B(x) ((x) & (~BITS_PCIE_MIO_DATA_8822B))
  2158. #define BIT_GET_PCIE_MIO_DATA_8822B(x) \
  2159. (((x) >> BIT_SHIFT_PCIE_MIO_DATA_8822B) & BIT_MASK_PCIE_MIO_DATA_8822B)
  2160. #define BIT_SET_PCIE_MIO_DATA_8822B(x, v) \
  2161. (BIT_CLEAR_PCIE_MIO_DATA_8822B(x) | BIT_PCIE_MIO_DATA_8822B(v))
  2162. /* 2 REG_WLRF1_8822B */
  2163. #define BIT_SHIFT_WLRF1_CTRL_8822B 24
  2164. #define BIT_MASK_WLRF1_CTRL_8822B 0xff
  2165. #define BIT_WLRF1_CTRL_8822B(x) \
  2166. (((x) & BIT_MASK_WLRF1_CTRL_8822B) << BIT_SHIFT_WLRF1_CTRL_8822B)
  2167. #define BITS_WLRF1_CTRL_8822B \
  2168. (BIT_MASK_WLRF1_CTRL_8822B << BIT_SHIFT_WLRF1_CTRL_8822B)
  2169. #define BIT_CLEAR_WLRF1_CTRL_8822B(x) ((x) & (~BITS_WLRF1_CTRL_8822B))
  2170. #define BIT_GET_WLRF1_CTRL_8822B(x) \
  2171. (((x) >> BIT_SHIFT_WLRF1_CTRL_8822B) & BIT_MASK_WLRF1_CTRL_8822B)
  2172. #define BIT_SET_WLRF1_CTRL_8822B(x, v) \
  2173. (BIT_CLEAR_WLRF1_CTRL_8822B(x) | BIT_WLRF1_CTRL_8822B(v))
  2174. /* 2 REG_SYS_CFG1_8822B */
  2175. #define BIT_SHIFT_TRP_ICFG_8822B 28
  2176. #define BIT_MASK_TRP_ICFG_8822B 0xf
  2177. #define BIT_TRP_ICFG_8822B(x) \
  2178. (((x) & BIT_MASK_TRP_ICFG_8822B) << BIT_SHIFT_TRP_ICFG_8822B)
  2179. #define BITS_TRP_ICFG_8822B \
  2180. (BIT_MASK_TRP_ICFG_8822B << BIT_SHIFT_TRP_ICFG_8822B)
  2181. #define BIT_CLEAR_TRP_ICFG_8822B(x) ((x) & (~BITS_TRP_ICFG_8822B))
  2182. #define BIT_GET_TRP_ICFG_8822B(x) \
  2183. (((x) >> BIT_SHIFT_TRP_ICFG_8822B) & BIT_MASK_TRP_ICFG_8822B)
  2184. #define BIT_SET_TRP_ICFG_8822B(x, v) \
  2185. (BIT_CLEAR_TRP_ICFG_8822B(x) | BIT_TRP_ICFG_8822B(v))
  2186. #define BIT_RF_TYPE_ID_8822B BIT(27)
  2187. #define BIT_BD_HCI_SEL_8822B BIT(26)
  2188. #define BIT_BD_PKG_SEL_8822B BIT(25)
  2189. #define BIT_SPSLDO_SEL_8822B BIT(24)
  2190. #define BIT_RTL_ID_8822B BIT(23)
  2191. #define BIT_PAD_HWPD_IDN_8822B BIT(22)
  2192. #define BIT_TESTMODE_8822B BIT(20)
  2193. #define BIT_SHIFT_VENDOR_ID_8822B 16
  2194. #define BIT_MASK_VENDOR_ID_8822B 0xf
  2195. #define BIT_VENDOR_ID_8822B(x) \
  2196. (((x) & BIT_MASK_VENDOR_ID_8822B) << BIT_SHIFT_VENDOR_ID_8822B)
  2197. #define BITS_VENDOR_ID_8822B \
  2198. (BIT_MASK_VENDOR_ID_8822B << BIT_SHIFT_VENDOR_ID_8822B)
  2199. #define BIT_CLEAR_VENDOR_ID_8822B(x) ((x) & (~BITS_VENDOR_ID_8822B))
  2200. #define BIT_GET_VENDOR_ID_8822B(x) \
  2201. (((x) >> BIT_SHIFT_VENDOR_ID_8822B) & BIT_MASK_VENDOR_ID_8822B)
  2202. #define BIT_SET_VENDOR_ID_8822B(x, v) \
  2203. (BIT_CLEAR_VENDOR_ID_8822B(x) | BIT_VENDOR_ID_8822B(v))
  2204. #define BIT_SHIFT_CHIP_VER_8822B 12
  2205. #define BIT_MASK_CHIP_VER_8822B 0xf
  2206. #define BIT_CHIP_VER_8822B(x) \
  2207. (((x) & BIT_MASK_CHIP_VER_8822B) << BIT_SHIFT_CHIP_VER_8822B)
  2208. #define BITS_CHIP_VER_8822B \
  2209. (BIT_MASK_CHIP_VER_8822B << BIT_SHIFT_CHIP_VER_8822B)
  2210. #define BIT_CLEAR_CHIP_VER_8822B(x) ((x) & (~BITS_CHIP_VER_8822B))
  2211. #define BIT_GET_CHIP_VER_8822B(x) \
  2212. (((x) >> BIT_SHIFT_CHIP_VER_8822B) & BIT_MASK_CHIP_VER_8822B)
  2213. #define BIT_SET_CHIP_VER_8822B(x, v) \
  2214. (BIT_CLEAR_CHIP_VER_8822B(x) | BIT_CHIP_VER_8822B(v))
  2215. #define BIT_BD_MAC3_8822B BIT(11)
  2216. #define BIT_BD_MAC1_8822B BIT(10)
  2217. #define BIT_BD_MAC2_8822B BIT(9)
  2218. #define BIT_SIC_IDLE_8822B BIT(8)
  2219. #define BIT_SW_OFFLOAD_EN_8822B BIT(7)
  2220. #define BIT_OCP_SHUTDN_8822B BIT(6)
  2221. #define BIT_V15_VLD_8822B BIT(5)
  2222. #define BIT_PCIRSTB_8822B BIT(4)
  2223. #define BIT_PCLK_VLD_8822B BIT(3)
  2224. #define BIT_UCLK_VLD_8822B BIT(2)
  2225. #define BIT_ACLK_VLD_8822B BIT(1)
  2226. #define BIT_XCLK_VLD_8822B BIT(0)
  2227. /* 2 REG_SYS_STATUS1_8822B */
  2228. #define BIT_SHIFT_RF_RL_ID_8822B 28
  2229. #define BIT_MASK_RF_RL_ID_8822B 0xf
  2230. #define BIT_RF_RL_ID_8822B(x) \
  2231. (((x) & BIT_MASK_RF_RL_ID_8822B) << BIT_SHIFT_RF_RL_ID_8822B)
  2232. #define BITS_RF_RL_ID_8822B \
  2233. (BIT_MASK_RF_RL_ID_8822B << BIT_SHIFT_RF_RL_ID_8822B)
  2234. #define BIT_CLEAR_RF_RL_ID_8822B(x) ((x) & (~BITS_RF_RL_ID_8822B))
  2235. #define BIT_GET_RF_RL_ID_8822B(x) \
  2236. (((x) >> BIT_SHIFT_RF_RL_ID_8822B) & BIT_MASK_RF_RL_ID_8822B)
  2237. #define BIT_SET_RF_RL_ID_8822B(x, v) \
  2238. (BIT_CLEAR_RF_RL_ID_8822B(x) | BIT_RF_RL_ID_8822B(v))
  2239. #define BIT_HPHY_ICFG_8822B BIT(19)
  2240. #define BIT_SHIFT_SEL_0XC0_8822B 16
  2241. #define BIT_MASK_SEL_0XC0_8822B 0x3
  2242. #define BIT_SEL_0XC0_8822B(x) \
  2243. (((x) & BIT_MASK_SEL_0XC0_8822B) << BIT_SHIFT_SEL_0XC0_8822B)
  2244. #define BITS_SEL_0XC0_8822B \
  2245. (BIT_MASK_SEL_0XC0_8822B << BIT_SHIFT_SEL_0XC0_8822B)
  2246. #define BIT_CLEAR_SEL_0XC0_8822B(x) ((x) & (~BITS_SEL_0XC0_8822B))
  2247. #define BIT_GET_SEL_0XC0_8822B(x) \
  2248. (((x) >> BIT_SHIFT_SEL_0XC0_8822B) & BIT_MASK_SEL_0XC0_8822B)
  2249. #define BIT_SET_SEL_0XC0_8822B(x, v) \
  2250. (BIT_CLEAR_SEL_0XC0_8822B(x) | BIT_SEL_0XC0_8822B(v))
  2251. #define BIT_SHIFT_HCI_SEL_V3_8822B 12
  2252. #define BIT_MASK_HCI_SEL_V3_8822B 0x7
  2253. #define BIT_HCI_SEL_V3_8822B(x) \
  2254. (((x) & BIT_MASK_HCI_SEL_V3_8822B) << BIT_SHIFT_HCI_SEL_V3_8822B)
  2255. #define BITS_HCI_SEL_V3_8822B \
  2256. (BIT_MASK_HCI_SEL_V3_8822B << BIT_SHIFT_HCI_SEL_V3_8822B)
  2257. #define BIT_CLEAR_HCI_SEL_V3_8822B(x) ((x) & (~BITS_HCI_SEL_V3_8822B))
  2258. #define BIT_GET_HCI_SEL_V3_8822B(x) \
  2259. (((x) >> BIT_SHIFT_HCI_SEL_V3_8822B) & BIT_MASK_HCI_SEL_V3_8822B)
  2260. #define BIT_SET_HCI_SEL_V3_8822B(x, v) \
  2261. (BIT_CLEAR_HCI_SEL_V3_8822B(x) | BIT_HCI_SEL_V3_8822B(v))
  2262. #define BIT_USB_OPERATION_MODE_8822B BIT(10)
  2263. #define BIT_BT_PDN_8822B BIT(9)
  2264. #define BIT_AUTO_WLPON_8822B BIT(8)
  2265. #define BIT_WL_MODE_8822B BIT(7)
  2266. #define BIT_PKG_SEL_HCI_8822B BIT(6)
  2267. #define BIT_SHIFT_PAD_HCI_SEL_V1_8822B 3
  2268. #define BIT_MASK_PAD_HCI_SEL_V1_8822B 0x7
  2269. #define BIT_PAD_HCI_SEL_V1_8822B(x) \
  2270. (((x) & BIT_MASK_PAD_HCI_SEL_V1_8822B) \
  2271. << BIT_SHIFT_PAD_HCI_SEL_V1_8822B)
  2272. #define BITS_PAD_HCI_SEL_V1_8822B \
  2273. (BIT_MASK_PAD_HCI_SEL_V1_8822B << BIT_SHIFT_PAD_HCI_SEL_V1_8822B)
  2274. #define BIT_CLEAR_PAD_HCI_SEL_V1_8822B(x) ((x) & (~BITS_PAD_HCI_SEL_V1_8822B))
  2275. #define BIT_GET_PAD_HCI_SEL_V1_8822B(x) \
  2276. (((x) >> BIT_SHIFT_PAD_HCI_SEL_V1_8822B) & \
  2277. BIT_MASK_PAD_HCI_SEL_V1_8822B)
  2278. #define BIT_SET_PAD_HCI_SEL_V1_8822B(x, v) \
  2279. (BIT_CLEAR_PAD_HCI_SEL_V1_8822B(x) | BIT_PAD_HCI_SEL_V1_8822B(v))
  2280. #define BIT_SHIFT_EFS_HCI_SEL_V1_8822B 0
  2281. #define BIT_MASK_EFS_HCI_SEL_V1_8822B 0x7
  2282. #define BIT_EFS_HCI_SEL_V1_8822B(x) \
  2283. (((x) & BIT_MASK_EFS_HCI_SEL_V1_8822B) \
  2284. << BIT_SHIFT_EFS_HCI_SEL_V1_8822B)
  2285. #define BITS_EFS_HCI_SEL_V1_8822B \
  2286. (BIT_MASK_EFS_HCI_SEL_V1_8822B << BIT_SHIFT_EFS_HCI_SEL_V1_8822B)
  2287. #define BIT_CLEAR_EFS_HCI_SEL_V1_8822B(x) ((x) & (~BITS_EFS_HCI_SEL_V1_8822B))
  2288. #define BIT_GET_EFS_HCI_SEL_V1_8822B(x) \
  2289. (((x) >> BIT_SHIFT_EFS_HCI_SEL_V1_8822B) & \
  2290. BIT_MASK_EFS_HCI_SEL_V1_8822B)
  2291. #define BIT_SET_EFS_HCI_SEL_V1_8822B(x, v) \
  2292. (BIT_CLEAR_EFS_HCI_SEL_V1_8822B(x) | BIT_EFS_HCI_SEL_V1_8822B(v))
  2293. /* 2 REG_SYS_STATUS2_8822B */
  2294. #define BIT_SIO_ALDN_8822B BIT(19)
  2295. #define BIT_USB_ALDN_8822B BIT(18)
  2296. #define BIT_PCI_ALDN_8822B BIT(17)
  2297. #define BIT_SYS_ALDN_8822B BIT(16)
  2298. #define BIT_SHIFT_EPVID1_8822B 8
  2299. #define BIT_MASK_EPVID1_8822B 0xff
  2300. #define BIT_EPVID1_8822B(x) \
  2301. (((x) & BIT_MASK_EPVID1_8822B) << BIT_SHIFT_EPVID1_8822B)
  2302. #define BITS_EPVID1_8822B (BIT_MASK_EPVID1_8822B << BIT_SHIFT_EPVID1_8822B)
  2303. #define BIT_CLEAR_EPVID1_8822B(x) ((x) & (~BITS_EPVID1_8822B))
  2304. #define BIT_GET_EPVID1_8822B(x) \
  2305. (((x) >> BIT_SHIFT_EPVID1_8822B) & BIT_MASK_EPVID1_8822B)
  2306. #define BIT_SET_EPVID1_8822B(x, v) \
  2307. (BIT_CLEAR_EPVID1_8822B(x) | BIT_EPVID1_8822B(v))
  2308. #define BIT_SHIFT_EPVID0_8822B 0
  2309. #define BIT_MASK_EPVID0_8822B 0xff
  2310. #define BIT_EPVID0_8822B(x) \
  2311. (((x) & BIT_MASK_EPVID0_8822B) << BIT_SHIFT_EPVID0_8822B)
  2312. #define BITS_EPVID0_8822B (BIT_MASK_EPVID0_8822B << BIT_SHIFT_EPVID0_8822B)
  2313. #define BIT_CLEAR_EPVID0_8822B(x) ((x) & (~BITS_EPVID0_8822B))
  2314. #define BIT_GET_EPVID0_8822B(x) \
  2315. (((x) >> BIT_SHIFT_EPVID0_8822B) & BIT_MASK_EPVID0_8822B)
  2316. #define BIT_SET_EPVID0_8822B(x, v) \
  2317. (BIT_CLEAR_EPVID0_8822B(x) | BIT_EPVID0_8822B(v))
  2318. /* 2 REG_SYS_CFG2_8822B */
  2319. #define BIT_HCI_SEL_EMBEDDED_8822B BIT(8)
  2320. #define BIT_SHIFT_HW_ID_8822B 0
  2321. #define BIT_MASK_HW_ID_8822B 0xff
  2322. #define BIT_HW_ID_8822B(x) \
  2323. (((x) & BIT_MASK_HW_ID_8822B) << BIT_SHIFT_HW_ID_8822B)
  2324. #define BITS_HW_ID_8822B (BIT_MASK_HW_ID_8822B << BIT_SHIFT_HW_ID_8822B)
  2325. #define BIT_CLEAR_HW_ID_8822B(x) ((x) & (~BITS_HW_ID_8822B))
  2326. #define BIT_GET_HW_ID_8822B(x) \
  2327. (((x) >> BIT_SHIFT_HW_ID_8822B) & BIT_MASK_HW_ID_8822B)
  2328. #define BIT_SET_HW_ID_8822B(x, v) \
  2329. (BIT_CLEAR_HW_ID_8822B(x) | BIT_HW_ID_8822B(v))
  2330. /* 2 REG_SYS_CFG3_8822B */
  2331. #define BIT_PWC_MA33V_8822B BIT(15)
  2332. #define BIT_PWC_MA12V_8822B BIT(14)
  2333. #define BIT_PWC_MD12V_8822B BIT(13)
  2334. #define BIT_PWC_PD12V_8822B BIT(12)
  2335. #define BIT_PWC_UD12V_8822B BIT(11)
  2336. #define BIT_ISO_MA2MD_8822B BIT(1)
  2337. #define BIT_ISO_MD2PP_8822B BIT(0)
  2338. /* 2 REG_SYS_CFG4_8822B */
  2339. /* 2 REG_SYS_CFG5_8822B */
  2340. #define BIT_LPS_STATUS_8822B BIT(3)
  2341. #define BIT_HCI_TXDMA_BUSY_8822B BIT(2)
  2342. #define BIT_HCI_TXDMA_ALLOW_8822B BIT(1)
  2343. #define BIT_FW_CTRL_HCI_TXDMA_EN_8822B BIT(0)
  2344. /* 2 REG_CPU_DMEM_CON_8822B */
  2345. #define BIT_WDT_OPT_IOWRAPPER_8822B BIT(19)
  2346. #define BIT_ANA_PORT_IDLE_8822B BIT(18)
  2347. #define BIT_MAC_PORT_IDLE_8822B BIT(17)
  2348. #define BIT_WL_PLATFORM_RST_8822B BIT(16)
  2349. #define BIT_WL_SECURITY_CLK_8822B BIT(15)
  2350. #define BIT_SHIFT_CPU_DMEM_CON_8822B 0
  2351. #define BIT_MASK_CPU_DMEM_CON_8822B 0xff
  2352. #define BIT_CPU_DMEM_CON_8822B(x) \
  2353. (((x) & BIT_MASK_CPU_DMEM_CON_8822B) << BIT_SHIFT_CPU_DMEM_CON_8822B)
  2354. #define BITS_CPU_DMEM_CON_8822B \
  2355. (BIT_MASK_CPU_DMEM_CON_8822B << BIT_SHIFT_CPU_DMEM_CON_8822B)
  2356. #define BIT_CLEAR_CPU_DMEM_CON_8822B(x) ((x) & (~BITS_CPU_DMEM_CON_8822B))
  2357. #define BIT_GET_CPU_DMEM_CON_8822B(x) \
  2358. (((x) >> BIT_SHIFT_CPU_DMEM_CON_8822B) & BIT_MASK_CPU_DMEM_CON_8822B)
  2359. #define BIT_SET_CPU_DMEM_CON_8822B(x, v) \
  2360. (BIT_CLEAR_CPU_DMEM_CON_8822B(x) | BIT_CPU_DMEM_CON_8822B(v))
  2361. /* 2 REG_BOOT_REASON_8822B */
  2362. #define BIT_SHIFT_BOOT_REASON_V1_8822B 0
  2363. #define BIT_MASK_BOOT_REASON_V1_8822B 0x7
  2364. #define BIT_BOOT_REASON_V1_8822B(x) \
  2365. (((x) & BIT_MASK_BOOT_REASON_V1_8822B) \
  2366. << BIT_SHIFT_BOOT_REASON_V1_8822B)
  2367. #define BITS_BOOT_REASON_V1_8822B \
  2368. (BIT_MASK_BOOT_REASON_V1_8822B << BIT_SHIFT_BOOT_REASON_V1_8822B)
  2369. #define BIT_CLEAR_BOOT_REASON_V1_8822B(x) ((x) & (~BITS_BOOT_REASON_V1_8822B))
  2370. #define BIT_GET_BOOT_REASON_V1_8822B(x) \
  2371. (((x) >> BIT_SHIFT_BOOT_REASON_V1_8822B) & \
  2372. BIT_MASK_BOOT_REASON_V1_8822B)
  2373. #define BIT_SET_BOOT_REASON_V1_8822B(x, v) \
  2374. (BIT_CLEAR_BOOT_REASON_V1_8822B(x) | BIT_BOOT_REASON_V1_8822B(v))
  2375. /* 2 REG_NFCPAD_CTRL_8822B */
  2376. #define BIT_PAD_SHUTDW_8822B BIT(18)
  2377. #define BIT_SYSON_NFC_PAD_8822B BIT(17)
  2378. #define BIT_NFC_INT_PAD_CTRL_8822B BIT(16)
  2379. #define BIT_NFC_RFDIS_PAD_CTRL_8822B BIT(15)
  2380. #define BIT_NFC_CLK_PAD_CTRL_8822B BIT(14)
  2381. #define BIT_NFC_DATA_PAD_CTRL_8822B BIT(13)
  2382. #define BIT_NFC_PAD_PULL_CTRL_8822B BIT(12)
  2383. #define BIT_SHIFT_NFCPAD_IO_SEL_8822B 8
  2384. #define BIT_MASK_NFCPAD_IO_SEL_8822B 0xf
  2385. #define BIT_NFCPAD_IO_SEL_8822B(x) \
  2386. (((x) & BIT_MASK_NFCPAD_IO_SEL_8822B) << BIT_SHIFT_NFCPAD_IO_SEL_8822B)
  2387. #define BITS_NFCPAD_IO_SEL_8822B \
  2388. (BIT_MASK_NFCPAD_IO_SEL_8822B << BIT_SHIFT_NFCPAD_IO_SEL_8822B)
  2389. #define BIT_CLEAR_NFCPAD_IO_SEL_8822B(x) ((x) & (~BITS_NFCPAD_IO_SEL_8822B))
  2390. #define BIT_GET_NFCPAD_IO_SEL_8822B(x) \
  2391. (((x) >> BIT_SHIFT_NFCPAD_IO_SEL_8822B) & BIT_MASK_NFCPAD_IO_SEL_8822B)
  2392. #define BIT_SET_NFCPAD_IO_SEL_8822B(x, v) \
  2393. (BIT_CLEAR_NFCPAD_IO_SEL_8822B(x) | BIT_NFCPAD_IO_SEL_8822B(v))
  2394. #define BIT_SHIFT_NFCPAD_OUT_8822B 4
  2395. #define BIT_MASK_NFCPAD_OUT_8822B 0xf
  2396. #define BIT_NFCPAD_OUT_8822B(x) \
  2397. (((x) & BIT_MASK_NFCPAD_OUT_8822B) << BIT_SHIFT_NFCPAD_OUT_8822B)
  2398. #define BITS_NFCPAD_OUT_8822B \
  2399. (BIT_MASK_NFCPAD_OUT_8822B << BIT_SHIFT_NFCPAD_OUT_8822B)
  2400. #define BIT_CLEAR_NFCPAD_OUT_8822B(x) ((x) & (~BITS_NFCPAD_OUT_8822B))
  2401. #define BIT_GET_NFCPAD_OUT_8822B(x) \
  2402. (((x) >> BIT_SHIFT_NFCPAD_OUT_8822B) & BIT_MASK_NFCPAD_OUT_8822B)
  2403. #define BIT_SET_NFCPAD_OUT_8822B(x, v) \
  2404. (BIT_CLEAR_NFCPAD_OUT_8822B(x) | BIT_NFCPAD_OUT_8822B(v))
  2405. #define BIT_SHIFT_NFCPAD_IN_8822B 0
  2406. #define BIT_MASK_NFCPAD_IN_8822B 0xf
  2407. #define BIT_NFCPAD_IN_8822B(x) \
  2408. (((x) & BIT_MASK_NFCPAD_IN_8822B) << BIT_SHIFT_NFCPAD_IN_8822B)
  2409. #define BITS_NFCPAD_IN_8822B \
  2410. (BIT_MASK_NFCPAD_IN_8822B << BIT_SHIFT_NFCPAD_IN_8822B)
  2411. #define BIT_CLEAR_NFCPAD_IN_8822B(x) ((x) & (~BITS_NFCPAD_IN_8822B))
  2412. #define BIT_GET_NFCPAD_IN_8822B(x) \
  2413. (((x) >> BIT_SHIFT_NFCPAD_IN_8822B) & BIT_MASK_NFCPAD_IN_8822B)
  2414. #define BIT_SET_NFCPAD_IN_8822B(x, v) \
  2415. (BIT_CLEAR_NFCPAD_IN_8822B(x) | BIT_NFCPAD_IN_8822B(v))
  2416. /* 2 REG_HIMR2_8822B */
  2417. #define BIT_BCNDMAINT_P4_MSK_8822B BIT(31)
  2418. #define BIT_BCNDMAINT_P3_MSK_8822B BIT(30)
  2419. #define BIT_BCNDMAINT_P2_MSK_8822B BIT(29)
  2420. #define BIT_BCNDMAINT_P1_MSK_8822B BIT(28)
  2421. #define BIT_ATIMEND7_MSK_8822B BIT(22)
  2422. #define BIT_ATIMEND6_MSK_8822B BIT(21)
  2423. #define BIT_ATIMEND5_MSK_8822B BIT(20)
  2424. #define BIT_ATIMEND4_MSK_8822B BIT(19)
  2425. #define BIT_ATIMEND3_MSK_8822B BIT(18)
  2426. #define BIT_ATIMEND2_MSK_8822B BIT(17)
  2427. #define BIT_ATIMEND1_MSK_8822B BIT(16)
  2428. #define BIT_TXBCN7OK_MSK_8822B BIT(14)
  2429. #define BIT_TXBCN6OK_MSK_8822B BIT(13)
  2430. #define BIT_TXBCN5OK_MSK_8822B BIT(12)
  2431. #define BIT_TXBCN4OK_MSK_8822B BIT(11)
  2432. #define BIT_TXBCN3OK_MSK_8822B BIT(10)
  2433. #define BIT_TXBCN2OK_MSK_8822B BIT(9)
  2434. #define BIT_TXBCN1OK_MSK_V1_8822B BIT(8)
  2435. #define BIT_TXBCN7ERR_MSK_8822B BIT(6)
  2436. #define BIT_TXBCN6ERR_MSK_8822B BIT(5)
  2437. #define BIT_TXBCN5ERR_MSK_8822B BIT(4)
  2438. #define BIT_TXBCN4ERR_MSK_8822B BIT(3)
  2439. #define BIT_TXBCN3ERR_MSK_8822B BIT(2)
  2440. #define BIT_TXBCN2ERR_MSK_8822B BIT(1)
  2441. #define BIT_TXBCN1ERR_MSK_V1_8822B BIT(0)
  2442. /* 2 REG_HISR2_8822B */
  2443. #define BIT_BCNDMAINT_P4_8822B BIT(31)
  2444. #define BIT_BCNDMAINT_P3_8822B BIT(30)
  2445. #define BIT_BCNDMAINT_P2_8822B BIT(29)
  2446. #define BIT_BCNDMAINT_P1_8822B BIT(28)
  2447. #define BIT_ATIMEND7_8822B BIT(22)
  2448. #define BIT_ATIMEND6_8822B BIT(21)
  2449. #define BIT_ATIMEND5_8822B BIT(20)
  2450. #define BIT_ATIMEND4_8822B BIT(19)
  2451. #define BIT_ATIMEND3_8822B BIT(18)
  2452. #define BIT_ATIMEND2_8822B BIT(17)
  2453. #define BIT_ATIMEND1_8822B BIT(16)
  2454. #define BIT_TXBCN7OK_8822B BIT(14)
  2455. #define BIT_TXBCN6OK_8822B BIT(13)
  2456. #define BIT_TXBCN5OK_8822B BIT(12)
  2457. #define BIT_TXBCN4OK_8822B BIT(11)
  2458. #define BIT_TXBCN3OK_8822B BIT(10)
  2459. #define BIT_TXBCN2OK_8822B BIT(9)
  2460. #define BIT_TXBCN1OK_8822B BIT(8)
  2461. #define BIT_TXBCN7ERR_8822B BIT(6)
  2462. #define BIT_TXBCN6ERR_8822B BIT(5)
  2463. #define BIT_TXBCN5ERR_8822B BIT(4)
  2464. #define BIT_TXBCN4ERR_8822B BIT(3)
  2465. #define BIT_TXBCN3ERR_8822B BIT(2)
  2466. #define BIT_TXBCN2ERR_8822B BIT(1)
  2467. #define BIT_TXBCN1ERR_8822B BIT(0)
  2468. /* 2 REG_HIMR3_8822B */
  2469. #define BIT_WDT_PLATFORM_INT_MSK_8822B BIT(18)
  2470. #define BIT_WDT_CPU_INT_MSK_8822B BIT(17)
  2471. #define BIT_SETH2CDOK_MASK_8822B BIT(16)
  2472. #define BIT_H2C_CMD_FULL_MASK_8822B BIT(15)
  2473. #define BIT_PWR_INT_127_MASK_8822B BIT(14)
  2474. #define BIT_TXSHORTCUT_TXDESUPDATEOK_MASK_8822B BIT(13)
  2475. #define BIT_TXSHORTCUT_BKUPDATEOK_MASK_8822B BIT(12)
  2476. #define BIT_TXSHORTCUT_BEUPDATEOK_MASK_8822B BIT(11)
  2477. #define BIT_TXSHORTCUT_VIUPDATEOK_MAS_8822B BIT(10)
  2478. #define BIT_TXSHORTCUT_VOUPDATEOK_MASK_8822B BIT(9)
  2479. #define BIT_PWR_INT_127_MASK_V1_8822B BIT(8)
  2480. #define BIT_PWR_INT_126TO96_MASK_8822B BIT(7)
  2481. #define BIT_PWR_INT_95TO64_MASK_8822B BIT(6)
  2482. #define BIT_PWR_INT_63TO32_MASK_8822B BIT(5)
  2483. #define BIT_PWR_INT_31TO0_MASK_8822B BIT(4)
  2484. #define BIT_DDMA0_LP_INT_MSK_8822B BIT(1)
  2485. #define BIT_DDMA0_HP_INT_MSK_8822B BIT(0)
  2486. /* 2 REG_HISR3_8822B */
  2487. #define BIT_WDT_PLATFORM_INT_8822B BIT(18)
  2488. #define BIT_WDT_CPU_INT_8822B BIT(17)
  2489. #define BIT_SETH2CDOK_8822B BIT(16)
  2490. #define BIT_H2C_CMD_FULL_8822B BIT(15)
  2491. #define BIT_PWR_INT_127_8822B BIT(14)
  2492. #define BIT_TXSHORTCUT_TXDESUPDATEOK_8822B BIT(13)
  2493. #define BIT_TXSHORTCUT_BKUPDATEOK_8822B BIT(12)
  2494. #define BIT_TXSHORTCUT_BEUPDATEOK_8822B BIT(11)
  2495. #define BIT_TXSHORTCUT_VIUPDATEOK_8822B BIT(10)
  2496. #define BIT_TXSHORTCUT_VOUPDATEOK_8822B BIT(9)
  2497. #define BIT_PWR_INT_127_V1_8822B BIT(8)
  2498. #define BIT_PWR_INT_126TO96_8822B BIT(7)
  2499. #define BIT_PWR_INT_95TO64_8822B BIT(6)
  2500. #define BIT_PWR_INT_63TO32_8822B BIT(5)
  2501. #define BIT_PWR_INT_31TO0_8822B BIT(4)
  2502. #define BIT_DDMA0_LP_INT_8822B BIT(1)
  2503. #define BIT_DDMA0_HP_INT_8822B BIT(0)
  2504. /* 2 REG_SW_MDIO_8822B */
  2505. #define BIT_DIS_TIMEOUT_IO_8822B BIT(24)
  2506. /* 2 REG_SW_FLUSH_8822B */
  2507. #define BIT_FLUSH_HOLDN_EN_8822B BIT(25)
  2508. #define BIT_FLUSH_WR_EN_8822B BIT(24)
  2509. #define BIT_SW_FLASH_CONTROL_8822B BIT(23)
  2510. #define BIT_SW_FLASH_WEN_E_8822B BIT(19)
  2511. #define BIT_SW_FLASH_HOLDN_E_8822B BIT(18)
  2512. #define BIT_SW_FLASH_SO_E_8822B BIT(17)
  2513. #define BIT_SW_FLASH_SI_E_8822B BIT(16)
  2514. #define BIT_SW_FLASH_SK_O_8822B BIT(13)
  2515. #define BIT_SW_FLASH_CEN_O_8822B BIT(12)
  2516. #define BIT_SW_FLASH_WEN_O_8822B BIT(11)
  2517. #define BIT_SW_FLASH_HOLDN_O_8822B BIT(10)
  2518. #define BIT_SW_FLASH_SO_O_8822B BIT(9)
  2519. #define BIT_SW_FLASH_SI_O_8822B BIT(8)
  2520. #define BIT_SW_FLASH_WEN_I_8822B BIT(3)
  2521. #define BIT_SW_FLASH_HOLDN_I_8822B BIT(2)
  2522. #define BIT_SW_FLASH_SO_I_8822B BIT(1)
  2523. #define BIT_SW_FLASH_SI_I_8822B BIT(0)
  2524. /* 2 REG_H2C_PKT_READADDR_8822B */
  2525. #define BIT_SHIFT_H2C_PKT_READADDR_8822B 0
  2526. #define BIT_MASK_H2C_PKT_READADDR_8822B 0x3ffff
  2527. #define BIT_H2C_PKT_READADDR_8822B(x) \
  2528. (((x) & BIT_MASK_H2C_PKT_READADDR_8822B) \
  2529. << BIT_SHIFT_H2C_PKT_READADDR_8822B)
  2530. #define BITS_H2C_PKT_READADDR_8822B \
  2531. (BIT_MASK_H2C_PKT_READADDR_8822B << BIT_SHIFT_H2C_PKT_READADDR_8822B)
  2532. #define BIT_CLEAR_H2C_PKT_READADDR_8822B(x) \
  2533. ((x) & (~BITS_H2C_PKT_READADDR_8822B))
  2534. #define BIT_GET_H2C_PKT_READADDR_8822B(x) \
  2535. (((x) >> BIT_SHIFT_H2C_PKT_READADDR_8822B) & \
  2536. BIT_MASK_H2C_PKT_READADDR_8822B)
  2537. #define BIT_SET_H2C_PKT_READADDR_8822B(x, v) \
  2538. (BIT_CLEAR_H2C_PKT_READADDR_8822B(x) | BIT_H2C_PKT_READADDR_8822B(v))
  2539. /* 2 REG_H2C_PKT_WRITEADDR_8822B */
  2540. #define BIT_SHIFT_H2C_PKT_WRITEADDR_8822B 0
  2541. #define BIT_MASK_H2C_PKT_WRITEADDR_8822B 0x3ffff
  2542. #define BIT_H2C_PKT_WRITEADDR_8822B(x) \
  2543. (((x) & BIT_MASK_H2C_PKT_WRITEADDR_8822B) \
  2544. << BIT_SHIFT_H2C_PKT_WRITEADDR_8822B)
  2545. #define BITS_H2C_PKT_WRITEADDR_8822B \
  2546. (BIT_MASK_H2C_PKT_WRITEADDR_8822B << BIT_SHIFT_H2C_PKT_WRITEADDR_8822B)
  2547. #define BIT_CLEAR_H2C_PKT_WRITEADDR_8822B(x) \
  2548. ((x) & (~BITS_H2C_PKT_WRITEADDR_8822B))
  2549. #define BIT_GET_H2C_PKT_WRITEADDR_8822B(x) \
  2550. (((x) >> BIT_SHIFT_H2C_PKT_WRITEADDR_8822B) & \
  2551. BIT_MASK_H2C_PKT_WRITEADDR_8822B)
  2552. #define BIT_SET_H2C_PKT_WRITEADDR_8822B(x, v) \
  2553. (BIT_CLEAR_H2C_PKT_WRITEADDR_8822B(x) | BIT_H2C_PKT_WRITEADDR_8822B(v))
  2554. /* 2 REG_MEM_PWR_CRTL_8822B */
  2555. #define BIT_MEM_BB_SD_8822B BIT(17)
  2556. #define BIT_MEM_BB_DS_8822B BIT(16)
  2557. #define BIT_MEM_BT_DS_8822B BIT(10)
  2558. #define BIT_MEM_SDIO_LS_8822B BIT(9)
  2559. #define BIT_MEM_SDIO_DS_8822B BIT(8)
  2560. #define BIT_MEM_USB_LS_8822B BIT(7)
  2561. #define BIT_MEM_USB_DS_8822B BIT(6)
  2562. #define BIT_MEM_PCI_LS_8822B BIT(5)
  2563. #define BIT_MEM_PCI_DS_8822B BIT(4)
  2564. #define BIT_MEM_WLMAC_LS_8822B BIT(3)
  2565. #define BIT_MEM_WLMAC_DS_8822B BIT(2)
  2566. #define BIT_MEM_WLMCU_LS_8822B BIT(1)
  2567. #define BIT_MEM_WLMCU_DS_8822B BIT(0)
  2568. /* 2 REG_FW_DBG0_8822B */
  2569. #define BIT_SHIFT_FW_DBG0_8822B 0
  2570. #define BIT_MASK_FW_DBG0_8822B 0xffffffffL
  2571. #define BIT_FW_DBG0_8822B(x) \
  2572. (((x) & BIT_MASK_FW_DBG0_8822B) << BIT_SHIFT_FW_DBG0_8822B)
  2573. #define BITS_FW_DBG0_8822B (BIT_MASK_FW_DBG0_8822B << BIT_SHIFT_FW_DBG0_8822B)
  2574. #define BIT_CLEAR_FW_DBG0_8822B(x) ((x) & (~BITS_FW_DBG0_8822B))
  2575. #define BIT_GET_FW_DBG0_8822B(x) \
  2576. (((x) >> BIT_SHIFT_FW_DBG0_8822B) & BIT_MASK_FW_DBG0_8822B)
  2577. #define BIT_SET_FW_DBG0_8822B(x, v) \
  2578. (BIT_CLEAR_FW_DBG0_8822B(x) | BIT_FW_DBG0_8822B(v))
  2579. /* 2 REG_FW_DBG1_8822B */
  2580. #define BIT_SHIFT_FW_DBG1_8822B 0
  2581. #define BIT_MASK_FW_DBG1_8822B 0xffffffffL
  2582. #define BIT_FW_DBG1_8822B(x) \
  2583. (((x) & BIT_MASK_FW_DBG1_8822B) << BIT_SHIFT_FW_DBG1_8822B)
  2584. #define BITS_FW_DBG1_8822B (BIT_MASK_FW_DBG1_8822B << BIT_SHIFT_FW_DBG1_8822B)
  2585. #define BIT_CLEAR_FW_DBG1_8822B(x) ((x) & (~BITS_FW_DBG1_8822B))
  2586. #define BIT_GET_FW_DBG1_8822B(x) \
  2587. (((x) >> BIT_SHIFT_FW_DBG1_8822B) & BIT_MASK_FW_DBG1_8822B)
  2588. #define BIT_SET_FW_DBG1_8822B(x, v) \
  2589. (BIT_CLEAR_FW_DBG1_8822B(x) | BIT_FW_DBG1_8822B(v))
  2590. /* 2 REG_FW_DBG2_8822B */
  2591. #define BIT_SHIFT_FW_DBG2_8822B 0
  2592. #define BIT_MASK_FW_DBG2_8822B 0xffffffffL
  2593. #define BIT_FW_DBG2_8822B(x) \
  2594. (((x) & BIT_MASK_FW_DBG2_8822B) << BIT_SHIFT_FW_DBG2_8822B)
  2595. #define BITS_FW_DBG2_8822B (BIT_MASK_FW_DBG2_8822B << BIT_SHIFT_FW_DBG2_8822B)
  2596. #define BIT_CLEAR_FW_DBG2_8822B(x) ((x) & (~BITS_FW_DBG2_8822B))
  2597. #define BIT_GET_FW_DBG2_8822B(x) \
  2598. (((x) >> BIT_SHIFT_FW_DBG2_8822B) & BIT_MASK_FW_DBG2_8822B)
  2599. #define BIT_SET_FW_DBG2_8822B(x, v) \
  2600. (BIT_CLEAR_FW_DBG2_8822B(x) | BIT_FW_DBG2_8822B(v))
  2601. /* 2 REG_FW_DBG3_8822B */
  2602. #define BIT_SHIFT_FW_DBG3_8822B 0
  2603. #define BIT_MASK_FW_DBG3_8822B 0xffffffffL
  2604. #define BIT_FW_DBG3_8822B(x) \
  2605. (((x) & BIT_MASK_FW_DBG3_8822B) << BIT_SHIFT_FW_DBG3_8822B)
  2606. #define BITS_FW_DBG3_8822B (BIT_MASK_FW_DBG3_8822B << BIT_SHIFT_FW_DBG3_8822B)
  2607. #define BIT_CLEAR_FW_DBG3_8822B(x) ((x) & (~BITS_FW_DBG3_8822B))
  2608. #define BIT_GET_FW_DBG3_8822B(x) \
  2609. (((x) >> BIT_SHIFT_FW_DBG3_8822B) & BIT_MASK_FW_DBG3_8822B)
  2610. #define BIT_SET_FW_DBG3_8822B(x, v) \
  2611. (BIT_CLEAR_FW_DBG3_8822B(x) | BIT_FW_DBG3_8822B(v))
  2612. /* 2 REG_FW_DBG4_8822B */
  2613. #define BIT_SHIFT_FW_DBG4_8822B 0
  2614. #define BIT_MASK_FW_DBG4_8822B 0xffffffffL
  2615. #define BIT_FW_DBG4_8822B(x) \
  2616. (((x) & BIT_MASK_FW_DBG4_8822B) << BIT_SHIFT_FW_DBG4_8822B)
  2617. #define BITS_FW_DBG4_8822B (BIT_MASK_FW_DBG4_8822B << BIT_SHIFT_FW_DBG4_8822B)
  2618. #define BIT_CLEAR_FW_DBG4_8822B(x) ((x) & (~BITS_FW_DBG4_8822B))
  2619. #define BIT_GET_FW_DBG4_8822B(x) \
  2620. (((x) >> BIT_SHIFT_FW_DBG4_8822B) & BIT_MASK_FW_DBG4_8822B)
  2621. #define BIT_SET_FW_DBG4_8822B(x, v) \
  2622. (BIT_CLEAR_FW_DBG4_8822B(x) | BIT_FW_DBG4_8822B(v))
  2623. /* 2 REG_FW_DBG5_8822B */
  2624. #define BIT_SHIFT_FW_DBG5_8822B 0
  2625. #define BIT_MASK_FW_DBG5_8822B 0xffffffffL
  2626. #define BIT_FW_DBG5_8822B(x) \
  2627. (((x) & BIT_MASK_FW_DBG5_8822B) << BIT_SHIFT_FW_DBG5_8822B)
  2628. #define BITS_FW_DBG5_8822B (BIT_MASK_FW_DBG5_8822B << BIT_SHIFT_FW_DBG5_8822B)
  2629. #define BIT_CLEAR_FW_DBG5_8822B(x) ((x) & (~BITS_FW_DBG5_8822B))
  2630. #define BIT_GET_FW_DBG5_8822B(x) \
  2631. (((x) >> BIT_SHIFT_FW_DBG5_8822B) & BIT_MASK_FW_DBG5_8822B)
  2632. #define BIT_SET_FW_DBG5_8822B(x, v) \
  2633. (BIT_CLEAR_FW_DBG5_8822B(x) | BIT_FW_DBG5_8822B(v))
  2634. /* 2 REG_FW_DBG6_8822B */
  2635. #define BIT_SHIFT_FW_DBG6_8822B 0
  2636. #define BIT_MASK_FW_DBG6_8822B 0xffffffffL
  2637. #define BIT_FW_DBG6_8822B(x) \
  2638. (((x) & BIT_MASK_FW_DBG6_8822B) << BIT_SHIFT_FW_DBG6_8822B)
  2639. #define BITS_FW_DBG6_8822B (BIT_MASK_FW_DBG6_8822B << BIT_SHIFT_FW_DBG6_8822B)
  2640. #define BIT_CLEAR_FW_DBG6_8822B(x) ((x) & (~BITS_FW_DBG6_8822B))
  2641. #define BIT_GET_FW_DBG6_8822B(x) \
  2642. (((x) >> BIT_SHIFT_FW_DBG6_8822B) & BIT_MASK_FW_DBG6_8822B)
  2643. #define BIT_SET_FW_DBG6_8822B(x, v) \
  2644. (BIT_CLEAR_FW_DBG6_8822B(x) | BIT_FW_DBG6_8822B(v))
  2645. /* 2 REG_FW_DBG7_8822B */
  2646. #define BIT_SHIFT_FW_DBG7_8822B 0
  2647. #define BIT_MASK_FW_DBG7_8822B 0xffffffffL
  2648. #define BIT_FW_DBG7_8822B(x) \
  2649. (((x) & BIT_MASK_FW_DBG7_8822B) << BIT_SHIFT_FW_DBG7_8822B)
  2650. #define BITS_FW_DBG7_8822B (BIT_MASK_FW_DBG7_8822B << BIT_SHIFT_FW_DBG7_8822B)
  2651. #define BIT_CLEAR_FW_DBG7_8822B(x) ((x) & (~BITS_FW_DBG7_8822B))
  2652. #define BIT_GET_FW_DBG7_8822B(x) \
  2653. (((x) >> BIT_SHIFT_FW_DBG7_8822B) & BIT_MASK_FW_DBG7_8822B)
  2654. #define BIT_SET_FW_DBG7_8822B(x, v) \
  2655. (BIT_CLEAR_FW_DBG7_8822B(x) | BIT_FW_DBG7_8822B(v))
  2656. /* 2 REG_NOT_VALID_8822B */
  2657. /* 2 REG_CR_8822B */
  2658. #define BIT_SHIFT_LBMODE_8822B 24
  2659. #define BIT_MASK_LBMODE_8822B 0x1f
  2660. #define BIT_LBMODE_8822B(x) \
  2661. (((x) & BIT_MASK_LBMODE_8822B) << BIT_SHIFT_LBMODE_8822B)
  2662. #define BITS_LBMODE_8822B (BIT_MASK_LBMODE_8822B << BIT_SHIFT_LBMODE_8822B)
  2663. #define BIT_CLEAR_LBMODE_8822B(x) ((x) & (~BITS_LBMODE_8822B))
  2664. #define BIT_GET_LBMODE_8822B(x) \
  2665. (((x) >> BIT_SHIFT_LBMODE_8822B) & BIT_MASK_LBMODE_8822B)
  2666. #define BIT_SET_LBMODE_8822B(x, v) \
  2667. (BIT_CLEAR_LBMODE_8822B(x) | BIT_LBMODE_8822B(v))
  2668. #define BIT_SHIFT_NETYPE1_8822B 18
  2669. #define BIT_MASK_NETYPE1_8822B 0x3
  2670. #define BIT_NETYPE1_8822B(x) \
  2671. (((x) & BIT_MASK_NETYPE1_8822B) << BIT_SHIFT_NETYPE1_8822B)
  2672. #define BITS_NETYPE1_8822B (BIT_MASK_NETYPE1_8822B << BIT_SHIFT_NETYPE1_8822B)
  2673. #define BIT_CLEAR_NETYPE1_8822B(x) ((x) & (~BITS_NETYPE1_8822B))
  2674. #define BIT_GET_NETYPE1_8822B(x) \
  2675. (((x) >> BIT_SHIFT_NETYPE1_8822B) & BIT_MASK_NETYPE1_8822B)
  2676. #define BIT_SET_NETYPE1_8822B(x, v) \
  2677. (BIT_CLEAR_NETYPE1_8822B(x) | BIT_NETYPE1_8822B(v))
  2678. #define BIT_SHIFT_NETYPE0_8822B 16
  2679. #define BIT_MASK_NETYPE0_8822B 0x3
  2680. #define BIT_NETYPE0_8822B(x) \
  2681. (((x) & BIT_MASK_NETYPE0_8822B) << BIT_SHIFT_NETYPE0_8822B)
  2682. #define BITS_NETYPE0_8822B (BIT_MASK_NETYPE0_8822B << BIT_SHIFT_NETYPE0_8822B)
  2683. #define BIT_CLEAR_NETYPE0_8822B(x) ((x) & (~BITS_NETYPE0_8822B))
  2684. #define BIT_GET_NETYPE0_8822B(x) \
  2685. (((x) >> BIT_SHIFT_NETYPE0_8822B) & BIT_MASK_NETYPE0_8822B)
  2686. #define BIT_SET_NETYPE0_8822B(x, v) \
  2687. (BIT_CLEAR_NETYPE0_8822B(x) | BIT_NETYPE0_8822B(v))
  2688. #define BIT_I2C_MAILBOX_EN_8822B BIT(12)
  2689. #define BIT_SHCUT_EN_8822B BIT(11)
  2690. #define BIT_32K_CAL_TMR_EN_8822B BIT(10)
  2691. #define BIT_MAC_SEC_EN_8822B BIT(9)
  2692. #define BIT_ENSWBCN_8822B BIT(8)
  2693. #define BIT_MACRXEN_8822B BIT(7)
  2694. #define BIT_MACTXEN_8822B BIT(6)
  2695. #define BIT_SCHEDULE_EN_8822B BIT(5)
  2696. #define BIT_PROTOCOL_EN_8822B BIT(4)
  2697. #define BIT_RXDMA_EN_8822B BIT(3)
  2698. #define BIT_TXDMA_EN_8822B BIT(2)
  2699. #define BIT_HCI_RXDMA_EN_8822B BIT(1)
  2700. #define BIT_HCI_TXDMA_EN_8822B BIT(0)
  2701. /* 2 REG_TSF_CLK_STATE_8822B */
  2702. #define BIT_TSF_CLK_STABLE_8822B BIT(15)
  2703. /* 2 REG_TXDMA_PQ_MAP_8822B */
  2704. #define BIT_SHIFT_TXDMA_HIQ_MAP_8822B 14
  2705. #define BIT_MASK_TXDMA_HIQ_MAP_8822B 0x3
  2706. #define BIT_TXDMA_HIQ_MAP_8822B(x) \
  2707. (((x) & BIT_MASK_TXDMA_HIQ_MAP_8822B) << BIT_SHIFT_TXDMA_HIQ_MAP_8822B)
  2708. #define BITS_TXDMA_HIQ_MAP_8822B \
  2709. (BIT_MASK_TXDMA_HIQ_MAP_8822B << BIT_SHIFT_TXDMA_HIQ_MAP_8822B)
  2710. #define BIT_CLEAR_TXDMA_HIQ_MAP_8822B(x) ((x) & (~BITS_TXDMA_HIQ_MAP_8822B))
  2711. #define BIT_GET_TXDMA_HIQ_MAP_8822B(x) \
  2712. (((x) >> BIT_SHIFT_TXDMA_HIQ_MAP_8822B) & BIT_MASK_TXDMA_HIQ_MAP_8822B)
  2713. #define BIT_SET_TXDMA_HIQ_MAP_8822B(x, v) \
  2714. (BIT_CLEAR_TXDMA_HIQ_MAP_8822B(x) | BIT_TXDMA_HIQ_MAP_8822B(v))
  2715. #define BIT_SHIFT_TXDMA_MGQ_MAP_8822B 12
  2716. #define BIT_MASK_TXDMA_MGQ_MAP_8822B 0x3
  2717. #define BIT_TXDMA_MGQ_MAP_8822B(x) \
  2718. (((x) & BIT_MASK_TXDMA_MGQ_MAP_8822B) << BIT_SHIFT_TXDMA_MGQ_MAP_8822B)
  2719. #define BITS_TXDMA_MGQ_MAP_8822B \
  2720. (BIT_MASK_TXDMA_MGQ_MAP_8822B << BIT_SHIFT_TXDMA_MGQ_MAP_8822B)
  2721. #define BIT_CLEAR_TXDMA_MGQ_MAP_8822B(x) ((x) & (~BITS_TXDMA_MGQ_MAP_8822B))
  2722. #define BIT_GET_TXDMA_MGQ_MAP_8822B(x) \
  2723. (((x) >> BIT_SHIFT_TXDMA_MGQ_MAP_8822B) & BIT_MASK_TXDMA_MGQ_MAP_8822B)
  2724. #define BIT_SET_TXDMA_MGQ_MAP_8822B(x, v) \
  2725. (BIT_CLEAR_TXDMA_MGQ_MAP_8822B(x) | BIT_TXDMA_MGQ_MAP_8822B(v))
  2726. #define BIT_SHIFT_TXDMA_BKQ_MAP_8822B 10
  2727. #define BIT_MASK_TXDMA_BKQ_MAP_8822B 0x3
  2728. #define BIT_TXDMA_BKQ_MAP_8822B(x) \
  2729. (((x) & BIT_MASK_TXDMA_BKQ_MAP_8822B) << BIT_SHIFT_TXDMA_BKQ_MAP_8822B)
  2730. #define BITS_TXDMA_BKQ_MAP_8822B \
  2731. (BIT_MASK_TXDMA_BKQ_MAP_8822B << BIT_SHIFT_TXDMA_BKQ_MAP_8822B)
  2732. #define BIT_CLEAR_TXDMA_BKQ_MAP_8822B(x) ((x) & (~BITS_TXDMA_BKQ_MAP_8822B))
  2733. #define BIT_GET_TXDMA_BKQ_MAP_8822B(x) \
  2734. (((x) >> BIT_SHIFT_TXDMA_BKQ_MAP_8822B) & BIT_MASK_TXDMA_BKQ_MAP_8822B)
  2735. #define BIT_SET_TXDMA_BKQ_MAP_8822B(x, v) \
  2736. (BIT_CLEAR_TXDMA_BKQ_MAP_8822B(x) | BIT_TXDMA_BKQ_MAP_8822B(v))
  2737. #define BIT_SHIFT_TXDMA_BEQ_MAP_8822B 8
  2738. #define BIT_MASK_TXDMA_BEQ_MAP_8822B 0x3
  2739. #define BIT_TXDMA_BEQ_MAP_8822B(x) \
  2740. (((x) & BIT_MASK_TXDMA_BEQ_MAP_8822B) << BIT_SHIFT_TXDMA_BEQ_MAP_8822B)
  2741. #define BITS_TXDMA_BEQ_MAP_8822B \
  2742. (BIT_MASK_TXDMA_BEQ_MAP_8822B << BIT_SHIFT_TXDMA_BEQ_MAP_8822B)
  2743. #define BIT_CLEAR_TXDMA_BEQ_MAP_8822B(x) ((x) & (~BITS_TXDMA_BEQ_MAP_8822B))
  2744. #define BIT_GET_TXDMA_BEQ_MAP_8822B(x) \
  2745. (((x) >> BIT_SHIFT_TXDMA_BEQ_MAP_8822B) & BIT_MASK_TXDMA_BEQ_MAP_8822B)
  2746. #define BIT_SET_TXDMA_BEQ_MAP_8822B(x, v) \
  2747. (BIT_CLEAR_TXDMA_BEQ_MAP_8822B(x) | BIT_TXDMA_BEQ_MAP_8822B(v))
  2748. #define BIT_SHIFT_TXDMA_VIQ_MAP_8822B 6
  2749. #define BIT_MASK_TXDMA_VIQ_MAP_8822B 0x3
  2750. #define BIT_TXDMA_VIQ_MAP_8822B(x) \
  2751. (((x) & BIT_MASK_TXDMA_VIQ_MAP_8822B) << BIT_SHIFT_TXDMA_VIQ_MAP_8822B)
  2752. #define BITS_TXDMA_VIQ_MAP_8822B \
  2753. (BIT_MASK_TXDMA_VIQ_MAP_8822B << BIT_SHIFT_TXDMA_VIQ_MAP_8822B)
  2754. #define BIT_CLEAR_TXDMA_VIQ_MAP_8822B(x) ((x) & (~BITS_TXDMA_VIQ_MAP_8822B))
  2755. #define BIT_GET_TXDMA_VIQ_MAP_8822B(x) \
  2756. (((x) >> BIT_SHIFT_TXDMA_VIQ_MAP_8822B) & BIT_MASK_TXDMA_VIQ_MAP_8822B)
  2757. #define BIT_SET_TXDMA_VIQ_MAP_8822B(x, v) \
  2758. (BIT_CLEAR_TXDMA_VIQ_MAP_8822B(x) | BIT_TXDMA_VIQ_MAP_8822B(v))
  2759. #define BIT_SHIFT_TXDMA_VOQ_MAP_8822B 4
  2760. #define BIT_MASK_TXDMA_VOQ_MAP_8822B 0x3
  2761. #define BIT_TXDMA_VOQ_MAP_8822B(x) \
  2762. (((x) & BIT_MASK_TXDMA_VOQ_MAP_8822B) << BIT_SHIFT_TXDMA_VOQ_MAP_8822B)
  2763. #define BITS_TXDMA_VOQ_MAP_8822B \
  2764. (BIT_MASK_TXDMA_VOQ_MAP_8822B << BIT_SHIFT_TXDMA_VOQ_MAP_8822B)
  2765. #define BIT_CLEAR_TXDMA_VOQ_MAP_8822B(x) ((x) & (~BITS_TXDMA_VOQ_MAP_8822B))
  2766. #define BIT_GET_TXDMA_VOQ_MAP_8822B(x) \
  2767. (((x) >> BIT_SHIFT_TXDMA_VOQ_MAP_8822B) & BIT_MASK_TXDMA_VOQ_MAP_8822B)
  2768. #define BIT_SET_TXDMA_VOQ_MAP_8822B(x, v) \
  2769. (BIT_CLEAR_TXDMA_VOQ_MAP_8822B(x) | BIT_TXDMA_VOQ_MAP_8822B(v))
  2770. #define BIT_RXDMA_AGG_EN_8822B BIT(2)
  2771. #define BIT_RXSHFT_EN_8822B BIT(1)
  2772. #define BIT_RXDMA_ARBBW_EN_8822B BIT(0)
  2773. /* 2 REG_TRXFF_BNDY_8822B */
  2774. #define BIT_SHIFT_RXFFOVFL_RSV_V2_8822B 8
  2775. #define BIT_MASK_RXFFOVFL_RSV_V2_8822B 0xf
  2776. #define BIT_RXFFOVFL_RSV_V2_8822B(x) \
  2777. (((x) & BIT_MASK_RXFFOVFL_RSV_V2_8822B) \
  2778. << BIT_SHIFT_RXFFOVFL_RSV_V2_8822B)
  2779. #define BITS_RXFFOVFL_RSV_V2_8822B \
  2780. (BIT_MASK_RXFFOVFL_RSV_V2_8822B << BIT_SHIFT_RXFFOVFL_RSV_V2_8822B)
  2781. #define BIT_CLEAR_RXFFOVFL_RSV_V2_8822B(x) ((x) & (~BITS_RXFFOVFL_RSV_V2_8822B))
  2782. #define BIT_GET_RXFFOVFL_RSV_V2_8822B(x) \
  2783. (((x) >> BIT_SHIFT_RXFFOVFL_RSV_V2_8822B) & \
  2784. BIT_MASK_RXFFOVFL_RSV_V2_8822B)
  2785. #define BIT_SET_RXFFOVFL_RSV_V2_8822B(x, v) \
  2786. (BIT_CLEAR_RXFFOVFL_RSV_V2_8822B(x) | BIT_RXFFOVFL_RSV_V2_8822B(v))
  2787. #define BIT_SHIFT_TXPKTBUF_PGBNDY_8822B 0
  2788. #define BIT_MASK_TXPKTBUF_PGBNDY_8822B 0xff
  2789. #define BIT_TXPKTBUF_PGBNDY_8822B(x) \
  2790. (((x) & BIT_MASK_TXPKTBUF_PGBNDY_8822B) \
  2791. << BIT_SHIFT_TXPKTBUF_PGBNDY_8822B)
  2792. #define BITS_TXPKTBUF_PGBNDY_8822B \
  2793. (BIT_MASK_TXPKTBUF_PGBNDY_8822B << BIT_SHIFT_TXPKTBUF_PGBNDY_8822B)
  2794. #define BIT_CLEAR_TXPKTBUF_PGBNDY_8822B(x) ((x) & (~BITS_TXPKTBUF_PGBNDY_8822B))
  2795. #define BIT_GET_TXPKTBUF_PGBNDY_8822B(x) \
  2796. (((x) >> BIT_SHIFT_TXPKTBUF_PGBNDY_8822B) & \
  2797. BIT_MASK_TXPKTBUF_PGBNDY_8822B)
  2798. #define BIT_SET_TXPKTBUF_PGBNDY_8822B(x, v) \
  2799. (BIT_CLEAR_TXPKTBUF_PGBNDY_8822B(x) | BIT_TXPKTBUF_PGBNDY_8822B(v))
  2800. /* 2 REG_PTA_I2C_MBOX_8822B */
  2801. /* 2 REG_NOT_VALID_8822B */
  2802. #define BIT_SHIFT_I2C_M_STATUS_8822B 8
  2803. #define BIT_MASK_I2C_M_STATUS_8822B 0xf
  2804. #define BIT_I2C_M_STATUS_8822B(x) \
  2805. (((x) & BIT_MASK_I2C_M_STATUS_8822B) << BIT_SHIFT_I2C_M_STATUS_8822B)
  2806. #define BITS_I2C_M_STATUS_8822B \
  2807. (BIT_MASK_I2C_M_STATUS_8822B << BIT_SHIFT_I2C_M_STATUS_8822B)
  2808. #define BIT_CLEAR_I2C_M_STATUS_8822B(x) ((x) & (~BITS_I2C_M_STATUS_8822B))
  2809. #define BIT_GET_I2C_M_STATUS_8822B(x) \
  2810. (((x) >> BIT_SHIFT_I2C_M_STATUS_8822B) & BIT_MASK_I2C_M_STATUS_8822B)
  2811. #define BIT_SET_I2C_M_STATUS_8822B(x, v) \
  2812. (BIT_CLEAR_I2C_M_STATUS_8822B(x) | BIT_I2C_M_STATUS_8822B(v))
  2813. #define BIT_SHIFT_I2C_M_BUS_GNT_FW_8822B 4
  2814. #define BIT_MASK_I2C_M_BUS_GNT_FW_8822B 0x7
  2815. #define BIT_I2C_M_BUS_GNT_FW_8822B(x) \
  2816. (((x) & BIT_MASK_I2C_M_BUS_GNT_FW_8822B) \
  2817. << BIT_SHIFT_I2C_M_BUS_GNT_FW_8822B)
  2818. #define BITS_I2C_M_BUS_GNT_FW_8822B \
  2819. (BIT_MASK_I2C_M_BUS_GNT_FW_8822B << BIT_SHIFT_I2C_M_BUS_GNT_FW_8822B)
  2820. #define BIT_CLEAR_I2C_M_BUS_GNT_FW_8822B(x) \
  2821. ((x) & (~BITS_I2C_M_BUS_GNT_FW_8822B))
  2822. #define BIT_GET_I2C_M_BUS_GNT_FW_8822B(x) \
  2823. (((x) >> BIT_SHIFT_I2C_M_BUS_GNT_FW_8822B) & \
  2824. BIT_MASK_I2C_M_BUS_GNT_FW_8822B)
  2825. #define BIT_SET_I2C_M_BUS_GNT_FW_8822B(x, v) \
  2826. (BIT_CLEAR_I2C_M_BUS_GNT_FW_8822B(x) | BIT_I2C_M_BUS_GNT_FW_8822B(v))
  2827. #define BIT_I2C_M_GNT_FW_8822B BIT(3)
  2828. #define BIT_SHIFT_I2C_M_SPEED_8822B 1
  2829. #define BIT_MASK_I2C_M_SPEED_8822B 0x3
  2830. #define BIT_I2C_M_SPEED_8822B(x) \
  2831. (((x) & BIT_MASK_I2C_M_SPEED_8822B) << BIT_SHIFT_I2C_M_SPEED_8822B)
  2832. #define BITS_I2C_M_SPEED_8822B \
  2833. (BIT_MASK_I2C_M_SPEED_8822B << BIT_SHIFT_I2C_M_SPEED_8822B)
  2834. #define BIT_CLEAR_I2C_M_SPEED_8822B(x) ((x) & (~BITS_I2C_M_SPEED_8822B))
  2835. #define BIT_GET_I2C_M_SPEED_8822B(x) \
  2836. (((x) >> BIT_SHIFT_I2C_M_SPEED_8822B) & BIT_MASK_I2C_M_SPEED_8822B)
  2837. #define BIT_SET_I2C_M_SPEED_8822B(x, v) \
  2838. (BIT_CLEAR_I2C_M_SPEED_8822B(x) | BIT_I2C_M_SPEED_8822B(v))
  2839. #define BIT_I2C_M_UNLOCK_8822B BIT(0)
  2840. /* 2 REG_RXFF_BNDY_8822B */
  2841. /* 2 REG_NOT_VALID_8822B */
  2842. #define BIT_SHIFT_RXFF0_BNDY_V2_8822B 0
  2843. #define BIT_MASK_RXFF0_BNDY_V2_8822B 0x3ffff
  2844. #define BIT_RXFF0_BNDY_V2_8822B(x) \
  2845. (((x) & BIT_MASK_RXFF0_BNDY_V2_8822B) << BIT_SHIFT_RXFF0_BNDY_V2_8822B)
  2846. #define BITS_RXFF0_BNDY_V2_8822B \
  2847. (BIT_MASK_RXFF0_BNDY_V2_8822B << BIT_SHIFT_RXFF0_BNDY_V2_8822B)
  2848. #define BIT_CLEAR_RXFF0_BNDY_V2_8822B(x) ((x) & (~BITS_RXFF0_BNDY_V2_8822B))
  2849. #define BIT_GET_RXFF0_BNDY_V2_8822B(x) \
  2850. (((x) >> BIT_SHIFT_RXFF0_BNDY_V2_8822B) & BIT_MASK_RXFF0_BNDY_V2_8822B)
  2851. #define BIT_SET_RXFF0_BNDY_V2_8822B(x, v) \
  2852. (BIT_CLEAR_RXFF0_BNDY_V2_8822B(x) | BIT_RXFF0_BNDY_V2_8822B(v))
  2853. /* 2 REG_FE1IMR_8822B */
  2854. #define BIT_FS_RXDMA2_DONE_INT_EN_8822B BIT(28)
  2855. #define BIT_FS_RXDONE3_INT_EN_8822B BIT(27)
  2856. #define BIT_FS_RXDONE2_INT_EN_8822B BIT(26)
  2857. #define BIT_FS_RX_BCN_P4_INT_EN_8822B BIT(25)
  2858. #define BIT_FS_RX_BCN_P3_INT_EN_8822B BIT(24)
  2859. #define BIT_FS_RX_BCN_P2_INT_EN_8822B BIT(23)
  2860. #define BIT_FS_RX_BCN_P1_INT_EN_8822B BIT(22)
  2861. #define BIT_FS_RX_BCN_P0_INT_EN_8822B BIT(21)
  2862. #define BIT_FS_RX_UMD0_INT_EN_8822B BIT(20)
  2863. #define BIT_FS_RX_UMD1_INT_EN_8822B BIT(19)
  2864. #define BIT_FS_RX_BMD0_INT_EN_8822B BIT(18)
  2865. #define BIT_FS_RX_BMD1_INT_EN_8822B BIT(17)
  2866. #define BIT_FS_RXDONE_INT_EN_8822B BIT(16)
  2867. #define BIT_FS_WWLAN_INT_EN_8822B BIT(15)
  2868. #define BIT_FS_SOUND_DONE_INT_EN_8822B BIT(14)
  2869. #define BIT_FS_LP_STBY_INT_EN_8822B BIT(13)
  2870. #define BIT_FS_TRL_MTR_INT_EN_8822B BIT(12)
  2871. #define BIT_FS_BF1_PRETO_INT_EN_8822B BIT(11)
  2872. #define BIT_FS_BF0_PRETO_INT_EN_8822B BIT(10)
  2873. #define BIT_FS_PTCL_RELEASE_MACID_INT_EN_8822B BIT(9)
  2874. #define BIT_FS_LTE_COEX_EN_8822B BIT(6)
  2875. #define BIT_FS_WLACTOFF_INT_EN_8822B BIT(5)
  2876. #define BIT_FS_WLACTON_INT_EN_8822B BIT(4)
  2877. #define BIT_FS_BTCMD_INT_EN_8822B BIT(3)
  2878. #define BIT_FS_REG_MAILBOX_TO_I2C_INT_EN_8822B BIT(2)
  2879. #define BIT_FS_TRPC_TO_INT_EN_V1_8822B BIT(1)
  2880. #define BIT_FS_RPC_O_T_INT_EN_V1_8822B BIT(0)
  2881. /* 2 REG_FE1ISR_8822B */
  2882. #define BIT_FS_RXDMA2_DONE_INT_8822B BIT(28)
  2883. #define BIT_FS_RXDONE3_INT_8822B BIT(27)
  2884. #define BIT_FS_RXDONE2_INT_8822B BIT(26)
  2885. #define BIT_FS_RX_BCN_P4_INT_8822B BIT(25)
  2886. #define BIT_FS_RX_BCN_P3_INT_8822B BIT(24)
  2887. #define BIT_FS_RX_BCN_P2_INT_8822B BIT(23)
  2888. #define BIT_FS_RX_BCN_P1_INT_8822B BIT(22)
  2889. #define BIT_FS_RX_BCN_P0_INT_8822B BIT(21)
  2890. #define BIT_FS_RX_UMD0_INT_8822B BIT(20)
  2891. #define BIT_FS_RX_UMD1_INT_8822B BIT(19)
  2892. #define BIT_FS_RX_BMD0_INT_8822B BIT(18)
  2893. #define BIT_FS_RX_BMD1_INT_8822B BIT(17)
  2894. #define BIT_FS_RXDONE_INT_8822B BIT(16)
  2895. #define BIT_FS_WWLAN_INT_8822B BIT(15)
  2896. #define BIT_FS_SOUND_DONE_INT_8822B BIT(14)
  2897. #define BIT_FS_LP_STBY_INT_8822B BIT(13)
  2898. #define BIT_FS_TRL_MTR_INT_8822B BIT(12)
  2899. #define BIT_FS_BF1_PRETO_INT_8822B BIT(11)
  2900. #define BIT_FS_BF0_PRETO_INT_8822B BIT(10)
  2901. #define BIT_FS_PTCL_RELEASE_MACID_INT_8822B BIT(9)
  2902. #define BIT_FS_LTE_COEX_INT_8822B BIT(6)
  2903. #define BIT_FS_WLACTOFF_INT_8822B BIT(5)
  2904. #define BIT_FS_WLACTON_INT_8822B BIT(4)
  2905. #define BIT_FS_BCN_RX_INT_INT_8822B BIT(3)
  2906. #define BIT_FS_MAILBOX_TO_I2C_INT_8822B BIT(2)
  2907. #define BIT_FS_TRPC_TO_INT_8822B BIT(1)
  2908. #define BIT_FS_RPC_O_T_INT_8822B BIT(0)
  2909. /* 2 REG_NOT_VALID_8822B */
  2910. /* 2 REG_CPWM_8822B */
  2911. #define BIT_CPWM_TOGGLING_8822B BIT(31)
  2912. #define BIT_SHIFT_CPWM_MOD_8822B 24
  2913. #define BIT_MASK_CPWM_MOD_8822B 0x7f
  2914. #define BIT_CPWM_MOD_8822B(x) \
  2915. (((x) & BIT_MASK_CPWM_MOD_8822B) << BIT_SHIFT_CPWM_MOD_8822B)
  2916. #define BITS_CPWM_MOD_8822B \
  2917. (BIT_MASK_CPWM_MOD_8822B << BIT_SHIFT_CPWM_MOD_8822B)
  2918. #define BIT_CLEAR_CPWM_MOD_8822B(x) ((x) & (~BITS_CPWM_MOD_8822B))
  2919. #define BIT_GET_CPWM_MOD_8822B(x) \
  2920. (((x) >> BIT_SHIFT_CPWM_MOD_8822B) & BIT_MASK_CPWM_MOD_8822B)
  2921. #define BIT_SET_CPWM_MOD_8822B(x, v) \
  2922. (BIT_CLEAR_CPWM_MOD_8822B(x) | BIT_CPWM_MOD_8822B(v))
  2923. /* 2 REG_FWIMR_8822B */
  2924. #define BIT_FS_TXBCNOK_MB7_INT_EN_8822B BIT(31)
  2925. #define BIT_FS_TXBCNOK_MB6_INT_EN_8822B BIT(30)
  2926. #define BIT_FS_TXBCNOK_MB5_INT_EN_8822B BIT(29)
  2927. #define BIT_FS_TXBCNOK_MB4_INT_EN_8822B BIT(28)
  2928. #define BIT_FS_TXBCNOK_MB3_INT_EN_8822B BIT(27)
  2929. #define BIT_FS_TXBCNOK_MB2_INT_EN_8822B BIT(26)
  2930. #define BIT_FS_TXBCNOK_MB1_INT_EN_8822B BIT(25)
  2931. #define BIT_FS_TXBCNOK_MB0_INT_EN_8822B BIT(24)
  2932. #define BIT_FS_TXBCNERR_MB7_INT_EN_8822B BIT(23)
  2933. #define BIT_FS_TXBCNERR_MB6_INT_EN_8822B BIT(22)
  2934. #define BIT_FS_TXBCNERR_MB5_INT_EN_8822B BIT(21)
  2935. #define BIT_FS_TXBCNERR_MB4_INT_EN_8822B BIT(20)
  2936. #define BIT_FS_TXBCNERR_MB3_INT_EN_8822B BIT(19)
  2937. #define BIT_FS_TXBCNERR_MB2_INT_EN_8822B BIT(18)
  2938. #define BIT_FS_TXBCNERR_MB1_INT_EN_8822B BIT(17)
  2939. #define BIT_FS_TXBCNERR_MB0_INT_EN_8822B BIT(16)
  2940. #define BIT_CPU_MGQ_TXDONE_INT_EN_8822B BIT(15)
  2941. #define BIT_SIFS_OVERSPEC_INT_EN_8822B BIT(14)
  2942. #define BIT_FS_MGNTQ_RPTR_RELEASE_INT_EN_8822B BIT(13)
  2943. #define BIT_FS_MGNTQFF_TO_INT_EN_8822B BIT(12)
  2944. #define BIT_FS_CPUMGQ_ERR_INT_EN_8822B BIT(11)
  2945. #define BIT_FS_DDMA0_LP_INT_EN_8822B BIT(9)
  2946. #define BIT_FS_DDMA0_HP_INT_EN_8822B BIT(8)
  2947. #define BIT_FS_TRXRPT_INT_EN_8822B BIT(7)
  2948. #define BIT_FS_C2H_W_READY_INT_EN_8822B BIT(6)
  2949. #define BIT_FS_HRCV_INT_EN_8822B BIT(5)
  2950. #define BIT_FS_H2CCMD_INT_EN_8822B BIT(4)
  2951. #define BIT_FS_TXPKTIN_INT_EN_8822B BIT(3)
  2952. #define BIT_FS_ERRORHDL_INT_EN_8822B BIT(2)
  2953. #define BIT_FS_TXCCX_INT_EN_8822B BIT(1)
  2954. #define BIT_FS_TXCLOSE_INT_EN_8822B BIT(0)
  2955. /* 2 REG_FWISR_8822B */
  2956. #define BIT_FS_TXBCNOK_MB7_INT_8822B BIT(31)
  2957. #define BIT_FS_TXBCNOK_MB6_INT_8822B BIT(30)
  2958. #define BIT_FS_TXBCNOK_MB5_INT_8822B BIT(29)
  2959. #define BIT_FS_TXBCNOK_MB4_INT_8822B BIT(28)
  2960. #define BIT_FS_TXBCNOK_MB3_INT_8822B BIT(27)
  2961. #define BIT_FS_TXBCNOK_MB2_INT_8822B BIT(26)
  2962. #define BIT_FS_TXBCNOK_MB1_INT_8822B BIT(25)
  2963. #define BIT_FS_TXBCNOK_MB0_INT_8822B BIT(24)
  2964. #define BIT_FS_TXBCNERR_MB7_INT_8822B BIT(23)
  2965. #define BIT_FS_TXBCNERR_MB6_INT_8822B BIT(22)
  2966. #define BIT_FS_TXBCNERR_MB5_INT_8822B BIT(21)
  2967. #define BIT_FS_TXBCNERR_MB4_INT_8822B BIT(20)
  2968. #define BIT_FS_TXBCNERR_MB3_INT_8822B BIT(19)
  2969. #define BIT_FS_TXBCNERR_MB2_INT_8822B BIT(18)
  2970. #define BIT_FS_TXBCNERR_MB1_INT_8822B BIT(17)
  2971. #define BIT_FS_TXBCNERR_MB0_INT_8822B BIT(16)
  2972. #define BIT_CPU_MGQ_TXDONE_INT_8822B BIT(15)
  2973. #define BIT_SIFS_OVERSPEC_INT_8822B BIT(14)
  2974. #define BIT_FS_MGNTQ_RPTR_RELEASE_INT_8822B BIT(13)
  2975. #define BIT_FS_MGNTQFF_TO_INT_8822B BIT(12)
  2976. #define BIT_FS_CPUMGQ_ERR_INT_8822B BIT(11)
  2977. #define BIT_FS_DDMA0_LP_INT_8822B BIT(9)
  2978. #define BIT_FS_DDMA0_HP_INT_8822B BIT(8)
  2979. #define BIT_FS_TRXRPT_INT_8822B BIT(7)
  2980. #define BIT_FS_C2H_W_READY_INT_8822B BIT(6)
  2981. #define BIT_FS_HRCV_INT_8822B BIT(5)
  2982. #define BIT_FS_H2CCMD_INT_8822B BIT(4)
  2983. #define BIT_FS_TXPKTIN_INT_8822B BIT(3)
  2984. #define BIT_FS_ERRORHDL_INT_8822B BIT(2)
  2985. #define BIT_FS_TXCCX_INT_8822B BIT(1)
  2986. #define BIT_FS_TXCLOSE_INT_8822B BIT(0)
  2987. /* 2 REG_FTIMR_8822B */
  2988. #define BIT_PS_TIMER_C_EARLY_INT_EN_8822B BIT(23)
  2989. #define BIT_PS_TIMER_B_EARLY_INT_EN_8822B BIT(22)
  2990. #define BIT_PS_TIMER_A_EARLY_INT_EN_8822B BIT(21)
  2991. #define BIT_CPUMGQ_TX_TIMER_EARLY_INT_EN_8822B BIT(20)
  2992. #define BIT_PS_TIMER_C_INT_EN_8822B BIT(19)
  2993. #define BIT_PS_TIMER_B_INT_EN_8822B BIT(18)
  2994. #define BIT_PS_TIMER_A_INT_EN_8822B BIT(17)
  2995. #define BIT_CPUMGQ_TX_TIMER_INT_EN_8822B BIT(16)
  2996. #define BIT_FS_PS_TIMEOUT2_EN_8822B BIT(15)
  2997. #define BIT_FS_PS_TIMEOUT1_EN_8822B BIT(14)
  2998. #define BIT_FS_PS_TIMEOUT0_EN_8822B BIT(13)
  2999. #define BIT_FS_GTINT8_EN_8822B BIT(8)
  3000. #define BIT_FS_GTINT7_EN_8822B BIT(7)
  3001. #define BIT_FS_GTINT6_EN_8822B BIT(6)
  3002. #define BIT_FS_GTINT5_EN_8822B BIT(5)
  3003. #define BIT_FS_GTINT4_EN_8822B BIT(4)
  3004. #define BIT_FS_GTINT3_EN_8822B BIT(3)
  3005. #define BIT_FS_GTINT2_EN_8822B BIT(2)
  3006. #define BIT_FS_GTINT1_EN_8822B BIT(1)
  3007. #define BIT_FS_GTINT0_EN_8822B BIT(0)
  3008. /* 2 REG_FTISR_8822B */
  3009. #define BIT_PS_TIMER_C_EARLY__INT_8822B BIT(23)
  3010. #define BIT_PS_TIMER_B_EARLY__INT_8822B BIT(22)
  3011. #define BIT_PS_TIMER_A_EARLY__INT_8822B BIT(21)
  3012. #define BIT_CPUMGQ_TX_TIMER_EARLY_INT_8822B BIT(20)
  3013. #define BIT_PS_TIMER_C_INT_8822B BIT(19)
  3014. #define BIT_PS_TIMER_B_INT_8822B BIT(18)
  3015. #define BIT_PS_TIMER_A_INT_8822B BIT(17)
  3016. #define BIT_CPUMGQ_TX_TIMER_INT_8822B BIT(16)
  3017. #define BIT_FS_PS_TIMEOUT2_INT_8822B BIT(15)
  3018. #define BIT_FS_PS_TIMEOUT1_INT_8822B BIT(14)
  3019. #define BIT_FS_PS_TIMEOUT0_INT_8822B BIT(13)
  3020. #define BIT_FS_GTINT8_INT_8822B BIT(8)
  3021. #define BIT_FS_GTINT7_INT_8822B BIT(7)
  3022. #define BIT_FS_GTINT6_INT_8822B BIT(6)
  3023. #define BIT_FS_GTINT5_INT_8822B BIT(5)
  3024. #define BIT_FS_GTINT4_INT_8822B BIT(4)
  3025. #define BIT_FS_GTINT3_INT_8822B BIT(3)
  3026. #define BIT_FS_GTINT2_INT_8822B BIT(2)
  3027. #define BIT_FS_GTINT1_INT_8822B BIT(1)
  3028. #define BIT_FS_GTINT0_INT_8822B BIT(0)
  3029. /* 2 REG_PKTBUF_DBG_CTRL_8822B */
  3030. #define BIT_SHIFT_PKTBUF_WRITE_EN_8822B 24
  3031. #define BIT_MASK_PKTBUF_WRITE_EN_8822B 0xff
  3032. #define BIT_PKTBUF_WRITE_EN_8822B(x) \
  3033. (((x) & BIT_MASK_PKTBUF_WRITE_EN_8822B) \
  3034. << BIT_SHIFT_PKTBUF_WRITE_EN_8822B)
  3035. #define BITS_PKTBUF_WRITE_EN_8822B \
  3036. (BIT_MASK_PKTBUF_WRITE_EN_8822B << BIT_SHIFT_PKTBUF_WRITE_EN_8822B)
  3037. #define BIT_CLEAR_PKTBUF_WRITE_EN_8822B(x) ((x) & (~BITS_PKTBUF_WRITE_EN_8822B))
  3038. #define BIT_GET_PKTBUF_WRITE_EN_8822B(x) \
  3039. (((x) >> BIT_SHIFT_PKTBUF_WRITE_EN_8822B) & \
  3040. BIT_MASK_PKTBUF_WRITE_EN_8822B)
  3041. #define BIT_SET_PKTBUF_WRITE_EN_8822B(x, v) \
  3042. (BIT_CLEAR_PKTBUF_WRITE_EN_8822B(x) | BIT_PKTBUF_WRITE_EN_8822B(v))
  3043. #define BIT_TXRPTBUF_DBG_8822B BIT(23)
  3044. /* 2 REG_NOT_VALID_8822B */
  3045. #define BIT_TXPKTBUF_DBG_V2_8822B BIT(20)
  3046. #define BIT_RXPKTBUF_DBG_8822B BIT(16)
  3047. #define BIT_SHIFT_PKTBUF_DBG_ADDR_8822B 0
  3048. #define BIT_MASK_PKTBUF_DBG_ADDR_8822B 0x1fff
  3049. #define BIT_PKTBUF_DBG_ADDR_8822B(x) \
  3050. (((x) & BIT_MASK_PKTBUF_DBG_ADDR_8822B) \
  3051. << BIT_SHIFT_PKTBUF_DBG_ADDR_8822B)
  3052. #define BITS_PKTBUF_DBG_ADDR_8822B \
  3053. (BIT_MASK_PKTBUF_DBG_ADDR_8822B << BIT_SHIFT_PKTBUF_DBG_ADDR_8822B)
  3054. #define BIT_CLEAR_PKTBUF_DBG_ADDR_8822B(x) ((x) & (~BITS_PKTBUF_DBG_ADDR_8822B))
  3055. #define BIT_GET_PKTBUF_DBG_ADDR_8822B(x) \
  3056. (((x) >> BIT_SHIFT_PKTBUF_DBG_ADDR_8822B) & \
  3057. BIT_MASK_PKTBUF_DBG_ADDR_8822B)
  3058. #define BIT_SET_PKTBUF_DBG_ADDR_8822B(x, v) \
  3059. (BIT_CLEAR_PKTBUF_DBG_ADDR_8822B(x) | BIT_PKTBUF_DBG_ADDR_8822B(v))
  3060. /* 2 REG_PKTBUF_DBG_DATA_L_8822B */
  3061. #define BIT_SHIFT_PKTBUF_DBG_DATA_L_8822B 0
  3062. #define BIT_MASK_PKTBUF_DBG_DATA_L_8822B 0xffffffffL
  3063. #define BIT_PKTBUF_DBG_DATA_L_8822B(x) \
  3064. (((x) & BIT_MASK_PKTBUF_DBG_DATA_L_8822B) \
  3065. << BIT_SHIFT_PKTBUF_DBG_DATA_L_8822B)
  3066. #define BITS_PKTBUF_DBG_DATA_L_8822B \
  3067. (BIT_MASK_PKTBUF_DBG_DATA_L_8822B << BIT_SHIFT_PKTBUF_DBG_DATA_L_8822B)
  3068. #define BIT_CLEAR_PKTBUF_DBG_DATA_L_8822B(x) \
  3069. ((x) & (~BITS_PKTBUF_DBG_DATA_L_8822B))
  3070. #define BIT_GET_PKTBUF_DBG_DATA_L_8822B(x) \
  3071. (((x) >> BIT_SHIFT_PKTBUF_DBG_DATA_L_8822B) & \
  3072. BIT_MASK_PKTBUF_DBG_DATA_L_8822B)
  3073. #define BIT_SET_PKTBUF_DBG_DATA_L_8822B(x, v) \
  3074. (BIT_CLEAR_PKTBUF_DBG_DATA_L_8822B(x) | BIT_PKTBUF_DBG_DATA_L_8822B(v))
  3075. /* 2 REG_PKTBUF_DBG_DATA_H_8822B */
  3076. #define BIT_SHIFT_PKTBUF_DBG_DATA_H_8822B 0
  3077. #define BIT_MASK_PKTBUF_DBG_DATA_H_8822B 0xffffffffL
  3078. #define BIT_PKTBUF_DBG_DATA_H_8822B(x) \
  3079. (((x) & BIT_MASK_PKTBUF_DBG_DATA_H_8822B) \
  3080. << BIT_SHIFT_PKTBUF_DBG_DATA_H_8822B)
  3081. #define BITS_PKTBUF_DBG_DATA_H_8822B \
  3082. (BIT_MASK_PKTBUF_DBG_DATA_H_8822B << BIT_SHIFT_PKTBUF_DBG_DATA_H_8822B)
  3083. #define BIT_CLEAR_PKTBUF_DBG_DATA_H_8822B(x) \
  3084. ((x) & (~BITS_PKTBUF_DBG_DATA_H_8822B))
  3085. #define BIT_GET_PKTBUF_DBG_DATA_H_8822B(x) \
  3086. (((x) >> BIT_SHIFT_PKTBUF_DBG_DATA_H_8822B) & \
  3087. BIT_MASK_PKTBUF_DBG_DATA_H_8822B)
  3088. #define BIT_SET_PKTBUF_DBG_DATA_H_8822B(x, v) \
  3089. (BIT_CLEAR_PKTBUF_DBG_DATA_H_8822B(x) | BIT_PKTBUF_DBG_DATA_H_8822B(v))
  3090. /* 2 REG_CPWM2_8822B */
  3091. #define BIT_SHIFT_L0S_TO_RCVY_NUM_8822B 16
  3092. #define BIT_MASK_L0S_TO_RCVY_NUM_8822B 0xff
  3093. #define BIT_L0S_TO_RCVY_NUM_8822B(x) \
  3094. (((x) & BIT_MASK_L0S_TO_RCVY_NUM_8822B) \
  3095. << BIT_SHIFT_L0S_TO_RCVY_NUM_8822B)
  3096. #define BITS_L0S_TO_RCVY_NUM_8822B \
  3097. (BIT_MASK_L0S_TO_RCVY_NUM_8822B << BIT_SHIFT_L0S_TO_RCVY_NUM_8822B)
  3098. #define BIT_CLEAR_L0S_TO_RCVY_NUM_8822B(x) ((x) & (~BITS_L0S_TO_RCVY_NUM_8822B))
  3099. #define BIT_GET_L0S_TO_RCVY_NUM_8822B(x) \
  3100. (((x) >> BIT_SHIFT_L0S_TO_RCVY_NUM_8822B) & \
  3101. BIT_MASK_L0S_TO_RCVY_NUM_8822B)
  3102. #define BIT_SET_L0S_TO_RCVY_NUM_8822B(x, v) \
  3103. (BIT_CLEAR_L0S_TO_RCVY_NUM_8822B(x) | BIT_L0S_TO_RCVY_NUM_8822B(v))
  3104. #define BIT_CPWM2_TOGGLING_8822B BIT(15)
  3105. #define BIT_SHIFT_CPWM2_MOD_8822B 0
  3106. #define BIT_MASK_CPWM2_MOD_8822B 0x7fff
  3107. #define BIT_CPWM2_MOD_8822B(x) \
  3108. (((x) & BIT_MASK_CPWM2_MOD_8822B) << BIT_SHIFT_CPWM2_MOD_8822B)
  3109. #define BITS_CPWM2_MOD_8822B \
  3110. (BIT_MASK_CPWM2_MOD_8822B << BIT_SHIFT_CPWM2_MOD_8822B)
  3111. #define BIT_CLEAR_CPWM2_MOD_8822B(x) ((x) & (~BITS_CPWM2_MOD_8822B))
  3112. #define BIT_GET_CPWM2_MOD_8822B(x) \
  3113. (((x) >> BIT_SHIFT_CPWM2_MOD_8822B) & BIT_MASK_CPWM2_MOD_8822B)
  3114. #define BIT_SET_CPWM2_MOD_8822B(x, v) \
  3115. (BIT_CLEAR_CPWM2_MOD_8822B(x) | BIT_CPWM2_MOD_8822B(v))
  3116. /* 2 REG_NOT_VALID_8822B */
  3117. /* 2 REG_TC0_CTRL_8822B */
  3118. #define BIT_TC0INT_EN_8822B BIT(26)
  3119. #define BIT_TC0MODE_8822B BIT(25)
  3120. #define BIT_TC0EN_8822B BIT(24)
  3121. #define BIT_SHIFT_TC0DATA_8822B 0
  3122. #define BIT_MASK_TC0DATA_8822B 0xffffff
  3123. #define BIT_TC0DATA_8822B(x) \
  3124. (((x) & BIT_MASK_TC0DATA_8822B) << BIT_SHIFT_TC0DATA_8822B)
  3125. #define BITS_TC0DATA_8822B (BIT_MASK_TC0DATA_8822B << BIT_SHIFT_TC0DATA_8822B)
  3126. #define BIT_CLEAR_TC0DATA_8822B(x) ((x) & (~BITS_TC0DATA_8822B))
  3127. #define BIT_GET_TC0DATA_8822B(x) \
  3128. (((x) >> BIT_SHIFT_TC0DATA_8822B) & BIT_MASK_TC0DATA_8822B)
  3129. #define BIT_SET_TC0DATA_8822B(x, v) \
  3130. (BIT_CLEAR_TC0DATA_8822B(x) | BIT_TC0DATA_8822B(v))
  3131. /* 2 REG_TC1_CTRL_8822B */
  3132. #define BIT_TC1INT_EN_8822B BIT(26)
  3133. #define BIT_TC1MODE_8822B BIT(25)
  3134. #define BIT_TC1EN_8822B BIT(24)
  3135. #define BIT_SHIFT_TC1DATA_8822B 0
  3136. #define BIT_MASK_TC1DATA_8822B 0xffffff
  3137. #define BIT_TC1DATA_8822B(x) \
  3138. (((x) & BIT_MASK_TC1DATA_8822B) << BIT_SHIFT_TC1DATA_8822B)
  3139. #define BITS_TC1DATA_8822B (BIT_MASK_TC1DATA_8822B << BIT_SHIFT_TC1DATA_8822B)
  3140. #define BIT_CLEAR_TC1DATA_8822B(x) ((x) & (~BITS_TC1DATA_8822B))
  3141. #define BIT_GET_TC1DATA_8822B(x) \
  3142. (((x) >> BIT_SHIFT_TC1DATA_8822B) & BIT_MASK_TC1DATA_8822B)
  3143. #define BIT_SET_TC1DATA_8822B(x, v) \
  3144. (BIT_CLEAR_TC1DATA_8822B(x) | BIT_TC1DATA_8822B(v))
  3145. /* 2 REG_TC2_CTRL_8822B */
  3146. #define BIT_TC2INT_EN_8822B BIT(26)
  3147. #define BIT_TC2MODE_8822B BIT(25)
  3148. #define BIT_TC2EN_8822B BIT(24)
  3149. #define BIT_SHIFT_TC2DATA_8822B 0
  3150. #define BIT_MASK_TC2DATA_8822B 0xffffff
  3151. #define BIT_TC2DATA_8822B(x) \
  3152. (((x) & BIT_MASK_TC2DATA_8822B) << BIT_SHIFT_TC2DATA_8822B)
  3153. #define BITS_TC2DATA_8822B (BIT_MASK_TC2DATA_8822B << BIT_SHIFT_TC2DATA_8822B)
  3154. #define BIT_CLEAR_TC2DATA_8822B(x) ((x) & (~BITS_TC2DATA_8822B))
  3155. #define BIT_GET_TC2DATA_8822B(x) \
  3156. (((x) >> BIT_SHIFT_TC2DATA_8822B) & BIT_MASK_TC2DATA_8822B)
  3157. #define BIT_SET_TC2DATA_8822B(x, v) \
  3158. (BIT_CLEAR_TC2DATA_8822B(x) | BIT_TC2DATA_8822B(v))
  3159. /* 2 REG_TC3_CTRL_8822B */
  3160. #define BIT_TC3INT_EN_8822B BIT(26)
  3161. #define BIT_TC3MODE_8822B BIT(25)
  3162. #define BIT_TC3EN_8822B BIT(24)
  3163. #define BIT_SHIFT_TC3DATA_8822B 0
  3164. #define BIT_MASK_TC3DATA_8822B 0xffffff
  3165. #define BIT_TC3DATA_8822B(x) \
  3166. (((x) & BIT_MASK_TC3DATA_8822B) << BIT_SHIFT_TC3DATA_8822B)
  3167. #define BITS_TC3DATA_8822B (BIT_MASK_TC3DATA_8822B << BIT_SHIFT_TC3DATA_8822B)
  3168. #define BIT_CLEAR_TC3DATA_8822B(x) ((x) & (~BITS_TC3DATA_8822B))
  3169. #define BIT_GET_TC3DATA_8822B(x) \
  3170. (((x) >> BIT_SHIFT_TC3DATA_8822B) & BIT_MASK_TC3DATA_8822B)
  3171. #define BIT_SET_TC3DATA_8822B(x, v) \
  3172. (BIT_CLEAR_TC3DATA_8822B(x) | BIT_TC3DATA_8822B(v))
  3173. /* 2 REG_TC4_CTRL_8822B */
  3174. #define BIT_TC4INT_EN_8822B BIT(26)
  3175. #define BIT_TC4MODE_8822B BIT(25)
  3176. #define BIT_TC4EN_8822B BIT(24)
  3177. #define BIT_SHIFT_TC4DATA_8822B 0
  3178. #define BIT_MASK_TC4DATA_8822B 0xffffff
  3179. #define BIT_TC4DATA_8822B(x) \
  3180. (((x) & BIT_MASK_TC4DATA_8822B) << BIT_SHIFT_TC4DATA_8822B)
  3181. #define BITS_TC4DATA_8822B (BIT_MASK_TC4DATA_8822B << BIT_SHIFT_TC4DATA_8822B)
  3182. #define BIT_CLEAR_TC4DATA_8822B(x) ((x) & (~BITS_TC4DATA_8822B))
  3183. #define BIT_GET_TC4DATA_8822B(x) \
  3184. (((x) >> BIT_SHIFT_TC4DATA_8822B) & BIT_MASK_TC4DATA_8822B)
  3185. #define BIT_SET_TC4DATA_8822B(x, v) \
  3186. (BIT_CLEAR_TC4DATA_8822B(x) | BIT_TC4DATA_8822B(v))
  3187. /* 2 REG_TCUNIT_BASE_8822B */
  3188. #define BIT_SHIFT_TCUNIT_BASE_8822B 0
  3189. #define BIT_MASK_TCUNIT_BASE_8822B 0x3fff
  3190. #define BIT_TCUNIT_BASE_8822B(x) \
  3191. (((x) & BIT_MASK_TCUNIT_BASE_8822B) << BIT_SHIFT_TCUNIT_BASE_8822B)
  3192. #define BITS_TCUNIT_BASE_8822B \
  3193. (BIT_MASK_TCUNIT_BASE_8822B << BIT_SHIFT_TCUNIT_BASE_8822B)
  3194. #define BIT_CLEAR_TCUNIT_BASE_8822B(x) ((x) & (~BITS_TCUNIT_BASE_8822B))
  3195. #define BIT_GET_TCUNIT_BASE_8822B(x) \
  3196. (((x) >> BIT_SHIFT_TCUNIT_BASE_8822B) & BIT_MASK_TCUNIT_BASE_8822B)
  3197. #define BIT_SET_TCUNIT_BASE_8822B(x, v) \
  3198. (BIT_CLEAR_TCUNIT_BASE_8822B(x) | BIT_TCUNIT_BASE_8822B(v))
  3199. /* 2 REG_TC5_CTRL_8822B */
  3200. #define BIT_TC5INT_EN_8822B BIT(26)
  3201. #define BIT_TC5MODE_8822B BIT(25)
  3202. #define BIT_TC5EN_8822B BIT(24)
  3203. #define BIT_SHIFT_TC5DATA_8822B 0
  3204. #define BIT_MASK_TC5DATA_8822B 0xffffff
  3205. #define BIT_TC5DATA_8822B(x) \
  3206. (((x) & BIT_MASK_TC5DATA_8822B) << BIT_SHIFT_TC5DATA_8822B)
  3207. #define BITS_TC5DATA_8822B (BIT_MASK_TC5DATA_8822B << BIT_SHIFT_TC5DATA_8822B)
  3208. #define BIT_CLEAR_TC5DATA_8822B(x) ((x) & (~BITS_TC5DATA_8822B))
  3209. #define BIT_GET_TC5DATA_8822B(x) \
  3210. (((x) >> BIT_SHIFT_TC5DATA_8822B) & BIT_MASK_TC5DATA_8822B)
  3211. #define BIT_SET_TC5DATA_8822B(x, v) \
  3212. (BIT_CLEAR_TC5DATA_8822B(x) | BIT_TC5DATA_8822B(v))
  3213. /* 2 REG_TC6_CTRL_8822B */
  3214. #define BIT_TC6INT_EN_8822B BIT(26)
  3215. #define BIT_TC6MODE_8822B BIT(25)
  3216. #define BIT_TC6EN_8822B BIT(24)
  3217. #define BIT_SHIFT_TC6DATA_8822B 0
  3218. #define BIT_MASK_TC6DATA_8822B 0xffffff
  3219. #define BIT_TC6DATA_8822B(x) \
  3220. (((x) & BIT_MASK_TC6DATA_8822B) << BIT_SHIFT_TC6DATA_8822B)
  3221. #define BITS_TC6DATA_8822B (BIT_MASK_TC6DATA_8822B << BIT_SHIFT_TC6DATA_8822B)
  3222. #define BIT_CLEAR_TC6DATA_8822B(x) ((x) & (~BITS_TC6DATA_8822B))
  3223. #define BIT_GET_TC6DATA_8822B(x) \
  3224. (((x) >> BIT_SHIFT_TC6DATA_8822B) & BIT_MASK_TC6DATA_8822B)
  3225. #define BIT_SET_TC6DATA_8822B(x, v) \
  3226. (BIT_CLEAR_TC6DATA_8822B(x) | BIT_TC6DATA_8822B(v))
  3227. /* 2 REG_MBIST_FAIL_8822B */
  3228. #define BIT_SHIFT_8051_MBIST_FAIL_8822B 26
  3229. #define BIT_MASK_8051_MBIST_FAIL_8822B 0x7
  3230. #define BIT_8051_MBIST_FAIL_8822B(x) \
  3231. (((x) & BIT_MASK_8051_MBIST_FAIL_8822B) \
  3232. << BIT_SHIFT_8051_MBIST_FAIL_8822B)
  3233. #define BITS_8051_MBIST_FAIL_8822B \
  3234. (BIT_MASK_8051_MBIST_FAIL_8822B << BIT_SHIFT_8051_MBIST_FAIL_8822B)
  3235. #define BIT_CLEAR_8051_MBIST_FAIL_8822B(x) ((x) & (~BITS_8051_MBIST_FAIL_8822B))
  3236. #define BIT_GET_8051_MBIST_FAIL_8822B(x) \
  3237. (((x) >> BIT_SHIFT_8051_MBIST_FAIL_8822B) & \
  3238. BIT_MASK_8051_MBIST_FAIL_8822B)
  3239. #define BIT_SET_8051_MBIST_FAIL_8822B(x, v) \
  3240. (BIT_CLEAR_8051_MBIST_FAIL_8822B(x) | BIT_8051_MBIST_FAIL_8822B(v))
  3241. #define BIT_SHIFT_USB_MBIST_FAIL_8822B 24
  3242. #define BIT_MASK_USB_MBIST_FAIL_8822B 0x3
  3243. #define BIT_USB_MBIST_FAIL_8822B(x) \
  3244. (((x) & BIT_MASK_USB_MBIST_FAIL_8822B) \
  3245. << BIT_SHIFT_USB_MBIST_FAIL_8822B)
  3246. #define BITS_USB_MBIST_FAIL_8822B \
  3247. (BIT_MASK_USB_MBIST_FAIL_8822B << BIT_SHIFT_USB_MBIST_FAIL_8822B)
  3248. #define BIT_CLEAR_USB_MBIST_FAIL_8822B(x) ((x) & (~BITS_USB_MBIST_FAIL_8822B))
  3249. #define BIT_GET_USB_MBIST_FAIL_8822B(x) \
  3250. (((x) >> BIT_SHIFT_USB_MBIST_FAIL_8822B) & \
  3251. BIT_MASK_USB_MBIST_FAIL_8822B)
  3252. #define BIT_SET_USB_MBIST_FAIL_8822B(x, v) \
  3253. (BIT_CLEAR_USB_MBIST_FAIL_8822B(x) | BIT_USB_MBIST_FAIL_8822B(v))
  3254. #define BIT_SHIFT_PCIE_MBIST_FAIL_8822B 16
  3255. #define BIT_MASK_PCIE_MBIST_FAIL_8822B 0x3f
  3256. #define BIT_PCIE_MBIST_FAIL_8822B(x) \
  3257. (((x) & BIT_MASK_PCIE_MBIST_FAIL_8822B) \
  3258. << BIT_SHIFT_PCIE_MBIST_FAIL_8822B)
  3259. #define BITS_PCIE_MBIST_FAIL_8822B \
  3260. (BIT_MASK_PCIE_MBIST_FAIL_8822B << BIT_SHIFT_PCIE_MBIST_FAIL_8822B)
  3261. #define BIT_CLEAR_PCIE_MBIST_FAIL_8822B(x) ((x) & (~BITS_PCIE_MBIST_FAIL_8822B))
  3262. #define BIT_GET_PCIE_MBIST_FAIL_8822B(x) \
  3263. (((x) >> BIT_SHIFT_PCIE_MBIST_FAIL_8822B) & \
  3264. BIT_MASK_PCIE_MBIST_FAIL_8822B)
  3265. #define BIT_SET_PCIE_MBIST_FAIL_8822B(x, v) \
  3266. (BIT_CLEAR_PCIE_MBIST_FAIL_8822B(x) | BIT_PCIE_MBIST_FAIL_8822B(v))
  3267. #define BIT_SHIFT_MAC_MBIST_FAIL_8822B 0
  3268. #define BIT_MASK_MAC_MBIST_FAIL_8822B 0xfff
  3269. #define BIT_MAC_MBIST_FAIL_8822B(x) \
  3270. (((x) & BIT_MASK_MAC_MBIST_FAIL_8822B) \
  3271. << BIT_SHIFT_MAC_MBIST_FAIL_8822B)
  3272. #define BITS_MAC_MBIST_FAIL_8822B \
  3273. (BIT_MASK_MAC_MBIST_FAIL_8822B << BIT_SHIFT_MAC_MBIST_FAIL_8822B)
  3274. #define BIT_CLEAR_MAC_MBIST_FAIL_8822B(x) ((x) & (~BITS_MAC_MBIST_FAIL_8822B))
  3275. #define BIT_GET_MAC_MBIST_FAIL_8822B(x) \
  3276. (((x) >> BIT_SHIFT_MAC_MBIST_FAIL_8822B) & \
  3277. BIT_MASK_MAC_MBIST_FAIL_8822B)
  3278. #define BIT_SET_MAC_MBIST_FAIL_8822B(x, v) \
  3279. (BIT_CLEAR_MAC_MBIST_FAIL_8822B(x) | BIT_MAC_MBIST_FAIL_8822B(v))
  3280. /* 2 REG_MBIST_START_PAUSE_8822B */
  3281. #define BIT_SHIFT_8051_MBIST_START_PAUSE_8822B 26
  3282. #define BIT_MASK_8051_MBIST_START_PAUSE_8822B 0x7
  3283. #define BIT_8051_MBIST_START_PAUSE_8822B(x) \
  3284. (((x) & BIT_MASK_8051_MBIST_START_PAUSE_8822B) \
  3285. << BIT_SHIFT_8051_MBIST_START_PAUSE_8822B)
  3286. #define BITS_8051_MBIST_START_PAUSE_8822B \
  3287. (BIT_MASK_8051_MBIST_START_PAUSE_8822B \
  3288. << BIT_SHIFT_8051_MBIST_START_PAUSE_8822B)
  3289. #define BIT_CLEAR_8051_MBIST_START_PAUSE_8822B(x) \
  3290. ((x) & (~BITS_8051_MBIST_START_PAUSE_8822B))
  3291. #define BIT_GET_8051_MBIST_START_PAUSE_8822B(x) \
  3292. (((x) >> BIT_SHIFT_8051_MBIST_START_PAUSE_8822B) & \
  3293. BIT_MASK_8051_MBIST_START_PAUSE_8822B)
  3294. #define BIT_SET_8051_MBIST_START_PAUSE_8822B(x, v) \
  3295. (BIT_CLEAR_8051_MBIST_START_PAUSE_8822B(x) | \
  3296. BIT_8051_MBIST_START_PAUSE_8822B(v))
  3297. #define BIT_SHIFT_USB_MBIST_START_PAUSE_8822B 24
  3298. #define BIT_MASK_USB_MBIST_START_PAUSE_8822B 0x3
  3299. #define BIT_USB_MBIST_START_PAUSE_8822B(x) \
  3300. (((x) & BIT_MASK_USB_MBIST_START_PAUSE_8822B) \
  3301. << BIT_SHIFT_USB_MBIST_START_PAUSE_8822B)
  3302. #define BITS_USB_MBIST_START_PAUSE_8822B \
  3303. (BIT_MASK_USB_MBIST_START_PAUSE_8822B \
  3304. << BIT_SHIFT_USB_MBIST_START_PAUSE_8822B)
  3305. #define BIT_CLEAR_USB_MBIST_START_PAUSE_8822B(x) \
  3306. ((x) & (~BITS_USB_MBIST_START_PAUSE_8822B))
  3307. #define BIT_GET_USB_MBIST_START_PAUSE_8822B(x) \
  3308. (((x) >> BIT_SHIFT_USB_MBIST_START_PAUSE_8822B) & \
  3309. BIT_MASK_USB_MBIST_START_PAUSE_8822B)
  3310. #define BIT_SET_USB_MBIST_START_PAUSE_8822B(x, v) \
  3311. (BIT_CLEAR_USB_MBIST_START_PAUSE_8822B(x) | \
  3312. BIT_USB_MBIST_START_PAUSE_8822B(v))
  3313. #define BIT_SHIFT_PCIE_MBIST_START_PAUSE_8822B 16
  3314. #define BIT_MASK_PCIE_MBIST_START_PAUSE_8822B 0x3f
  3315. #define BIT_PCIE_MBIST_START_PAUSE_8822B(x) \
  3316. (((x) & BIT_MASK_PCIE_MBIST_START_PAUSE_8822B) \
  3317. << BIT_SHIFT_PCIE_MBIST_START_PAUSE_8822B)
  3318. #define BITS_PCIE_MBIST_START_PAUSE_8822B \
  3319. (BIT_MASK_PCIE_MBIST_START_PAUSE_8822B \
  3320. << BIT_SHIFT_PCIE_MBIST_START_PAUSE_8822B)
  3321. #define BIT_CLEAR_PCIE_MBIST_START_PAUSE_8822B(x) \
  3322. ((x) & (~BITS_PCIE_MBIST_START_PAUSE_8822B))
  3323. #define BIT_GET_PCIE_MBIST_START_PAUSE_8822B(x) \
  3324. (((x) >> BIT_SHIFT_PCIE_MBIST_START_PAUSE_8822B) & \
  3325. BIT_MASK_PCIE_MBIST_START_PAUSE_8822B)
  3326. #define BIT_SET_PCIE_MBIST_START_PAUSE_8822B(x, v) \
  3327. (BIT_CLEAR_PCIE_MBIST_START_PAUSE_8822B(x) | \
  3328. BIT_PCIE_MBIST_START_PAUSE_8822B(v))
  3329. #define BIT_SHIFT_MAC_MBIST_START_PAUSE_8822B 0
  3330. #define BIT_MASK_MAC_MBIST_START_PAUSE_8822B 0xfff
  3331. #define BIT_MAC_MBIST_START_PAUSE_8822B(x) \
  3332. (((x) & BIT_MASK_MAC_MBIST_START_PAUSE_8822B) \
  3333. << BIT_SHIFT_MAC_MBIST_START_PAUSE_8822B)
  3334. #define BITS_MAC_MBIST_START_PAUSE_8822B \
  3335. (BIT_MASK_MAC_MBIST_START_PAUSE_8822B \
  3336. << BIT_SHIFT_MAC_MBIST_START_PAUSE_8822B)
  3337. #define BIT_CLEAR_MAC_MBIST_START_PAUSE_8822B(x) \
  3338. ((x) & (~BITS_MAC_MBIST_START_PAUSE_8822B))
  3339. #define BIT_GET_MAC_MBIST_START_PAUSE_8822B(x) \
  3340. (((x) >> BIT_SHIFT_MAC_MBIST_START_PAUSE_8822B) & \
  3341. BIT_MASK_MAC_MBIST_START_PAUSE_8822B)
  3342. #define BIT_SET_MAC_MBIST_START_PAUSE_8822B(x, v) \
  3343. (BIT_CLEAR_MAC_MBIST_START_PAUSE_8822B(x) | \
  3344. BIT_MAC_MBIST_START_PAUSE_8822B(v))
  3345. /* 2 REG_MBIST_DONE_8822B */
  3346. #define BIT_SHIFT_8051_MBIST_DONE_8822B 26
  3347. #define BIT_MASK_8051_MBIST_DONE_8822B 0x7
  3348. #define BIT_8051_MBIST_DONE_8822B(x) \
  3349. (((x) & BIT_MASK_8051_MBIST_DONE_8822B) \
  3350. << BIT_SHIFT_8051_MBIST_DONE_8822B)
  3351. #define BITS_8051_MBIST_DONE_8822B \
  3352. (BIT_MASK_8051_MBIST_DONE_8822B << BIT_SHIFT_8051_MBIST_DONE_8822B)
  3353. #define BIT_CLEAR_8051_MBIST_DONE_8822B(x) ((x) & (~BITS_8051_MBIST_DONE_8822B))
  3354. #define BIT_GET_8051_MBIST_DONE_8822B(x) \
  3355. (((x) >> BIT_SHIFT_8051_MBIST_DONE_8822B) & \
  3356. BIT_MASK_8051_MBIST_DONE_8822B)
  3357. #define BIT_SET_8051_MBIST_DONE_8822B(x, v) \
  3358. (BIT_CLEAR_8051_MBIST_DONE_8822B(x) | BIT_8051_MBIST_DONE_8822B(v))
  3359. #define BIT_SHIFT_USB_MBIST_DONE_8822B 24
  3360. #define BIT_MASK_USB_MBIST_DONE_8822B 0x3
  3361. #define BIT_USB_MBIST_DONE_8822B(x) \
  3362. (((x) & BIT_MASK_USB_MBIST_DONE_8822B) \
  3363. << BIT_SHIFT_USB_MBIST_DONE_8822B)
  3364. #define BITS_USB_MBIST_DONE_8822B \
  3365. (BIT_MASK_USB_MBIST_DONE_8822B << BIT_SHIFT_USB_MBIST_DONE_8822B)
  3366. #define BIT_CLEAR_USB_MBIST_DONE_8822B(x) ((x) & (~BITS_USB_MBIST_DONE_8822B))
  3367. #define BIT_GET_USB_MBIST_DONE_8822B(x) \
  3368. (((x) >> BIT_SHIFT_USB_MBIST_DONE_8822B) & \
  3369. BIT_MASK_USB_MBIST_DONE_8822B)
  3370. #define BIT_SET_USB_MBIST_DONE_8822B(x, v) \
  3371. (BIT_CLEAR_USB_MBIST_DONE_8822B(x) | BIT_USB_MBIST_DONE_8822B(v))
  3372. #define BIT_SHIFT_PCIE_MBIST_DONE_8822B 16
  3373. #define BIT_MASK_PCIE_MBIST_DONE_8822B 0x3f
  3374. #define BIT_PCIE_MBIST_DONE_8822B(x) \
  3375. (((x) & BIT_MASK_PCIE_MBIST_DONE_8822B) \
  3376. << BIT_SHIFT_PCIE_MBIST_DONE_8822B)
  3377. #define BITS_PCIE_MBIST_DONE_8822B \
  3378. (BIT_MASK_PCIE_MBIST_DONE_8822B << BIT_SHIFT_PCIE_MBIST_DONE_8822B)
  3379. #define BIT_CLEAR_PCIE_MBIST_DONE_8822B(x) ((x) & (~BITS_PCIE_MBIST_DONE_8822B))
  3380. #define BIT_GET_PCIE_MBIST_DONE_8822B(x) \
  3381. (((x) >> BIT_SHIFT_PCIE_MBIST_DONE_8822B) & \
  3382. BIT_MASK_PCIE_MBIST_DONE_8822B)
  3383. #define BIT_SET_PCIE_MBIST_DONE_8822B(x, v) \
  3384. (BIT_CLEAR_PCIE_MBIST_DONE_8822B(x) | BIT_PCIE_MBIST_DONE_8822B(v))
  3385. #define BIT_SHIFT_MAC_MBIST_DONE_8822B 0
  3386. #define BIT_MASK_MAC_MBIST_DONE_8822B 0xfff
  3387. #define BIT_MAC_MBIST_DONE_8822B(x) \
  3388. (((x) & BIT_MASK_MAC_MBIST_DONE_8822B) \
  3389. << BIT_SHIFT_MAC_MBIST_DONE_8822B)
  3390. #define BITS_MAC_MBIST_DONE_8822B \
  3391. (BIT_MASK_MAC_MBIST_DONE_8822B << BIT_SHIFT_MAC_MBIST_DONE_8822B)
  3392. #define BIT_CLEAR_MAC_MBIST_DONE_8822B(x) ((x) & (~BITS_MAC_MBIST_DONE_8822B))
  3393. #define BIT_GET_MAC_MBIST_DONE_8822B(x) \
  3394. (((x) >> BIT_SHIFT_MAC_MBIST_DONE_8822B) & \
  3395. BIT_MASK_MAC_MBIST_DONE_8822B)
  3396. #define BIT_SET_MAC_MBIST_DONE_8822B(x, v) \
  3397. (BIT_CLEAR_MAC_MBIST_DONE_8822B(x) | BIT_MAC_MBIST_DONE_8822B(v))
  3398. /* 2 REG_MBIST_FAIL_NRML_8822B */
  3399. #define BIT_SHIFT_MBIST_FAIL_NRML_8822B 0
  3400. #define BIT_MASK_MBIST_FAIL_NRML_8822B 0xffffffffL
  3401. #define BIT_MBIST_FAIL_NRML_8822B(x) \
  3402. (((x) & BIT_MASK_MBIST_FAIL_NRML_8822B) \
  3403. << BIT_SHIFT_MBIST_FAIL_NRML_8822B)
  3404. #define BITS_MBIST_FAIL_NRML_8822B \
  3405. (BIT_MASK_MBIST_FAIL_NRML_8822B << BIT_SHIFT_MBIST_FAIL_NRML_8822B)
  3406. #define BIT_CLEAR_MBIST_FAIL_NRML_8822B(x) ((x) & (~BITS_MBIST_FAIL_NRML_8822B))
  3407. #define BIT_GET_MBIST_FAIL_NRML_8822B(x) \
  3408. (((x) >> BIT_SHIFT_MBIST_FAIL_NRML_8822B) & \
  3409. BIT_MASK_MBIST_FAIL_NRML_8822B)
  3410. #define BIT_SET_MBIST_FAIL_NRML_8822B(x, v) \
  3411. (BIT_CLEAR_MBIST_FAIL_NRML_8822B(x) | BIT_MBIST_FAIL_NRML_8822B(v))
  3412. /* 2 REG_AES_DECRPT_DATA_8822B */
  3413. #define BIT_SHIFT_IPS_CFG_ADDR_8822B 0
  3414. #define BIT_MASK_IPS_CFG_ADDR_8822B 0xff
  3415. #define BIT_IPS_CFG_ADDR_8822B(x) \
  3416. (((x) & BIT_MASK_IPS_CFG_ADDR_8822B) << BIT_SHIFT_IPS_CFG_ADDR_8822B)
  3417. #define BITS_IPS_CFG_ADDR_8822B \
  3418. (BIT_MASK_IPS_CFG_ADDR_8822B << BIT_SHIFT_IPS_CFG_ADDR_8822B)
  3419. #define BIT_CLEAR_IPS_CFG_ADDR_8822B(x) ((x) & (~BITS_IPS_CFG_ADDR_8822B))
  3420. #define BIT_GET_IPS_CFG_ADDR_8822B(x) \
  3421. (((x) >> BIT_SHIFT_IPS_CFG_ADDR_8822B) & BIT_MASK_IPS_CFG_ADDR_8822B)
  3422. #define BIT_SET_IPS_CFG_ADDR_8822B(x, v) \
  3423. (BIT_CLEAR_IPS_CFG_ADDR_8822B(x) | BIT_IPS_CFG_ADDR_8822B(v))
  3424. /* 2 REG_AES_DECRPT_CFG_8822B */
  3425. #define BIT_SHIFT_IPS_CFG_DATA_8822B 0
  3426. #define BIT_MASK_IPS_CFG_DATA_8822B 0xffffffffL
  3427. #define BIT_IPS_CFG_DATA_8822B(x) \
  3428. (((x) & BIT_MASK_IPS_CFG_DATA_8822B) << BIT_SHIFT_IPS_CFG_DATA_8822B)
  3429. #define BITS_IPS_CFG_DATA_8822B \
  3430. (BIT_MASK_IPS_CFG_DATA_8822B << BIT_SHIFT_IPS_CFG_DATA_8822B)
  3431. #define BIT_CLEAR_IPS_CFG_DATA_8822B(x) ((x) & (~BITS_IPS_CFG_DATA_8822B))
  3432. #define BIT_GET_IPS_CFG_DATA_8822B(x) \
  3433. (((x) >> BIT_SHIFT_IPS_CFG_DATA_8822B) & BIT_MASK_IPS_CFG_DATA_8822B)
  3434. #define BIT_SET_IPS_CFG_DATA_8822B(x, v) \
  3435. (BIT_CLEAR_IPS_CFG_DATA_8822B(x) | BIT_IPS_CFG_DATA_8822B(v))
  3436. /* 2 REG_NOT_VALID_8822B */
  3437. /* 2 REG_NOT_VALID_8822B */
  3438. /* 2 REG_TMETER_8822B */
  3439. #define BIT_TEMP_VALID_8822B BIT(31)
  3440. #define BIT_SHIFT_TEMP_VALUE_8822B 24
  3441. #define BIT_MASK_TEMP_VALUE_8822B 0x3f
  3442. #define BIT_TEMP_VALUE_8822B(x) \
  3443. (((x) & BIT_MASK_TEMP_VALUE_8822B) << BIT_SHIFT_TEMP_VALUE_8822B)
  3444. #define BITS_TEMP_VALUE_8822B \
  3445. (BIT_MASK_TEMP_VALUE_8822B << BIT_SHIFT_TEMP_VALUE_8822B)
  3446. #define BIT_CLEAR_TEMP_VALUE_8822B(x) ((x) & (~BITS_TEMP_VALUE_8822B))
  3447. #define BIT_GET_TEMP_VALUE_8822B(x) \
  3448. (((x) >> BIT_SHIFT_TEMP_VALUE_8822B) & BIT_MASK_TEMP_VALUE_8822B)
  3449. #define BIT_SET_TEMP_VALUE_8822B(x, v) \
  3450. (BIT_CLEAR_TEMP_VALUE_8822B(x) | BIT_TEMP_VALUE_8822B(v))
  3451. #define BIT_SHIFT_REG_TMETER_TIMER_8822B 8
  3452. #define BIT_MASK_REG_TMETER_TIMER_8822B 0xfff
  3453. #define BIT_REG_TMETER_TIMER_8822B(x) \
  3454. (((x) & BIT_MASK_REG_TMETER_TIMER_8822B) \
  3455. << BIT_SHIFT_REG_TMETER_TIMER_8822B)
  3456. #define BITS_REG_TMETER_TIMER_8822B \
  3457. (BIT_MASK_REG_TMETER_TIMER_8822B << BIT_SHIFT_REG_TMETER_TIMER_8822B)
  3458. #define BIT_CLEAR_REG_TMETER_TIMER_8822B(x) \
  3459. ((x) & (~BITS_REG_TMETER_TIMER_8822B))
  3460. #define BIT_GET_REG_TMETER_TIMER_8822B(x) \
  3461. (((x) >> BIT_SHIFT_REG_TMETER_TIMER_8822B) & \
  3462. BIT_MASK_REG_TMETER_TIMER_8822B)
  3463. #define BIT_SET_REG_TMETER_TIMER_8822B(x, v) \
  3464. (BIT_CLEAR_REG_TMETER_TIMER_8822B(x) | BIT_REG_TMETER_TIMER_8822B(v))
  3465. #define BIT_SHIFT_REG_TEMP_DELTA_8822B 2
  3466. #define BIT_MASK_REG_TEMP_DELTA_8822B 0x3f
  3467. #define BIT_REG_TEMP_DELTA_8822B(x) \
  3468. (((x) & BIT_MASK_REG_TEMP_DELTA_8822B) \
  3469. << BIT_SHIFT_REG_TEMP_DELTA_8822B)
  3470. #define BITS_REG_TEMP_DELTA_8822B \
  3471. (BIT_MASK_REG_TEMP_DELTA_8822B << BIT_SHIFT_REG_TEMP_DELTA_8822B)
  3472. #define BIT_CLEAR_REG_TEMP_DELTA_8822B(x) ((x) & (~BITS_REG_TEMP_DELTA_8822B))
  3473. #define BIT_GET_REG_TEMP_DELTA_8822B(x) \
  3474. (((x) >> BIT_SHIFT_REG_TEMP_DELTA_8822B) & \
  3475. BIT_MASK_REG_TEMP_DELTA_8822B)
  3476. #define BIT_SET_REG_TEMP_DELTA_8822B(x, v) \
  3477. (BIT_CLEAR_REG_TEMP_DELTA_8822B(x) | BIT_REG_TEMP_DELTA_8822B(v))
  3478. #define BIT_REG_TMETER_EN_8822B BIT(0)
  3479. /* 2 REG_OSC_32K_CTRL_8822B */
  3480. #define BIT_SHIFT_OSC_32K_CLKGEN_0_8822B 16
  3481. #define BIT_MASK_OSC_32K_CLKGEN_0_8822B 0xffff
  3482. #define BIT_OSC_32K_CLKGEN_0_8822B(x) \
  3483. (((x) & BIT_MASK_OSC_32K_CLKGEN_0_8822B) \
  3484. << BIT_SHIFT_OSC_32K_CLKGEN_0_8822B)
  3485. #define BITS_OSC_32K_CLKGEN_0_8822B \
  3486. (BIT_MASK_OSC_32K_CLKGEN_0_8822B << BIT_SHIFT_OSC_32K_CLKGEN_0_8822B)
  3487. #define BIT_CLEAR_OSC_32K_CLKGEN_0_8822B(x) \
  3488. ((x) & (~BITS_OSC_32K_CLKGEN_0_8822B))
  3489. #define BIT_GET_OSC_32K_CLKGEN_0_8822B(x) \
  3490. (((x) >> BIT_SHIFT_OSC_32K_CLKGEN_0_8822B) & \
  3491. BIT_MASK_OSC_32K_CLKGEN_0_8822B)
  3492. #define BIT_SET_OSC_32K_CLKGEN_0_8822B(x, v) \
  3493. (BIT_CLEAR_OSC_32K_CLKGEN_0_8822B(x) | BIT_OSC_32K_CLKGEN_0_8822B(v))
  3494. #define BIT_SHIFT_OSC_32K_RES_COMP_8822B 4
  3495. #define BIT_MASK_OSC_32K_RES_COMP_8822B 0x3
  3496. #define BIT_OSC_32K_RES_COMP_8822B(x) \
  3497. (((x) & BIT_MASK_OSC_32K_RES_COMP_8822B) \
  3498. << BIT_SHIFT_OSC_32K_RES_COMP_8822B)
  3499. #define BITS_OSC_32K_RES_COMP_8822B \
  3500. (BIT_MASK_OSC_32K_RES_COMP_8822B << BIT_SHIFT_OSC_32K_RES_COMP_8822B)
  3501. #define BIT_CLEAR_OSC_32K_RES_COMP_8822B(x) \
  3502. ((x) & (~BITS_OSC_32K_RES_COMP_8822B))
  3503. #define BIT_GET_OSC_32K_RES_COMP_8822B(x) \
  3504. (((x) >> BIT_SHIFT_OSC_32K_RES_COMP_8822B) & \
  3505. BIT_MASK_OSC_32K_RES_COMP_8822B)
  3506. #define BIT_SET_OSC_32K_RES_COMP_8822B(x, v) \
  3507. (BIT_CLEAR_OSC_32K_RES_COMP_8822B(x) | BIT_OSC_32K_RES_COMP_8822B(v))
  3508. #define BIT_OSC_32K_OUT_SEL_8822B BIT(3)
  3509. #define BIT_ISO_WL_2_OSC_32K_8822B BIT(1)
  3510. #define BIT_POW_CKGEN_8822B BIT(0)
  3511. /* 2 REG_32K_CAL_REG1_8822B */
  3512. #define BIT_CAL_32K_REG_WR_8822B BIT(31)
  3513. #define BIT_CAL_32K_DBG_SEL_8822B BIT(22)
  3514. #define BIT_SHIFT_CAL_32K_REG_ADDR_8822B 16
  3515. #define BIT_MASK_CAL_32K_REG_ADDR_8822B 0x3f
  3516. #define BIT_CAL_32K_REG_ADDR_8822B(x) \
  3517. (((x) & BIT_MASK_CAL_32K_REG_ADDR_8822B) \
  3518. << BIT_SHIFT_CAL_32K_REG_ADDR_8822B)
  3519. #define BITS_CAL_32K_REG_ADDR_8822B \
  3520. (BIT_MASK_CAL_32K_REG_ADDR_8822B << BIT_SHIFT_CAL_32K_REG_ADDR_8822B)
  3521. #define BIT_CLEAR_CAL_32K_REG_ADDR_8822B(x) \
  3522. ((x) & (~BITS_CAL_32K_REG_ADDR_8822B))
  3523. #define BIT_GET_CAL_32K_REG_ADDR_8822B(x) \
  3524. (((x) >> BIT_SHIFT_CAL_32K_REG_ADDR_8822B) & \
  3525. BIT_MASK_CAL_32K_REG_ADDR_8822B)
  3526. #define BIT_SET_CAL_32K_REG_ADDR_8822B(x, v) \
  3527. (BIT_CLEAR_CAL_32K_REG_ADDR_8822B(x) | BIT_CAL_32K_REG_ADDR_8822B(v))
  3528. #define BIT_SHIFT_CAL_32K_REG_DATA_8822B 0
  3529. #define BIT_MASK_CAL_32K_REG_DATA_8822B 0xffff
  3530. #define BIT_CAL_32K_REG_DATA_8822B(x) \
  3531. (((x) & BIT_MASK_CAL_32K_REG_DATA_8822B) \
  3532. << BIT_SHIFT_CAL_32K_REG_DATA_8822B)
  3533. #define BITS_CAL_32K_REG_DATA_8822B \
  3534. (BIT_MASK_CAL_32K_REG_DATA_8822B << BIT_SHIFT_CAL_32K_REG_DATA_8822B)
  3535. #define BIT_CLEAR_CAL_32K_REG_DATA_8822B(x) \
  3536. ((x) & (~BITS_CAL_32K_REG_DATA_8822B))
  3537. #define BIT_GET_CAL_32K_REG_DATA_8822B(x) \
  3538. (((x) >> BIT_SHIFT_CAL_32K_REG_DATA_8822B) & \
  3539. BIT_MASK_CAL_32K_REG_DATA_8822B)
  3540. #define BIT_SET_CAL_32K_REG_DATA_8822B(x, v) \
  3541. (BIT_CLEAR_CAL_32K_REG_DATA_8822B(x) | BIT_CAL_32K_REG_DATA_8822B(v))
  3542. /* 2 REG_NOT_VALID_8822B */
  3543. /* 2 REG_C2HEVT_8822B */
  3544. #define BIT_SHIFT_C2HEVT_MSG_V1_8822B 0
  3545. #define BIT_MASK_C2HEVT_MSG_V1_8822B 0xffffffffL
  3546. #define BIT_C2HEVT_MSG_V1_8822B(x) \
  3547. (((x) & BIT_MASK_C2HEVT_MSG_V1_8822B) << BIT_SHIFT_C2HEVT_MSG_V1_8822B)
  3548. #define BITS_C2HEVT_MSG_V1_8822B \
  3549. (BIT_MASK_C2HEVT_MSG_V1_8822B << BIT_SHIFT_C2HEVT_MSG_V1_8822B)
  3550. #define BIT_CLEAR_C2HEVT_MSG_V1_8822B(x) ((x) & (~BITS_C2HEVT_MSG_V1_8822B))
  3551. #define BIT_GET_C2HEVT_MSG_V1_8822B(x) \
  3552. (((x) >> BIT_SHIFT_C2HEVT_MSG_V1_8822B) & BIT_MASK_C2HEVT_MSG_V1_8822B)
  3553. #define BIT_SET_C2HEVT_MSG_V1_8822B(x, v) \
  3554. (BIT_CLEAR_C2HEVT_MSG_V1_8822B(x) | BIT_C2HEVT_MSG_V1_8822B(v))
  3555. /* 2 REG_C2HEVT_1_8822B */
  3556. #define BIT_SHIFT_C2HEVT_MSG_1_8822B 0
  3557. #define BIT_MASK_C2HEVT_MSG_1_8822B 0xffffffffL
  3558. #define BIT_C2HEVT_MSG_1_8822B(x) \
  3559. (((x) & BIT_MASK_C2HEVT_MSG_1_8822B) << BIT_SHIFT_C2HEVT_MSG_1_8822B)
  3560. #define BITS_C2HEVT_MSG_1_8822B \
  3561. (BIT_MASK_C2HEVT_MSG_1_8822B << BIT_SHIFT_C2HEVT_MSG_1_8822B)
  3562. #define BIT_CLEAR_C2HEVT_MSG_1_8822B(x) ((x) & (~BITS_C2HEVT_MSG_1_8822B))
  3563. #define BIT_GET_C2HEVT_MSG_1_8822B(x) \
  3564. (((x) >> BIT_SHIFT_C2HEVT_MSG_1_8822B) & BIT_MASK_C2HEVT_MSG_1_8822B)
  3565. #define BIT_SET_C2HEVT_MSG_1_8822B(x, v) \
  3566. (BIT_CLEAR_C2HEVT_MSG_1_8822B(x) | BIT_C2HEVT_MSG_1_8822B(v))
  3567. /* 2 REG_C2HEVT_2_8822B */
  3568. #define BIT_SHIFT_C2HEVT_MSG_2_8822B 0
  3569. #define BIT_MASK_C2HEVT_MSG_2_8822B 0xffffffffL
  3570. #define BIT_C2HEVT_MSG_2_8822B(x) \
  3571. (((x) & BIT_MASK_C2HEVT_MSG_2_8822B) << BIT_SHIFT_C2HEVT_MSG_2_8822B)
  3572. #define BITS_C2HEVT_MSG_2_8822B \
  3573. (BIT_MASK_C2HEVT_MSG_2_8822B << BIT_SHIFT_C2HEVT_MSG_2_8822B)
  3574. #define BIT_CLEAR_C2HEVT_MSG_2_8822B(x) ((x) & (~BITS_C2HEVT_MSG_2_8822B))
  3575. #define BIT_GET_C2HEVT_MSG_2_8822B(x) \
  3576. (((x) >> BIT_SHIFT_C2HEVT_MSG_2_8822B) & BIT_MASK_C2HEVT_MSG_2_8822B)
  3577. #define BIT_SET_C2HEVT_MSG_2_8822B(x, v) \
  3578. (BIT_CLEAR_C2HEVT_MSG_2_8822B(x) | BIT_C2HEVT_MSG_2_8822B(v))
  3579. /* 2 REG_C2HEVT_3_8822B */
  3580. #define BIT_SHIFT_C2HEVT_MSG_3_8822B 0
  3581. #define BIT_MASK_C2HEVT_MSG_3_8822B 0xffffffffL
  3582. #define BIT_C2HEVT_MSG_3_8822B(x) \
  3583. (((x) & BIT_MASK_C2HEVT_MSG_3_8822B) << BIT_SHIFT_C2HEVT_MSG_3_8822B)
  3584. #define BITS_C2HEVT_MSG_3_8822B \
  3585. (BIT_MASK_C2HEVT_MSG_3_8822B << BIT_SHIFT_C2HEVT_MSG_3_8822B)
  3586. #define BIT_CLEAR_C2HEVT_MSG_3_8822B(x) ((x) & (~BITS_C2HEVT_MSG_3_8822B))
  3587. #define BIT_GET_C2HEVT_MSG_3_8822B(x) \
  3588. (((x) >> BIT_SHIFT_C2HEVT_MSG_3_8822B) & BIT_MASK_C2HEVT_MSG_3_8822B)
  3589. #define BIT_SET_C2HEVT_MSG_3_8822B(x, v) \
  3590. (BIT_CLEAR_C2HEVT_MSG_3_8822B(x) | BIT_C2HEVT_MSG_3_8822B(v))
  3591. /* 2 REG_SW_DEFINED_PAGE1_8822B */
  3592. #define BIT_SHIFT_SW_DEFINED_PAGE1_8822B 0
  3593. #define BIT_MASK_SW_DEFINED_PAGE1_8822B 0xffffffffffffffffL
  3594. #define BIT_SW_DEFINED_PAGE1_8822B(x) \
  3595. (((x) & BIT_MASK_SW_DEFINED_PAGE1_8822B) \
  3596. << BIT_SHIFT_SW_DEFINED_PAGE1_8822B)
  3597. #define BITS_SW_DEFINED_PAGE1_8822B \
  3598. (BIT_MASK_SW_DEFINED_PAGE1_8822B << BIT_SHIFT_SW_DEFINED_PAGE1_8822B)
  3599. #define BIT_CLEAR_SW_DEFINED_PAGE1_8822B(x) \
  3600. ((x) & (~BITS_SW_DEFINED_PAGE1_8822B))
  3601. #define BIT_GET_SW_DEFINED_PAGE1_8822B(x) \
  3602. (((x) >> BIT_SHIFT_SW_DEFINED_PAGE1_8822B) & \
  3603. BIT_MASK_SW_DEFINED_PAGE1_8822B)
  3604. #define BIT_SET_SW_DEFINED_PAGE1_8822B(x, v) \
  3605. (BIT_CLEAR_SW_DEFINED_PAGE1_8822B(x) | BIT_SW_DEFINED_PAGE1_8822B(v))
  3606. /* 2 REG_MCUTST_I_8822B */
  3607. #define BIT_SHIFT_MCUDMSG_I_8822B 0
  3608. #define BIT_MASK_MCUDMSG_I_8822B 0xffffffffL
  3609. #define BIT_MCUDMSG_I_8822B(x) \
  3610. (((x) & BIT_MASK_MCUDMSG_I_8822B) << BIT_SHIFT_MCUDMSG_I_8822B)
  3611. #define BITS_MCUDMSG_I_8822B \
  3612. (BIT_MASK_MCUDMSG_I_8822B << BIT_SHIFT_MCUDMSG_I_8822B)
  3613. #define BIT_CLEAR_MCUDMSG_I_8822B(x) ((x) & (~BITS_MCUDMSG_I_8822B))
  3614. #define BIT_GET_MCUDMSG_I_8822B(x) \
  3615. (((x) >> BIT_SHIFT_MCUDMSG_I_8822B) & BIT_MASK_MCUDMSG_I_8822B)
  3616. #define BIT_SET_MCUDMSG_I_8822B(x, v) \
  3617. (BIT_CLEAR_MCUDMSG_I_8822B(x) | BIT_MCUDMSG_I_8822B(v))
  3618. /* 2 REG_MCUTST_II_8822B */
  3619. #define BIT_SHIFT_MCUDMSG_II_8822B 0
  3620. #define BIT_MASK_MCUDMSG_II_8822B 0xffffffffL
  3621. #define BIT_MCUDMSG_II_8822B(x) \
  3622. (((x) & BIT_MASK_MCUDMSG_II_8822B) << BIT_SHIFT_MCUDMSG_II_8822B)
  3623. #define BITS_MCUDMSG_II_8822B \
  3624. (BIT_MASK_MCUDMSG_II_8822B << BIT_SHIFT_MCUDMSG_II_8822B)
  3625. #define BIT_CLEAR_MCUDMSG_II_8822B(x) ((x) & (~BITS_MCUDMSG_II_8822B))
  3626. #define BIT_GET_MCUDMSG_II_8822B(x) \
  3627. (((x) >> BIT_SHIFT_MCUDMSG_II_8822B) & BIT_MASK_MCUDMSG_II_8822B)
  3628. #define BIT_SET_MCUDMSG_II_8822B(x, v) \
  3629. (BIT_CLEAR_MCUDMSG_II_8822B(x) | BIT_MCUDMSG_II_8822B(v))
  3630. /* 2 REG_FMETHR_8822B */
  3631. #define BIT_FMSG_INT_8822B BIT(31)
  3632. #define BIT_SHIFT_FW_MSG_8822B 0
  3633. #define BIT_MASK_FW_MSG_8822B 0xffffffffL
  3634. #define BIT_FW_MSG_8822B(x) \
  3635. (((x) & BIT_MASK_FW_MSG_8822B) << BIT_SHIFT_FW_MSG_8822B)
  3636. #define BITS_FW_MSG_8822B (BIT_MASK_FW_MSG_8822B << BIT_SHIFT_FW_MSG_8822B)
  3637. #define BIT_CLEAR_FW_MSG_8822B(x) ((x) & (~BITS_FW_MSG_8822B))
  3638. #define BIT_GET_FW_MSG_8822B(x) \
  3639. (((x) >> BIT_SHIFT_FW_MSG_8822B) & BIT_MASK_FW_MSG_8822B)
  3640. #define BIT_SET_FW_MSG_8822B(x, v) \
  3641. (BIT_CLEAR_FW_MSG_8822B(x) | BIT_FW_MSG_8822B(v))
  3642. /* 2 REG_HMETFR_8822B */
  3643. #define BIT_SHIFT_HRCV_MSG_8822B 24
  3644. #define BIT_MASK_HRCV_MSG_8822B 0xff
  3645. #define BIT_HRCV_MSG_8822B(x) \
  3646. (((x) & BIT_MASK_HRCV_MSG_8822B) << BIT_SHIFT_HRCV_MSG_8822B)
  3647. #define BITS_HRCV_MSG_8822B \
  3648. (BIT_MASK_HRCV_MSG_8822B << BIT_SHIFT_HRCV_MSG_8822B)
  3649. #define BIT_CLEAR_HRCV_MSG_8822B(x) ((x) & (~BITS_HRCV_MSG_8822B))
  3650. #define BIT_GET_HRCV_MSG_8822B(x) \
  3651. (((x) >> BIT_SHIFT_HRCV_MSG_8822B) & BIT_MASK_HRCV_MSG_8822B)
  3652. #define BIT_SET_HRCV_MSG_8822B(x, v) \
  3653. (BIT_CLEAR_HRCV_MSG_8822B(x) | BIT_HRCV_MSG_8822B(v))
  3654. #define BIT_INT_BOX3_8822B BIT(3)
  3655. #define BIT_INT_BOX2_8822B BIT(2)
  3656. #define BIT_INT_BOX1_8822B BIT(1)
  3657. #define BIT_INT_BOX0_8822B BIT(0)
  3658. /* 2 REG_HMEBOX0_8822B */
  3659. #define BIT_SHIFT_HOST_MSG_0_8822B 0
  3660. #define BIT_MASK_HOST_MSG_0_8822B 0xffffffffL
  3661. #define BIT_HOST_MSG_0_8822B(x) \
  3662. (((x) & BIT_MASK_HOST_MSG_0_8822B) << BIT_SHIFT_HOST_MSG_0_8822B)
  3663. #define BITS_HOST_MSG_0_8822B \
  3664. (BIT_MASK_HOST_MSG_0_8822B << BIT_SHIFT_HOST_MSG_0_8822B)
  3665. #define BIT_CLEAR_HOST_MSG_0_8822B(x) ((x) & (~BITS_HOST_MSG_0_8822B))
  3666. #define BIT_GET_HOST_MSG_0_8822B(x) \
  3667. (((x) >> BIT_SHIFT_HOST_MSG_0_8822B) & BIT_MASK_HOST_MSG_0_8822B)
  3668. #define BIT_SET_HOST_MSG_0_8822B(x, v) \
  3669. (BIT_CLEAR_HOST_MSG_0_8822B(x) | BIT_HOST_MSG_0_8822B(v))
  3670. /* 2 REG_HMEBOX1_8822B */
  3671. #define BIT_SHIFT_HOST_MSG_1_8822B 0
  3672. #define BIT_MASK_HOST_MSG_1_8822B 0xffffffffL
  3673. #define BIT_HOST_MSG_1_8822B(x) \
  3674. (((x) & BIT_MASK_HOST_MSG_1_8822B) << BIT_SHIFT_HOST_MSG_1_8822B)
  3675. #define BITS_HOST_MSG_1_8822B \
  3676. (BIT_MASK_HOST_MSG_1_8822B << BIT_SHIFT_HOST_MSG_1_8822B)
  3677. #define BIT_CLEAR_HOST_MSG_1_8822B(x) ((x) & (~BITS_HOST_MSG_1_8822B))
  3678. #define BIT_GET_HOST_MSG_1_8822B(x) \
  3679. (((x) >> BIT_SHIFT_HOST_MSG_1_8822B) & BIT_MASK_HOST_MSG_1_8822B)
  3680. #define BIT_SET_HOST_MSG_1_8822B(x, v) \
  3681. (BIT_CLEAR_HOST_MSG_1_8822B(x) | BIT_HOST_MSG_1_8822B(v))
  3682. /* 2 REG_HMEBOX2_8822B */
  3683. #define BIT_SHIFT_HOST_MSG_2_8822B 0
  3684. #define BIT_MASK_HOST_MSG_2_8822B 0xffffffffL
  3685. #define BIT_HOST_MSG_2_8822B(x) \
  3686. (((x) & BIT_MASK_HOST_MSG_2_8822B) << BIT_SHIFT_HOST_MSG_2_8822B)
  3687. #define BITS_HOST_MSG_2_8822B \
  3688. (BIT_MASK_HOST_MSG_2_8822B << BIT_SHIFT_HOST_MSG_2_8822B)
  3689. #define BIT_CLEAR_HOST_MSG_2_8822B(x) ((x) & (~BITS_HOST_MSG_2_8822B))
  3690. #define BIT_GET_HOST_MSG_2_8822B(x) \
  3691. (((x) >> BIT_SHIFT_HOST_MSG_2_8822B) & BIT_MASK_HOST_MSG_2_8822B)
  3692. #define BIT_SET_HOST_MSG_2_8822B(x, v) \
  3693. (BIT_CLEAR_HOST_MSG_2_8822B(x) | BIT_HOST_MSG_2_8822B(v))
  3694. /* 2 REG_HMEBOX3_8822B */
  3695. #define BIT_SHIFT_HOST_MSG_3_8822B 0
  3696. #define BIT_MASK_HOST_MSG_3_8822B 0xffffffffL
  3697. #define BIT_HOST_MSG_3_8822B(x) \
  3698. (((x) & BIT_MASK_HOST_MSG_3_8822B) << BIT_SHIFT_HOST_MSG_3_8822B)
  3699. #define BITS_HOST_MSG_3_8822B \
  3700. (BIT_MASK_HOST_MSG_3_8822B << BIT_SHIFT_HOST_MSG_3_8822B)
  3701. #define BIT_CLEAR_HOST_MSG_3_8822B(x) ((x) & (~BITS_HOST_MSG_3_8822B))
  3702. #define BIT_GET_HOST_MSG_3_8822B(x) \
  3703. (((x) >> BIT_SHIFT_HOST_MSG_3_8822B) & BIT_MASK_HOST_MSG_3_8822B)
  3704. #define BIT_SET_HOST_MSG_3_8822B(x, v) \
  3705. (BIT_CLEAR_HOST_MSG_3_8822B(x) | BIT_HOST_MSG_3_8822B(v))
  3706. /* 2 REG_LLT_INIT_8822B */
  3707. #define BIT_SHIFT_LLTE_RWM_8822B 30
  3708. #define BIT_MASK_LLTE_RWM_8822B 0x3
  3709. #define BIT_LLTE_RWM_8822B(x) \
  3710. (((x) & BIT_MASK_LLTE_RWM_8822B) << BIT_SHIFT_LLTE_RWM_8822B)
  3711. #define BITS_LLTE_RWM_8822B \
  3712. (BIT_MASK_LLTE_RWM_8822B << BIT_SHIFT_LLTE_RWM_8822B)
  3713. #define BIT_CLEAR_LLTE_RWM_8822B(x) ((x) & (~BITS_LLTE_RWM_8822B))
  3714. #define BIT_GET_LLTE_RWM_8822B(x) \
  3715. (((x) >> BIT_SHIFT_LLTE_RWM_8822B) & BIT_MASK_LLTE_RWM_8822B)
  3716. #define BIT_SET_LLTE_RWM_8822B(x, v) \
  3717. (BIT_CLEAR_LLTE_RWM_8822B(x) | BIT_LLTE_RWM_8822B(v))
  3718. #define BIT_SHIFT_LLTINI_PDATA_V1_8822B 16
  3719. #define BIT_MASK_LLTINI_PDATA_V1_8822B 0xfff
  3720. #define BIT_LLTINI_PDATA_V1_8822B(x) \
  3721. (((x) & BIT_MASK_LLTINI_PDATA_V1_8822B) \
  3722. << BIT_SHIFT_LLTINI_PDATA_V1_8822B)
  3723. #define BITS_LLTINI_PDATA_V1_8822B \
  3724. (BIT_MASK_LLTINI_PDATA_V1_8822B << BIT_SHIFT_LLTINI_PDATA_V1_8822B)
  3725. #define BIT_CLEAR_LLTINI_PDATA_V1_8822B(x) ((x) & (~BITS_LLTINI_PDATA_V1_8822B))
  3726. #define BIT_GET_LLTINI_PDATA_V1_8822B(x) \
  3727. (((x) >> BIT_SHIFT_LLTINI_PDATA_V1_8822B) & \
  3728. BIT_MASK_LLTINI_PDATA_V1_8822B)
  3729. #define BIT_SET_LLTINI_PDATA_V1_8822B(x, v) \
  3730. (BIT_CLEAR_LLTINI_PDATA_V1_8822B(x) | BIT_LLTINI_PDATA_V1_8822B(v))
  3731. #define BIT_SHIFT_LLTINI_HDATA_V1_8822B 0
  3732. #define BIT_MASK_LLTINI_HDATA_V1_8822B 0xfff
  3733. #define BIT_LLTINI_HDATA_V1_8822B(x) \
  3734. (((x) & BIT_MASK_LLTINI_HDATA_V1_8822B) \
  3735. << BIT_SHIFT_LLTINI_HDATA_V1_8822B)
  3736. #define BITS_LLTINI_HDATA_V1_8822B \
  3737. (BIT_MASK_LLTINI_HDATA_V1_8822B << BIT_SHIFT_LLTINI_HDATA_V1_8822B)
  3738. #define BIT_CLEAR_LLTINI_HDATA_V1_8822B(x) ((x) & (~BITS_LLTINI_HDATA_V1_8822B))
  3739. #define BIT_GET_LLTINI_HDATA_V1_8822B(x) \
  3740. (((x) >> BIT_SHIFT_LLTINI_HDATA_V1_8822B) & \
  3741. BIT_MASK_LLTINI_HDATA_V1_8822B)
  3742. #define BIT_SET_LLTINI_HDATA_V1_8822B(x, v) \
  3743. (BIT_CLEAR_LLTINI_HDATA_V1_8822B(x) | BIT_LLTINI_HDATA_V1_8822B(v))
  3744. /* 2 REG_LLT_INIT_ADDR_8822B */
  3745. #define BIT_SHIFT_LLTINI_ADDR_V1_8822B 0
  3746. #define BIT_MASK_LLTINI_ADDR_V1_8822B 0xfff
  3747. #define BIT_LLTINI_ADDR_V1_8822B(x) \
  3748. (((x) & BIT_MASK_LLTINI_ADDR_V1_8822B) \
  3749. << BIT_SHIFT_LLTINI_ADDR_V1_8822B)
  3750. #define BITS_LLTINI_ADDR_V1_8822B \
  3751. (BIT_MASK_LLTINI_ADDR_V1_8822B << BIT_SHIFT_LLTINI_ADDR_V1_8822B)
  3752. #define BIT_CLEAR_LLTINI_ADDR_V1_8822B(x) ((x) & (~BITS_LLTINI_ADDR_V1_8822B))
  3753. #define BIT_GET_LLTINI_ADDR_V1_8822B(x) \
  3754. (((x) >> BIT_SHIFT_LLTINI_ADDR_V1_8822B) & \
  3755. BIT_MASK_LLTINI_ADDR_V1_8822B)
  3756. #define BIT_SET_LLTINI_ADDR_V1_8822B(x, v) \
  3757. (BIT_CLEAR_LLTINI_ADDR_V1_8822B(x) | BIT_LLTINI_ADDR_V1_8822B(v))
  3758. /* 2 REG_BB_ACCESS_CTRL_8822B */
  3759. #define BIT_SHIFT_BB_WRITE_READ_8822B 30
  3760. #define BIT_MASK_BB_WRITE_READ_8822B 0x3
  3761. #define BIT_BB_WRITE_READ_8822B(x) \
  3762. (((x) & BIT_MASK_BB_WRITE_READ_8822B) << BIT_SHIFT_BB_WRITE_READ_8822B)
  3763. #define BITS_BB_WRITE_READ_8822B \
  3764. (BIT_MASK_BB_WRITE_READ_8822B << BIT_SHIFT_BB_WRITE_READ_8822B)
  3765. #define BIT_CLEAR_BB_WRITE_READ_8822B(x) ((x) & (~BITS_BB_WRITE_READ_8822B))
  3766. #define BIT_GET_BB_WRITE_READ_8822B(x) \
  3767. (((x) >> BIT_SHIFT_BB_WRITE_READ_8822B) & BIT_MASK_BB_WRITE_READ_8822B)
  3768. #define BIT_SET_BB_WRITE_READ_8822B(x, v) \
  3769. (BIT_CLEAR_BB_WRITE_READ_8822B(x) | BIT_BB_WRITE_READ_8822B(v))
  3770. #define BIT_SHIFT_BB_WRITE_EN_8822B 12
  3771. #define BIT_MASK_BB_WRITE_EN_8822B 0xf
  3772. #define BIT_BB_WRITE_EN_8822B(x) \
  3773. (((x) & BIT_MASK_BB_WRITE_EN_8822B) << BIT_SHIFT_BB_WRITE_EN_8822B)
  3774. #define BITS_BB_WRITE_EN_8822B \
  3775. (BIT_MASK_BB_WRITE_EN_8822B << BIT_SHIFT_BB_WRITE_EN_8822B)
  3776. #define BIT_CLEAR_BB_WRITE_EN_8822B(x) ((x) & (~BITS_BB_WRITE_EN_8822B))
  3777. #define BIT_GET_BB_WRITE_EN_8822B(x) \
  3778. (((x) >> BIT_SHIFT_BB_WRITE_EN_8822B) & BIT_MASK_BB_WRITE_EN_8822B)
  3779. #define BIT_SET_BB_WRITE_EN_8822B(x, v) \
  3780. (BIT_CLEAR_BB_WRITE_EN_8822B(x) | BIT_BB_WRITE_EN_8822B(v))
  3781. #define BIT_SHIFT_BB_ADDR_8822B 2
  3782. #define BIT_MASK_BB_ADDR_8822B 0x1ff
  3783. #define BIT_BB_ADDR_8822B(x) \
  3784. (((x) & BIT_MASK_BB_ADDR_8822B) << BIT_SHIFT_BB_ADDR_8822B)
  3785. #define BITS_BB_ADDR_8822B (BIT_MASK_BB_ADDR_8822B << BIT_SHIFT_BB_ADDR_8822B)
  3786. #define BIT_CLEAR_BB_ADDR_8822B(x) ((x) & (~BITS_BB_ADDR_8822B))
  3787. #define BIT_GET_BB_ADDR_8822B(x) \
  3788. (((x) >> BIT_SHIFT_BB_ADDR_8822B) & BIT_MASK_BB_ADDR_8822B)
  3789. #define BIT_SET_BB_ADDR_8822B(x, v) \
  3790. (BIT_CLEAR_BB_ADDR_8822B(x) | BIT_BB_ADDR_8822B(v))
  3791. #define BIT_BB_ERRACC_8822B BIT(0)
  3792. /* 2 REG_BB_ACCESS_DATA_8822B */
  3793. #define BIT_SHIFT_BB_DATA_8822B 0
  3794. #define BIT_MASK_BB_DATA_8822B 0xffffffffL
  3795. #define BIT_BB_DATA_8822B(x) \
  3796. (((x) & BIT_MASK_BB_DATA_8822B) << BIT_SHIFT_BB_DATA_8822B)
  3797. #define BITS_BB_DATA_8822B (BIT_MASK_BB_DATA_8822B << BIT_SHIFT_BB_DATA_8822B)
  3798. #define BIT_CLEAR_BB_DATA_8822B(x) ((x) & (~BITS_BB_DATA_8822B))
  3799. #define BIT_GET_BB_DATA_8822B(x) \
  3800. (((x) >> BIT_SHIFT_BB_DATA_8822B) & BIT_MASK_BB_DATA_8822B)
  3801. #define BIT_SET_BB_DATA_8822B(x, v) \
  3802. (BIT_CLEAR_BB_DATA_8822B(x) | BIT_BB_DATA_8822B(v))
  3803. /* 2 REG_HMEBOX_E0_8822B */
  3804. #define BIT_SHIFT_HMEBOX_E0_8822B 0
  3805. #define BIT_MASK_HMEBOX_E0_8822B 0xffffffffL
  3806. #define BIT_HMEBOX_E0_8822B(x) \
  3807. (((x) & BIT_MASK_HMEBOX_E0_8822B) << BIT_SHIFT_HMEBOX_E0_8822B)
  3808. #define BITS_HMEBOX_E0_8822B \
  3809. (BIT_MASK_HMEBOX_E0_8822B << BIT_SHIFT_HMEBOX_E0_8822B)
  3810. #define BIT_CLEAR_HMEBOX_E0_8822B(x) ((x) & (~BITS_HMEBOX_E0_8822B))
  3811. #define BIT_GET_HMEBOX_E0_8822B(x) \
  3812. (((x) >> BIT_SHIFT_HMEBOX_E0_8822B) & BIT_MASK_HMEBOX_E0_8822B)
  3813. #define BIT_SET_HMEBOX_E0_8822B(x, v) \
  3814. (BIT_CLEAR_HMEBOX_E0_8822B(x) | BIT_HMEBOX_E0_8822B(v))
  3815. /* 2 REG_HMEBOX_E1_8822B */
  3816. #define BIT_SHIFT_HMEBOX_E1_8822B 0
  3817. #define BIT_MASK_HMEBOX_E1_8822B 0xffffffffL
  3818. #define BIT_HMEBOX_E1_8822B(x) \
  3819. (((x) & BIT_MASK_HMEBOX_E1_8822B) << BIT_SHIFT_HMEBOX_E1_8822B)
  3820. #define BITS_HMEBOX_E1_8822B \
  3821. (BIT_MASK_HMEBOX_E1_8822B << BIT_SHIFT_HMEBOX_E1_8822B)
  3822. #define BIT_CLEAR_HMEBOX_E1_8822B(x) ((x) & (~BITS_HMEBOX_E1_8822B))
  3823. #define BIT_GET_HMEBOX_E1_8822B(x) \
  3824. (((x) >> BIT_SHIFT_HMEBOX_E1_8822B) & BIT_MASK_HMEBOX_E1_8822B)
  3825. #define BIT_SET_HMEBOX_E1_8822B(x, v) \
  3826. (BIT_CLEAR_HMEBOX_E1_8822B(x) | BIT_HMEBOX_E1_8822B(v))
  3827. /* 2 REG_HMEBOX_E2_8822B */
  3828. #define BIT_SHIFT_HMEBOX_E2_8822B 0
  3829. #define BIT_MASK_HMEBOX_E2_8822B 0xffffffffL
  3830. #define BIT_HMEBOX_E2_8822B(x) \
  3831. (((x) & BIT_MASK_HMEBOX_E2_8822B) << BIT_SHIFT_HMEBOX_E2_8822B)
  3832. #define BITS_HMEBOX_E2_8822B \
  3833. (BIT_MASK_HMEBOX_E2_8822B << BIT_SHIFT_HMEBOX_E2_8822B)
  3834. #define BIT_CLEAR_HMEBOX_E2_8822B(x) ((x) & (~BITS_HMEBOX_E2_8822B))
  3835. #define BIT_GET_HMEBOX_E2_8822B(x) \
  3836. (((x) >> BIT_SHIFT_HMEBOX_E2_8822B) & BIT_MASK_HMEBOX_E2_8822B)
  3837. #define BIT_SET_HMEBOX_E2_8822B(x, v) \
  3838. (BIT_CLEAR_HMEBOX_E2_8822B(x) | BIT_HMEBOX_E2_8822B(v))
  3839. /* 2 REG_HMEBOX_E3_8822B */
  3840. #define BIT_SHIFT_HMEBOX_E3_8822B 0
  3841. #define BIT_MASK_HMEBOX_E3_8822B 0xffffffffL
  3842. #define BIT_HMEBOX_E3_8822B(x) \
  3843. (((x) & BIT_MASK_HMEBOX_E3_8822B) << BIT_SHIFT_HMEBOX_E3_8822B)
  3844. #define BITS_HMEBOX_E3_8822B \
  3845. (BIT_MASK_HMEBOX_E3_8822B << BIT_SHIFT_HMEBOX_E3_8822B)
  3846. #define BIT_CLEAR_HMEBOX_E3_8822B(x) ((x) & (~BITS_HMEBOX_E3_8822B))
  3847. #define BIT_GET_HMEBOX_E3_8822B(x) \
  3848. (((x) >> BIT_SHIFT_HMEBOX_E3_8822B) & BIT_MASK_HMEBOX_E3_8822B)
  3849. #define BIT_SET_HMEBOX_E3_8822B(x, v) \
  3850. (BIT_CLEAR_HMEBOX_E3_8822B(x) | BIT_HMEBOX_E3_8822B(v))
  3851. /* 2 REG_NOT_VALID_8822B */
  3852. /* 2 REG_CR_EXT_8822B */
  3853. #define BIT_SHIFT_PHY_REQ_DELAY_8822B 24
  3854. #define BIT_MASK_PHY_REQ_DELAY_8822B 0xf
  3855. #define BIT_PHY_REQ_DELAY_8822B(x) \
  3856. (((x) & BIT_MASK_PHY_REQ_DELAY_8822B) << BIT_SHIFT_PHY_REQ_DELAY_8822B)
  3857. #define BITS_PHY_REQ_DELAY_8822B \
  3858. (BIT_MASK_PHY_REQ_DELAY_8822B << BIT_SHIFT_PHY_REQ_DELAY_8822B)
  3859. #define BIT_CLEAR_PHY_REQ_DELAY_8822B(x) ((x) & (~BITS_PHY_REQ_DELAY_8822B))
  3860. #define BIT_GET_PHY_REQ_DELAY_8822B(x) \
  3861. (((x) >> BIT_SHIFT_PHY_REQ_DELAY_8822B) & BIT_MASK_PHY_REQ_DELAY_8822B)
  3862. #define BIT_SET_PHY_REQ_DELAY_8822B(x, v) \
  3863. (BIT_CLEAR_PHY_REQ_DELAY_8822B(x) | BIT_PHY_REQ_DELAY_8822B(v))
  3864. #define BIT_SPD_DOWN_8822B BIT(16)
  3865. #define BIT_SHIFT_NETYPE4_8822B 4
  3866. #define BIT_MASK_NETYPE4_8822B 0x3
  3867. #define BIT_NETYPE4_8822B(x) \
  3868. (((x) & BIT_MASK_NETYPE4_8822B) << BIT_SHIFT_NETYPE4_8822B)
  3869. #define BITS_NETYPE4_8822B (BIT_MASK_NETYPE4_8822B << BIT_SHIFT_NETYPE4_8822B)
  3870. #define BIT_CLEAR_NETYPE4_8822B(x) ((x) & (~BITS_NETYPE4_8822B))
  3871. #define BIT_GET_NETYPE4_8822B(x) \
  3872. (((x) >> BIT_SHIFT_NETYPE4_8822B) & BIT_MASK_NETYPE4_8822B)
  3873. #define BIT_SET_NETYPE4_8822B(x, v) \
  3874. (BIT_CLEAR_NETYPE4_8822B(x) | BIT_NETYPE4_8822B(v))
  3875. #define BIT_SHIFT_NETYPE3_8822B 2
  3876. #define BIT_MASK_NETYPE3_8822B 0x3
  3877. #define BIT_NETYPE3_8822B(x) \
  3878. (((x) & BIT_MASK_NETYPE3_8822B) << BIT_SHIFT_NETYPE3_8822B)
  3879. #define BITS_NETYPE3_8822B (BIT_MASK_NETYPE3_8822B << BIT_SHIFT_NETYPE3_8822B)
  3880. #define BIT_CLEAR_NETYPE3_8822B(x) ((x) & (~BITS_NETYPE3_8822B))
  3881. #define BIT_GET_NETYPE3_8822B(x) \
  3882. (((x) >> BIT_SHIFT_NETYPE3_8822B) & BIT_MASK_NETYPE3_8822B)
  3883. #define BIT_SET_NETYPE3_8822B(x, v) \
  3884. (BIT_CLEAR_NETYPE3_8822B(x) | BIT_NETYPE3_8822B(v))
  3885. #define BIT_SHIFT_NETYPE2_8822B 0
  3886. #define BIT_MASK_NETYPE2_8822B 0x3
  3887. #define BIT_NETYPE2_8822B(x) \
  3888. (((x) & BIT_MASK_NETYPE2_8822B) << BIT_SHIFT_NETYPE2_8822B)
  3889. #define BITS_NETYPE2_8822B (BIT_MASK_NETYPE2_8822B << BIT_SHIFT_NETYPE2_8822B)
  3890. #define BIT_CLEAR_NETYPE2_8822B(x) ((x) & (~BITS_NETYPE2_8822B))
  3891. #define BIT_GET_NETYPE2_8822B(x) \
  3892. (((x) >> BIT_SHIFT_NETYPE2_8822B) & BIT_MASK_NETYPE2_8822B)
  3893. #define BIT_SET_NETYPE2_8822B(x, v) \
  3894. (BIT_CLEAR_NETYPE2_8822B(x) | BIT_NETYPE2_8822B(v))
  3895. /* 2 REG_FWFF_8822B */
  3896. #define BIT_SHIFT_PKTNUM_TH_V1_8822B 24
  3897. #define BIT_MASK_PKTNUM_TH_V1_8822B 0xff
  3898. #define BIT_PKTNUM_TH_V1_8822B(x) \
  3899. (((x) & BIT_MASK_PKTNUM_TH_V1_8822B) << BIT_SHIFT_PKTNUM_TH_V1_8822B)
  3900. #define BITS_PKTNUM_TH_V1_8822B \
  3901. (BIT_MASK_PKTNUM_TH_V1_8822B << BIT_SHIFT_PKTNUM_TH_V1_8822B)
  3902. #define BIT_CLEAR_PKTNUM_TH_V1_8822B(x) ((x) & (~BITS_PKTNUM_TH_V1_8822B))
  3903. #define BIT_GET_PKTNUM_TH_V1_8822B(x) \
  3904. (((x) >> BIT_SHIFT_PKTNUM_TH_V1_8822B) & BIT_MASK_PKTNUM_TH_V1_8822B)
  3905. #define BIT_SET_PKTNUM_TH_V1_8822B(x, v) \
  3906. (BIT_CLEAR_PKTNUM_TH_V1_8822B(x) | BIT_PKTNUM_TH_V1_8822B(v))
  3907. #define BIT_SHIFT_TIMER_TH_8822B 16
  3908. #define BIT_MASK_TIMER_TH_8822B 0xff
  3909. #define BIT_TIMER_TH_8822B(x) \
  3910. (((x) & BIT_MASK_TIMER_TH_8822B) << BIT_SHIFT_TIMER_TH_8822B)
  3911. #define BITS_TIMER_TH_8822B \
  3912. (BIT_MASK_TIMER_TH_8822B << BIT_SHIFT_TIMER_TH_8822B)
  3913. #define BIT_CLEAR_TIMER_TH_8822B(x) ((x) & (~BITS_TIMER_TH_8822B))
  3914. #define BIT_GET_TIMER_TH_8822B(x) \
  3915. (((x) >> BIT_SHIFT_TIMER_TH_8822B) & BIT_MASK_TIMER_TH_8822B)
  3916. #define BIT_SET_TIMER_TH_8822B(x, v) \
  3917. (BIT_CLEAR_TIMER_TH_8822B(x) | BIT_TIMER_TH_8822B(v))
  3918. #define BIT_SHIFT_RXPKT1ENADDR_8822B 0
  3919. #define BIT_MASK_RXPKT1ENADDR_8822B 0xffff
  3920. #define BIT_RXPKT1ENADDR_8822B(x) \
  3921. (((x) & BIT_MASK_RXPKT1ENADDR_8822B) << BIT_SHIFT_RXPKT1ENADDR_8822B)
  3922. #define BITS_RXPKT1ENADDR_8822B \
  3923. (BIT_MASK_RXPKT1ENADDR_8822B << BIT_SHIFT_RXPKT1ENADDR_8822B)
  3924. #define BIT_CLEAR_RXPKT1ENADDR_8822B(x) ((x) & (~BITS_RXPKT1ENADDR_8822B))
  3925. #define BIT_GET_RXPKT1ENADDR_8822B(x) \
  3926. (((x) >> BIT_SHIFT_RXPKT1ENADDR_8822B) & BIT_MASK_RXPKT1ENADDR_8822B)
  3927. #define BIT_SET_RXPKT1ENADDR_8822B(x, v) \
  3928. (BIT_CLEAR_RXPKT1ENADDR_8822B(x) | BIT_RXPKT1ENADDR_8822B(v))
  3929. /* 2 REG_RXFF_PTR_V1_8822B */
  3930. /* 2 REG_NOT_VALID_8822B */
  3931. #define BIT_SHIFT_RXFF0_RDPTR_V2_8822B 0
  3932. #define BIT_MASK_RXFF0_RDPTR_V2_8822B 0x3ffff
  3933. #define BIT_RXFF0_RDPTR_V2_8822B(x) \
  3934. (((x) & BIT_MASK_RXFF0_RDPTR_V2_8822B) \
  3935. << BIT_SHIFT_RXFF0_RDPTR_V2_8822B)
  3936. #define BITS_RXFF0_RDPTR_V2_8822B \
  3937. (BIT_MASK_RXFF0_RDPTR_V2_8822B << BIT_SHIFT_RXFF0_RDPTR_V2_8822B)
  3938. #define BIT_CLEAR_RXFF0_RDPTR_V2_8822B(x) ((x) & (~BITS_RXFF0_RDPTR_V2_8822B))
  3939. #define BIT_GET_RXFF0_RDPTR_V2_8822B(x) \
  3940. (((x) >> BIT_SHIFT_RXFF0_RDPTR_V2_8822B) & \
  3941. BIT_MASK_RXFF0_RDPTR_V2_8822B)
  3942. #define BIT_SET_RXFF0_RDPTR_V2_8822B(x, v) \
  3943. (BIT_CLEAR_RXFF0_RDPTR_V2_8822B(x) | BIT_RXFF0_RDPTR_V2_8822B(v))
  3944. /* 2 REG_RXFF_WTR_V1_8822B */
  3945. /* 2 REG_NOT_VALID_8822B */
  3946. #define BIT_SHIFT_RXFF0_WTPTR_V2_8822B 0
  3947. #define BIT_MASK_RXFF0_WTPTR_V2_8822B 0x3ffff
  3948. #define BIT_RXFF0_WTPTR_V2_8822B(x) \
  3949. (((x) & BIT_MASK_RXFF0_WTPTR_V2_8822B) \
  3950. << BIT_SHIFT_RXFF0_WTPTR_V2_8822B)
  3951. #define BITS_RXFF0_WTPTR_V2_8822B \
  3952. (BIT_MASK_RXFF0_WTPTR_V2_8822B << BIT_SHIFT_RXFF0_WTPTR_V2_8822B)
  3953. #define BIT_CLEAR_RXFF0_WTPTR_V2_8822B(x) ((x) & (~BITS_RXFF0_WTPTR_V2_8822B))
  3954. #define BIT_GET_RXFF0_WTPTR_V2_8822B(x) \
  3955. (((x) >> BIT_SHIFT_RXFF0_WTPTR_V2_8822B) & \
  3956. BIT_MASK_RXFF0_WTPTR_V2_8822B)
  3957. #define BIT_SET_RXFF0_WTPTR_V2_8822B(x, v) \
  3958. (BIT_CLEAR_RXFF0_WTPTR_V2_8822B(x) | BIT_RXFF0_WTPTR_V2_8822B(v))
  3959. /* 2 REG_FE2IMR_8822B */
  3960. #define BIT__FE4ISR__IND_MSK_8822B BIT(29)
  3961. #define BIT_FS_TXSC_DESC_DONE_INT_EN_8822B BIT(28)
  3962. #define BIT_FS_TXSC_BKDONE_INT_EN_8822B BIT(27)
  3963. #define BIT_FS_TXSC_BEDONE_INT_EN_8822B BIT(26)
  3964. #define BIT_FS_TXSC_VIDONE_INT_EN_8822B BIT(25)
  3965. #define BIT_FS_TXSC_VODONE_INT_EN_8822B BIT(24)
  3966. #define BIT_FS_ATIM_MB7_INT_EN_8822B BIT(23)
  3967. #define BIT_FS_ATIM_MB6_INT_EN_8822B BIT(22)
  3968. #define BIT_FS_ATIM_MB5_INT_EN_8822B BIT(21)
  3969. #define BIT_FS_ATIM_MB4_INT_EN_8822B BIT(20)
  3970. #define BIT_FS_ATIM_MB3_INT_EN_8822B BIT(19)
  3971. #define BIT_FS_ATIM_MB2_INT_EN_8822B BIT(18)
  3972. #define BIT_FS_ATIM_MB1_INT_EN_8822B BIT(17)
  3973. #define BIT_FS_ATIM_MB0_INT_EN_8822B BIT(16)
  3974. #define BIT_FS_TBTT4INT_EN_8822B BIT(11)
  3975. #define BIT_FS_TBTT3INT_EN_8822B BIT(10)
  3976. #define BIT_FS_TBTT2INT_EN_8822B BIT(9)
  3977. #define BIT_FS_TBTT1INT_EN_8822B BIT(8)
  3978. #define BIT_FS_TBTT0_MB7INT_EN_8822B BIT(7)
  3979. #define BIT_FS_TBTT0_MB6INT_EN_8822B BIT(6)
  3980. #define BIT_FS_TBTT0_MB5INT_EN_8822B BIT(5)
  3981. #define BIT_FS_TBTT0_MB4INT_EN_8822B BIT(4)
  3982. #define BIT_FS_TBTT0_MB3INT_EN_8822B BIT(3)
  3983. #define BIT_FS_TBTT0_MB2INT_EN_8822B BIT(2)
  3984. #define BIT_FS_TBTT0_MB1INT_EN_8822B BIT(1)
  3985. #define BIT_FS_TBTT0_INT_EN_8822B BIT(0)
  3986. /* 2 REG_FE2ISR_8822B */
  3987. #define BIT__FE4ISR__IND_INT_8822B BIT(29)
  3988. #define BIT_FS_TXSC_DESC_DONE_INT_8822B BIT(28)
  3989. #define BIT_FS_TXSC_BKDONE_INT_8822B BIT(27)
  3990. #define BIT_FS_TXSC_BEDONE_INT_8822B BIT(26)
  3991. #define BIT_FS_TXSC_VIDONE_INT_8822B BIT(25)
  3992. #define BIT_FS_TXSC_VODONE_INT_8822B BIT(24)
  3993. #define BIT_FS_ATIM_MB7_INT_8822B BIT(23)
  3994. #define BIT_FS_ATIM_MB6_INT_8822B BIT(22)
  3995. #define BIT_FS_ATIM_MB5_INT_8822B BIT(21)
  3996. #define BIT_FS_ATIM_MB4_INT_8822B BIT(20)
  3997. #define BIT_FS_ATIM_MB3_INT_8822B BIT(19)
  3998. #define BIT_FS_ATIM_MB2_INT_8822B BIT(18)
  3999. #define BIT_FS_ATIM_MB1_INT_8822B BIT(17)
  4000. #define BIT_FS_ATIM_MB0_INT_8822B BIT(16)
  4001. #define BIT_FS_TBTT4INT_8822B BIT(11)
  4002. #define BIT_FS_TBTT3INT_8822B BIT(10)
  4003. #define BIT_FS_TBTT2INT_8822B BIT(9)
  4004. #define BIT_FS_TBTT1INT_8822B BIT(8)
  4005. #define BIT_FS_TBTT0_MB7INT_8822B BIT(7)
  4006. #define BIT_FS_TBTT0_MB6INT_8822B BIT(6)
  4007. #define BIT_FS_TBTT0_MB5INT_8822B BIT(5)
  4008. #define BIT_FS_TBTT0_MB4INT_8822B BIT(4)
  4009. #define BIT_FS_TBTT0_MB3INT_8822B BIT(3)
  4010. #define BIT_FS_TBTT0_MB2INT_8822B BIT(2)
  4011. #define BIT_FS_TBTT0_MB1INT_8822B BIT(1)
  4012. #define BIT_FS_TBTT0_INT_8822B BIT(0)
  4013. /* 2 REG_FE3IMR_8822B */
  4014. #define BIT_FS_CLI3_MTI_BCNIVLEAR_INT__EN_8822B BIT(31)
  4015. #define BIT_FS_CLI2_MTI_BCNIVLEAR_INT__EN_8822B BIT(30)
  4016. #define BIT_FS_CLI1_MTI_BCNIVLEAR_INT__EN_8822B BIT(29)
  4017. #define BIT_FS_CLI0_MTI_BCNIVLEAR_INT__EN_8822B BIT(28)
  4018. #define BIT_FS_BCNDMA4_INT_EN_8822B BIT(27)
  4019. #define BIT_FS_BCNDMA3_INT_EN_8822B BIT(26)
  4020. #define BIT_FS_BCNDMA2_INT_EN_8822B BIT(25)
  4021. #define BIT_FS_BCNDMA1_INT_EN_8822B BIT(24)
  4022. #define BIT_FS_BCNDMA0_MB7_INT_EN_8822B BIT(23)
  4023. #define BIT_FS_BCNDMA0_MB6_INT_EN_8822B BIT(22)
  4024. #define BIT_FS_BCNDMA0_MB5_INT_EN_8822B BIT(21)
  4025. #define BIT_FS_BCNDMA0_MB4_INT_EN_8822B BIT(20)
  4026. #define BIT_FS_BCNDMA0_MB3_INT_EN_8822B BIT(19)
  4027. #define BIT_FS_BCNDMA0_MB2_INT_EN_8822B BIT(18)
  4028. #define BIT_FS_BCNDMA0_MB1_INT_EN_8822B BIT(17)
  4029. #define BIT_FS_BCNDMA0_INT_EN_8822B BIT(16)
  4030. #define BIT_FS_MTI_BCNIVLEAR_INT__EN_8822B BIT(15)
  4031. #define BIT_FS_BCNERLY4_INT_EN_8822B BIT(11)
  4032. #define BIT_FS_BCNERLY3_INT_EN_8822B BIT(10)
  4033. #define BIT_FS_BCNERLY2_INT_EN_8822B BIT(9)
  4034. #define BIT_FS_BCNERLY1_INT_EN_8822B BIT(8)
  4035. #define BIT_FS_BCNERLY0_MB7INT_EN_8822B BIT(7)
  4036. #define BIT_FS_BCNERLY0_MB6INT_EN_8822B BIT(6)
  4037. #define BIT_FS_BCNERLY0_MB5INT_EN_8822B BIT(5)
  4038. #define BIT_FS_BCNERLY0_MB4INT_EN_8822B BIT(4)
  4039. #define BIT_FS_BCNERLY0_MB3INT_EN_8822B BIT(3)
  4040. #define BIT_FS_BCNERLY0_MB2INT_EN_8822B BIT(2)
  4041. #define BIT_FS_BCNERLY0_MB1INT_EN_8822B BIT(1)
  4042. #define BIT_FS_BCNERLY0_INT_EN_8822B BIT(0)
  4043. /* 2 REG_FE3ISR_8822B */
  4044. #define BIT_FS_CLI3_MTI_BCNIVLEAR_INT_8822B BIT(31)
  4045. #define BIT_FS_CLI2_MTI_BCNIVLEAR_INT_8822B BIT(30)
  4046. #define BIT_FS_CLI1_MTI_BCNIVLEAR_INT_8822B BIT(29)
  4047. #define BIT_FS_CLI0_MTI_BCNIVLEAR_INT_8822B BIT(28)
  4048. #define BIT_FS_BCNDMA4_INT_8822B BIT(27)
  4049. #define BIT_FS_BCNDMA3_INT_8822B BIT(26)
  4050. #define BIT_FS_BCNDMA2_INT_8822B BIT(25)
  4051. #define BIT_FS_BCNDMA1_INT_8822B BIT(24)
  4052. #define BIT_FS_BCNDMA0_MB7_INT_8822B BIT(23)
  4053. #define BIT_FS_BCNDMA0_MB6_INT_8822B BIT(22)
  4054. #define BIT_FS_BCNDMA0_MB5_INT_8822B BIT(21)
  4055. #define BIT_FS_BCNDMA0_MB4_INT_8822B BIT(20)
  4056. #define BIT_FS_BCNDMA0_MB3_INT_8822B BIT(19)
  4057. #define BIT_FS_BCNDMA0_MB2_INT_8822B BIT(18)
  4058. #define BIT_FS_BCNDMA0_MB1_INT_8822B BIT(17)
  4059. #define BIT_FS_BCNDMA0_INT_8822B BIT(16)
  4060. #define BIT_FS_MTI_BCNIVLEAR_INT_8822B BIT(15)
  4061. #define BIT_FS_BCNERLY4_INT_8822B BIT(11)
  4062. #define BIT_FS_BCNERLY3_INT_8822B BIT(10)
  4063. #define BIT_FS_BCNERLY2_INT_8822B BIT(9)
  4064. #define BIT_FS_BCNERLY1_INT_8822B BIT(8)
  4065. #define BIT_FS_BCNERLY0_MB7INT_8822B BIT(7)
  4066. #define BIT_FS_BCNERLY0_MB6INT_8822B BIT(6)
  4067. #define BIT_FS_BCNERLY0_MB5INT_8822B BIT(5)
  4068. #define BIT_FS_BCNERLY0_MB4INT_8822B BIT(4)
  4069. #define BIT_FS_BCNERLY0_MB3INT_8822B BIT(3)
  4070. #define BIT_FS_BCNERLY0_MB2INT_8822B BIT(2)
  4071. #define BIT_FS_BCNERLY0_MB1INT_8822B BIT(1)
  4072. #define BIT_FS_BCNERLY0_INT_8822B BIT(0)
  4073. /* 2 REG_FE4IMR_8822B */
  4074. #define BIT_FS_CLI3_TXPKTIN_INT_EN_8822B BIT(19)
  4075. #define BIT_FS_CLI2_TXPKTIN_INT_EN_8822B BIT(18)
  4076. #define BIT_FS_CLI1_TXPKTIN_INT_EN_8822B BIT(17)
  4077. #define BIT_FS_CLI0_TXPKTIN_INT_EN_8822B BIT(16)
  4078. #define BIT_FS_CLI3_RX_UMD0_INT_EN_8822B BIT(15)
  4079. #define BIT_FS_CLI3_RX_UMD1_INT_EN_8822B BIT(14)
  4080. #define BIT_FS_CLI3_RX_BMD0_INT_EN_8822B BIT(13)
  4081. #define BIT_FS_CLI3_RX_BMD1_INT_EN_8822B BIT(12)
  4082. #define BIT_FS_CLI2_RX_UMD0_INT_EN_8822B BIT(11)
  4083. #define BIT_FS_CLI2_RX_UMD1_INT_EN_8822B BIT(10)
  4084. #define BIT_FS_CLI2_RX_BMD0_INT_EN_8822B BIT(9)
  4085. #define BIT_FS_CLI2_RX_BMD1_INT_EN_8822B BIT(8)
  4086. #define BIT_FS_CLI1_RX_UMD0_INT_EN_8822B BIT(7)
  4087. #define BIT_FS_CLI1_RX_UMD1_INT_EN_8822B BIT(6)
  4088. #define BIT_FS_CLI1_RX_BMD0_INT_EN_8822B BIT(5)
  4089. #define BIT_FS_CLI1_RX_BMD1_INT_EN_8822B BIT(4)
  4090. #define BIT_FS_CLI0_RX_UMD0_INT_EN_8822B BIT(3)
  4091. #define BIT_FS_CLI0_RX_UMD1_INT_EN_8822B BIT(2)
  4092. #define BIT_FS_CLI0_RX_BMD0_INT_EN_8822B BIT(1)
  4093. #define BIT_FS_CLI0_RX_BMD1_INT_EN_8822B BIT(0)
  4094. /* 2 REG_FE4ISR_8822B */
  4095. #define BIT_FS_CLI3_TXPKTIN_INT_8822B BIT(19)
  4096. #define BIT_FS_CLI2_TXPKTIN_INT_8822B BIT(18)
  4097. #define BIT_FS_CLI1_TXPKTIN_INT_8822B BIT(17)
  4098. #define BIT_FS_CLI0_TXPKTIN_INT_8822B BIT(16)
  4099. #define BIT_FS_CLI3_RX_UMD0_INT_8822B BIT(15)
  4100. #define BIT_FS_CLI3_RX_UMD1_INT_8822B BIT(14)
  4101. #define BIT_FS_CLI3_RX_BMD0_INT_8822B BIT(13)
  4102. #define BIT_FS_CLI3_RX_BMD1_INT_8822B BIT(12)
  4103. #define BIT_FS_CLI2_RX_UMD0_INT_8822B BIT(11)
  4104. #define BIT_FS_CLI2_RX_UMD1_INT_8822B BIT(10)
  4105. #define BIT_FS_CLI2_RX_BMD0_INT_8822B BIT(9)
  4106. #define BIT_FS_CLI2_RX_BMD1_INT_8822B BIT(8)
  4107. #define BIT_FS_CLI1_RX_UMD0_INT_8822B BIT(7)
  4108. #define BIT_FS_CLI1_RX_UMD1_INT_8822B BIT(6)
  4109. #define BIT_FS_CLI1_RX_BMD0_INT_8822B BIT(5)
  4110. #define BIT_FS_CLI1_RX_BMD1_INT_8822B BIT(4)
  4111. #define BIT_FS_CLI0_RX_UMD0_INT_8822B BIT(3)
  4112. #define BIT_FS_CLI0_RX_UMD1_INT_8822B BIT(2)
  4113. #define BIT_FS_CLI0_RX_BMD0_INT_8822B BIT(1)
  4114. #define BIT_FS_CLI0_RX_BMD1_INT_8822B BIT(0)
  4115. /* 2 REG_FT1IMR_8822B */
  4116. #define BIT__FT2ISR__IND_MSK_8822B BIT(30)
  4117. #define BIT_FTM_PTT_INT_EN_8822B BIT(29)
  4118. #define BIT_RXFTMREQ_INT_EN_8822B BIT(28)
  4119. #define BIT_RXFTM_INT_EN_8822B BIT(27)
  4120. #define BIT_TXFTM_INT_EN_8822B BIT(26)
  4121. #define BIT_FS_H2C_CMD_OK_INT_EN_8822B BIT(25)
  4122. #define BIT_FS_H2C_CMD_FULL_INT_EN_8822B BIT(24)
  4123. #define BIT_FS_MACID_PWRCHANGE5_INT_EN_8822B BIT(23)
  4124. #define BIT_FS_MACID_PWRCHANGE4_INT_EN_8822B BIT(22)
  4125. #define BIT_FS_MACID_PWRCHANGE3_INT_EN_8822B BIT(21)
  4126. #define BIT_FS_MACID_PWRCHANGE2_INT_EN_8822B BIT(20)
  4127. #define BIT_FS_MACID_PWRCHANGE1_INT_EN_8822B BIT(19)
  4128. #define BIT_FS_MACID_PWRCHANGE0_INT_EN_8822B BIT(18)
  4129. #define BIT_FS_CTWEND2_INT_EN_8822B BIT(17)
  4130. #define BIT_FS_CTWEND1_INT_EN_8822B BIT(16)
  4131. #define BIT_FS_CTWEND0_INT_EN_8822B BIT(15)
  4132. #define BIT_FS_TX_NULL1_INT_EN_8822B BIT(14)
  4133. #define BIT_FS_TX_NULL0_INT_EN_8822B BIT(13)
  4134. #define BIT_FS_TSF_BIT32_TOGGLE_EN_8822B BIT(12)
  4135. #define BIT_FS_P2P_RFON2_INT_EN_8822B BIT(11)
  4136. #define BIT_FS_P2P_RFOFF2_INT_EN_8822B BIT(10)
  4137. #define BIT_FS_P2P_RFON1_INT_EN_8822B BIT(9)
  4138. #define BIT_FS_P2P_RFOFF1_INT_EN_8822B BIT(8)
  4139. #define BIT_FS_P2P_RFON0_INT_EN_8822B BIT(7)
  4140. #define BIT_FS_P2P_RFOFF0_INT_EN_8822B BIT(6)
  4141. #define BIT_FS_RX_UAPSDMD1_EN_8822B BIT(5)
  4142. #define BIT_FS_RX_UAPSDMD0_EN_8822B BIT(4)
  4143. #define BIT_FS_TRIGGER_PKT_EN_8822B BIT(3)
  4144. #define BIT_FS_EOSP_INT_EN_8822B BIT(2)
  4145. #define BIT_FS_RPWM2_INT_EN_8822B BIT(1)
  4146. #define BIT_FS_RPWM_INT_EN_8822B BIT(0)
  4147. /* 2 REG_FT1ISR_8822B */
  4148. #define BIT__FT2ISR__IND_INT_8822B BIT(30)
  4149. #define BIT_FTM_PTT_INT_8822B BIT(29)
  4150. #define BIT_RXFTMREQ_INT_8822B BIT(28)
  4151. #define BIT_RXFTM_INT_8822B BIT(27)
  4152. #define BIT_TXFTM_INT_8822B BIT(26)
  4153. #define BIT_FS_H2C_CMD_OK_INT_8822B BIT(25)
  4154. #define BIT_FS_H2C_CMD_FULL_INT_8822B BIT(24)
  4155. #define BIT_FS_MACID_PWRCHANGE5_INT_8822B BIT(23)
  4156. #define BIT_FS_MACID_PWRCHANGE4_INT_8822B BIT(22)
  4157. #define BIT_FS_MACID_PWRCHANGE3_INT_8822B BIT(21)
  4158. #define BIT_FS_MACID_PWRCHANGE2_INT_8822B BIT(20)
  4159. #define BIT_FS_MACID_PWRCHANGE1_INT_8822B BIT(19)
  4160. #define BIT_FS_MACID_PWRCHANGE0_INT_8822B BIT(18)
  4161. #define BIT_FS_CTWEND2_INT_8822B BIT(17)
  4162. #define BIT_FS_CTWEND1_INT_8822B BIT(16)
  4163. #define BIT_FS_CTWEND0_INT_8822B BIT(15)
  4164. #define BIT_FS_TX_NULL1_INT_8822B BIT(14)
  4165. #define BIT_FS_TX_NULL0_INT_8822B BIT(13)
  4166. #define BIT_FS_TSF_BIT32_TOGGLE_INT_8822B BIT(12)
  4167. #define BIT_FS_P2P_RFON2_INT_8822B BIT(11)
  4168. #define BIT_FS_P2P_RFOFF2_INT_8822B BIT(10)
  4169. #define BIT_FS_P2P_RFON1_INT_8822B BIT(9)
  4170. #define BIT_FS_P2P_RFOFF1_INT_8822B BIT(8)
  4171. #define BIT_FS_P2P_RFON0_INT_8822B BIT(7)
  4172. #define BIT_FS_P2P_RFOFF0_INT_8822B BIT(6)
  4173. #define BIT_FS_RX_UAPSDMD1_INT_8822B BIT(5)
  4174. #define BIT_FS_RX_UAPSDMD0_INT_8822B BIT(4)
  4175. #define BIT_FS_TRIGGER_PKT_INT_8822B BIT(3)
  4176. #define BIT_FS_EOSP_INT_8822B BIT(2)
  4177. #define BIT_FS_RPWM2_INT_8822B BIT(1)
  4178. #define BIT_FS_RPWM_INT_8822B BIT(0)
  4179. /* 2 REG_SPWR0_8822B */
  4180. #define BIT_SHIFT_MID_31TO0_8822B 0
  4181. #define BIT_MASK_MID_31TO0_8822B 0xffffffffL
  4182. #define BIT_MID_31TO0_8822B(x) \
  4183. (((x) & BIT_MASK_MID_31TO0_8822B) << BIT_SHIFT_MID_31TO0_8822B)
  4184. #define BITS_MID_31TO0_8822B \
  4185. (BIT_MASK_MID_31TO0_8822B << BIT_SHIFT_MID_31TO0_8822B)
  4186. #define BIT_CLEAR_MID_31TO0_8822B(x) ((x) & (~BITS_MID_31TO0_8822B))
  4187. #define BIT_GET_MID_31TO0_8822B(x) \
  4188. (((x) >> BIT_SHIFT_MID_31TO0_8822B) & BIT_MASK_MID_31TO0_8822B)
  4189. #define BIT_SET_MID_31TO0_8822B(x, v) \
  4190. (BIT_CLEAR_MID_31TO0_8822B(x) | BIT_MID_31TO0_8822B(v))
  4191. /* 2 REG_SPWR1_8822B */
  4192. #define BIT_SHIFT_MID_63TO32_8822B 0
  4193. #define BIT_MASK_MID_63TO32_8822B 0xffffffffL
  4194. #define BIT_MID_63TO32_8822B(x) \
  4195. (((x) & BIT_MASK_MID_63TO32_8822B) << BIT_SHIFT_MID_63TO32_8822B)
  4196. #define BITS_MID_63TO32_8822B \
  4197. (BIT_MASK_MID_63TO32_8822B << BIT_SHIFT_MID_63TO32_8822B)
  4198. #define BIT_CLEAR_MID_63TO32_8822B(x) ((x) & (~BITS_MID_63TO32_8822B))
  4199. #define BIT_GET_MID_63TO32_8822B(x) \
  4200. (((x) >> BIT_SHIFT_MID_63TO32_8822B) & BIT_MASK_MID_63TO32_8822B)
  4201. #define BIT_SET_MID_63TO32_8822B(x, v) \
  4202. (BIT_CLEAR_MID_63TO32_8822B(x) | BIT_MID_63TO32_8822B(v))
  4203. /* 2 REG_SPWR2_8822B */
  4204. #define BIT_SHIFT_MID_95O64_8822B 0
  4205. #define BIT_MASK_MID_95O64_8822B 0xffffffffL
  4206. #define BIT_MID_95O64_8822B(x) \
  4207. (((x) & BIT_MASK_MID_95O64_8822B) << BIT_SHIFT_MID_95O64_8822B)
  4208. #define BITS_MID_95O64_8822B \
  4209. (BIT_MASK_MID_95O64_8822B << BIT_SHIFT_MID_95O64_8822B)
  4210. #define BIT_CLEAR_MID_95O64_8822B(x) ((x) & (~BITS_MID_95O64_8822B))
  4211. #define BIT_GET_MID_95O64_8822B(x) \
  4212. (((x) >> BIT_SHIFT_MID_95O64_8822B) & BIT_MASK_MID_95O64_8822B)
  4213. #define BIT_SET_MID_95O64_8822B(x, v) \
  4214. (BIT_CLEAR_MID_95O64_8822B(x) | BIT_MID_95O64_8822B(v))
  4215. /* 2 REG_SPWR3_8822B */
  4216. #define BIT_SHIFT_MID_127TO96_8822B 0
  4217. #define BIT_MASK_MID_127TO96_8822B 0xffffffffL
  4218. #define BIT_MID_127TO96_8822B(x) \
  4219. (((x) & BIT_MASK_MID_127TO96_8822B) << BIT_SHIFT_MID_127TO96_8822B)
  4220. #define BITS_MID_127TO96_8822B \
  4221. (BIT_MASK_MID_127TO96_8822B << BIT_SHIFT_MID_127TO96_8822B)
  4222. #define BIT_CLEAR_MID_127TO96_8822B(x) ((x) & (~BITS_MID_127TO96_8822B))
  4223. #define BIT_GET_MID_127TO96_8822B(x) \
  4224. (((x) >> BIT_SHIFT_MID_127TO96_8822B) & BIT_MASK_MID_127TO96_8822B)
  4225. #define BIT_SET_MID_127TO96_8822B(x, v) \
  4226. (BIT_CLEAR_MID_127TO96_8822B(x) | BIT_MID_127TO96_8822B(v))
  4227. /* 2 REG_POWSEQ_8822B */
  4228. #define BIT_SHIFT_SEQNUM_MID_8822B 16
  4229. #define BIT_MASK_SEQNUM_MID_8822B 0xffff
  4230. #define BIT_SEQNUM_MID_8822B(x) \
  4231. (((x) & BIT_MASK_SEQNUM_MID_8822B) << BIT_SHIFT_SEQNUM_MID_8822B)
  4232. #define BITS_SEQNUM_MID_8822B \
  4233. (BIT_MASK_SEQNUM_MID_8822B << BIT_SHIFT_SEQNUM_MID_8822B)
  4234. #define BIT_CLEAR_SEQNUM_MID_8822B(x) ((x) & (~BITS_SEQNUM_MID_8822B))
  4235. #define BIT_GET_SEQNUM_MID_8822B(x) \
  4236. (((x) >> BIT_SHIFT_SEQNUM_MID_8822B) & BIT_MASK_SEQNUM_MID_8822B)
  4237. #define BIT_SET_SEQNUM_MID_8822B(x, v) \
  4238. (BIT_CLEAR_SEQNUM_MID_8822B(x) | BIT_SEQNUM_MID_8822B(v))
  4239. #define BIT_SHIFT_REF_MID_8822B 0
  4240. #define BIT_MASK_REF_MID_8822B 0x7f
  4241. #define BIT_REF_MID_8822B(x) \
  4242. (((x) & BIT_MASK_REF_MID_8822B) << BIT_SHIFT_REF_MID_8822B)
  4243. #define BITS_REF_MID_8822B (BIT_MASK_REF_MID_8822B << BIT_SHIFT_REF_MID_8822B)
  4244. #define BIT_CLEAR_REF_MID_8822B(x) ((x) & (~BITS_REF_MID_8822B))
  4245. #define BIT_GET_REF_MID_8822B(x) \
  4246. (((x) >> BIT_SHIFT_REF_MID_8822B) & BIT_MASK_REF_MID_8822B)
  4247. #define BIT_SET_REF_MID_8822B(x, v) \
  4248. (BIT_CLEAR_REF_MID_8822B(x) | BIT_REF_MID_8822B(v))
  4249. /* 2 REG_TC7_CTRL_V1_8822B */
  4250. #define BIT_TC7INT_EN_8822B BIT(26)
  4251. #define BIT_TC7MODE_8822B BIT(25)
  4252. #define BIT_TC7EN_8822B BIT(24)
  4253. #define BIT_SHIFT_TC7DATA_8822B 0
  4254. #define BIT_MASK_TC7DATA_8822B 0xffffff
  4255. #define BIT_TC7DATA_8822B(x) \
  4256. (((x) & BIT_MASK_TC7DATA_8822B) << BIT_SHIFT_TC7DATA_8822B)
  4257. #define BITS_TC7DATA_8822B (BIT_MASK_TC7DATA_8822B << BIT_SHIFT_TC7DATA_8822B)
  4258. #define BIT_CLEAR_TC7DATA_8822B(x) ((x) & (~BITS_TC7DATA_8822B))
  4259. #define BIT_GET_TC7DATA_8822B(x) \
  4260. (((x) >> BIT_SHIFT_TC7DATA_8822B) & BIT_MASK_TC7DATA_8822B)
  4261. #define BIT_SET_TC7DATA_8822B(x, v) \
  4262. (BIT_CLEAR_TC7DATA_8822B(x) | BIT_TC7DATA_8822B(v))
  4263. /* 2 REG_TC8_CTRL_V1_8822B */
  4264. #define BIT_TC8INT_EN_8822B BIT(26)
  4265. #define BIT_TC8MODE_8822B BIT(25)
  4266. #define BIT_TC8EN_8822B BIT(24)
  4267. #define BIT_SHIFT_TC8DATA_8822B 0
  4268. #define BIT_MASK_TC8DATA_8822B 0xffffff
  4269. #define BIT_TC8DATA_8822B(x) \
  4270. (((x) & BIT_MASK_TC8DATA_8822B) << BIT_SHIFT_TC8DATA_8822B)
  4271. #define BITS_TC8DATA_8822B (BIT_MASK_TC8DATA_8822B << BIT_SHIFT_TC8DATA_8822B)
  4272. #define BIT_CLEAR_TC8DATA_8822B(x) ((x) & (~BITS_TC8DATA_8822B))
  4273. #define BIT_GET_TC8DATA_8822B(x) \
  4274. (((x) >> BIT_SHIFT_TC8DATA_8822B) & BIT_MASK_TC8DATA_8822B)
  4275. #define BIT_SET_TC8DATA_8822B(x, v) \
  4276. (BIT_CLEAR_TC8DATA_8822B(x) | BIT_TC8DATA_8822B(v))
  4277. /* 2 REG_FT2IMR_8822B */
  4278. #define BIT_FS_CLI3_RX_UAPSDMD1_EN_8822B BIT(31)
  4279. #define BIT_FS_CLI3_RX_UAPSDMD0_EN_8822B BIT(30)
  4280. #define BIT_FS_CLI3_TRIGGER_PKT_EN_8822B BIT(29)
  4281. #define BIT_FS_CLI3_EOSP_INT_EN_8822B BIT(28)
  4282. #define BIT_FS_CLI2_RX_UAPSDMD1_EN_8822B BIT(27)
  4283. #define BIT_FS_CLI2_RX_UAPSDMD0_EN_8822B BIT(26)
  4284. #define BIT_FS_CLI2_TRIGGER_PKT_EN_8822B BIT(25)
  4285. #define BIT_FS_CLI2_EOSP_INT_EN_8822B BIT(24)
  4286. #define BIT_FS_CLI1_RX_UAPSDMD1_EN_8822B BIT(23)
  4287. #define BIT_FS_CLI1_RX_UAPSDMD0_EN_8822B BIT(22)
  4288. #define BIT_FS_CLI1_TRIGGER_PKT_EN_8822B BIT(21)
  4289. #define BIT_FS_CLI1_EOSP_INT_EN_8822B BIT(20)
  4290. #define BIT_FS_CLI0_RX_UAPSDMD1_EN_8822B BIT(19)
  4291. #define BIT_FS_CLI0_RX_UAPSDMD0_EN_8822B BIT(18)
  4292. #define BIT_FS_CLI0_TRIGGER_PKT_EN_8822B BIT(17)
  4293. #define BIT_FS_CLI0_EOSP_INT_EN_8822B BIT(16)
  4294. #define BIT_FS_TSF_BIT32_TOGGLE_P2P2_EN_8822B BIT(9)
  4295. #define BIT_FS_TSF_BIT32_TOGGLE_P2P1_EN_8822B BIT(8)
  4296. #define BIT_FS_CLI3_TX_NULL1_INT_EN_8822B BIT(7)
  4297. #define BIT_FS_CLI3_TX_NULL0_INT_EN_8822B BIT(6)
  4298. #define BIT_FS_CLI2_TX_NULL1_INT_EN_8822B BIT(5)
  4299. #define BIT_FS_CLI2_TX_NULL0_INT_EN_8822B BIT(4)
  4300. #define BIT_FS_CLI1_TX_NULL1_INT_EN_8822B BIT(3)
  4301. #define BIT_FS_CLI1_TX_NULL0_INT_EN_8822B BIT(2)
  4302. #define BIT_FS_CLI0_TX_NULL1_INT_EN_8822B BIT(1)
  4303. #define BIT_FS_CLI0_TX_NULL0_INT_EN_8822B BIT(0)
  4304. /* 2 REG_FT2ISR_8822B */
  4305. #define BIT_FS_CLI3_RX_UAPSDMD1_INT_8822B BIT(31)
  4306. #define BIT_FS_CLI3_RX_UAPSDMD0_INT_8822B BIT(30)
  4307. #define BIT_FS_CLI3_TRIGGER_PKT_INT_8822B BIT(29)
  4308. #define BIT_FS_CLI3_EOSP_INT_8822B BIT(28)
  4309. #define BIT_FS_CLI2_RX_UAPSDMD1_INT_8822B BIT(27)
  4310. #define BIT_FS_CLI2_RX_UAPSDMD0_INT_8822B BIT(26)
  4311. #define BIT_FS_CLI2_TRIGGER_PKT_INT_8822B BIT(25)
  4312. #define BIT_FS_CLI2_EOSP_INT_8822B BIT(24)
  4313. #define BIT_FS_CLI1_RX_UAPSDMD1_INT_8822B BIT(23)
  4314. #define BIT_FS_CLI1_RX_UAPSDMD0_INT_8822B BIT(22)
  4315. #define BIT_FS_CLI1_TRIGGER_PKT_INT_8822B BIT(21)
  4316. #define BIT_FS_CLI1_EOSP_INT_8822B BIT(20)
  4317. #define BIT_FS_CLI0_RX_UAPSDMD1_INT_8822B BIT(19)
  4318. #define BIT_FS_CLI0_RX_UAPSDMD0_INT_8822B BIT(18)
  4319. #define BIT_FS_CLI0_TRIGGER_PKT_INT_8822B BIT(17)
  4320. #define BIT_FS_CLI0_EOSP_INT_8822B BIT(16)
  4321. #define BIT_FS_TSF_BIT32_TOGGLE_P2P2_INT_8822B BIT(9)
  4322. #define BIT_FS_TSF_BIT32_TOGGLE_P2P1_INT_8822B BIT(8)
  4323. #define BIT_FS_CLI3_TX_NULL1_INT_8822B BIT(7)
  4324. #define BIT_FS_CLI3_TX_NULL0_INT_8822B BIT(6)
  4325. #define BIT_FS_CLI2_TX_NULL1_INT_8822B BIT(5)
  4326. #define BIT_FS_CLI2_TX_NULL0_INT_8822B BIT(4)
  4327. #define BIT_FS_CLI1_TX_NULL1_INT_8822B BIT(3)
  4328. #define BIT_FS_CLI1_TX_NULL0_INT_8822B BIT(2)
  4329. #define BIT_FS_CLI0_TX_NULL1_INT_8822B BIT(1)
  4330. #define BIT_FS_CLI0_TX_NULL0_INT_8822B BIT(0)
  4331. /* 2 REG_MSG2_8822B */
  4332. #define BIT_SHIFT_FW_MSG2_8822B 0
  4333. #define BIT_MASK_FW_MSG2_8822B 0xffffffffL
  4334. #define BIT_FW_MSG2_8822B(x) \
  4335. (((x) & BIT_MASK_FW_MSG2_8822B) << BIT_SHIFT_FW_MSG2_8822B)
  4336. #define BITS_FW_MSG2_8822B (BIT_MASK_FW_MSG2_8822B << BIT_SHIFT_FW_MSG2_8822B)
  4337. #define BIT_CLEAR_FW_MSG2_8822B(x) ((x) & (~BITS_FW_MSG2_8822B))
  4338. #define BIT_GET_FW_MSG2_8822B(x) \
  4339. (((x) >> BIT_SHIFT_FW_MSG2_8822B) & BIT_MASK_FW_MSG2_8822B)
  4340. #define BIT_SET_FW_MSG2_8822B(x, v) \
  4341. (BIT_CLEAR_FW_MSG2_8822B(x) | BIT_FW_MSG2_8822B(v))
  4342. /* 2 REG_MSG3_8822B */
  4343. #define BIT_SHIFT_FW_MSG3_8822B 0
  4344. #define BIT_MASK_FW_MSG3_8822B 0xffffffffL
  4345. #define BIT_FW_MSG3_8822B(x) \
  4346. (((x) & BIT_MASK_FW_MSG3_8822B) << BIT_SHIFT_FW_MSG3_8822B)
  4347. #define BITS_FW_MSG3_8822B (BIT_MASK_FW_MSG3_8822B << BIT_SHIFT_FW_MSG3_8822B)
  4348. #define BIT_CLEAR_FW_MSG3_8822B(x) ((x) & (~BITS_FW_MSG3_8822B))
  4349. #define BIT_GET_FW_MSG3_8822B(x) \
  4350. (((x) >> BIT_SHIFT_FW_MSG3_8822B) & BIT_MASK_FW_MSG3_8822B)
  4351. #define BIT_SET_FW_MSG3_8822B(x, v) \
  4352. (BIT_CLEAR_FW_MSG3_8822B(x) | BIT_FW_MSG3_8822B(v))
  4353. /* 2 REG_MSG4_8822B */
  4354. #define BIT_SHIFT_FW_MSG4_8822B 0
  4355. #define BIT_MASK_FW_MSG4_8822B 0xffffffffL
  4356. #define BIT_FW_MSG4_8822B(x) \
  4357. (((x) & BIT_MASK_FW_MSG4_8822B) << BIT_SHIFT_FW_MSG4_8822B)
  4358. #define BITS_FW_MSG4_8822B (BIT_MASK_FW_MSG4_8822B << BIT_SHIFT_FW_MSG4_8822B)
  4359. #define BIT_CLEAR_FW_MSG4_8822B(x) ((x) & (~BITS_FW_MSG4_8822B))
  4360. #define BIT_GET_FW_MSG4_8822B(x) \
  4361. (((x) >> BIT_SHIFT_FW_MSG4_8822B) & BIT_MASK_FW_MSG4_8822B)
  4362. #define BIT_SET_FW_MSG4_8822B(x, v) \
  4363. (BIT_CLEAR_FW_MSG4_8822B(x) | BIT_FW_MSG4_8822B(v))
  4364. /* 2 REG_MSG5_8822B */
  4365. #define BIT_SHIFT_FW_MSG5_8822B 0
  4366. #define BIT_MASK_FW_MSG5_8822B 0xffffffffL
  4367. #define BIT_FW_MSG5_8822B(x) \
  4368. (((x) & BIT_MASK_FW_MSG5_8822B) << BIT_SHIFT_FW_MSG5_8822B)
  4369. #define BITS_FW_MSG5_8822B (BIT_MASK_FW_MSG5_8822B << BIT_SHIFT_FW_MSG5_8822B)
  4370. #define BIT_CLEAR_FW_MSG5_8822B(x) ((x) & (~BITS_FW_MSG5_8822B))
  4371. #define BIT_GET_FW_MSG5_8822B(x) \
  4372. (((x) >> BIT_SHIFT_FW_MSG5_8822B) & BIT_MASK_FW_MSG5_8822B)
  4373. #define BIT_SET_FW_MSG5_8822B(x, v) \
  4374. (BIT_CLEAR_FW_MSG5_8822B(x) | BIT_FW_MSG5_8822B(v))
  4375. /* 2 REG_NOT_VALID_8822B */
  4376. /* 2 REG_FIFOPAGE_CTRL_1_8822B */
  4377. #define BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1_8822B 16
  4378. #define BIT_MASK_TX_OQT_HE_FREE_SPACE_V1_8822B 0xff
  4379. #define BIT_TX_OQT_HE_FREE_SPACE_V1_8822B(x) \
  4380. (((x) & BIT_MASK_TX_OQT_HE_FREE_SPACE_V1_8822B) \
  4381. << BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1_8822B)
  4382. #define BITS_TX_OQT_HE_FREE_SPACE_V1_8822B \
  4383. (BIT_MASK_TX_OQT_HE_FREE_SPACE_V1_8822B \
  4384. << BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1_8822B)
  4385. #define BIT_CLEAR_TX_OQT_HE_FREE_SPACE_V1_8822B(x) \
  4386. ((x) & (~BITS_TX_OQT_HE_FREE_SPACE_V1_8822B))
  4387. #define BIT_GET_TX_OQT_HE_FREE_SPACE_V1_8822B(x) \
  4388. (((x) >> BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1_8822B) & \
  4389. BIT_MASK_TX_OQT_HE_FREE_SPACE_V1_8822B)
  4390. #define BIT_SET_TX_OQT_HE_FREE_SPACE_V1_8822B(x, v) \
  4391. (BIT_CLEAR_TX_OQT_HE_FREE_SPACE_V1_8822B(x) | \
  4392. BIT_TX_OQT_HE_FREE_SPACE_V1_8822B(v))
  4393. #define BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1_8822B 0
  4394. #define BIT_MASK_TX_OQT_NL_FREE_SPACE_V1_8822B 0xff
  4395. #define BIT_TX_OQT_NL_FREE_SPACE_V1_8822B(x) \
  4396. (((x) & BIT_MASK_TX_OQT_NL_FREE_SPACE_V1_8822B) \
  4397. << BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1_8822B)
  4398. #define BITS_TX_OQT_NL_FREE_SPACE_V1_8822B \
  4399. (BIT_MASK_TX_OQT_NL_FREE_SPACE_V1_8822B \
  4400. << BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1_8822B)
  4401. #define BIT_CLEAR_TX_OQT_NL_FREE_SPACE_V1_8822B(x) \
  4402. ((x) & (~BITS_TX_OQT_NL_FREE_SPACE_V1_8822B))
  4403. #define BIT_GET_TX_OQT_NL_FREE_SPACE_V1_8822B(x) \
  4404. (((x) >> BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1_8822B) & \
  4405. BIT_MASK_TX_OQT_NL_FREE_SPACE_V1_8822B)
  4406. #define BIT_SET_TX_OQT_NL_FREE_SPACE_V1_8822B(x, v) \
  4407. (BIT_CLEAR_TX_OQT_NL_FREE_SPACE_V1_8822B(x) | \
  4408. BIT_TX_OQT_NL_FREE_SPACE_V1_8822B(v))
  4409. /* 2 REG_FIFOPAGE_CTRL_2_8822B */
  4410. #define BIT_BCN_VALID_1_V1_8822B BIT(31)
  4411. #define BIT_SHIFT_BCN_HEAD_1_V1_8822B 16
  4412. #define BIT_MASK_BCN_HEAD_1_V1_8822B 0xfff
  4413. #define BIT_BCN_HEAD_1_V1_8822B(x) \
  4414. (((x) & BIT_MASK_BCN_HEAD_1_V1_8822B) << BIT_SHIFT_BCN_HEAD_1_V1_8822B)
  4415. #define BITS_BCN_HEAD_1_V1_8822B \
  4416. (BIT_MASK_BCN_HEAD_1_V1_8822B << BIT_SHIFT_BCN_HEAD_1_V1_8822B)
  4417. #define BIT_CLEAR_BCN_HEAD_1_V1_8822B(x) ((x) & (~BITS_BCN_HEAD_1_V1_8822B))
  4418. #define BIT_GET_BCN_HEAD_1_V1_8822B(x) \
  4419. (((x) >> BIT_SHIFT_BCN_HEAD_1_V1_8822B) & BIT_MASK_BCN_HEAD_1_V1_8822B)
  4420. #define BIT_SET_BCN_HEAD_1_V1_8822B(x, v) \
  4421. (BIT_CLEAR_BCN_HEAD_1_V1_8822B(x) | BIT_BCN_HEAD_1_V1_8822B(v))
  4422. #define BIT_BCN_VALID_V1_8822B BIT(15)
  4423. #define BIT_SHIFT_BCN_HEAD_V1_8822B 0
  4424. #define BIT_MASK_BCN_HEAD_V1_8822B 0xfff
  4425. #define BIT_BCN_HEAD_V1_8822B(x) \
  4426. (((x) & BIT_MASK_BCN_HEAD_V1_8822B) << BIT_SHIFT_BCN_HEAD_V1_8822B)
  4427. #define BITS_BCN_HEAD_V1_8822B \
  4428. (BIT_MASK_BCN_HEAD_V1_8822B << BIT_SHIFT_BCN_HEAD_V1_8822B)
  4429. #define BIT_CLEAR_BCN_HEAD_V1_8822B(x) ((x) & (~BITS_BCN_HEAD_V1_8822B))
  4430. #define BIT_GET_BCN_HEAD_V1_8822B(x) \
  4431. (((x) >> BIT_SHIFT_BCN_HEAD_V1_8822B) & BIT_MASK_BCN_HEAD_V1_8822B)
  4432. #define BIT_SET_BCN_HEAD_V1_8822B(x, v) \
  4433. (BIT_CLEAR_BCN_HEAD_V1_8822B(x) | BIT_BCN_HEAD_V1_8822B(v))
  4434. /* 2 REG_AUTO_LLT_V1_8822B */
  4435. #define BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B 24
  4436. #define BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B 0xff
  4437. #define BIT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B(x) \
  4438. (((x) & BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B) \
  4439. << BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B)
  4440. #define BITS_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B \
  4441. (BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B \
  4442. << BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B)
  4443. #define BIT_CLEAR_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B(x) \
  4444. ((x) & (~BITS_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B))
  4445. #define BIT_GET_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B(x) \
  4446. (((x) >> BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B) & \
  4447. BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B)
  4448. #define BIT_SET_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B(x, v) \
  4449. (BIT_CLEAR_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B(x) | \
  4450. BIT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B(v))
  4451. #define BIT_SHIFT_LLT_FREE_PAGE_V1_8822B 8
  4452. #define BIT_MASK_LLT_FREE_PAGE_V1_8822B 0xffff
  4453. #define BIT_LLT_FREE_PAGE_V1_8822B(x) \
  4454. (((x) & BIT_MASK_LLT_FREE_PAGE_V1_8822B) \
  4455. << BIT_SHIFT_LLT_FREE_PAGE_V1_8822B)
  4456. #define BITS_LLT_FREE_PAGE_V1_8822B \
  4457. (BIT_MASK_LLT_FREE_PAGE_V1_8822B << BIT_SHIFT_LLT_FREE_PAGE_V1_8822B)
  4458. #define BIT_CLEAR_LLT_FREE_PAGE_V1_8822B(x) \
  4459. ((x) & (~BITS_LLT_FREE_PAGE_V1_8822B))
  4460. #define BIT_GET_LLT_FREE_PAGE_V1_8822B(x) \
  4461. (((x) >> BIT_SHIFT_LLT_FREE_PAGE_V1_8822B) & \
  4462. BIT_MASK_LLT_FREE_PAGE_V1_8822B)
  4463. #define BIT_SET_LLT_FREE_PAGE_V1_8822B(x, v) \
  4464. (BIT_CLEAR_LLT_FREE_PAGE_V1_8822B(x) | BIT_LLT_FREE_PAGE_V1_8822B(v))
  4465. #define BIT_SHIFT_BLK_DESC_NUM_8822B 4
  4466. #define BIT_MASK_BLK_DESC_NUM_8822B 0xf
  4467. #define BIT_BLK_DESC_NUM_8822B(x) \
  4468. (((x) & BIT_MASK_BLK_DESC_NUM_8822B) << BIT_SHIFT_BLK_DESC_NUM_8822B)
  4469. #define BITS_BLK_DESC_NUM_8822B \
  4470. (BIT_MASK_BLK_DESC_NUM_8822B << BIT_SHIFT_BLK_DESC_NUM_8822B)
  4471. #define BIT_CLEAR_BLK_DESC_NUM_8822B(x) ((x) & (~BITS_BLK_DESC_NUM_8822B))
  4472. #define BIT_GET_BLK_DESC_NUM_8822B(x) \
  4473. (((x) >> BIT_SHIFT_BLK_DESC_NUM_8822B) & BIT_MASK_BLK_DESC_NUM_8822B)
  4474. #define BIT_SET_BLK_DESC_NUM_8822B(x, v) \
  4475. (BIT_CLEAR_BLK_DESC_NUM_8822B(x) | BIT_BLK_DESC_NUM_8822B(v))
  4476. #define BIT_R_BCN_HEAD_SEL_8822B BIT(3)
  4477. #define BIT_R_EN_BCN_SW_HEAD_SEL_8822B BIT(2)
  4478. #define BIT_LLT_DBG_SEL_8822B BIT(1)
  4479. #define BIT_AUTO_INIT_LLT_V1_8822B BIT(0)
  4480. /* 2 REG_TXDMA_OFFSET_CHK_8822B */
  4481. #define BIT_EM_CHKSUM_FIN_8822B BIT(31)
  4482. #define BIT_EMN_PCIE_DMA_MOD_8822B BIT(30)
  4483. #define BIT_EN_TXQUE_CLR_8822B BIT(29)
  4484. #define BIT_EN_PCIE_FIFO_MODE_8822B BIT(28)
  4485. #define BIT_SHIFT_PG_UNDER_TH_V1_8822B 16
  4486. #define BIT_MASK_PG_UNDER_TH_V1_8822B 0xfff
  4487. #define BIT_PG_UNDER_TH_V1_8822B(x) \
  4488. (((x) & BIT_MASK_PG_UNDER_TH_V1_8822B) \
  4489. << BIT_SHIFT_PG_UNDER_TH_V1_8822B)
  4490. #define BITS_PG_UNDER_TH_V1_8822B \
  4491. (BIT_MASK_PG_UNDER_TH_V1_8822B << BIT_SHIFT_PG_UNDER_TH_V1_8822B)
  4492. #define BIT_CLEAR_PG_UNDER_TH_V1_8822B(x) ((x) & (~BITS_PG_UNDER_TH_V1_8822B))
  4493. #define BIT_GET_PG_UNDER_TH_V1_8822B(x) \
  4494. (((x) >> BIT_SHIFT_PG_UNDER_TH_V1_8822B) & \
  4495. BIT_MASK_PG_UNDER_TH_V1_8822B)
  4496. #define BIT_SET_PG_UNDER_TH_V1_8822B(x, v) \
  4497. (BIT_CLEAR_PG_UNDER_TH_V1_8822B(x) | BIT_PG_UNDER_TH_V1_8822B(v))
  4498. #define BIT_RESTORE_H2C_ADDRESS_8822B BIT(15)
  4499. #define BIT_SDIO_TXDESC_CHKSUM_EN_8822B BIT(13)
  4500. #define BIT_RST_RDPTR_8822B BIT(12)
  4501. #define BIT_RST_WRPTR_8822B BIT(11)
  4502. #define BIT_CHK_PG_TH_EN_8822B BIT(10)
  4503. #define BIT_DROP_DATA_EN_8822B BIT(9)
  4504. #define BIT_CHECK_OFFSET_EN_8822B BIT(8)
  4505. #define BIT_SHIFT_CHECK_OFFSET_8822B 0
  4506. #define BIT_MASK_CHECK_OFFSET_8822B 0xff
  4507. #define BIT_CHECK_OFFSET_8822B(x) \
  4508. (((x) & BIT_MASK_CHECK_OFFSET_8822B) << BIT_SHIFT_CHECK_OFFSET_8822B)
  4509. #define BITS_CHECK_OFFSET_8822B \
  4510. (BIT_MASK_CHECK_OFFSET_8822B << BIT_SHIFT_CHECK_OFFSET_8822B)
  4511. #define BIT_CLEAR_CHECK_OFFSET_8822B(x) ((x) & (~BITS_CHECK_OFFSET_8822B))
  4512. #define BIT_GET_CHECK_OFFSET_8822B(x) \
  4513. (((x) >> BIT_SHIFT_CHECK_OFFSET_8822B) & BIT_MASK_CHECK_OFFSET_8822B)
  4514. #define BIT_SET_CHECK_OFFSET_8822B(x, v) \
  4515. (BIT_CLEAR_CHECK_OFFSET_8822B(x) | BIT_CHECK_OFFSET_8822B(v))
  4516. /* 2 REG_TXDMA_STATUS_8822B */
  4517. #define BIT_HI_OQT_UDN_8822B BIT(17)
  4518. #define BIT_HI_OQT_OVF_8822B BIT(16)
  4519. #define BIT_PAYLOAD_CHKSUM_ERR_8822B BIT(15)
  4520. #define BIT_PAYLOAD_UDN_8822B BIT(14)
  4521. #define BIT_PAYLOAD_OVF_8822B BIT(13)
  4522. #define BIT_DSC_CHKSUM_FAIL_8822B BIT(12)
  4523. #define BIT_UNKNOWN_QSEL_8822B BIT(11)
  4524. #define BIT_EP_QSEL_DIFF_8822B BIT(10)
  4525. #define BIT_TX_OFFS_UNMATCH_8822B BIT(9)
  4526. #define BIT_TXOQT_UDN_8822B BIT(8)
  4527. #define BIT_TXOQT_OVF_8822B BIT(7)
  4528. #define BIT_TXDMA_SFF_UDN_8822B BIT(6)
  4529. #define BIT_TXDMA_SFF_OVF_8822B BIT(5)
  4530. #define BIT_LLT_NULL_PG_8822B BIT(4)
  4531. #define BIT_PAGE_UDN_8822B BIT(3)
  4532. #define BIT_PAGE_OVF_8822B BIT(2)
  4533. #define BIT_TXFF_PG_UDN_8822B BIT(1)
  4534. #define BIT_TXFF_PG_OVF_8822B BIT(0)
  4535. /* 2 REG_TX_DMA_DBG_8822B */
  4536. /* 2 REG_TQPNT1_8822B */
  4537. #define BIT_SHIFT_HPQ_HIGH_TH_V1_8822B 16
  4538. #define BIT_MASK_HPQ_HIGH_TH_V1_8822B 0xfff
  4539. #define BIT_HPQ_HIGH_TH_V1_8822B(x) \
  4540. (((x) & BIT_MASK_HPQ_HIGH_TH_V1_8822B) \
  4541. << BIT_SHIFT_HPQ_HIGH_TH_V1_8822B)
  4542. #define BITS_HPQ_HIGH_TH_V1_8822B \
  4543. (BIT_MASK_HPQ_HIGH_TH_V1_8822B << BIT_SHIFT_HPQ_HIGH_TH_V1_8822B)
  4544. #define BIT_CLEAR_HPQ_HIGH_TH_V1_8822B(x) ((x) & (~BITS_HPQ_HIGH_TH_V1_8822B))
  4545. #define BIT_GET_HPQ_HIGH_TH_V1_8822B(x) \
  4546. (((x) >> BIT_SHIFT_HPQ_HIGH_TH_V1_8822B) & \
  4547. BIT_MASK_HPQ_HIGH_TH_V1_8822B)
  4548. #define BIT_SET_HPQ_HIGH_TH_V1_8822B(x, v) \
  4549. (BIT_CLEAR_HPQ_HIGH_TH_V1_8822B(x) | BIT_HPQ_HIGH_TH_V1_8822B(v))
  4550. #define BIT_SHIFT_HPQ_LOW_TH_V1_8822B 0
  4551. #define BIT_MASK_HPQ_LOW_TH_V1_8822B 0xfff
  4552. #define BIT_HPQ_LOW_TH_V1_8822B(x) \
  4553. (((x) & BIT_MASK_HPQ_LOW_TH_V1_8822B) << BIT_SHIFT_HPQ_LOW_TH_V1_8822B)
  4554. #define BITS_HPQ_LOW_TH_V1_8822B \
  4555. (BIT_MASK_HPQ_LOW_TH_V1_8822B << BIT_SHIFT_HPQ_LOW_TH_V1_8822B)
  4556. #define BIT_CLEAR_HPQ_LOW_TH_V1_8822B(x) ((x) & (~BITS_HPQ_LOW_TH_V1_8822B))
  4557. #define BIT_GET_HPQ_LOW_TH_V1_8822B(x) \
  4558. (((x) >> BIT_SHIFT_HPQ_LOW_TH_V1_8822B) & BIT_MASK_HPQ_LOW_TH_V1_8822B)
  4559. #define BIT_SET_HPQ_LOW_TH_V1_8822B(x, v) \
  4560. (BIT_CLEAR_HPQ_LOW_TH_V1_8822B(x) | BIT_HPQ_LOW_TH_V1_8822B(v))
  4561. /* 2 REG_TQPNT2_8822B */
  4562. #define BIT_SHIFT_NPQ_HIGH_TH_V1_8822B 16
  4563. #define BIT_MASK_NPQ_HIGH_TH_V1_8822B 0xfff
  4564. #define BIT_NPQ_HIGH_TH_V1_8822B(x) \
  4565. (((x) & BIT_MASK_NPQ_HIGH_TH_V1_8822B) \
  4566. << BIT_SHIFT_NPQ_HIGH_TH_V1_8822B)
  4567. #define BITS_NPQ_HIGH_TH_V1_8822B \
  4568. (BIT_MASK_NPQ_HIGH_TH_V1_8822B << BIT_SHIFT_NPQ_HIGH_TH_V1_8822B)
  4569. #define BIT_CLEAR_NPQ_HIGH_TH_V1_8822B(x) ((x) & (~BITS_NPQ_HIGH_TH_V1_8822B))
  4570. #define BIT_GET_NPQ_HIGH_TH_V1_8822B(x) \
  4571. (((x) >> BIT_SHIFT_NPQ_HIGH_TH_V1_8822B) & \
  4572. BIT_MASK_NPQ_HIGH_TH_V1_8822B)
  4573. #define BIT_SET_NPQ_HIGH_TH_V1_8822B(x, v) \
  4574. (BIT_CLEAR_NPQ_HIGH_TH_V1_8822B(x) | BIT_NPQ_HIGH_TH_V1_8822B(v))
  4575. #define BIT_SHIFT_NPQ_LOW_TH_V1_8822B 0
  4576. #define BIT_MASK_NPQ_LOW_TH_V1_8822B 0xfff
  4577. #define BIT_NPQ_LOW_TH_V1_8822B(x) \
  4578. (((x) & BIT_MASK_NPQ_LOW_TH_V1_8822B) << BIT_SHIFT_NPQ_LOW_TH_V1_8822B)
  4579. #define BITS_NPQ_LOW_TH_V1_8822B \
  4580. (BIT_MASK_NPQ_LOW_TH_V1_8822B << BIT_SHIFT_NPQ_LOW_TH_V1_8822B)
  4581. #define BIT_CLEAR_NPQ_LOW_TH_V1_8822B(x) ((x) & (~BITS_NPQ_LOW_TH_V1_8822B))
  4582. #define BIT_GET_NPQ_LOW_TH_V1_8822B(x) \
  4583. (((x) >> BIT_SHIFT_NPQ_LOW_TH_V1_8822B) & BIT_MASK_NPQ_LOW_TH_V1_8822B)
  4584. #define BIT_SET_NPQ_LOW_TH_V1_8822B(x, v) \
  4585. (BIT_CLEAR_NPQ_LOW_TH_V1_8822B(x) | BIT_NPQ_LOW_TH_V1_8822B(v))
  4586. /* 2 REG_TQPNT3_8822B */
  4587. #define BIT_SHIFT_LPQ_HIGH_TH_V1_8822B 16
  4588. #define BIT_MASK_LPQ_HIGH_TH_V1_8822B 0xfff
  4589. #define BIT_LPQ_HIGH_TH_V1_8822B(x) \
  4590. (((x) & BIT_MASK_LPQ_HIGH_TH_V1_8822B) \
  4591. << BIT_SHIFT_LPQ_HIGH_TH_V1_8822B)
  4592. #define BITS_LPQ_HIGH_TH_V1_8822B \
  4593. (BIT_MASK_LPQ_HIGH_TH_V1_8822B << BIT_SHIFT_LPQ_HIGH_TH_V1_8822B)
  4594. #define BIT_CLEAR_LPQ_HIGH_TH_V1_8822B(x) ((x) & (~BITS_LPQ_HIGH_TH_V1_8822B))
  4595. #define BIT_GET_LPQ_HIGH_TH_V1_8822B(x) \
  4596. (((x) >> BIT_SHIFT_LPQ_HIGH_TH_V1_8822B) & \
  4597. BIT_MASK_LPQ_HIGH_TH_V1_8822B)
  4598. #define BIT_SET_LPQ_HIGH_TH_V1_8822B(x, v) \
  4599. (BIT_CLEAR_LPQ_HIGH_TH_V1_8822B(x) | BIT_LPQ_HIGH_TH_V1_8822B(v))
  4600. #define BIT_SHIFT_LPQ_LOW_TH_V1_8822B 0
  4601. #define BIT_MASK_LPQ_LOW_TH_V1_8822B 0xfff
  4602. #define BIT_LPQ_LOW_TH_V1_8822B(x) \
  4603. (((x) & BIT_MASK_LPQ_LOW_TH_V1_8822B) << BIT_SHIFT_LPQ_LOW_TH_V1_8822B)
  4604. #define BITS_LPQ_LOW_TH_V1_8822B \
  4605. (BIT_MASK_LPQ_LOW_TH_V1_8822B << BIT_SHIFT_LPQ_LOW_TH_V1_8822B)
  4606. #define BIT_CLEAR_LPQ_LOW_TH_V1_8822B(x) ((x) & (~BITS_LPQ_LOW_TH_V1_8822B))
  4607. #define BIT_GET_LPQ_LOW_TH_V1_8822B(x) \
  4608. (((x) >> BIT_SHIFT_LPQ_LOW_TH_V1_8822B) & BIT_MASK_LPQ_LOW_TH_V1_8822B)
  4609. #define BIT_SET_LPQ_LOW_TH_V1_8822B(x, v) \
  4610. (BIT_CLEAR_LPQ_LOW_TH_V1_8822B(x) | BIT_LPQ_LOW_TH_V1_8822B(v))
  4611. /* 2 REG_TQPNT4_8822B */
  4612. #define BIT_SHIFT_EXQ_HIGH_TH_V1_8822B 16
  4613. #define BIT_MASK_EXQ_HIGH_TH_V1_8822B 0xfff
  4614. #define BIT_EXQ_HIGH_TH_V1_8822B(x) \
  4615. (((x) & BIT_MASK_EXQ_HIGH_TH_V1_8822B) \
  4616. << BIT_SHIFT_EXQ_HIGH_TH_V1_8822B)
  4617. #define BITS_EXQ_HIGH_TH_V1_8822B \
  4618. (BIT_MASK_EXQ_HIGH_TH_V1_8822B << BIT_SHIFT_EXQ_HIGH_TH_V1_8822B)
  4619. #define BIT_CLEAR_EXQ_HIGH_TH_V1_8822B(x) ((x) & (~BITS_EXQ_HIGH_TH_V1_8822B))
  4620. #define BIT_GET_EXQ_HIGH_TH_V1_8822B(x) \
  4621. (((x) >> BIT_SHIFT_EXQ_HIGH_TH_V1_8822B) & \
  4622. BIT_MASK_EXQ_HIGH_TH_V1_8822B)
  4623. #define BIT_SET_EXQ_HIGH_TH_V1_8822B(x, v) \
  4624. (BIT_CLEAR_EXQ_HIGH_TH_V1_8822B(x) | BIT_EXQ_HIGH_TH_V1_8822B(v))
  4625. #define BIT_SHIFT_EXQ_LOW_TH_V1_8822B 0
  4626. #define BIT_MASK_EXQ_LOW_TH_V1_8822B 0xfff
  4627. #define BIT_EXQ_LOW_TH_V1_8822B(x) \
  4628. (((x) & BIT_MASK_EXQ_LOW_TH_V1_8822B) << BIT_SHIFT_EXQ_LOW_TH_V1_8822B)
  4629. #define BITS_EXQ_LOW_TH_V1_8822B \
  4630. (BIT_MASK_EXQ_LOW_TH_V1_8822B << BIT_SHIFT_EXQ_LOW_TH_V1_8822B)
  4631. #define BIT_CLEAR_EXQ_LOW_TH_V1_8822B(x) ((x) & (~BITS_EXQ_LOW_TH_V1_8822B))
  4632. #define BIT_GET_EXQ_LOW_TH_V1_8822B(x) \
  4633. (((x) >> BIT_SHIFT_EXQ_LOW_TH_V1_8822B) & BIT_MASK_EXQ_LOW_TH_V1_8822B)
  4634. #define BIT_SET_EXQ_LOW_TH_V1_8822B(x, v) \
  4635. (BIT_CLEAR_EXQ_LOW_TH_V1_8822B(x) | BIT_EXQ_LOW_TH_V1_8822B(v))
  4636. /* 2 REG_RQPN_CTRL_1_8822B */
  4637. #define BIT_SHIFT_TXPKTNUM_H_8822B 16
  4638. #define BIT_MASK_TXPKTNUM_H_8822B 0xffff
  4639. #define BIT_TXPKTNUM_H_8822B(x) \
  4640. (((x) & BIT_MASK_TXPKTNUM_H_8822B) << BIT_SHIFT_TXPKTNUM_H_8822B)
  4641. #define BITS_TXPKTNUM_H_8822B \
  4642. (BIT_MASK_TXPKTNUM_H_8822B << BIT_SHIFT_TXPKTNUM_H_8822B)
  4643. #define BIT_CLEAR_TXPKTNUM_H_8822B(x) ((x) & (~BITS_TXPKTNUM_H_8822B))
  4644. #define BIT_GET_TXPKTNUM_H_8822B(x) \
  4645. (((x) >> BIT_SHIFT_TXPKTNUM_H_8822B) & BIT_MASK_TXPKTNUM_H_8822B)
  4646. #define BIT_SET_TXPKTNUM_H_8822B(x, v) \
  4647. (BIT_CLEAR_TXPKTNUM_H_8822B(x) | BIT_TXPKTNUM_H_8822B(v))
  4648. #define BIT_SHIFT_TXPKTNUM_V2_8822B 0
  4649. #define BIT_MASK_TXPKTNUM_V2_8822B 0xffff
  4650. #define BIT_TXPKTNUM_V2_8822B(x) \
  4651. (((x) & BIT_MASK_TXPKTNUM_V2_8822B) << BIT_SHIFT_TXPKTNUM_V2_8822B)
  4652. #define BITS_TXPKTNUM_V2_8822B \
  4653. (BIT_MASK_TXPKTNUM_V2_8822B << BIT_SHIFT_TXPKTNUM_V2_8822B)
  4654. #define BIT_CLEAR_TXPKTNUM_V2_8822B(x) ((x) & (~BITS_TXPKTNUM_V2_8822B))
  4655. #define BIT_GET_TXPKTNUM_V2_8822B(x) \
  4656. (((x) >> BIT_SHIFT_TXPKTNUM_V2_8822B) & BIT_MASK_TXPKTNUM_V2_8822B)
  4657. #define BIT_SET_TXPKTNUM_V2_8822B(x, v) \
  4658. (BIT_CLEAR_TXPKTNUM_V2_8822B(x) | BIT_TXPKTNUM_V2_8822B(v))
  4659. /* 2 REG_RQPN_CTRL_2_8822B */
  4660. #define BIT_LD_RQPN_8822B BIT(31)
  4661. #define BIT_EXQ_PUBLIC_DIS_V1_8822B BIT(19)
  4662. #define BIT_NPQ_PUBLIC_DIS_V1_8822B BIT(18)
  4663. #define BIT_LPQ_PUBLIC_DIS_V1_8822B BIT(17)
  4664. #define BIT_HPQ_PUBLIC_DIS_V1_8822B BIT(16)
  4665. /* 2 REG_FIFOPAGE_INFO_1_8822B */
  4666. #define BIT_SHIFT_HPQ_AVAL_PG_V1_8822B 16
  4667. #define BIT_MASK_HPQ_AVAL_PG_V1_8822B 0xfff
  4668. #define BIT_HPQ_AVAL_PG_V1_8822B(x) \
  4669. (((x) & BIT_MASK_HPQ_AVAL_PG_V1_8822B) \
  4670. << BIT_SHIFT_HPQ_AVAL_PG_V1_8822B)
  4671. #define BITS_HPQ_AVAL_PG_V1_8822B \
  4672. (BIT_MASK_HPQ_AVAL_PG_V1_8822B << BIT_SHIFT_HPQ_AVAL_PG_V1_8822B)
  4673. #define BIT_CLEAR_HPQ_AVAL_PG_V1_8822B(x) ((x) & (~BITS_HPQ_AVAL_PG_V1_8822B))
  4674. #define BIT_GET_HPQ_AVAL_PG_V1_8822B(x) \
  4675. (((x) >> BIT_SHIFT_HPQ_AVAL_PG_V1_8822B) & \
  4676. BIT_MASK_HPQ_AVAL_PG_V1_8822B)
  4677. #define BIT_SET_HPQ_AVAL_PG_V1_8822B(x, v) \
  4678. (BIT_CLEAR_HPQ_AVAL_PG_V1_8822B(x) | BIT_HPQ_AVAL_PG_V1_8822B(v))
  4679. #define BIT_SHIFT_HPQ_V1_8822B 0
  4680. #define BIT_MASK_HPQ_V1_8822B 0xfff
  4681. #define BIT_HPQ_V1_8822B(x) \
  4682. (((x) & BIT_MASK_HPQ_V1_8822B) << BIT_SHIFT_HPQ_V1_8822B)
  4683. #define BITS_HPQ_V1_8822B (BIT_MASK_HPQ_V1_8822B << BIT_SHIFT_HPQ_V1_8822B)
  4684. #define BIT_CLEAR_HPQ_V1_8822B(x) ((x) & (~BITS_HPQ_V1_8822B))
  4685. #define BIT_GET_HPQ_V1_8822B(x) \
  4686. (((x) >> BIT_SHIFT_HPQ_V1_8822B) & BIT_MASK_HPQ_V1_8822B)
  4687. #define BIT_SET_HPQ_V1_8822B(x, v) \
  4688. (BIT_CLEAR_HPQ_V1_8822B(x) | BIT_HPQ_V1_8822B(v))
  4689. /* 2 REG_FIFOPAGE_INFO_2_8822B */
  4690. #define BIT_SHIFT_LPQ_AVAL_PG_V1_8822B 16
  4691. #define BIT_MASK_LPQ_AVAL_PG_V1_8822B 0xfff
  4692. #define BIT_LPQ_AVAL_PG_V1_8822B(x) \
  4693. (((x) & BIT_MASK_LPQ_AVAL_PG_V1_8822B) \
  4694. << BIT_SHIFT_LPQ_AVAL_PG_V1_8822B)
  4695. #define BITS_LPQ_AVAL_PG_V1_8822B \
  4696. (BIT_MASK_LPQ_AVAL_PG_V1_8822B << BIT_SHIFT_LPQ_AVAL_PG_V1_8822B)
  4697. #define BIT_CLEAR_LPQ_AVAL_PG_V1_8822B(x) ((x) & (~BITS_LPQ_AVAL_PG_V1_8822B))
  4698. #define BIT_GET_LPQ_AVAL_PG_V1_8822B(x) \
  4699. (((x) >> BIT_SHIFT_LPQ_AVAL_PG_V1_8822B) & \
  4700. BIT_MASK_LPQ_AVAL_PG_V1_8822B)
  4701. #define BIT_SET_LPQ_AVAL_PG_V1_8822B(x, v) \
  4702. (BIT_CLEAR_LPQ_AVAL_PG_V1_8822B(x) | BIT_LPQ_AVAL_PG_V1_8822B(v))
  4703. #define BIT_SHIFT_LPQ_V1_8822B 0
  4704. #define BIT_MASK_LPQ_V1_8822B 0xfff
  4705. #define BIT_LPQ_V1_8822B(x) \
  4706. (((x) & BIT_MASK_LPQ_V1_8822B) << BIT_SHIFT_LPQ_V1_8822B)
  4707. #define BITS_LPQ_V1_8822B (BIT_MASK_LPQ_V1_8822B << BIT_SHIFT_LPQ_V1_8822B)
  4708. #define BIT_CLEAR_LPQ_V1_8822B(x) ((x) & (~BITS_LPQ_V1_8822B))
  4709. #define BIT_GET_LPQ_V1_8822B(x) \
  4710. (((x) >> BIT_SHIFT_LPQ_V1_8822B) & BIT_MASK_LPQ_V1_8822B)
  4711. #define BIT_SET_LPQ_V1_8822B(x, v) \
  4712. (BIT_CLEAR_LPQ_V1_8822B(x) | BIT_LPQ_V1_8822B(v))
  4713. /* 2 REG_FIFOPAGE_INFO_3_8822B */
  4714. #define BIT_SHIFT_NPQ_AVAL_PG_V1_8822B 16
  4715. #define BIT_MASK_NPQ_AVAL_PG_V1_8822B 0xfff
  4716. #define BIT_NPQ_AVAL_PG_V1_8822B(x) \
  4717. (((x) & BIT_MASK_NPQ_AVAL_PG_V1_8822B) \
  4718. << BIT_SHIFT_NPQ_AVAL_PG_V1_8822B)
  4719. #define BITS_NPQ_AVAL_PG_V1_8822B \
  4720. (BIT_MASK_NPQ_AVAL_PG_V1_8822B << BIT_SHIFT_NPQ_AVAL_PG_V1_8822B)
  4721. #define BIT_CLEAR_NPQ_AVAL_PG_V1_8822B(x) ((x) & (~BITS_NPQ_AVAL_PG_V1_8822B))
  4722. #define BIT_GET_NPQ_AVAL_PG_V1_8822B(x) \
  4723. (((x) >> BIT_SHIFT_NPQ_AVAL_PG_V1_8822B) & \
  4724. BIT_MASK_NPQ_AVAL_PG_V1_8822B)
  4725. #define BIT_SET_NPQ_AVAL_PG_V1_8822B(x, v) \
  4726. (BIT_CLEAR_NPQ_AVAL_PG_V1_8822B(x) | BIT_NPQ_AVAL_PG_V1_8822B(v))
  4727. #define BIT_SHIFT_NPQ_V1_8822B 0
  4728. #define BIT_MASK_NPQ_V1_8822B 0xfff
  4729. #define BIT_NPQ_V1_8822B(x) \
  4730. (((x) & BIT_MASK_NPQ_V1_8822B) << BIT_SHIFT_NPQ_V1_8822B)
  4731. #define BITS_NPQ_V1_8822B (BIT_MASK_NPQ_V1_8822B << BIT_SHIFT_NPQ_V1_8822B)
  4732. #define BIT_CLEAR_NPQ_V1_8822B(x) ((x) & (~BITS_NPQ_V1_8822B))
  4733. #define BIT_GET_NPQ_V1_8822B(x) \
  4734. (((x) >> BIT_SHIFT_NPQ_V1_8822B) & BIT_MASK_NPQ_V1_8822B)
  4735. #define BIT_SET_NPQ_V1_8822B(x, v) \
  4736. (BIT_CLEAR_NPQ_V1_8822B(x) | BIT_NPQ_V1_8822B(v))
  4737. /* 2 REG_FIFOPAGE_INFO_4_8822B */
  4738. #define BIT_SHIFT_EXQ_AVAL_PG_V1_8822B 16
  4739. #define BIT_MASK_EXQ_AVAL_PG_V1_8822B 0xfff
  4740. #define BIT_EXQ_AVAL_PG_V1_8822B(x) \
  4741. (((x) & BIT_MASK_EXQ_AVAL_PG_V1_8822B) \
  4742. << BIT_SHIFT_EXQ_AVAL_PG_V1_8822B)
  4743. #define BITS_EXQ_AVAL_PG_V1_8822B \
  4744. (BIT_MASK_EXQ_AVAL_PG_V1_8822B << BIT_SHIFT_EXQ_AVAL_PG_V1_8822B)
  4745. #define BIT_CLEAR_EXQ_AVAL_PG_V1_8822B(x) ((x) & (~BITS_EXQ_AVAL_PG_V1_8822B))
  4746. #define BIT_GET_EXQ_AVAL_PG_V1_8822B(x) \
  4747. (((x) >> BIT_SHIFT_EXQ_AVAL_PG_V1_8822B) & \
  4748. BIT_MASK_EXQ_AVAL_PG_V1_8822B)
  4749. #define BIT_SET_EXQ_AVAL_PG_V1_8822B(x, v) \
  4750. (BIT_CLEAR_EXQ_AVAL_PG_V1_8822B(x) | BIT_EXQ_AVAL_PG_V1_8822B(v))
  4751. #define BIT_SHIFT_EXQ_V1_8822B 0
  4752. #define BIT_MASK_EXQ_V1_8822B 0xfff
  4753. #define BIT_EXQ_V1_8822B(x) \
  4754. (((x) & BIT_MASK_EXQ_V1_8822B) << BIT_SHIFT_EXQ_V1_8822B)
  4755. #define BITS_EXQ_V1_8822B (BIT_MASK_EXQ_V1_8822B << BIT_SHIFT_EXQ_V1_8822B)
  4756. #define BIT_CLEAR_EXQ_V1_8822B(x) ((x) & (~BITS_EXQ_V1_8822B))
  4757. #define BIT_GET_EXQ_V1_8822B(x) \
  4758. (((x) >> BIT_SHIFT_EXQ_V1_8822B) & BIT_MASK_EXQ_V1_8822B)
  4759. #define BIT_SET_EXQ_V1_8822B(x, v) \
  4760. (BIT_CLEAR_EXQ_V1_8822B(x) | BIT_EXQ_V1_8822B(v))
  4761. /* 2 REG_FIFOPAGE_INFO_5_8822B */
  4762. #define BIT_SHIFT_PUBQ_AVAL_PG_V1_8822B 16
  4763. #define BIT_MASK_PUBQ_AVAL_PG_V1_8822B 0xfff
  4764. #define BIT_PUBQ_AVAL_PG_V1_8822B(x) \
  4765. (((x) & BIT_MASK_PUBQ_AVAL_PG_V1_8822B) \
  4766. << BIT_SHIFT_PUBQ_AVAL_PG_V1_8822B)
  4767. #define BITS_PUBQ_AVAL_PG_V1_8822B \
  4768. (BIT_MASK_PUBQ_AVAL_PG_V1_8822B << BIT_SHIFT_PUBQ_AVAL_PG_V1_8822B)
  4769. #define BIT_CLEAR_PUBQ_AVAL_PG_V1_8822B(x) ((x) & (~BITS_PUBQ_AVAL_PG_V1_8822B))
  4770. #define BIT_GET_PUBQ_AVAL_PG_V1_8822B(x) \
  4771. (((x) >> BIT_SHIFT_PUBQ_AVAL_PG_V1_8822B) & \
  4772. BIT_MASK_PUBQ_AVAL_PG_V1_8822B)
  4773. #define BIT_SET_PUBQ_AVAL_PG_V1_8822B(x, v) \
  4774. (BIT_CLEAR_PUBQ_AVAL_PG_V1_8822B(x) | BIT_PUBQ_AVAL_PG_V1_8822B(v))
  4775. #define BIT_SHIFT_PUBQ_V1_8822B 0
  4776. #define BIT_MASK_PUBQ_V1_8822B 0xfff
  4777. #define BIT_PUBQ_V1_8822B(x) \
  4778. (((x) & BIT_MASK_PUBQ_V1_8822B) << BIT_SHIFT_PUBQ_V1_8822B)
  4779. #define BITS_PUBQ_V1_8822B (BIT_MASK_PUBQ_V1_8822B << BIT_SHIFT_PUBQ_V1_8822B)
  4780. #define BIT_CLEAR_PUBQ_V1_8822B(x) ((x) & (~BITS_PUBQ_V1_8822B))
  4781. #define BIT_GET_PUBQ_V1_8822B(x) \
  4782. (((x) >> BIT_SHIFT_PUBQ_V1_8822B) & BIT_MASK_PUBQ_V1_8822B)
  4783. #define BIT_SET_PUBQ_V1_8822B(x, v) \
  4784. (BIT_CLEAR_PUBQ_V1_8822B(x) | BIT_PUBQ_V1_8822B(v))
  4785. /* 2 REG_H2C_HEAD_8822B */
  4786. #define BIT_SHIFT_H2C_HEAD_8822B 0
  4787. #define BIT_MASK_H2C_HEAD_8822B 0x3ffff
  4788. #define BIT_H2C_HEAD_8822B(x) \
  4789. (((x) & BIT_MASK_H2C_HEAD_8822B) << BIT_SHIFT_H2C_HEAD_8822B)
  4790. #define BITS_H2C_HEAD_8822B \
  4791. (BIT_MASK_H2C_HEAD_8822B << BIT_SHIFT_H2C_HEAD_8822B)
  4792. #define BIT_CLEAR_H2C_HEAD_8822B(x) ((x) & (~BITS_H2C_HEAD_8822B))
  4793. #define BIT_GET_H2C_HEAD_8822B(x) \
  4794. (((x) >> BIT_SHIFT_H2C_HEAD_8822B) & BIT_MASK_H2C_HEAD_8822B)
  4795. #define BIT_SET_H2C_HEAD_8822B(x, v) \
  4796. (BIT_CLEAR_H2C_HEAD_8822B(x) | BIT_H2C_HEAD_8822B(v))
  4797. /* 2 REG_H2C_TAIL_8822B */
  4798. #define BIT_SHIFT_H2C_TAIL_8822B 0
  4799. #define BIT_MASK_H2C_TAIL_8822B 0x3ffff
  4800. #define BIT_H2C_TAIL_8822B(x) \
  4801. (((x) & BIT_MASK_H2C_TAIL_8822B) << BIT_SHIFT_H2C_TAIL_8822B)
  4802. #define BITS_H2C_TAIL_8822B \
  4803. (BIT_MASK_H2C_TAIL_8822B << BIT_SHIFT_H2C_TAIL_8822B)
  4804. #define BIT_CLEAR_H2C_TAIL_8822B(x) ((x) & (~BITS_H2C_TAIL_8822B))
  4805. #define BIT_GET_H2C_TAIL_8822B(x) \
  4806. (((x) >> BIT_SHIFT_H2C_TAIL_8822B) & BIT_MASK_H2C_TAIL_8822B)
  4807. #define BIT_SET_H2C_TAIL_8822B(x, v) \
  4808. (BIT_CLEAR_H2C_TAIL_8822B(x) | BIT_H2C_TAIL_8822B(v))
  4809. /* 2 REG_H2C_READ_ADDR_8822B */
  4810. #define BIT_SHIFT_H2C_READ_ADDR_8822B 0
  4811. #define BIT_MASK_H2C_READ_ADDR_8822B 0x3ffff
  4812. #define BIT_H2C_READ_ADDR_8822B(x) \
  4813. (((x) & BIT_MASK_H2C_READ_ADDR_8822B) << BIT_SHIFT_H2C_READ_ADDR_8822B)
  4814. #define BITS_H2C_READ_ADDR_8822B \
  4815. (BIT_MASK_H2C_READ_ADDR_8822B << BIT_SHIFT_H2C_READ_ADDR_8822B)
  4816. #define BIT_CLEAR_H2C_READ_ADDR_8822B(x) ((x) & (~BITS_H2C_READ_ADDR_8822B))
  4817. #define BIT_GET_H2C_READ_ADDR_8822B(x) \
  4818. (((x) >> BIT_SHIFT_H2C_READ_ADDR_8822B) & BIT_MASK_H2C_READ_ADDR_8822B)
  4819. #define BIT_SET_H2C_READ_ADDR_8822B(x, v) \
  4820. (BIT_CLEAR_H2C_READ_ADDR_8822B(x) | BIT_H2C_READ_ADDR_8822B(v))
  4821. /* 2 REG_H2C_WR_ADDR_8822B */
  4822. #define BIT_SHIFT_H2C_WR_ADDR_8822B 0
  4823. #define BIT_MASK_H2C_WR_ADDR_8822B 0x3ffff
  4824. #define BIT_H2C_WR_ADDR_8822B(x) \
  4825. (((x) & BIT_MASK_H2C_WR_ADDR_8822B) << BIT_SHIFT_H2C_WR_ADDR_8822B)
  4826. #define BITS_H2C_WR_ADDR_8822B \
  4827. (BIT_MASK_H2C_WR_ADDR_8822B << BIT_SHIFT_H2C_WR_ADDR_8822B)
  4828. #define BIT_CLEAR_H2C_WR_ADDR_8822B(x) ((x) & (~BITS_H2C_WR_ADDR_8822B))
  4829. #define BIT_GET_H2C_WR_ADDR_8822B(x) \
  4830. (((x) >> BIT_SHIFT_H2C_WR_ADDR_8822B) & BIT_MASK_H2C_WR_ADDR_8822B)
  4831. #define BIT_SET_H2C_WR_ADDR_8822B(x, v) \
  4832. (BIT_CLEAR_H2C_WR_ADDR_8822B(x) | BIT_H2C_WR_ADDR_8822B(v))
  4833. /* 2 REG_H2C_INFO_8822B */
  4834. #define BIT_H2C_SPACE_VLD_8822B BIT(3)
  4835. #define BIT_H2C_WR_ADDR_RST_8822B BIT(2)
  4836. #define BIT_SHIFT_H2C_LEN_SEL_8822B 0
  4837. #define BIT_MASK_H2C_LEN_SEL_8822B 0x3
  4838. #define BIT_H2C_LEN_SEL_8822B(x) \
  4839. (((x) & BIT_MASK_H2C_LEN_SEL_8822B) << BIT_SHIFT_H2C_LEN_SEL_8822B)
  4840. #define BITS_H2C_LEN_SEL_8822B \
  4841. (BIT_MASK_H2C_LEN_SEL_8822B << BIT_SHIFT_H2C_LEN_SEL_8822B)
  4842. #define BIT_CLEAR_H2C_LEN_SEL_8822B(x) ((x) & (~BITS_H2C_LEN_SEL_8822B))
  4843. #define BIT_GET_H2C_LEN_SEL_8822B(x) \
  4844. (((x) >> BIT_SHIFT_H2C_LEN_SEL_8822B) & BIT_MASK_H2C_LEN_SEL_8822B)
  4845. #define BIT_SET_H2C_LEN_SEL_8822B(x, v) \
  4846. (BIT_CLEAR_H2C_LEN_SEL_8822B(x) | BIT_H2C_LEN_SEL_8822B(v))
  4847. /* 2 REG_RXDMA_AGG_PG_TH_8822B */
  4848. #define BIT_USB_RXDMA_AGG_EN_8822B BIT(31)
  4849. #define BIT_EN_PRE_CALC_8822B BIT(29)
  4850. #define BIT_RXAGG_SW_EN_8822B BIT(28)
  4851. #define BIT_RXAGG_SW_TRIG_8822B BIT(27)
  4852. #define BIT_SHIFT_PKT_NUM_WOL_8822B 16
  4853. #define BIT_MASK_PKT_NUM_WOL_8822B 0xff
  4854. #define BIT_PKT_NUM_WOL_8822B(x) \
  4855. (((x) & BIT_MASK_PKT_NUM_WOL_8822B) << BIT_SHIFT_PKT_NUM_WOL_8822B)
  4856. #define BITS_PKT_NUM_WOL_8822B \
  4857. (BIT_MASK_PKT_NUM_WOL_8822B << BIT_SHIFT_PKT_NUM_WOL_8822B)
  4858. #define BIT_CLEAR_PKT_NUM_WOL_8822B(x) ((x) & (~BITS_PKT_NUM_WOL_8822B))
  4859. #define BIT_GET_PKT_NUM_WOL_8822B(x) \
  4860. (((x) >> BIT_SHIFT_PKT_NUM_WOL_8822B) & BIT_MASK_PKT_NUM_WOL_8822B)
  4861. #define BIT_SET_PKT_NUM_WOL_8822B(x, v) \
  4862. (BIT_CLEAR_PKT_NUM_WOL_8822B(x) | BIT_PKT_NUM_WOL_8822B(v))
  4863. #define BIT_SHIFT_DMA_AGG_TO_V1_8822B 8
  4864. #define BIT_MASK_DMA_AGG_TO_V1_8822B 0xff
  4865. #define BIT_DMA_AGG_TO_V1_8822B(x) \
  4866. (((x) & BIT_MASK_DMA_AGG_TO_V1_8822B) << BIT_SHIFT_DMA_AGG_TO_V1_8822B)
  4867. #define BITS_DMA_AGG_TO_V1_8822B \
  4868. (BIT_MASK_DMA_AGG_TO_V1_8822B << BIT_SHIFT_DMA_AGG_TO_V1_8822B)
  4869. #define BIT_CLEAR_DMA_AGG_TO_V1_8822B(x) ((x) & (~BITS_DMA_AGG_TO_V1_8822B))
  4870. #define BIT_GET_DMA_AGG_TO_V1_8822B(x) \
  4871. (((x) >> BIT_SHIFT_DMA_AGG_TO_V1_8822B) & BIT_MASK_DMA_AGG_TO_V1_8822B)
  4872. #define BIT_SET_DMA_AGG_TO_V1_8822B(x, v) \
  4873. (BIT_CLEAR_DMA_AGG_TO_V1_8822B(x) | BIT_DMA_AGG_TO_V1_8822B(v))
  4874. #define BIT_SHIFT_RXDMA_AGG_PG_TH_8822B 0
  4875. #define BIT_MASK_RXDMA_AGG_PG_TH_8822B 0xff
  4876. #define BIT_RXDMA_AGG_PG_TH_8822B(x) \
  4877. (((x) & BIT_MASK_RXDMA_AGG_PG_TH_8822B) \
  4878. << BIT_SHIFT_RXDMA_AGG_PG_TH_8822B)
  4879. #define BITS_RXDMA_AGG_PG_TH_8822B \
  4880. (BIT_MASK_RXDMA_AGG_PG_TH_8822B << BIT_SHIFT_RXDMA_AGG_PG_TH_8822B)
  4881. #define BIT_CLEAR_RXDMA_AGG_PG_TH_8822B(x) ((x) & (~BITS_RXDMA_AGG_PG_TH_8822B))
  4882. #define BIT_GET_RXDMA_AGG_PG_TH_8822B(x) \
  4883. (((x) >> BIT_SHIFT_RXDMA_AGG_PG_TH_8822B) & \
  4884. BIT_MASK_RXDMA_AGG_PG_TH_8822B)
  4885. #define BIT_SET_RXDMA_AGG_PG_TH_8822B(x, v) \
  4886. (BIT_CLEAR_RXDMA_AGG_PG_TH_8822B(x) | BIT_RXDMA_AGG_PG_TH_8822B(v))
  4887. /* 2 REG_RXPKT_NUM_8822B */
  4888. #define BIT_SHIFT_RXPKT_NUM_8822B 24
  4889. #define BIT_MASK_RXPKT_NUM_8822B 0xff
  4890. #define BIT_RXPKT_NUM_8822B(x) \
  4891. (((x) & BIT_MASK_RXPKT_NUM_8822B) << BIT_SHIFT_RXPKT_NUM_8822B)
  4892. #define BITS_RXPKT_NUM_8822B \
  4893. (BIT_MASK_RXPKT_NUM_8822B << BIT_SHIFT_RXPKT_NUM_8822B)
  4894. #define BIT_CLEAR_RXPKT_NUM_8822B(x) ((x) & (~BITS_RXPKT_NUM_8822B))
  4895. #define BIT_GET_RXPKT_NUM_8822B(x) \
  4896. (((x) >> BIT_SHIFT_RXPKT_NUM_8822B) & BIT_MASK_RXPKT_NUM_8822B)
  4897. #define BIT_SET_RXPKT_NUM_8822B(x, v) \
  4898. (BIT_CLEAR_RXPKT_NUM_8822B(x) | BIT_RXPKT_NUM_8822B(v))
  4899. #define BIT_SHIFT_FW_UPD_RDPTR19_TO_16_8822B 20
  4900. #define BIT_MASK_FW_UPD_RDPTR19_TO_16_8822B 0xf
  4901. #define BIT_FW_UPD_RDPTR19_TO_16_8822B(x) \
  4902. (((x) & BIT_MASK_FW_UPD_RDPTR19_TO_16_8822B) \
  4903. << BIT_SHIFT_FW_UPD_RDPTR19_TO_16_8822B)
  4904. #define BITS_FW_UPD_RDPTR19_TO_16_8822B \
  4905. (BIT_MASK_FW_UPD_RDPTR19_TO_16_8822B \
  4906. << BIT_SHIFT_FW_UPD_RDPTR19_TO_16_8822B)
  4907. #define BIT_CLEAR_FW_UPD_RDPTR19_TO_16_8822B(x) \
  4908. ((x) & (~BITS_FW_UPD_RDPTR19_TO_16_8822B))
  4909. #define BIT_GET_FW_UPD_RDPTR19_TO_16_8822B(x) \
  4910. (((x) >> BIT_SHIFT_FW_UPD_RDPTR19_TO_16_8822B) & \
  4911. BIT_MASK_FW_UPD_RDPTR19_TO_16_8822B)
  4912. #define BIT_SET_FW_UPD_RDPTR19_TO_16_8822B(x, v) \
  4913. (BIT_CLEAR_FW_UPD_RDPTR19_TO_16_8822B(x) | \
  4914. BIT_FW_UPD_RDPTR19_TO_16_8822B(v))
  4915. #define BIT_RXDMA_REQ_8822B BIT(19)
  4916. #define BIT_RW_RELEASE_EN_8822B BIT(18)
  4917. #define BIT_RXDMA_IDLE_8822B BIT(17)
  4918. #define BIT_RXPKT_RELEASE_POLL_8822B BIT(16)
  4919. #define BIT_SHIFT_FW_UPD_RDPTR_8822B 0
  4920. #define BIT_MASK_FW_UPD_RDPTR_8822B 0xffff
  4921. #define BIT_FW_UPD_RDPTR_8822B(x) \
  4922. (((x) & BIT_MASK_FW_UPD_RDPTR_8822B) << BIT_SHIFT_FW_UPD_RDPTR_8822B)
  4923. #define BITS_FW_UPD_RDPTR_8822B \
  4924. (BIT_MASK_FW_UPD_RDPTR_8822B << BIT_SHIFT_FW_UPD_RDPTR_8822B)
  4925. #define BIT_CLEAR_FW_UPD_RDPTR_8822B(x) ((x) & (~BITS_FW_UPD_RDPTR_8822B))
  4926. #define BIT_GET_FW_UPD_RDPTR_8822B(x) \
  4927. (((x) >> BIT_SHIFT_FW_UPD_RDPTR_8822B) & BIT_MASK_FW_UPD_RDPTR_8822B)
  4928. #define BIT_SET_FW_UPD_RDPTR_8822B(x, v) \
  4929. (BIT_CLEAR_FW_UPD_RDPTR_8822B(x) | BIT_FW_UPD_RDPTR_8822B(v))
  4930. /* 2 REG_RXDMA_STATUS_8822B */
  4931. #define BIT_C2H_PKT_OVF_8822B BIT(7)
  4932. #define BIT_AGG_CONFGI_ISSUE_8822B BIT(6)
  4933. #define BIT_FW_POLL_ISSUE_8822B BIT(5)
  4934. #define BIT_RX_DATA_UDN_8822B BIT(4)
  4935. #define BIT_RX_SFF_UDN_8822B BIT(3)
  4936. #define BIT_RX_SFF_OVF_8822B BIT(2)
  4937. #define BIT_RXPKT_OVF_8822B BIT(0)
  4938. /* 2 REG_RXDMA_DPR_8822B */
  4939. #define BIT_SHIFT_RDE_DEBUG_8822B 0
  4940. #define BIT_MASK_RDE_DEBUG_8822B 0xffffffffL
  4941. #define BIT_RDE_DEBUG_8822B(x) \
  4942. (((x) & BIT_MASK_RDE_DEBUG_8822B) << BIT_SHIFT_RDE_DEBUG_8822B)
  4943. #define BITS_RDE_DEBUG_8822B \
  4944. (BIT_MASK_RDE_DEBUG_8822B << BIT_SHIFT_RDE_DEBUG_8822B)
  4945. #define BIT_CLEAR_RDE_DEBUG_8822B(x) ((x) & (~BITS_RDE_DEBUG_8822B))
  4946. #define BIT_GET_RDE_DEBUG_8822B(x) \
  4947. (((x) >> BIT_SHIFT_RDE_DEBUG_8822B) & BIT_MASK_RDE_DEBUG_8822B)
  4948. #define BIT_SET_RDE_DEBUG_8822B(x, v) \
  4949. (BIT_CLEAR_RDE_DEBUG_8822B(x) | BIT_RDE_DEBUG_8822B(v))
  4950. /* 2 REG_RXDMA_MODE_8822B */
  4951. #define BIT_SHIFT_PKTNUM_TH_V2_8822B 24
  4952. #define BIT_MASK_PKTNUM_TH_V2_8822B 0x1f
  4953. #define BIT_PKTNUM_TH_V2_8822B(x) \
  4954. (((x) & BIT_MASK_PKTNUM_TH_V2_8822B) << BIT_SHIFT_PKTNUM_TH_V2_8822B)
  4955. #define BITS_PKTNUM_TH_V2_8822B \
  4956. (BIT_MASK_PKTNUM_TH_V2_8822B << BIT_SHIFT_PKTNUM_TH_V2_8822B)
  4957. #define BIT_CLEAR_PKTNUM_TH_V2_8822B(x) ((x) & (~BITS_PKTNUM_TH_V2_8822B))
  4958. #define BIT_GET_PKTNUM_TH_V2_8822B(x) \
  4959. (((x) >> BIT_SHIFT_PKTNUM_TH_V2_8822B) & BIT_MASK_PKTNUM_TH_V2_8822B)
  4960. #define BIT_SET_PKTNUM_TH_V2_8822B(x, v) \
  4961. (BIT_CLEAR_PKTNUM_TH_V2_8822B(x) | BIT_PKTNUM_TH_V2_8822B(v))
  4962. #define BIT_TXBA_BREAK_USBAGG_8822B BIT(23)
  4963. #define BIT_SHIFT_PKTLEN_PARA_8822B 16
  4964. #define BIT_MASK_PKTLEN_PARA_8822B 0x7
  4965. #define BIT_PKTLEN_PARA_8822B(x) \
  4966. (((x) & BIT_MASK_PKTLEN_PARA_8822B) << BIT_SHIFT_PKTLEN_PARA_8822B)
  4967. #define BITS_PKTLEN_PARA_8822B \
  4968. (BIT_MASK_PKTLEN_PARA_8822B << BIT_SHIFT_PKTLEN_PARA_8822B)
  4969. #define BIT_CLEAR_PKTLEN_PARA_8822B(x) ((x) & (~BITS_PKTLEN_PARA_8822B))
  4970. #define BIT_GET_PKTLEN_PARA_8822B(x) \
  4971. (((x) >> BIT_SHIFT_PKTLEN_PARA_8822B) & BIT_MASK_PKTLEN_PARA_8822B)
  4972. #define BIT_SET_PKTLEN_PARA_8822B(x, v) \
  4973. (BIT_CLEAR_PKTLEN_PARA_8822B(x) | BIT_PKTLEN_PARA_8822B(v))
  4974. /* 2 REG_NOT_VALID_8822B */
  4975. /* 2 REG_NOT_VALID_8822B */
  4976. /* 2 REG_NOT_VALID_8822B */
  4977. #define BIT_SHIFT_BURST_SIZE_8822B 4
  4978. #define BIT_MASK_BURST_SIZE_8822B 0x3
  4979. #define BIT_BURST_SIZE_8822B(x) \
  4980. (((x) & BIT_MASK_BURST_SIZE_8822B) << BIT_SHIFT_BURST_SIZE_8822B)
  4981. #define BITS_BURST_SIZE_8822B \
  4982. (BIT_MASK_BURST_SIZE_8822B << BIT_SHIFT_BURST_SIZE_8822B)
  4983. #define BIT_CLEAR_BURST_SIZE_8822B(x) ((x) & (~BITS_BURST_SIZE_8822B))
  4984. #define BIT_GET_BURST_SIZE_8822B(x) \
  4985. (((x) >> BIT_SHIFT_BURST_SIZE_8822B) & BIT_MASK_BURST_SIZE_8822B)
  4986. #define BIT_SET_BURST_SIZE_8822B(x, v) \
  4987. (BIT_CLEAR_BURST_SIZE_8822B(x) | BIT_BURST_SIZE_8822B(v))
  4988. #define BIT_SHIFT_BURST_CNT_8822B 2
  4989. #define BIT_MASK_BURST_CNT_8822B 0x3
  4990. #define BIT_BURST_CNT_8822B(x) \
  4991. (((x) & BIT_MASK_BURST_CNT_8822B) << BIT_SHIFT_BURST_CNT_8822B)
  4992. #define BITS_BURST_CNT_8822B \
  4993. (BIT_MASK_BURST_CNT_8822B << BIT_SHIFT_BURST_CNT_8822B)
  4994. #define BIT_CLEAR_BURST_CNT_8822B(x) ((x) & (~BITS_BURST_CNT_8822B))
  4995. #define BIT_GET_BURST_CNT_8822B(x) \
  4996. (((x) >> BIT_SHIFT_BURST_CNT_8822B) & BIT_MASK_BURST_CNT_8822B)
  4997. #define BIT_SET_BURST_CNT_8822B(x, v) \
  4998. (BIT_CLEAR_BURST_CNT_8822B(x) | BIT_BURST_CNT_8822B(v))
  4999. #define BIT_DMA_MODE_8822B BIT(1)
  5000. /* 2 REG_C2H_PKT_8822B */
  5001. #define BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19_8822B 24
  5002. #define BIT_MASK_R_C2H_STR_ADDR_16_TO_19_8822B 0xf
  5003. #define BIT_R_C2H_STR_ADDR_16_TO_19_8822B(x) \
  5004. (((x) & BIT_MASK_R_C2H_STR_ADDR_16_TO_19_8822B) \
  5005. << BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19_8822B)
  5006. #define BITS_R_C2H_STR_ADDR_16_TO_19_8822B \
  5007. (BIT_MASK_R_C2H_STR_ADDR_16_TO_19_8822B \
  5008. << BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19_8822B)
  5009. #define BIT_CLEAR_R_C2H_STR_ADDR_16_TO_19_8822B(x) \
  5010. ((x) & (~BITS_R_C2H_STR_ADDR_16_TO_19_8822B))
  5011. #define BIT_GET_R_C2H_STR_ADDR_16_TO_19_8822B(x) \
  5012. (((x) >> BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19_8822B) & \
  5013. BIT_MASK_R_C2H_STR_ADDR_16_TO_19_8822B)
  5014. #define BIT_SET_R_C2H_STR_ADDR_16_TO_19_8822B(x, v) \
  5015. (BIT_CLEAR_R_C2H_STR_ADDR_16_TO_19_8822B(x) | \
  5016. BIT_R_C2H_STR_ADDR_16_TO_19_8822B(v))
  5017. #define BIT_R_C2H_PKT_REQ_8822B BIT(16)
  5018. #define BIT_SHIFT_R_C2H_STR_ADDR_8822B 0
  5019. #define BIT_MASK_R_C2H_STR_ADDR_8822B 0xffff
  5020. #define BIT_R_C2H_STR_ADDR_8822B(x) \
  5021. (((x) & BIT_MASK_R_C2H_STR_ADDR_8822B) \
  5022. << BIT_SHIFT_R_C2H_STR_ADDR_8822B)
  5023. #define BITS_R_C2H_STR_ADDR_8822B \
  5024. (BIT_MASK_R_C2H_STR_ADDR_8822B << BIT_SHIFT_R_C2H_STR_ADDR_8822B)
  5025. #define BIT_CLEAR_R_C2H_STR_ADDR_8822B(x) ((x) & (~BITS_R_C2H_STR_ADDR_8822B))
  5026. #define BIT_GET_R_C2H_STR_ADDR_8822B(x) \
  5027. (((x) >> BIT_SHIFT_R_C2H_STR_ADDR_8822B) & \
  5028. BIT_MASK_R_C2H_STR_ADDR_8822B)
  5029. #define BIT_SET_R_C2H_STR_ADDR_8822B(x, v) \
  5030. (BIT_CLEAR_R_C2H_STR_ADDR_8822B(x) | BIT_R_C2H_STR_ADDR_8822B(v))
  5031. /* 2 REG_FWFF_C2H_8822B */
  5032. #define BIT_SHIFT_C2H_DMA_ADDR_8822B 0
  5033. #define BIT_MASK_C2H_DMA_ADDR_8822B 0x3ffff
  5034. #define BIT_C2H_DMA_ADDR_8822B(x) \
  5035. (((x) & BIT_MASK_C2H_DMA_ADDR_8822B) << BIT_SHIFT_C2H_DMA_ADDR_8822B)
  5036. #define BITS_C2H_DMA_ADDR_8822B \
  5037. (BIT_MASK_C2H_DMA_ADDR_8822B << BIT_SHIFT_C2H_DMA_ADDR_8822B)
  5038. #define BIT_CLEAR_C2H_DMA_ADDR_8822B(x) ((x) & (~BITS_C2H_DMA_ADDR_8822B))
  5039. #define BIT_GET_C2H_DMA_ADDR_8822B(x) \
  5040. (((x) >> BIT_SHIFT_C2H_DMA_ADDR_8822B) & BIT_MASK_C2H_DMA_ADDR_8822B)
  5041. #define BIT_SET_C2H_DMA_ADDR_8822B(x, v) \
  5042. (BIT_CLEAR_C2H_DMA_ADDR_8822B(x) | BIT_C2H_DMA_ADDR_8822B(v))
  5043. /* 2 REG_FWFF_CTRL_8822B */
  5044. #define BIT_FWFF_DMAPKT_REQ_8822B BIT(31)
  5045. #define BIT_SHIFT_FWFF_DMA_PKT_NUM_8822B 16
  5046. #define BIT_MASK_FWFF_DMA_PKT_NUM_8822B 0xff
  5047. #define BIT_FWFF_DMA_PKT_NUM_8822B(x) \
  5048. (((x) & BIT_MASK_FWFF_DMA_PKT_NUM_8822B) \
  5049. << BIT_SHIFT_FWFF_DMA_PKT_NUM_8822B)
  5050. #define BITS_FWFF_DMA_PKT_NUM_8822B \
  5051. (BIT_MASK_FWFF_DMA_PKT_NUM_8822B << BIT_SHIFT_FWFF_DMA_PKT_NUM_8822B)
  5052. #define BIT_CLEAR_FWFF_DMA_PKT_NUM_8822B(x) \
  5053. ((x) & (~BITS_FWFF_DMA_PKT_NUM_8822B))
  5054. #define BIT_GET_FWFF_DMA_PKT_NUM_8822B(x) \
  5055. (((x) >> BIT_SHIFT_FWFF_DMA_PKT_NUM_8822B) & \
  5056. BIT_MASK_FWFF_DMA_PKT_NUM_8822B)
  5057. #define BIT_SET_FWFF_DMA_PKT_NUM_8822B(x, v) \
  5058. (BIT_CLEAR_FWFF_DMA_PKT_NUM_8822B(x) | BIT_FWFF_DMA_PKT_NUM_8822B(v))
  5059. #define BIT_SHIFT_FWFF_STR_ADDR_8822B 0
  5060. #define BIT_MASK_FWFF_STR_ADDR_8822B 0xffff
  5061. #define BIT_FWFF_STR_ADDR_8822B(x) \
  5062. (((x) & BIT_MASK_FWFF_STR_ADDR_8822B) << BIT_SHIFT_FWFF_STR_ADDR_8822B)
  5063. #define BITS_FWFF_STR_ADDR_8822B \
  5064. (BIT_MASK_FWFF_STR_ADDR_8822B << BIT_SHIFT_FWFF_STR_ADDR_8822B)
  5065. #define BIT_CLEAR_FWFF_STR_ADDR_8822B(x) ((x) & (~BITS_FWFF_STR_ADDR_8822B))
  5066. #define BIT_GET_FWFF_STR_ADDR_8822B(x) \
  5067. (((x) >> BIT_SHIFT_FWFF_STR_ADDR_8822B) & BIT_MASK_FWFF_STR_ADDR_8822B)
  5068. #define BIT_SET_FWFF_STR_ADDR_8822B(x, v) \
  5069. (BIT_CLEAR_FWFF_STR_ADDR_8822B(x) | BIT_FWFF_STR_ADDR_8822B(v))
  5070. /* 2 REG_FWFF_PKT_INFO_8822B */
  5071. #define BIT_SHIFT_FWFF_PKT_QUEUED_8822B 16
  5072. #define BIT_MASK_FWFF_PKT_QUEUED_8822B 0xff
  5073. #define BIT_FWFF_PKT_QUEUED_8822B(x) \
  5074. (((x) & BIT_MASK_FWFF_PKT_QUEUED_8822B) \
  5075. << BIT_SHIFT_FWFF_PKT_QUEUED_8822B)
  5076. #define BITS_FWFF_PKT_QUEUED_8822B \
  5077. (BIT_MASK_FWFF_PKT_QUEUED_8822B << BIT_SHIFT_FWFF_PKT_QUEUED_8822B)
  5078. #define BIT_CLEAR_FWFF_PKT_QUEUED_8822B(x) ((x) & (~BITS_FWFF_PKT_QUEUED_8822B))
  5079. #define BIT_GET_FWFF_PKT_QUEUED_8822B(x) \
  5080. (((x) >> BIT_SHIFT_FWFF_PKT_QUEUED_8822B) & \
  5081. BIT_MASK_FWFF_PKT_QUEUED_8822B)
  5082. #define BIT_SET_FWFF_PKT_QUEUED_8822B(x, v) \
  5083. (BIT_CLEAR_FWFF_PKT_QUEUED_8822B(x) | BIT_FWFF_PKT_QUEUED_8822B(v))
  5084. #define BIT_SHIFT_FWFF_PKT_STR_ADDR_8822B 0
  5085. #define BIT_MASK_FWFF_PKT_STR_ADDR_8822B 0xffff
  5086. #define BIT_FWFF_PKT_STR_ADDR_8822B(x) \
  5087. (((x) & BIT_MASK_FWFF_PKT_STR_ADDR_8822B) \
  5088. << BIT_SHIFT_FWFF_PKT_STR_ADDR_8822B)
  5089. #define BITS_FWFF_PKT_STR_ADDR_8822B \
  5090. (BIT_MASK_FWFF_PKT_STR_ADDR_8822B << BIT_SHIFT_FWFF_PKT_STR_ADDR_8822B)
  5091. #define BIT_CLEAR_FWFF_PKT_STR_ADDR_8822B(x) \
  5092. ((x) & (~BITS_FWFF_PKT_STR_ADDR_8822B))
  5093. #define BIT_GET_FWFF_PKT_STR_ADDR_8822B(x) \
  5094. (((x) >> BIT_SHIFT_FWFF_PKT_STR_ADDR_8822B) & \
  5095. BIT_MASK_FWFF_PKT_STR_ADDR_8822B)
  5096. #define BIT_SET_FWFF_PKT_STR_ADDR_8822B(x, v) \
  5097. (BIT_CLEAR_FWFF_PKT_STR_ADDR_8822B(x) | BIT_FWFF_PKT_STR_ADDR_8822B(v))
  5098. /* 2 REG_NOT_VALID_8822B */
  5099. /* 2 REG_DDMA_CH0SA_8822B */
  5100. #define BIT_SHIFT_DDMACH0_SA_8822B 0
  5101. #define BIT_MASK_DDMACH0_SA_8822B 0xffffffffL
  5102. #define BIT_DDMACH0_SA_8822B(x) \
  5103. (((x) & BIT_MASK_DDMACH0_SA_8822B) << BIT_SHIFT_DDMACH0_SA_8822B)
  5104. #define BITS_DDMACH0_SA_8822B \
  5105. (BIT_MASK_DDMACH0_SA_8822B << BIT_SHIFT_DDMACH0_SA_8822B)
  5106. #define BIT_CLEAR_DDMACH0_SA_8822B(x) ((x) & (~BITS_DDMACH0_SA_8822B))
  5107. #define BIT_GET_DDMACH0_SA_8822B(x) \
  5108. (((x) >> BIT_SHIFT_DDMACH0_SA_8822B) & BIT_MASK_DDMACH0_SA_8822B)
  5109. #define BIT_SET_DDMACH0_SA_8822B(x, v) \
  5110. (BIT_CLEAR_DDMACH0_SA_8822B(x) | BIT_DDMACH0_SA_8822B(v))
  5111. /* 2 REG_DDMA_CH0DA_8822B */
  5112. #define BIT_SHIFT_DDMACH0_DA_8822B 0
  5113. #define BIT_MASK_DDMACH0_DA_8822B 0xffffffffL
  5114. #define BIT_DDMACH0_DA_8822B(x) \
  5115. (((x) & BIT_MASK_DDMACH0_DA_8822B) << BIT_SHIFT_DDMACH0_DA_8822B)
  5116. #define BITS_DDMACH0_DA_8822B \
  5117. (BIT_MASK_DDMACH0_DA_8822B << BIT_SHIFT_DDMACH0_DA_8822B)
  5118. #define BIT_CLEAR_DDMACH0_DA_8822B(x) ((x) & (~BITS_DDMACH0_DA_8822B))
  5119. #define BIT_GET_DDMACH0_DA_8822B(x) \
  5120. (((x) >> BIT_SHIFT_DDMACH0_DA_8822B) & BIT_MASK_DDMACH0_DA_8822B)
  5121. #define BIT_SET_DDMACH0_DA_8822B(x, v) \
  5122. (BIT_CLEAR_DDMACH0_DA_8822B(x) | BIT_DDMACH0_DA_8822B(v))
  5123. /* 2 REG_DDMA_CH0CTRL_8822B */
  5124. #define BIT_DDMACH0_OWN_8822B BIT(31)
  5125. #define BIT_DDMACH0_IDMEM_ERR_8822B BIT(30)
  5126. #define BIT_DDMACH0_CHKSUM_EN_8822B BIT(29)
  5127. #define BIT_DDMACH0_DA_W_DISABLE_8822B BIT(28)
  5128. #define BIT_DDMACH0_CHKSUM_STS_8822B BIT(27)
  5129. #define BIT_DDMACH0_DDMA_MODE_8822B BIT(26)
  5130. #define BIT_DDMACH0_RESET_CHKSUM_STS_8822B BIT(25)
  5131. #define BIT_DDMACH0_CHKSUM_CONT_8822B BIT(24)
  5132. #define BIT_SHIFT_DDMACH0_DLEN_8822B 0
  5133. #define BIT_MASK_DDMACH0_DLEN_8822B 0x3ffff
  5134. #define BIT_DDMACH0_DLEN_8822B(x) \
  5135. (((x) & BIT_MASK_DDMACH0_DLEN_8822B) << BIT_SHIFT_DDMACH0_DLEN_8822B)
  5136. #define BITS_DDMACH0_DLEN_8822B \
  5137. (BIT_MASK_DDMACH0_DLEN_8822B << BIT_SHIFT_DDMACH0_DLEN_8822B)
  5138. #define BIT_CLEAR_DDMACH0_DLEN_8822B(x) ((x) & (~BITS_DDMACH0_DLEN_8822B))
  5139. #define BIT_GET_DDMACH0_DLEN_8822B(x) \
  5140. (((x) >> BIT_SHIFT_DDMACH0_DLEN_8822B) & BIT_MASK_DDMACH0_DLEN_8822B)
  5141. #define BIT_SET_DDMACH0_DLEN_8822B(x, v) \
  5142. (BIT_CLEAR_DDMACH0_DLEN_8822B(x) | BIT_DDMACH0_DLEN_8822B(v))
  5143. /* 2 REG_DDMA_CH1SA_8822B */
  5144. #define BIT_SHIFT_DDMACH1_SA_8822B 0
  5145. #define BIT_MASK_DDMACH1_SA_8822B 0xffffffffL
  5146. #define BIT_DDMACH1_SA_8822B(x) \
  5147. (((x) & BIT_MASK_DDMACH1_SA_8822B) << BIT_SHIFT_DDMACH1_SA_8822B)
  5148. #define BITS_DDMACH1_SA_8822B \
  5149. (BIT_MASK_DDMACH1_SA_8822B << BIT_SHIFT_DDMACH1_SA_8822B)
  5150. #define BIT_CLEAR_DDMACH1_SA_8822B(x) ((x) & (~BITS_DDMACH1_SA_8822B))
  5151. #define BIT_GET_DDMACH1_SA_8822B(x) \
  5152. (((x) >> BIT_SHIFT_DDMACH1_SA_8822B) & BIT_MASK_DDMACH1_SA_8822B)
  5153. #define BIT_SET_DDMACH1_SA_8822B(x, v) \
  5154. (BIT_CLEAR_DDMACH1_SA_8822B(x) | BIT_DDMACH1_SA_8822B(v))
  5155. /* 2 REG_DDMA_CH1DA_8822B */
  5156. #define BIT_SHIFT_DDMACH1_DA_8822B 0
  5157. #define BIT_MASK_DDMACH1_DA_8822B 0xffffffffL
  5158. #define BIT_DDMACH1_DA_8822B(x) \
  5159. (((x) & BIT_MASK_DDMACH1_DA_8822B) << BIT_SHIFT_DDMACH1_DA_8822B)
  5160. #define BITS_DDMACH1_DA_8822B \
  5161. (BIT_MASK_DDMACH1_DA_8822B << BIT_SHIFT_DDMACH1_DA_8822B)
  5162. #define BIT_CLEAR_DDMACH1_DA_8822B(x) ((x) & (~BITS_DDMACH1_DA_8822B))
  5163. #define BIT_GET_DDMACH1_DA_8822B(x) \
  5164. (((x) >> BIT_SHIFT_DDMACH1_DA_8822B) & BIT_MASK_DDMACH1_DA_8822B)
  5165. #define BIT_SET_DDMACH1_DA_8822B(x, v) \
  5166. (BIT_CLEAR_DDMACH1_DA_8822B(x) | BIT_DDMACH1_DA_8822B(v))
  5167. /* 2 REG_DDMA_CH1CTRL_8822B */
  5168. #define BIT_DDMACH1_OWN_8822B BIT(31)
  5169. #define BIT_DDMACH1_IDMEM_ERR_8822B BIT(30)
  5170. #define BIT_DDMACH1_CHKSUM_EN_8822B BIT(29)
  5171. #define BIT_DDMACH1_DA_W_DISABLE_8822B BIT(28)
  5172. #define BIT_DDMACH1_CHKSUM_STS_8822B BIT(27)
  5173. #define BIT_DDMACH1_DDMA_MODE_8822B BIT(26)
  5174. #define BIT_DDMACH1_RESET_CHKSUM_STS_8822B BIT(25)
  5175. #define BIT_DDMACH1_CHKSUM_CONT_8822B BIT(24)
  5176. #define BIT_SHIFT_DDMACH1_DLEN_8822B 0
  5177. #define BIT_MASK_DDMACH1_DLEN_8822B 0x3ffff
  5178. #define BIT_DDMACH1_DLEN_8822B(x) \
  5179. (((x) & BIT_MASK_DDMACH1_DLEN_8822B) << BIT_SHIFT_DDMACH1_DLEN_8822B)
  5180. #define BITS_DDMACH1_DLEN_8822B \
  5181. (BIT_MASK_DDMACH1_DLEN_8822B << BIT_SHIFT_DDMACH1_DLEN_8822B)
  5182. #define BIT_CLEAR_DDMACH1_DLEN_8822B(x) ((x) & (~BITS_DDMACH1_DLEN_8822B))
  5183. #define BIT_GET_DDMACH1_DLEN_8822B(x) \
  5184. (((x) >> BIT_SHIFT_DDMACH1_DLEN_8822B) & BIT_MASK_DDMACH1_DLEN_8822B)
  5185. #define BIT_SET_DDMACH1_DLEN_8822B(x, v) \
  5186. (BIT_CLEAR_DDMACH1_DLEN_8822B(x) | BIT_DDMACH1_DLEN_8822B(v))
  5187. /* 2 REG_DDMA_CH2SA_8822B */
  5188. #define BIT_SHIFT_DDMACH2_SA_8822B 0
  5189. #define BIT_MASK_DDMACH2_SA_8822B 0xffffffffL
  5190. #define BIT_DDMACH2_SA_8822B(x) \
  5191. (((x) & BIT_MASK_DDMACH2_SA_8822B) << BIT_SHIFT_DDMACH2_SA_8822B)
  5192. #define BITS_DDMACH2_SA_8822B \
  5193. (BIT_MASK_DDMACH2_SA_8822B << BIT_SHIFT_DDMACH2_SA_8822B)
  5194. #define BIT_CLEAR_DDMACH2_SA_8822B(x) ((x) & (~BITS_DDMACH2_SA_8822B))
  5195. #define BIT_GET_DDMACH2_SA_8822B(x) \
  5196. (((x) >> BIT_SHIFT_DDMACH2_SA_8822B) & BIT_MASK_DDMACH2_SA_8822B)
  5197. #define BIT_SET_DDMACH2_SA_8822B(x, v) \
  5198. (BIT_CLEAR_DDMACH2_SA_8822B(x) | BIT_DDMACH2_SA_8822B(v))
  5199. /* 2 REG_DDMA_CH2DA_8822B */
  5200. #define BIT_SHIFT_DDMACH2_DA_8822B 0
  5201. #define BIT_MASK_DDMACH2_DA_8822B 0xffffffffL
  5202. #define BIT_DDMACH2_DA_8822B(x) \
  5203. (((x) & BIT_MASK_DDMACH2_DA_8822B) << BIT_SHIFT_DDMACH2_DA_8822B)
  5204. #define BITS_DDMACH2_DA_8822B \
  5205. (BIT_MASK_DDMACH2_DA_8822B << BIT_SHIFT_DDMACH2_DA_8822B)
  5206. #define BIT_CLEAR_DDMACH2_DA_8822B(x) ((x) & (~BITS_DDMACH2_DA_8822B))
  5207. #define BIT_GET_DDMACH2_DA_8822B(x) \
  5208. (((x) >> BIT_SHIFT_DDMACH2_DA_8822B) & BIT_MASK_DDMACH2_DA_8822B)
  5209. #define BIT_SET_DDMACH2_DA_8822B(x, v) \
  5210. (BIT_CLEAR_DDMACH2_DA_8822B(x) | BIT_DDMACH2_DA_8822B(v))
  5211. /* 2 REG_DDMA_CH2CTRL_8822B */
  5212. #define BIT_DDMACH2_OWN_8822B BIT(31)
  5213. #define BIT_DDMACH2_IDMEM_ERR_8822B BIT(30)
  5214. #define BIT_DDMACH2_CHKSUM_EN_8822B BIT(29)
  5215. #define BIT_DDMACH2_DA_W_DISABLE_8822B BIT(28)
  5216. #define BIT_DDMACH2_CHKSUM_STS_8822B BIT(27)
  5217. #define BIT_DDMACH2_DDMA_MODE_8822B BIT(26)
  5218. #define BIT_DDMACH2_RESET_CHKSUM_STS_8822B BIT(25)
  5219. #define BIT_DDMACH2_CHKSUM_CONT_8822B BIT(24)
  5220. #define BIT_SHIFT_DDMACH2_DLEN_8822B 0
  5221. #define BIT_MASK_DDMACH2_DLEN_8822B 0x3ffff
  5222. #define BIT_DDMACH2_DLEN_8822B(x) \
  5223. (((x) & BIT_MASK_DDMACH2_DLEN_8822B) << BIT_SHIFT_DDMACH2_DLEN_8822B)
  5224. #define BITS_DDMACH2_DLEN_8822B \
  5225. (BIT_MASK_DDMACH2_DLEN_8822B << BIT_SHIFT_DDMACH2_DLEN_8822B)
  5226. #define BIT_CLEAR_DDMACH2_DLEN_8822B(x) ((x) & (~BITS_DDMACH2_DLEN_8822B))
  5227. #define BIT_GET_DDMACH2_DLEN_8822B(x) \
  5228. (((x) >> BIT_SHIFT_DDMACH2_DLEN_8822B) & BIT_MASK_DDMACH2_DLEN_8822B)
  5229. #define BIT_SET_DDMACH2_DLEN_8822B(x, v) \
  5230. (BIT_CLEAR_DDMACH2_DLEN_8822B(x) | BIT_DDMACH2_DLEN_8822B(v))
  5231. /* 2 REG_DDMA_CH3SA_8822B */
  5232. #define BIT_SHIFT_DDMACH3_SA_8822B 0
  5233. #define BIT_MASK_DDMACH3_SA_8822B 0xffffffffL
  5234. #define BIT_DDMACH3_SA_8822B(x) \
  5235. (((x) & BIT_MASK_DDMACH3_SA_8822B) << BIT_SHIFT_DDMACH3_SA_8822B)
  5236. #define BITS_DDMACH3_SA_8822B \
  5237. (BIT_MASK_DDMACH3_SA_8822B << BIT_SHIFT_DDMACH3_SA_8822B)
  5238. #define BIT_CLEAR_DDMACH3_SA_8822B(x) ((x) & (~BITS_DDMACH3_SA_8822B))
  5239. #define BIT_GET_DDMACH3_SA_8822B(x) \
  5240. (((x) >> BIT_SHIFT_DDMACH3_SA_8822B) & BIT_MASK_DDMACH3_SA_8822B)
  5241. #define BIT_SET_DDMACH3_SA_8822B(x, v) \
  5242. (BIT_CLEAR_DDMACH3_SA_8822B(x) | BIT_DDMACH3_SA_8822B(v))
  5243. /* 2 REG_DDMA_CH3DA_8822B */
  5244. #define BIT_SHIFT_DDMACH3_DA_8822B 0
  5245. #define BIT_MASK_DDMACH3_DA_8822B 0xffffffffL
  5246. #define BIT_DDMACH3_DA_8822B(x) \
  5247. (((x) & BIT_MASK_DDMACH3_DA_8822B) << BIT_SHIFT_DDMACH3_DA_8822B)
  5248. #define BITS_DDMACH3_DA_8822B \
  5249. (BIT_MASK_DDMACH3_DA_8822B << BIT_SHIFT_DDMACH3_DA_8822B)
  5250. #define BIT_CLEAR_DDMACH3_DA_8822B(x) ((x) & (~BITS_DDMACH3_DA_8822B))
  5251. #define BIT_GET_DDMACH3_DA_8822B(x) \
  5252. (((x) >> BIT_SHIFT_DDMACH3_DA_8822B) & BIT_MASK_DDMACH3_DA_8822B)
  5253. #define BIT_SET_DDMACH3_DA_8822B(x, v) \
  5254. (BIT_CLEAR_DDMACH3_DA_8822B(x) | BIT_DDMACH3_DA_8822B(v))
  5255. /* 2 REG_DDMA_CH3CTRL_8822B */
  5256. #define BIT_DDMACH3_OWN_8822B BIT(31)
  5257. #define BIT_DDMACH3_IDMEM_ERR_8822B BIT(30)
  5258. #define BIT_DDMACH3_CHKSUM_EN_8822B BIT(29)
  5259. #define BIT_DDMACH3_DA_W_DISABLE_8822B BIT(28)
  5260. #define BIT_DDMACH3_CHKSUM_STS_8822B BIT(27)
  5261. #define BIT_DDMACH3_DDMA_MODE_8822B BIT(26)
  5262. #define BIT_DDMACH3_RESET_CHKSUM_STS_8822B BIT(25)
  5263. #define BIT_DDMACH3_CHKSUM_CONT_8822B BIT(24)
  5264. #define BIT_SHIFT_DDMACH3_DLEN_8822B 0
  5265. #define BIT_MASK_DDMACH3_DLEN_8822B 0x3ffff
  5266. #define BIT_DDMACH3_DLEN_8822B(x) \
  5267. (((x) & BIT_MASK_DDMACH3_DLEN_8822B) << BIT_SHIFT_DDMACH3_DLEN_8822B)
  5268. #define BITS_DDMACH3_DLEN_8822B \
  5269. (BIT_MASK_DDMACH3_DLEN_8822B << BIT_SHIFT_DDMACH3_DLEN_8822B)
  5270. #define BIT_CLEAR_DDMACH3_DLEN_8822B(x) ((x) & (~BITS_DDMACH3_DLEN_8822B))
  5271. #define BIT_GET_DDMACH3_DLEN_8822B(x) \
  5272. (((x) >> BIT_SHIFT_DDMACH3_DLEN_8822B) & BIT_MASK_DDMACH3_DLEN_8822B)
  5273. #define BIT_SET_DDMACH3_DLEN_8822B(x, v) \
  5274. (BIT_CLEAR_DDMACH3_DLEN_8822B(x) | BIT_DDMACH3_DLEN_8822B(v))
  5275. /* 2 REG_DDMA_CH4SA_8822B */
  5276. #define BIT_SHIFT_DDMACH4_SA_8822B 0
  5277. #define BIT_MASK_DDMACH4_SA_8822B 0xffffffffL
  5278. #define BIT_DDMACH4_SA_8822B(x) \
  5279. (((x) & BIT_MASK_DDMACH4_SA_8822B) << BIT_SHIFT_DDMACH4_SA_8822B)
  5280. #define BITS_DDMACH4_SA_8822B \
  5281. (BIT_MASK_DDMACH4_SA_8822B << BIT_SHIFT_DDMACH4_SA_8822B)
  5282. #define BIT_CLEAR_DDMACH4_SA_8822B(x) ((x) & (~BITS_DDMACH4_SA_8822B))
  5283. #define BIT_GET_DDMACH4_SA_8822B(x) \
  5284. (((x) >> BIT_SHIFT_DDMACH4_SA_8822B) & BIT_MASK_DDMACH4_SA_8822B)
  5285. #define BIT_SET_DDMACH4_SA_8822B(x, v) \
  5286. (BIT_CLEAR_DDMACH4_SA_8822B(x) | BIT_DDMACH4_SA_8822B(v))
  5287. /* 2 REG_DDMA_CH4DA_8822B */
  5288. #define BIT_SHIFT_DDMACH4_DA_8822B 0
  5289. #define BIT_MASK_DDMACH4_DA_8822B 0xffffffffL
  5290. #define BIT_DDMACH4_DA_8822B(x) \
  5291. (((x) & BIT_MASK_DDMACH4_DA_8822B) << BIT_SHIFT_DDMACH4_DA_8822B)
  5292. #define BITS_DDMACH4_DA_8822B \
  5293. (BIT_MASK_DDMACH4_DA_8822B << BIT_SHIFT_DDMACH4_DA_8822B)
  5294. #define BIT_CLEAR_DDMACH4_DA_8822B(x) ((x) & (~BITS_DDMACH4_DA_8822B))
  5295. #define BIT_GET_DDMACH4_DA_8822B(x) \
  5296. (((x) >> BIT_SHIFT_DDMACH4_DA_8822B) & BIT_MASK_DDMACH4_DA_8822B)
  5297. #define BIT_SET_DDMACH4_DA_8822B(x, v) \
  5298. (BIT_CLEAR_DDMACH4_DA_8822B(x) | BIT_DDMACH4_DA_8822B(v))
  5299. /* 2 REG_DDMA_CH4CTRL_8822B */
  5300. #define BIT_DDMACH4_OWN_8822B BIT(31)
  5301. #define BIT_DDMACH4_IDMEM_ERR_8822B BIT(30)
  5302. #define BIT_DDMACH4_CHKSUM_EN_8822B BIT(29)
  5303. #define BIT_DDMACH4_DA_W_DISABLE_8822B BIT(28)
  5304. #define BIT_DDMACH4_CHKSUM_STS_8822B BIT(27)
  5305. #define BIT_DDMACH4_DDMA_MODE_8822B BIT(26)
  5306. #define BIT_DDMACH4_RESET_CHKSUM_STS_8822B BIT(25)
  5307. #define BIT_DDMACH4_CHKSUM_CONT_8822B BIT(24)
  5308. #define BIT_SHIFT_DDMACH4_DLEN_8822B 0
  5309. #define BIT_MASK_DDMACH4_DLEN_8822B 0x3ffff
  5310. #define BIT_DDMACH4_DLEN_8822B(x) \
  5311. (((x) & BIT_MASK_DDMACH4_DLEN_8822B) << BIT_SHIFT_DDMACH4_DLEN_8822B)
  5312. #define BITS_DDMACH4_DLEN_8822B \
  5313. (BIT_MASK_DDMACH4_DLEN_8822B << BIT_SHIFT_DDMACH4_DLEN_8822B)
  5314. #define BIT_CLEAR_DDMACH4_DLEN_8822B(x) ((x) & (~BITS_DDMACH4_DLEN_8822B))
  5315. #define BIT_GET_DDMACH4_DLEN_8822B(x) \
  5316. (((x) >> BIT_SHIFT_DDMACH4_DLEN_8822B) & BIT_MASK_DDMACH4_DLEN_8822B)
  5317. #define BIT_SET_DDMACH4_DLEN_8822B(x, v) \
  5318. (BIT_CLEAR_DDMACH4_DLEN_8822B(x) | BIT_DDMACH4_DLEN_8822B(v))
  5319. /* 2 REG_DDMA_CH5SA_8822B */
  5320. #define BIT_SHIFT_DDMACH5_SA_8822B 0
  5321. #define BIT_MASK_DDMACH5_SA_8822B 0xffffffffL
  5322. #define BIT_DDMACH5_SA_8822B(x) \
  5323. (((x) & BIT_MASK_DDMACH5_SA_8822B) << BIT_SHIFT_DDMACH5_SA_8822B)
  5324. #define BITS_DDMACH5_SA_8822B \
  5325. (BIT_MASK_DDMACH5_SA_8822B << BIT_SHIFT_DDMACH5_SA_8822B)
  5326. #define BIT_CLEAR_DDMACH5_SA_8822B(x) ((x) & (~BITS_DDMACH5_SA_8822B))
  5327. #define BIT_GET_DDMACH5_SA_8822B(x) \
  5328. (((x) >> BIT_SHIFT_DDMACH5_SA_8822B) & BIT_MASK_DDMACH5_SA_8822B)
  5329. #define BIT_SET_DDMACH5_SA_8822B(x, v) \
  5330. (BIT_CLEAR_DDMACH5_SA_8822B(x) | BIT_DDMACH5_SA_8822B(v))
  5331. /* 2 REG_DDMA_CH5DA_8822B */
  5332. #define BIT_SHIFT_DDMACH5_DA_8822B 0
  5333. #define BIT_MASK_DDMACH5_DA_8822B 0xffffffffL
  5334. #define BIT_DDMACH5_DA_8822B(x) \
  5335. (((x) & BIT_MASK_DDMACH5_DA_8822B) << BIT_SHIFT_DDMACH5_DA_8822B)
  5336. #define BITS_DDMACH5_DA_8822B \
  5337. (BIT_MASK_DDMACH5_DA_8822B << BIT_SHIFT_DDMACH5_DA_8822B)
  5338. #define BIT_CLEAR_DDMACH5_DA_8822B(x) ((x) & (~BITS_DDMACH5_DA_8822B))
  5339. #define BIT_GET_DDMACH5_DA_8822B(x) \
  5340. (((x) >> BIT_SHIFT_DDMACH5_DA_8822B) & BIT_MASK_DDMACH5_DA_8822B)
  5341. #define BIT_SET_DDMACH5_DA_8822B(x, v) \
  5342. (BIT_CLEAR_DDMACH5_DA_8822B(x) | BIT_DDMACH5_DA_8822B(v))
  5343. /* 2 REG_REG_DDMA_CH5CTRL_8822B */
  5344. #define BIT_DDMACH5_OWN_8822B BIT(31)
  5345. #define BIT_DDMACH5_IDMEM_ERR_8822B BIT(30)
  5346. #define BIT_DDMACH5_CHKSUM_EN_8822B BIT(29)
  5347. #define BIT_DDMACH5_DA_W_DISABLE_8822B BIT(28)
  5348. #define BIT_DDMACH5_CHKSUM_STS_8822B BIT(27)
  5349. #define BIT_DDMACH5_DDMA_MODE_8822B BIT(26)
  5350. #define BIT_DDMACH5_RESET_CHKSUM_STS_8822B BIT(25)
  5351. #define BIT_DDMACH5_CHKSUM_CONT_8822B BIT(24)
  5352. #define BIT_SHIFT_DDMACH5_DLEN_8822B 0
  5353. #define BIT_MASK_DDMACH5_DLEN_8822B 0x3ffff
  5354. #define BIT_DDMACH5_DLEN_8822B(x) \
  5355. (((x) & BIT_MASK_DDMACH5_DLEN_8822B) << BIT_SHIFT_DDMACH5_DLEN_8822B)
  5356. #define BITS_DDMACH5_DLEN_8822B \
  5357. (BIT_MASK_DDMACH5_DLEN_8822B << BIT_SHIFT_DDMACH5_DLEN_8822B)
  5358. #define BIT_CLEAR_DDMACH5_DLEN_8822B(x) ((x) & (~BITS_DDMACH5_DLEN_8822B))
  5359. #define BIT_GET_DDMACH5_DLEN_8822B(x) \
  5360. (((x) >> BIT_SHIFT_DDMACH5_DLEN_8822B) & BIT_MASK_DDMACH5_DLEN_8822B)
  5361. #define BIT_SET_DDMACH5_DLEN_8822B(x, v) \
  5362. (BIT_CLEAR_DDMACH5_DLEN_8822B(x) | BIT_DDMACH5_DLEN_8822B(v))
  5363. /* 2 REG_DDMA_INT_MSK_8822B */
  5364. #define BIT_DDMACH5_MSK_8822B BIT(5)
  5365. #define BIT_DDMACH4_MSK_8822B BIT(4)
  5366. #define BIT_DDMACH3_MSK_8822B BIT(3)
  5367. #define BIT_DDMACH2_MSK_8822B BIT(2)
  5368. #define BIT_DDMACH1_MSK_8822B BIT(1)
  5369. #define BIT_DDMACH0_MSK_8822B BIT(0)
  5370. /* 2 REG_DDMA_CHSTATUS_8822B */
  5371. #define BIT_DDMACH5_BUSY_8822B BIT(5)
  5372. #define BIT_DDMACH4_BUSY_8822B BIT(4)
  5373. #define BIT_DDMACH3_BUSY_8822B BIT(3)
  5374. #define BIT_DDMACH2_BUSY_8822B BIT(2)
  5375. #define BIT_DDMACH1_BUSY_8822B BIT(1)
  5376. #define BIT_DDMACH0_BUSY_8822B BIT(0)
  5377. /* 2 REG_DDMA_CHKSUM_8822B */
  5378. #define BIT_SHIFT_IDDMA0_CHKSUM_8822B 0
  5379. #define BIT_MASK_IDDMA0_CHKSUM_8822B 0xffff
  5380. #define BIT_IDDMA0_CHKSUM_8822B(x) \
  5381. (((x) & BIT_MASK_IDDMA0_CHKSUM_8822B) << BIT_SHIFT_IDDMA0_CHKSUM_8822B)
  5382. #define BITS_IDDMA0_CHKSUM_8822B \
  5383. (BIT_MASK_IDDMA0_CHKSUM_8822B << BIT_SHIFT_IDDMA0_CHKSUM_8822B)
  5384. #define BIT_CLEAR_IDDMA0_CHKSUM_8822B(x) ((x) & (~BITS_IDDMA0_CHKSUM_8822B))
  5385. #define BIT_GET_IDDMA0_CHKSUM_8822B(x) \
  5386. (((x) >> BIT_SHIFT_IDDMA0_CHKSUM_8822B) & BIT_MASK_IDDMA0_CHKSUM_8822B)
  5387. #define BIT_SET_IDDMA0_CHKSUM_8822B(x, v) \
  5388. (BIT_CLEAR_IDDMA0_CHKSUM_8822B(x) | BIT_IDDMA0_CHKSUM_8822B(v))
  5389. /* 2 REG_DDMA_MONITOR_8822B */
  5390. #define BIT_IDDMA0_PERMU_UNDERFLOW_8822B BIT(14)
  5391. #define BIT_IDDMA0_FIFO_UNDERFLOW_8822B BIT(13)
  5392. #define BIT_IDDMA0_FIFO_OVERFLOW_8822B BIT(12)
  5393. #define BIT_CH5_ERR_8822B BIT(5)
  5394. #define BIT_CH4_ERR_8822B BIT(4)
  5395. #define BIT_CH3_ERR_8822B BIT(3)
  5396. #define BIT_CH2_ERR_8822B BIT(2)
  5397. #define BIT_CH1_ERR_8822B BIT(1)
  5398. #define BIT_CH0_ERR_8822B BIT(0)
  5399. /* 2 REG_NOT_VALID_8822B */
  5400. /* 2 REG_PCIE_CTRL_8822B */
  5401. #define BIT_PCIEIO_PERSTB_SEL_8822B BIT(31)
  5402. #define BIT_SHIFT_PCIE_MAX_RXDMA_8822B 28
  5403. #define BIT_MASK_PCIE_MAX_RXDMA_8822B 0x7
  5404. #define BIT_PCIE_MAX_RXDMA_8822B(x) \
  5405. (((x) & BIT_MASK_PCIE_MAX_RXDMA_8822B) \
  5406. << BIT_SHIFT_PCIE_MAX_RXDMA_8822B)
  5407. #define BITS_PCIE_MAX_RXDMA_8822B \
  5408. (BIT_MASK_PCIE_MAX_RXDMA_8822B << BIT_SHIFT_PCIE_MAX_RXDMA_8822B)
  5409. #define BIT_CLEAR_PCIE_MAX_RXDMA_8822B(x) ((x) & (~BITS_PCIE_MAX_RXDMA_8822B))
  5410. #define BIT_GET_PCIE_MAX_RXDMA_8822B(x) \
  5411. (((x) >> BIT_SHIFT_PCIE_MAX_RXDMA_8822B) & \
  5412. BIT_MASK_PCIE_MAX_RXDMA_8822B)
  5413. #define BIT_SET_PCIE_MAX_RXDMA_8822B(x, v) \
  5414. (BIT_CLEAR_PCIE_MAX_RXDMA_8822B(x) | BIT_PCIE_MAX_RXDMA_8822B(v))
  5415. #define BIT_MULRW_8822B BIT(27)
  5416. #define BIT_SHIFT_PCIE_MAX_TXDMA_8822B 24
  5417. #define BIT_MASK_PCIE_MAX_TXDMA_8822B 0x7
  5418. #define BIT_PCIE_MAX_TXDMA_8822B(x) \
  5419. (((x) & BIT_MASK_PCIE_MAX_TXDMA_8822B) \
  5420. << BIT_SHIFT_PCIE_MAX_TXDMA_8822B)
  5421. #define BITS_PCIE_MAX_TXDMA_8822B \
  5422. (BIT_MASK_PCIE_MAX_TXDMA_8822B << BIT_SHIFT_PCIE_MAX_TXDMA_8822B)
  5423. #define BIT_CLEAR_PCIE_MAX_TXDMA_8822B(x) ((x) & (~BITS_PCIE_MAX_TXDMA_8822B))
  5424. #define BIT_GET_PCIE_MAX_TXDMA_8822B(x) \
  5425. (((x) >> BIT_SHIFT_PCIE_MAX_TXDMA_8822B) & \
  5426. BIT_MASK_PCIE_MAX_TXDMA_8822B)
  5427. #define BIT_SET_PCIE_MAX_TXDMA_8822B(x, v) \
  5428. (BIT_CLEAR_PCIE_MAX_TXDMA_8822B(x) | BIT_PCIE_MAX_TXDMA_8822B(v))
  5429. #define BIT_EN_CPL_TIMEOUT_PS_8822B BIT(22)
  5430. #define BIT_REG_TXDMA_FAIL_PS_8822B BIT(21)
  5431. #define BIT_PCIE_RST_TRXDMA_INTF_8822B BIT(20)
  5432. #define BIT_EN_HWENTR_L1_8822B BIT(19)
  5433. #define BIT_EN_ADV_CLKGATE_8822B BIT(18)
  5434. #define BIT_PCIE_EN_SWENT_L23_8822B BIT(17)
  5435. #define BIT_PCIE_EN_HWEXT_L1_8822B BIT(16)
  5436. #define BIT_RX_CLOSE_EN_8822B BIT(15)
  5437. #define BIT_STOP_BCNQ_8822B BIT(14)
  5438. #define BIT_STOP_MGQ_8822B BIT(13)
  5439. #define BIT_STOP_VOQ_8822B BIT(12)
  5440. #define BIT_STOP_VIQ_8822B BIT(11)
  5441. #define BIT_STOP_BEQ_8822B BIT(10)
  5442. #define BIT_STOP_BKQ_8822B BIT(9)
  5443. #define BIT_STOP_RXQ_8822B BIT(8)
  5444. #define BIT_STOP_HI7Q_8822B BIT(7)
  5445. #define BIT_STOP_HI6Q_8822B BIT(6)
  5446. #define BIT_STOP_HI5Q_8822B BIT(5)
  5447. #define BIT_STOP_HI4Q_8822B BIT(4)
  5448. #define BIT_STOP_HI3Q_8822B BIT(3)
  5449. #define BIT_STOP_HI2Q_8822B BIT(2)
  5450. #define BIT_STOP_HI1Q_8822B BIT(1)
  5451. #define BIT_STOP_HI0Q_8822B BIT(0)
  5452. /* 2 REG_INT_MIG_8822B */
  5453. #define BIT_SHIFT_TXTTIMER_MATCH_NUM_8822B 28
  5454. #define BIT_MASK_TXTTIMER_MATCH_NUM_8822B 0xf
  5455. #define BIT_TXTTIMER_MATCH_NUM_8822B(x) \
  5456. (((x) & BIT_MASK_TXTTIMER_MATCH_NUM_8822B) \
  5457. << BIT_SHIFT_TXTTIMER_MATCH_NUM_8822B)
  5458. #define BITS_TXTTIMER_MATCH_NUM_8822B \
  5459. (BIT_MASK_TXTTIMER_MATCH_NUM_8822B \
  5460. << BIT_SHIFT_TXTTIMER_MATCH_NUM_8822B)
  5461. #define BIT_CLEAR_TXTTIMER_MATCH_NUM_8822B(x) \
  5462. ((x) & (~BITS_TXTTIMER_MATCH_NUM_8822B))
  5463. #define BIT_GET_TXTTIMER_MATCH_NUM_8822B(x) \
  5464. (((x) >> BIT_SHIFT_TXTTIMER_MATCH_NUM_8822B) & \
  5465. BIT_MASK_TXTTIMER_MATCH_NUM_8822B)
  5466. #define BIT_SET_TXTTIMER_MATCH_NUM_8822B(x, v) \
  5467. (BIT_CLEAR_TXTTIMER_MATCH_NUM_8822B(x) | \
  5468. BIT_TXTTIMER_MATCH_NUM_8822B(v))
  5469. #define BIT_SHIFT_TXPKT_NUM_MATCH_8822B 24
  5470. #define BIT_MASK_TXPKT_NUM_MATCH_8822B 0xf
  5471. #define BIT_TXPKT_NUM_MATCH_8822B(x) \
  5472. (((x) & BIT_MASK_TXPKT_NUM_MATCH_8822B) \
  5473. << BIT_SHIFT_TXPKT_NUM_MATCH_8822B)
  5474. #define BITS_TXPKT_NUM_MATCH_8822B \
  5475. (BIT_MASK_TXPKT_NUM_MATCH_8822B << BIT_SHIFT_TXPKT_NUM_MATCH_8822B)
  5476. #define BIT_CLEAR_TXPKT_NUM_MATCH_8822B(x) ((x) & (~BITS_TXPKT_NUM_MATCH_8822B))
  5477. #define BIT_GET_TXPKT_NUM_MATCH_8822B(x) \
  5478. (((x) >> BIT_SHIFT_TXPKT_NUM_MATCH_8822B) & \
  5479. BIT_MASK_TXPKT_NUM_MATCH_8822B)
  5480. #define BIT_SET_TXPKT_NUM_MATCH_8822B(x, v) \
  5481. (BIT_CLEAR_TXPKT_NUM_MATCH_8822B(x) | BIT_TXPKT_NUM_MATCH_8822B(v))
  5482. #define BIT_SHIFT_RXTTIMER_MATCH_NUM_8822B 20
  5483. #define BIT_MASK_RXTTIMER_MATCH_NUM_8822B 0xf
  5484. #define BIT_RXTTIMER_MATCH_NUM_8822B(x) \
  5485. (((x) & BIT_MASK_RXTTIMER_MATCH_NUM_8822B) \
  5486. << BIT_SHIFT_RXTTIMER_MATCH_NUM_8822B)
  5487. #define BITS_RXTTIMER_MATCH_NUM_8822B \
  5488. (BIT_MASK_RXTTIMER_MATCH_NUM_8822B \
  5489. << BIT_SHIFT_RXTTIMER_MATCH_NUM_8822B)
  5490. #define BIT_CLEAR_RXTTIMER_MATCH_NUM_8822B(x) \
  5491. ((x) & (~BITS_RXTTIMER_MATCH_NUM_8822B))
  5492. #define BIT_GET_RXTTIMER_MATCH_NUM_8822B(x) \
  5493. (((x) >> BIT_SHIFT_RXTTIMER_MATCH_NUM_8822B) & \
  5494. BIT_MASK_RXTTIMER_MATCH_NUM_8822B)
  5495. #define BIT_SET_RXTTIMER_MATCH_NUM_8822B(x, v) \
  5496. (BIT_CLEAR_RXTTIMER_MATCH_NUM_8822B(x) | \
  5497. BIT_RXTTIMER_MATCH_NUM_8822B(v))
  5498. #define BIT_SHIFT_RXPKT_NUM_MATCH_8822B 16
  5499. #define BIT_MASK_RXPKT_NUM_MATCH_8822B 0xf
  5500. #define BIT_RXPKT_NUM_MATCH_8822B(x) \
  5501. (((x) & BIT_MASK_RXPKT_NUM_MATCH_8822B) \
  5502. << BIT_SHIFT_RXPKT_NUM_MATCH_8822B)
  5503. #define BITS_RXPKT_NUM_MATCH_8822B \
  5504. (BIT_MASK_RXPKT_NUM_MATCH_8822B << BIT_SHIFT_RXPKT_NUM_MATCH_8822B)
  5505. #define BIT_CLEAR_RXPKT_NUM_MATCH_8822B(x) ((x) & (~BITS_RXPKT_NUM_MATCH_8822B))
  5506. #define BIT_GET_RXPKT_NUM_MATCH_8822B(x) \
  5507. (((x) >> BIT_SHIFT_RXPKT_NUM_MATCH_8822B) & \
  5508. BIT_MASK_RXPKT_NUM_MATCH_8822B)
  5509. #define BIT_SET_RXPKT_NUM_MATCH_8822B(x, v) \
  5510. (BIT_CLEAR_RXPKT_NUM_MATCH_8822B(x) | BIT_RXPKT_NUM_MATCH_8822B(v))
  5511. #define BIT_SHIFT_MIGRATE_TIMER_8822B 0
  5512. #define BIT_MASK_MIGRATE_TIMER_8822B 0xffff
  5513. #define BIT_MIGRATE_TIMER_8822B(x) \
  5514. (((x) & BIT_MASK_MIGRATE_TIMER_8822B) << BIT_SHIFT_MIGRATE_TIMER_8822B)
  5515. #define BITS_MIGRATE_TIMER_8822B \
  5516. (BIT_MASK_MIGRATE_TIMER_8822B << BIT_SHIFT_MIGRATE_TIMER_8822B)
  5517. #define BIT_CLEAR_MIGRATE_TIMER_8822B(x) ((x) & (~BITS_MIGRATE_TIMER_8822B))
  5518. #define BIT_GET_MIGRATE_TIMER_8822B(x) \
  5519. (((x) >> BIT_SHIFT_MIGRATE_TIMER_8822B) & BIT_MASK_MIGRATE_TIMER_8822B)
  5520. #define BIT_SET_MIGRATE_TIMER_8822B(x, v) \
  5521. (BIT_CLEAR_MIGRATE_TIMER_8822B(x) | BIT_MIGRATE_TIMER_8822B(v))
  5522. /* 2 REG_BCNQ_TXBD_DESA_8822B */
  5523. #define BIT_SHIFT_BCNQ_TXBD_DESA_8822B 0
  5524. #define BIT_MASK_BCNQ_TXBD_DESA_8822B 0xffffffffffffffffL
  5525. #define BIT_BCNQ_TXBD_DESA_8822B(x) \
  5526. (((x) & BIT_MASK_BCNQ_TXBD_DESA_8822B) \
  5527. << BIT_SHIFT_BCNQ_TXBD_DESA_8822B)
  5528. #define BITS_BCNQ_TXBD_DESA_8822B \
  5529. (BIT_MASK_BCNQ_TXBD_DESA_8822B << BIT_SHIFT_BCNQ_TXBD_DESA_8822B)
  5530. #define BIT_CLEAR_BCNQ_TXBD_DESA_8822B(x) ((x) & (~BITS_BCNQ_TXBD_DESA_8822B))
  5531. #define BIT_GET_BCNQ_TXBD_DESA_8822B(x) \
  5532. (((x) >> BIT_SHIFT_BCNQ_TXBD_DESA_8822B) & \
  5533. BIT_MASK_BCNQ_TXBD_DESA_8822B)
  5534. #define BIT_SET_BCNQ_TXBD_DESA_8822B(x, v) \
  5535. (BIT_CLEAR_BCNQ_TXBD_DESA_8822B(x) | BIT_BCNQ_TXBD_DESA_8822B(v))
  5536. /* 2 REG_MGQ_TXBD_DESA_8822B */
  5537. #define BIT_SHIFT_MGQ_TXBD_DESA_8822B 0
  5538. #define BIT_MASK_MGQ_TXBD_DESA_8822B 0xffffffffffffffffL
  5539. #define BIT_MGQ_TXBD_DESA_8822B(x) \
  5540. (((x) & BIT_MASK_MGQ_TXBD_DESA_8822B) << BIT_SHIFT_MGQ_TXBD_DESA_8822B)
  5541. #define BITS_MGQ_TXBD_DESA_8822B \
  5542. (BIT_MASK_MGQ_TXBD_DESA_8822B << BIT_SHIFT_MGQ_TXBD_DESA_8822B)
  5543. #define BIT_CLEAR_MGQ_TXBD_DESA_8822B(x) ((x) & (~BITS_MGQ_TXBD_DESA_8822B))
  5544. #define BIT_GET_MGQ_TXBD_DESA_8822B(x) \
  5545. (((x) >> BIT_SHIFT_MGQ_TXBD_DESA_8822B) & BIT_MASK_MGQ_TXBD_DESA_8822B)
  5546. #define BIT_SET_MGQ_TXBD_DESA_8822B(x, v) \
  5547. (BIT_CLEAR_MGQ_TXBD_DESA_8822B(x) | BIT_MGQ_TXBD_DESA_8822B(v))
  5548. /* 2 REG_VOQ_TXBD_DESA_8822B */
  5549. #define BIT_SHIFT_VOQ_TXBD_DESA_8822B 0
  5550. #define BIT_MASK_VOQ_TXBD_DESA_8822B 0xffffffffffffffffL
  5551. #define BIT_VOQ_TXBD_DESA_8822B(x) \
  5552. (((x) & BIT_MASK_VOQ_TXBD_DESA_8822B) << BIT_SHIFT_VOQ_TXBD_DESA_8822B)
  5553. #define BITS_VOQ_TXBD_DESA_8822B \
  5554. (BIT_MASK_VOQ_TXBD_DESA_8822B << BIT_SHIFT_VOQ_TXBD_DESA_8822B)
  5555. #define BIT_CLEAR_VOQ_TXBD_DESA_8822B(x) ((x) & (~BITS_VOQ_TXBD_DESA_8822B))
  5556. #define BIT_GET_VOQ_TXBD_DESA_8822B(x) \
  5557. (((x) >> BIT_SHIFT_VOQ_TXBD_DESA_8822B) & BIT_MASK_VOQ_TXBD_DESA_8822B)
  5558. #define BIT_SET_VOQ_TXBD_DESA_8822B(x, v) \
  5559. (BIT_CLEAR_VOQ_TXBD_DESA_8822B(x) | BIT_VOQ_TXBD_DESA_8822B(v))
  5560. /* 2 REG_VIQ_TXBD_DESA_8822B */
  5561. #define BIT_SHIFT_VIQ_TXBD_DESA_8822B 0
  5562. #define BIT_MASK_VIQ_TXBD_DESA_8822B 0xffffffffffffffffL
  5563. #define BIT_VIQ_TXBD_DESA_8822B(x) \
  5564. (((x) & BIT_MASK_VIQ_TXBD_DESA_8822B) << BIT_SHIFT_VIQ_TXBD_DESA_8822B)
  5565. #define BITS_VIQ_TXBD_DESA_8822B \
  5566. (BIT_MASK_VIQ_TXBD_DESA_8822B << BIT_SHIFT_VIQ_TXBD_DESA_8822B)
  5567. #define BIT_CLEAR_VIQ_TXBD_DESA_8822B(x) ((x) & (~BITS_VIQ_TXBD_DESA_8822B))
  5568. #define BIT_GET_VIQ_TXBD_DESA_8822B(x) \
  5569. (((x) >> BIT_SHIFT_VIQ_TXBD_DESA_8822B) & BIT_MASK_VIQ_TXBD_DESA_8822B)
  5570. #define BIT_SET_VIQ_TXBD_DESA_8822B(x, v) \
  5571. (BIT_CLEAR_VIQ_TXBD_DESA_8822B(x) | BIT_VIQ_TXBD_DESA_8822B(v))
  5572. /* 2 REG_BEQ_TXBD_DESA_8822B */
  5573. #define BIT_SHIFT_BEQ_TXBD_DESA_8822B 0
  5574. #define BIT_MASK_BEQ_TXBD_DESA_8822B 0xffffffffffffffffL
  5575. #define BIT_BEQ_TXBD_DESA_8822B(x) \
  5576. (((x) & BIT_MASK_BEQ_TXBD_DESA_8822B) << BIT_SHIFT_BEQ_TXBD_DESA_8822B)
  5577. #define BITS_BEQ_TXBD_DESA_8822B \
  5578. (BIT_MASK_BEQ_TXBD_DESA_8822B << BIT_SHIFT_BEQ_TXBD_DESA_8822B)
  5579. #define BIT_CLEAR_BEQ_TXBD_DESA_8822B(x) ((x) & (~BITS_BEQ_TXBD_DESA_8822B))
  5580. #define BIT_GET_BEQ_TXBD_DESA_8822B(x) \
  5581. (((x) >> BIT_SHIFT_BEQ_TXBD_DESA_8822B) & BIT_MASK_BEQ_TXBD_DESA_8822B)
  5582. #define BIT_SET_BEQ_TXBD_DESA_8822B(x, v) \
  5583. (BIT_CLEAR_BEQ_TXBD_DESA_8822B(x) | BIT_BEQ_TXBD_DESA_8822B(v))
  5584. /* 2 REG_BKQ_TXBD_DESA_8822B */
  5585. #define BIT_SHIFT_BKQ_TXBD_DESA_8822B 0
  5586. #define BIT_MASK_BKQ_TXBD_DESA_8822B 0xffffffffffffffffL
  5587. #define BIT_BKQ_TXBD_DESA_8822B(x) \
  5588. (((x) & BIT_MASK_BKQ_TXBD_DESA_8822B) << BIT_SHIFT_BKQ_TXBD_DESA_8822B)
  5589. #define BITS_BKQ_TXBD_DESA_8822B \
  5590. (BIT_MASK_BKQ_TXBD_DESA_8822B << BIT_SHIFT_BKQ_TXBD_DESA_8822B)
  5591. #define BIT_CLEAR_BKQ_TXBD_DESA_8822B(x) ((x) & (~BITS_BKQ_TXBD_DESA_8822B))
  5592. #define BIT_GET_BKQ_TXBD_DESA_8822B(x) \
  5593. (((x) >> BIT_SHIFT_BKQ_TXBD_DESA_8822B) & BIT_MASK_BKQ_TXBD_DESA_8822B)
  5594. #define BIT_SET_BKQ_TXBD_DESA_8822B(x, v) \
  5595. (BIT_CLEAR_BKQ_TXBD_DESA_8822B(x) | BIT_BKQ_TXBD_DESA_8822B(v))
  5596. /* 2 REG_RXQ_RXBD_DESA_8822B */
  5597. #define BIT_SHIFT_RXQ_RXBD_DESA_8822B 0
  5598. #define BIT_MASK_RXQ_RXBD_DESA_8822B 0xffffffffffffffffL
  5599. #define BIT_RXQ_RXBD_DESA_8822B(x) \
  5600. (((x) & BIT_MASK_RXQ_RXBD_DESA_8822B) << BIT_SHIFT_RXQ_RXBD_DESA_8822B)
  5601. #define BITS_RXQ_RXBD_DESA_8822B \
  5602. (BIT_MASK_RXQ_RXBD_DESA_8822B << BIT_SHIFT_RXQ_RXBD_DESA_8822B)
  5603. #define BIT_CLEAR_RXQ_RXBD_DESA_8822B(x) ((x) & (~BITS_RXQ_RXBD_DESA_8822B))
  5604. #define BIT_GET_RXQ_RXBD_DESA_8822B(x) \
  5605. (((x) >> BIT_SHIFT_RXQ_RXBD_DESA_8822B) & BIT_MASK_RXQ_RXBD_DESA_8822B)
  5606. #define BIT_SET_RXQ_RXBD_DESA_8822B(x, v) \
  5607. (BIT_CLEAR_RXQ_RXBD_DESA_8822B(x) | BIT_RXQ_RXBD_DESA_8822B(v))
  5608. /* 2 REG_HI0Q_TXBD_DESA_8822B */
  5609. #define BIT_SHIFT_HI0Q_TXBD_DESA_8822B 0
  5610. #define BIT_MASK_HI0Q_TXBD_DESA_8822B 0xffffffffffffffffL
  5611. #define BIT_HI0Q_TXBD_DESA_8822B(x) \
  5612. (((x) & BIT_MASK_HI0Q_TXBD_DESA_8822B) \
  5613. << BIT_SHIFT_HI0Q_TXBD_DESA_8822B)
  5614. #define BITS_HI0Q_TXBD_DESA_8822B \
  5615. (BIT_MASK_HI0Q_TXBD_DESA_8822B << BIT_SHIFT_HI0Q_TXBD_DESA_8822B)
  5616. #define BIT_CLEAR_HI0Q_TXBD_DESA_8822B(x) ((x) & (~BITS_HI0Q_TXBD_DESA_8822B))
  5617. #define BIT_GET_HI0Q_TXBD_DESA_8822B(x) \
  5618. (((x) >> BIT_SHIFT_HI0Q_TXBD_DESA_8822B) & \
  5619. BIT_MASK_HI0Q_TXBD_DESA_8822B)
  5620. #define BIT_SET_HI0Q_TXBD_DESA_8822B(x, v) \
  5621. (BIT_CLEAR_HI0Q_TXBD_DESA_8822B(x) | BIT_HI0Q_TXBD_DESA_8822B(v))
  5622. /* 2 REG_HI1Q_TXBD_DESA_8822B */
  5623. #define BIT_SHIFT_HI1Q_TXBD_DESA_8822B 0
  5624. #define BIT_MASK_HI1Q_TXBD_DESA_8822B 0xffffffffffffffffL
  5625. #define BIT_HI1Q_TXBD_DESA_8822B(x) \
  5626. (((x) & BIT_MASK_HI1Q_TXBD_DESA_8822B) \
  5627. << BIT_SHIFT_HI1Q_TXBD_DESA_8822B)
  5628. #define BITS_HI1Q_TXBD_DESA_8822B \
  5629. (BIT_MASK_HI1Q_TXBD_DESA_8822B << BIT_SHIFT_HI1Q_TXBD_DESA_8822B)
  5630. #define BIT_CLEAR_HI1Q_TXBD_DESA_8822B(x) ((x) & (~BITS_HI1Q_TXBD_DESA_8822B))
  5631. #define BIT_GET_HI1Q_TXBD_DESA_8822B(x) \
  5632. (((x) >> BIT_SHIFT_HI1Q_TXBD_DESA_8822B) & \
  5633. BIT_MASK_HI1Q_TXBD_DESA_8822B)
  5634. #define BIT_SET_HI1Q_TXBD_DESA_8822B(x, v) \
  5635. (BIT_CLEAR_HI1Q_TXBD_DESA_8822B(x) | BIT_HI1Q_TXBD_DESA_8822B(v))
  5636. /* 2 REG_HI2Q_TXBD_DESA_8822B */
  5637. #define BIT_SHIFT_HI2Q_TXBD_DESA_8822B 0
  5638. #define BIT_MASK_HI2Q_TXBD_DESA_8822B 0xffffffffffffffffL
  5639. #define BIT_HI2Q_TXBD_DESA_8822B(x) \
  5640. (((x) & BIT_MASK_HI2Q_TXBD_DESA_8822B) \
  5641. << BIT_SHIFT_HI2Q_TXBD_DESA_8822B)
  5642. #define BITS_HI2Q_TXBD_DESA_8822B \
  5643. (BIT_MASK_HI2Q_TXBD_DESA_8822B << BIT_SHIFT_HI2Q_TXBD_DESA_8822B)
  5644. #define BIT_CLEAR_HI2Q_TXBD_DESA_8822B(x) ((x) & (~BITS_HI2Q_TXBD_DESA_8822B))
  5645. #define BIT_GET_HI2Q_TXBD_DESA_8822B(x) \
  5646. (((x) >> BIT_SHIFT_HI2Q_TXBD_DESA_8822B) & \
  5647. BIT_MASK_HI2Q_TXBD_DESA_8822B)
  5648. #define BIT_SET_HI2Q_TXBD_DESA_8822B(x, v) \
  5649. (BIT_CLEAR_HI2Q_TXBD_DESA_8822B(x) | BIT_HI2Q_TXBD_DESA_8822B(v))
  5650. /* 2 REG_HI3Q_TXBD_DESA_8822B */
  5651. #define BIT_SHIFT_HI3Q_TXBD_DESA_8822B 0
  5652. #define BIT_MASK_HI3Q_TXBD_DESA_8822B 0xffffffffffffffffL
  5653. #define BIT_HI3Q_TXBD_DESA_8822B(x) \
  5654. (((x) & BIT_MASK_HI3Q_TXBD_DESA_8822B) \
  5655. << BIT_SHIFT_HI3Q_TXBD_DESA_8822B)
  5656. #define BITS_HI3Q_TXBD_DESA_8822B \
  5657. (BIT_MASK_HI3Q_TXBD_DESA_8822B << BIT_SHIFT_HI3Q_TXBD_DESA_8822B)
  5658. #define BIT_CLEAR_HI3Q_TXBD_DESA_8822B(x) ((x) & (~BITS_HI3Q_TXBD_DESA_8822B))
  5659. #define BIT_GET_HI3Q_TXBD_DESA_8822B(x) \
  5660. (((x) >> BIT_SHIFT_HI3Q_TXBD_DESA_8822B) & \
  5661. BIT_MASK_HI3Q_TXBD_DESA_8822B)
  5662. #define BIT_SET_HI3Q_TXBD_DESA_8822B(x, v) \
  5663. (BIT_CLEAR_HI3Q_TXBD_DESA_8822B(x) | BIT_HI3Q_TXBD_DESA_8822B(v))
  5664. /* 2 REG_HI4Q_TXBD_DESA_8822B */
  5665. #define BIT_SHIFT_HI4Q_TXBD_DESA_8822B 0
  5666. #define BIT_MASK_HI4Q_TXBD_DESA_8822B 0xffffffffffffffffL
  5667. #define BIT_HI4Q_TXBD_DESA_8822B(x) \
  5668. (((x) & BIT_MASK_HI4Q_TXBD_DESA_8822B) \
  5669. << BIT_SHIFT_HI4Q_TXBD_DESA_8822B)
  5670. #define BITS_HI4Q_TXBD_DESA_8822B \
  5671. (BIT_MASK_HI4Q_TXBD_DESA_8822B << BIT_SHIFT_HI4Q_TXBD_DESA_8822B)
  5672. #define BIT_CLEAR_HI4Q_TXBD_DESA_8822B(x) ((x) & (~BITS_HI4Q_TXBD_DESA_8822B))
  5673. #define BIT_GET_HI4Q_TXBD_DESA_8822B(x) \
  5674. (((x) >> BIT_SHIFT_HI4Q_TXBD_DESA_8822B) & \
  5675. BIT_MASK_HI4Q_TXBD_DESA_8822B)
  5676. #define BIT_SET_HI4Q_TXBD_DESA_8822B(x, v) \
  5677. (BIT_CLEAR_HI4Q_TXBD_DESA_8822B(x) | BIT_HI4Q_TXBD_DESA_8822B(v))
  5678. /* 2 REG_HI5Q_TXBD_DESA_8822B */
  5679. #define BIT_SHIFT_HI5Q_TXBD_DESA_8822B 0
  5680. #define BIT_MASK_HI5Q_TXBD_DESA_8822B 0xffffffffffffffffL
  5681. #define BIT_HI5Q_TXBD_DESA_8822B(x) \
  5682. (((x) & BIT_MASK_HI5Q_TXBD_DESA_8822B) \
  5683. << BIT_SHIFT_HI5Q_TXBD_DESA_8822B)
  5684. #define BITS_HI5Q_TXBD_DESA_8822B \
  5685. (BIT_MASK_HI5Q_TXBD_DESA_8822B << BIT_SHIFT_HI5Q_TXBD_DESA_8822B)
  5686. #define BIT_CLEAR_HI5Q_TXBD_DESA_8822B(x) ((x) & (~BITS_HI5Q_TXBD_DESA_8822B))
  5687. #define BIT_GET_HI5Q_TXBD_DESA_8822B(x) \
  5688. (((x) >> BIT_SHIFT_HI5Q_TXBD_DESA_8822B) & \
  5689. BIT_MASK_HI5Q_TXBD_DESA_8822B)
  5690. #define BIT_SET_HI5Q_TXBD_DESA_8822B(x, v) \
  5691. (BIT_CLEAR_HI5Q_TXBD_DESA_8822B(x) | BIT_HI5Q_TXBD_DESA_8822B(v))
  5692. /* 2 REG_HI6Q_TXBD_DESA_8822B */
  5693. #define BIT_SHIFT_HI6Q_TXBD_DESA_8822B 0
  5694. #define BIT_MASK_HI6Q_TXBD_DESA_8822B 0xffffffffffffffffL
  5695. #define BIT_HI6Q_TXBD_DESA_8822B(x) \
  5696. (((x) & BIT_MASK_HI6Q_TXBD_DESA_8822B) \
  5697. << BIT_SHIFT_HI6Q_TXBD_DESA_8822B)
  5698. #define BITS_HI6Q_TXBD_DESA_8822B \
  5699. (BIT_MASK_HI6Q_TXBD_DESA_8822B << BIT_SHIFT_HI6Q_TXBD_DESA_8822B)
  5700. #define BIT_CLEAR_HI6Q_TXBD_DESA_8822B(x) ((x) & (~BITS_HI6Q_TXBD_DESA_8822B))
  5701. #define BIT_GET_HI6Q_TXBD_DESA_8822B(x) \
  5702. (((x) >> BIT_SHIFT_HI6Q_TXBD_DESA_8822B) & \
  5703. BIT_MASK_HI6Q_TXBD_DESA_8822B)
  5704. #define BIT_SET_HI6Q_TXBD_DESA_8822B(x, v) \
  5705. (BIT_CLEAR_HI6Q_TXBD_DESA_8822B(x) | BIT_HI6Q_TXBD_DESA_8822B(v))
  5706. /* 2 REG_HI7Q_TXBD_DESA_8822B */
  5707. #define BIT_SHIFT_HI7Q_TXBD_DESA_8822B 0
  5708. #define BIT_MASK_HI7Q_TXBD_DESA_8822B 0xffffffffffffffffL
  5709. #define BIT_HI7Q_TXBD_DESA_8822B(x) \
  5710. (((x) & BIT_MASK_HI7Q_TXBD_DESA_8822B) \
  5711. << BIT_SHIFT_HI7Q_TXBD_DESA_8822B)
  5712. #define BITS_HI7Q_TXBD_DESA_8822B \
  5713. (BIT_MASK_HI7Q_TXBD_DESA_8822B << BIT_SHIFT_HI7Q_TXBD_DESA_8822B)
  5714. #define BIT_CLEAR_HI7Q_TXBD_DESA_8822B(x) ((x) & (~BITS_HI7Q_TXBD_DESA_8822B))
  5715. #define BIT_GET_HI7Q_TXBD_DESA_8822B(x) \
  5716. (((x) >> BIT_SHIFT_HI7Q_TXBD_DESA_8822B) & \
  5717. BIT_MASK_HI7Q_TXBD_DESA_8822B)
  5718. #define BIT_SET_HI7Q_TXBD_DESA_8822B(x, v) \
  5719. (BIT_CLEAR_HI7Q_TXBD_DESA_8822B(x) | BIT_HI7Q_TXBD_DESA_8822B(v))
  5720. /* 2 REG_MGQ_TXBD_NUM_8822B */
  5721. #define BIT_PCIE_MGQ_FLAG_8822B BIT(14)
  5722. #define BIT_SHIFT_MGQ_DESC_MODE_8822B 12
  5723. #define BIT_MASK_MGQ_DESC_MODE_8822B 0x3
  5724. #define BIT_MGQ_DESC_MODE_8822B(x) \
  5725. (((x) & BIT_MASK_MGQ_DESC_MODE_8822B) << BIT_SHIFT_MGQ_DESC_MODE_8822B)
  5726. #define BITS_MGQ_DESC_MODE_8822B \
  5727. (BIT_MASK_MGQ_DESC_MODE_8822B << BIT_SHIFT_MGQ_DESC_MODE_8822B)
  5728. #define BIT_CLEAR_MGQ_DESC_MODE_8822B(x) ((x) & (~BITS_MGQ_DESC_MODE_8822B))
  5729. #define BIT_GET_MGQ_DESC_MODE_8822B(x) \
  5730. (((x) >> BIT_SHIFT_MGQ_DESC_MODE_8822B) & BIT_MASK_MGQ_DESC_MODE_8822B)
  5731. #define BIT_SET_MGQ_DESC_MODE_8822B(x, v) \
  5732. (BIT_CLEAR_MGQ_DESC_MODE_8822B(x) | BIT_MGQ_DESC_MODE_8822B(v))
  5733. #define BIT_SHIFT_MGQ_DESC_NUM_8822B 0
  5734. #define BIT_MASK_MGQ_DESC_NUM_8822B 0xfff
  5735. #define BIT_MGQ_DESC_NUM_8822B(x) \
  5736. (((x) & BIT_MASK_MGQ_DESC_NUM_8822B) << BIT_SHIFT_MGQ_DESC_NUM_8822B)
  5737. #define BITS_MGQ_DESC_NUM_8822B \
  5738. (BIT_MASK_MGQ_DESC_NUM_8822B << BIT_SHIFT_MGQ_DESC_NUM_8822B)
  5739. #define BIT_CLEAR_MGQ_DESC_NUM_8822B(x) ((x) & (~BITS_MGQ_DESC_NUM_8822B))
  5740. #define BIT_GET_MGQ_DESC_NUM_8822B(x) \
  5741. (((x) >> BIT_SHIFT_MGQ_DESC_NUM_8822B) & BIT_MASK_MGQ_DESC_NUM_8822B)
  5742. #define BIT_SET_MGQ_DESC_NUM_8822B(x, v) \
  5743. (BIT_CLEAR_MGQ_DESC_NUM_8822B(x) | BIT_MGQ_DESC_NUM_8822B(v))
  5744. /* 2 REG_RX_RXBD_NUM_8822B */
  5745. #define BIT_SYS_32_64_8822B BIT(15)
  5746. #define BIT_SHIFT_BCNQ_DESC_MODE_8822B 13
  5747. #define BIT_MASK_BCNQ_DESC_MODE_8822B 0x3
  5748. #define BIT_BCNQ_DESC_MODE_8822B(x) \
  5749. (((x) & BIT_MASK_BCNQ_DESC_MODE_8822B) \
  5750. << BIT_SHIFT_BCNQ_DESC_MODE_8822B)
  5751. #define BITS_BCNQ_DESC_MODE_8822B \
  5752. (BIT_MASK_BCNQ_DESC_MODE_8822B << BIT_SHIFT_BCNQ_DESC_MODE_8822B)
  5753. #define BIT_CLEAR_BCNQ_DESC_MODE_8822B(x) ((x) & (~BITS_BCNQ_DESC_MODE_8822B))
  5754. #define BIT_GET_BCNQ_DESC_MODE_8822B(x) \
  5755. (((x) >> BIT_SHIFT_BCNQ_DESC_MODE_8822B) & \
  5756. BIT_MASK_BCNQ_DESC_MODE_8822B)
  5757. #define BIT_SET_BCNQ_DESC_MODE_8822B(x, v) \
  5758. (BIT_CLEAR_BCNQ_DESC_MODE_8822B(x) | BIT_BCNQ_DESC_MODE_8822B(v))
  5759. #define BIT_PCIE_BCNQ_FLAG_8822B BIT(12)
  5760. #define BIT_SHIFT_RXQ_DESC_NUM_8822B 0
  5761. #define BIT_MASK_RXQ_DESC_NUM_8822B 0xfff
  5762. #define BIT_RXQ_DESC_NUM_8822B(x) \
  5763. (((x) & BIT_MASK_RXQ_DESC_NUM_8822B) << BIT_SHIFT_RXQ_DESC_NUM_8822B)
  5764. #define BITS_RXQ_DESC_NUM_8822B \
  5765. (BIT_MASK_RXQ_DESC_NUM_8822B << BIT_SHIFT_RXQ_DESC_NUM_8822B)
  5766. #define BIT_CLEAR_RXQ_DESC_NUM_8822B(x) ((x) & (~BITS_RXQ_DESC_NUM_8822B))
  5767. #define BIT_GET_RXQ_DESC_NUM_8822B(x) \
  5768. (((x) >> BIT_SHIFT_RXQ_DESC_NUM_8822B) & BIT_MASK_RXQ_DESC_NUM_8822B)
  5769. #define BIT_SET_RXQ_DESC_NUM_8822B(x, v) \
  5770. (BIT_CLEAR_RXQ_DESC_NUM_8822B(x) | BIT_RXQ_DESC_NUM_8822B(v))
  5771. /* 2 REG_VOQ_TXBD_NUM_8822B */
  5772. #define BIT_PCIE_VOQ_FLAG_8822B BIT(14)
  5773. #define BIT_SHIFT_VOQ_DESC_MODE_8822B 12
  5774. #define BIT_MASK_VOQ_DESC_MODE_8822B 0x3
  5775. #define BIT_VOQ_DESC_MODE_8822B(x) \
  5776. (((x) & BIT_MASK_VOQ_DESC_MODE_8822B) << BIT_SHIFT_VOQ_DESC_MODE_8822B)
  5777. #define BITS_VOQ_DESC_MODE_8822B \
  5778. (BIT_MASK_VOQ_DESC_MODE_8822B << BIT_SHIFT_VOQ_DESC_MODE_8822B)
  5779. #define BIT_CLEAR_VOQ_DESC_MODE_8822B(x) ((x) & (~BITS_VOQ_DESC_MODE_8822B))
  5780. #define BIT_GET_VOQ_DESC_MODE_8822B(x) \
  5781. (((x) >> BIT_SHIFT_VOQ_DESC_MODE_8822B) & BIT_MASK_VOQ_DESC_MODE_8822B)
  5782. #define BIT_SET_VOQ_DESC_MODE_8822B(x, v) \
  5783. (BIT_CLEAR_VOQ_DESC_MODE_8822B(x) | BIT_VOQ_DESC_MODE_8822B(v))
  5784. #define BIT_SHIFT_VOQ_DESC_NUM_8822B 0
  5785. #define BIT_MASK_VOQ_DESC_NUM_8822B 0xfff
  5786. #define BIT_VOQ_DESC_NUM_8822B(x) \
  5787. (((x) & BIT_MASK_VOQ_DESC_NUM_8822B) << BIT_SHIFT_VOQ_DESC_NUM_8822B)
  5788. #define BITS_VOQ_DESC_NUM_8822B \
  5789. (BIT_MASK_VOQ_DESC_NUM_8822B << BIT_SHIFT_VOQ_DESC_NUM_8822B)
  5790. #define BIT_CLEAR_VOQ_DESC_NUM_8822B(x) ((x) & (~BITS_VOQ_DESC_NUM_8822B))
  5791. #define BIT_GET_VOQ_DESC_NUM_8822B(x) \
  5792. (((x) >> BIT_SHIFT_VOQ_DESC_NUM_8822B) & BIT_MASK_VOQ_DESC_NUM_8822B)
  5793. #define BIT_SET_VOQ_DESC_NUM_8822B(x, v) \
  5794. (BIT_CLEAR_VOQ_DESC_NUM_8822B(x) | BIT_VOQ_DESC_NUM_8822B(v))
  5795. /* 2 REG_VIQ_TXBD_NUM_8822B */
  5796. #define BIT_PCIE_VIQ_FLAG_8822B BIT(14)
  5797. #define BIT_SHIFT_VIQ_DESC_MODE_8822B 12
  5798. #define BIT_MASK_VIQ_DESC_MODE_8822B 0x3
  5799. #define BIT_VIQ_DESC_MODE_8822B(x) \
  5800. (((x) & BIT_MASK_VIQ_DESC_MODE_8822B) << BIT_SHIFT_VIQ_DESC_MODE_8822B)
  5801. #define BITS_VIQ_DESC_MODE_8822B \
  5802. (BIT_MASK_VIQ_DESC_MODE_8822B << BIT_SHIFT_VIQ_DESC_MODE_8822B)
  5803. #define BIT_CLEAR_VIQ_DESC_MODE_8822B(x) ((x) & (~BITS_VIQ_DESC_MODE_8822B))
  5804. #define BIT_GET_VIQ_DESC_MODE_8822B(x) \
  5805. (((x) >> BIT_SHIFT_VIQ_DESC_MODE_8822B) & BIT_MASK_VIQ_DESC_MODE_8822B)
  5806. #define BIT_SET_VIQ_DESC_MODE_8822B(x, v) \
  5807. (BIT_CLEAR_VIQ_DESC_MODE_8822B(x) | BIT_VIQ_DESC_MODE_8822B(v))
  5808. #define BIT_SHIFT_VIQ_DESC_NUM_8822B 0
  5809. #define BIT_MASK_VIQ_DESC_NUM_8822B 0xfff
  5810. #define BIT_VIQ_DESC_NUM_8822B(x) \
  5811. (((x) & BIT_MASK_VIQ_DESC_NUM_8822B) << BIT_SHIFT_VIQ_DESC_NUM_8822B)
  5812. #define BITS_VIQ_DESC_NUM_8822B \
  5813. (BIT_MASK_VIQ_DESC_NUM_8822B << BIT_SHIFT_VIQ_DESC_NUM_8822B)
  5814. #define BIT_CLEAR_VIQ_DESC_NUM_8822B(x) ((x) & (~BITS_VIQ_DESC_NUM_8822B))
  5815. #define BIT_GET_VIQ_DESC_NUM_8822B(x) \
  5816. (((x) >> BIT_SHIFT_VIQ_DESC_NUM_8822B) & BIT_MASK_VIQ_DESC_NUM_8822B)
  5817. #define BIT_SET_VIQ_DESC_NUM_8822B(x, v) \
  5818. (BIT_CLEAR_VIQ_DESC_NUM_8822B(x) | BIT_VIQ_DESC_NUM_8822B(v))
  5819. /* 2 REG_BEQ_TXBD_NUM_8822B */
  5820. #define BIT_PCIE_BEQ_FLAG_8822B BIT(14)
  5821. #define BIT_SHIFT_BEQ_DESC_MODE_8822B 12
  5822. #define BIT_MASK_BEQ_DESC_MODE_8822B 0x3
  5823. #define BIT_BEQ_DESC_MODE_8822B(x) \
  5824. (((x) & BIT_MASK_BEQ_DESC_MODE_8822B) << BIT_SHIFT_BEQ_DESC_MODE_8822B)
  5825. #define BITS_BEQ_DESC_MODE_8822B \
  5826. (BIT_MASK_BEQ_DESC_MODE_8822B << BIT_SHIFT_BEQ_DESC_MODE_8822B)
  5827. #define BIT_CLEAR_BEQ_DESC_MODE_8822B(x) ((x) & (~BITS_BEQ_DESC_MODE_8822B))
  5828. #define BIT_GET_BEQ_DESC_MODE_8822B(x) \
  5829. (((x) >> BIT_SHIFT_BEQ_DESC_MODE_8822B) & BIT_MASK_BEQ_DESC_MODE_8822B)
  5830. #define BIT_SET_BEQ_DESC_MODE_8822B(x, v) \
  5831. (BIT_CLEAR_BEQ_DESC_MODE_8822B(x) | BIT_BEQ_DESC_MODE_8822B(v))
  5832. #define BIT_SHIFT_BEQ_DESC_NUM_8822B 0
  5833. #define BIT_MASK_BEQ_DESC_NUM_8822B 0xfff
  5834. #define BIT_BEQ_DESC_NUM_8822B(x) \
  5835. (((x) & BIT_MASK_BEQ_DESC_NUM_8822B) << BIT_SHIFT_BEQ_DESC_NUM_8822B)
  5836. #define BITS_BEQ_DESC_NUM_8822B \
  5837. (BIT_MASK_BEQ_DESC_NUM_8822B << BIT_SHIFT_BEQ_DESC_NUM_8822B)
  5838. #define BIT_CLEAR_BEQ_DESC_NUM_8822B(x) ((x) & (~BITS_BEQ_DESC_NUM_8822B))
  5839. #define BIT_GET_BEQ_DESC_NUM_8822B(x) \
  5840. (((x) >> BIT_SHIFT_BEQ_DESC_NUM_8822B) & BIT_MASK_BEQ_DESC_NUM_8822B)
  5841. #define BIT_SET_BEQ_DESC_NUM_8822B(x, v) \
  5842. (BIT_CLEAR_BEQ_DESC_NUM_8822B(x) | BIT_BEQ_DESC_NUM_8822B(v))
  5843. /* 2 REG_BKQ_TXBD_NUM_8822B */
  5844. #define BIT_PCIE_BKQ_FLAG_8822B BIT(14)
  5845. #define BIT_SHIFT_BKQ_DESC_MODE_8822B 12
  5846. #define BIT_MASK_BKQ_DESC_MODE_8822B 0x3
  5847. #define BIT_BKQ_DESC_MODE_8822B(x) \
  5848. (((x) & BIT_MASK_BKQ_DESC_MODE_8822B) << BIT_SHIFT_BKQ_DESC_MODE_8822B)
  5849. #define BITS_BKQ_DESC_MODE_8822B \
  5850. (BIT_MASK_BKQ_DESC_MODE_8822B << BIT_SHIFT_BKQ_DESC_MODE_8822B)
  5851. #define BIT_CLEAR_BKQ_DESC_MODE_8822B(x) ((x) & (~BITS_BKQ_DESC_MODE_8822B))
  5852. #define BIT_GET_BKQ_DESC_MODE_8822B(x) \
  5853. (((x) >> BIT_SHIFT_BKQ_DESC_MODE_8822B) & BIT_MASK_BKQ_DESC_MODE_8822B)
  5854. #define BIT_SET_BKQ_DESC_MODE_8822B(x, v) \
  5855. (BIT_CLEAR_BKQ_DESC_MODE_8822B(x) | BIT_BKQ_DESC_MODE_8822B(v))
  5856. #define BIT_SHIFT_BKQ_DESC_NUM_8822B 0
  5857. #define BIT_MASK_BKQ_DESC_NUM_8822B 0xfff
  5858. #define BIT_BKQ_DESC_NUM_8822B(x) \
  5859. (((x) & BIT_MASK_BKQ_DESC_NUM_8822B) << BIT_SHIFT_BKQ_DESC_NUM_8822B)
  5860. #define BITS_BKQ_DESC_NUM_8822B \
  5861. (BIT_MASK_BKQ_DESC_NUM_8822B << BIT_SHIFT_BKQ_DESC_NUM_8822B)
  5862. #define BIT_CLEAR_BKQ_DESC_NUM_8822B(x) ((x) & (~BITS_BKQ_DESC_NUM_8822B))
  5863. #define BIT_GET_BKQ_DESC_NUM_8822B(x) \
  5864. (((x) >> BIT_SHIFT_BKQ_DESC_NUM_8822B) & BIT_MASK_BKQ_DESC_NUM_8822B)
  5865. #define BIT_SET_BKQ_DESC_NUM_8822B(x, v) \
  5866. (BIT_CLEAR_BKQ_DESC_NUM_8822B(x) | BIT_BKQ_DESC_NUM_8822B(v))
  5867. /* 2 REG_HI0Q_TXBD_NUM_8822B */
  5868. #define BIT_HI0Q_FLAG_8822B BIT(14)
  5869. #define BIT_SHIFT_HI0Q_DESC_MODE_8822B 12
  5870. #define BIT_MASK_HI0Q_DESC_MODE_8822B 0x3
  5871. #define BIT_HI0Q_DESC_MODE_8822B(x) \
  5872. (((x) & BIT_MASK_HI0Q_DESC_MODE_8822B) \
  5873. << BIT_SHIFT_HI0Q_DESC_MODE_8822B)
  5874. #define BITS_HI0Q_DESC_MODE_8822B \
  5875. (BIT_MASK_HI0Q_DESC_MODE_8822B << BIT_SHIFT_HI0Q_DESC_MODE_8822B)
  5876. #define BIT_CLEAR_HI0Q_DESC_MODE_8822B(x) ((x) & (~BITS_HI0Q_DESC_MODE_8822B))
  5877. #define BIT_GET_HI0Q_DESC_MODE_8822B(x) \
  5878. (((x) >> BIT_SHIFT_HI0Q_DESC_MODE_8822B) & \
  5879. BIT_MASK_HI0Q_DESC_MODE_8822B)
  5880. #define BIT_SET_HI0Q_DESC_MODE_8822B(x, v) \
  5881. (BIT_CLEAR_HI0Q_DESC_MODE_8822B(x) | BIT_HI0Q_DESC_MODE_8822B(v))
  5882. #define BIT_SHIFT_HI0Q_DESC_NUM_8822B 0
  5883. #define BIT_MASK_HI0Q_DESC_NUM_8822B 0xfff
  5884. #define BIT_HI0Q_DESC_NUM_8822B(x) \
  5885. (((x) & BIT_MASK_HI0Q_DESC_NUM_8822B) << BIT_SHIFT_HI0Q_DESC_NUM_8822B)
  5886. #define BITS_HI0Q_DESC_NUM_8822B \
  5887. (BIT_MASK_HI0Q_DESC_NUM_8822B << BIT_SHIFT_HI0Q_DESC_NUM_8822B)
  5888. #define BIT_CLEAR_HI0Q_DESC_NUM_8822B(x) ((x) & (~BITS_HI0Q_DESC_NUM_8822B))
  5889. #define BIT_GET_HI0Q_DESC_NUM_8822B(x) \
  5890. (((x) >> BIT_SHIFT_HI0Q_DESC_NUM_8822B) & BIT_MASK_HI0Q_DESC_NUM_8822B)
  5891. #define BIT_SET_HI0Q_DESC_NUM_8822B(x, v) \
  5892. (BIT_CLEAR_HI0Q_DESC_NUM_8822B(x) | BIT_HI0Q_DESC_NUM_8822B(v))
  5893. /* 2 REG_HI1Q_TXBD_NUM_8822B */
  5894. #define BIT_HI1Q_FLAG_8822B BIT(14)
  5895. #define BIT_SHIFT_HI1Q_DESC_MODE_8822B 12
  5896. #define BIT_MASK_HI1Q_DESC_MODE_8822B 0x3
  5897. #define BIT_HI1Q_DESC_MODE_8822B(x) \
  5898. (((x) & BIT_MASK_HI1Q_DESC_MODE_8822B) \
  5899. << BIT_SHIFT_HI1Q_DESC_MODE_8822B)
  5900. #define BITS_HI1Q_DESC_MODE_8822B \
  5901. (BIT_MASK_HI1Q_DESC_MODE_8822B << BIT_SHIFT_HI1Q_DESC_MODE_8822B)
  5902. #define BIT_CLEAR_HI1Q_DESC_MODE_8822B(x) ((x) & (~BITS_HI1Q_DESC_MODE_8822B))
  5903. #define BIT_GET_HI1Q_DESC_MODE_8822B(x) \
  5904. (((x) >> BIT_SHIFT_HI1Q_DESC_MODE_8822B) & \
  5905. BIT_MASK_HI1Q_DESC_MODE_8822B)
  5906. #define BIT_SET_HI1Q_DESC_MODE_8822B(x, v) \
  5907. (BIT_CLEAR_HI1Q_DESC_MODE_8822B(x) | BIT_HI1Q_DESC_MODE_8822B(v))
  5908. #define BIT_SHIFT_HI1Q_DESC_NUM_8822B 0
  5909. #define BIT_MASK_HI1Q_DESC_NUM_8822B 0xfff
  5910. #define BIT_HI1Q_DESC_NUM_8822B(x) \
  5911. (((x) & BIT_MASK_HI1Q_DESC_NUM_8822B) << BIT_SHIFT_HI1Q_DESC_NUM_8822B)
  5912. #define BITS_HI1Q_DESC_NUM_8822B \
  5913. (BIT_MASK_HI1Q_DESC_NUM_8822B << BIT_SHIFT_HI1Q_DESC_NUM_8822B)
  5914. #define BIT_CLEAR_HI1Q_DESC_NUM_8822B(x) ((x) & (~BITS_HI1Q_DESC_NUM_8822B))
  5915. #define BIT_GET_HI1Q_DESC_NUM_8822B(x) \
  5916. (((x) >> BIT_SHIFT_HI1Q_DESC_NUM_8822B) & BIT_MASK_HI1Q_DESC_NUM_8822B)
  5917. #define BIT_SET_HI1Q_DESC_NUM_8822B(x, v) \
  5918. (BIT_CLEAR_HI1Q_DESC_NUM_8822B(x) | BIT_HI1Q_DESC_NUM_8822B(v))
  5919. /* 2 REG_HI2Q_TXBD_NUM_8822B */
  5920. #define BIT_HI2Q_FLAG_8822B BIT(14)
  5921. #define BIT_SHIFT_HI2Q_DESC_MODE_8822B 12
  5922. #define BIT_MASK_HI2Q_DESC_MODE_8822B 0x3
  5923. #define BIT_HI2Q_DESC_MODE_8822B(x) \
  5924. (((x) & BIT_MASK_HI2Q_DESC_MODE_8822B) \
  5925. << BIT_SHIFT_HI2Q_DESC_MODE_8822B)
  5926. #define BITS_HI2Q_DESC_MODE_8822B \
  5927. (BIT_MASK_HI2Q_DESC_MODE_8822B << BIT_SHIFT_HI2Q_DESC_MODE_8822B)
  5928. #define BIT_CLEAR_HI2Q_DESC_MODE_8822B(x) ((x) & (~BITS_HI2Q_DESC_MODE_8822B))
  5929. #define BIT_GET_HI2Q_DESC_MODE_8822B(x) \
  5930. (((x) >> BIT_SHIFT_HI2Q_DESC_MODE_8822B) & \
  5931. BIT_MASK_HI2Q_DESC_MODE_8822B)
  5932. #define BIT_SET_HI2Q_DESC_MODE_8822B(x, v) \
  5933. (BIT_CLEAR_HI2Q_DESC_MODE_8822B(x) | BIT_HI2Q_DESC_MODE_8822B(v))
  5934. #define BIT_SHIFT_HI2Q_DESC_NUM_8822B 0
  5935. #define BIT_MASK_HI2Q_DESC_NUM_8822B 0xfff
  5936. #define BIT_HI2Q_DESC_NUM_8822B(x) \
  5937. (((x) & BIT_MASK_HI2Q_DESC_NUM_8822B) << BIT_SHIFT_HI2Q_DESC_NUM_8822B)
  5938. #define BITS_HI2Q_DESC_NUM_8822B \
  5939. (BIT_MASK_HI2Q_DESC_NUM_8822B << BIT_SHIFT_HI2Q_DESC_NUM_8822B)
  5940. #define BIT_CLEAR_HI2Q_DESC_NUM_8822B(x) ((x) & (~BITS_HI2Q_DESC_NUM_8822B))
  5941. #define BIT_GET_HI2Q_DESC_NUM_8822B(x) \
  5942. (((x) >> BIT_SHIFT_HI2Q_DESC_NUM_8822B) & BIT_MASK_HI2Q_DESC_NUM_8822B)
  5943. #define BIT_SET_HI2Q_DESC_NUM_8822B(x, v) \
  5944. (BIT_CLEAR_HI2Q_DESC_NUM_8822B(x) | BIT_HI2Q_DESC_NUM_8822B(v))
  5945. /* 2 REG_HI3Q_TXBD_NUM_8822B */
  5946. #define BIT_HI3Q_FLAG_8822B BIT(14)
  5947. #define BIT_SHIFT_HI3Q_DESC_MODE_8822B 12
  5948. #define BIT_MASK_HI3Q_DESC_MODE_8822B 0x3
  5949. #define BIT_HI3Q_DESC_MODE_8822B(x) \
  5950. (((x) & BIT_MASK_HI3Q_DESC_MODE_8822B) \
  5951. << BIT_SHIFT_HI3Q_DESC_MODE_8822B)
  5952. #define BITS_HI3Q_DESC_MODE_8822B \
  5953. (BIT_MASK_HI3Q_DESC_MODE_8822B << BIT_SHIFT_HI3Q_DESC_MODE_8822B)
  5954. #define BIT_CLEAR_HI3Q_DESC_MODE_8822B(x) ((x) & (~BITS_HI3Q_DESC_MODE_8822B))
  5955. #define BIT_GET_HI3Q_DESC_MODE_8822B(x) \
  5956. (((x) >> BIT_SHIFT_HI3Q_DESC_MODE_8822B) & \
  5957. BIT_MASK_HI3Q_DESC_MODE_8822B)
  5958. #define BIT_SET_HI3Q_DESC_MODE_8822B(x, v) \
  5959. (BIT_CLEAR_HI3Q_DESC_MODE_8822B(x) | BIT_HI3Q_DESC_MODE_8822B(v))
  5960. #define BIT_SHIFT_HI3Q_DESC_NUM_8822B 0
  5961. #define BIT_MASK_HI3Q_DESC_NUM_8822B 0xfff
  5962. #define BIT_HI3Q_DESC_NUM_8822B(x) \
  5963. (((x) & BIT_MASK_HI3Q_DESC_NUM_8822B) << BIT_SHIFT_HI3Q_DESC_NUM_8822B)
  5964. #define BITS_HI3Q_DESC_NUM_8822B \
  5965. (BIT_MASK_HI3Q_DESC_NUM_8822B << BIT_SHIFT_HI3Q_DESC_NUM_8822B)
  5966. #define BIT_CLEAR_HI3Q_DESC_NUM_8822B(x) ((x) & (~BITS_HI3Q_DESC_NUM_8822B))
  5967. #define BIT_GET_HI3Q_DESC_NUM_8822B(x) \
  5968. (((x) >> BIT_SHIFT_HI3Q_DESC_NUM_8822B) & BIT_MASK_HI3Q_DESC_NUM_8822B)
  5969. #define BIT_SET_HI3Q_DESC_NUM_8822B(x, v) \
  5970. (BIT_CLEAR_HI3Q_DESC_NUM_8822B(x) | BIT_HI3Q_DESC_NUM_8822B(v))
  5971. /* 2 REG_HI4Q_TXBD_NUM_8822B */
  5972. #define BIT_HI4Q_FLAG_8822B BIT(14)
  5973. #define BIT_SHIFT_HI4Q_DESC_MODE_8822B 12
  5974. #define BIT_MASK_HI4Q_DESC_MODE_8822B 0x3
  5975. #define BIT_HI4Q_DESC_MODE_8822B(x) \
  5976. (((x) & BIT_MASK_HI4Q_DESC_MODE_8822B) \
  5977. << BIT_SHIFT_HI4Q_DESC_MODE_8822B)
  5978. #define BITS_HI4Q_DESC_MODE_8822B \
  5979. (BIT_MASK_HI4Q_DESC_MODE_8822B << BIT_SHIFT_HI4Q_DESC_MODE_8822B)
  5980. #define BIT_CLEAR_HI4Q_DESC_MODE_8822B(x) ((x) & (~BITS_HI4Q_DESC_MODE_8822B))
  5981. #define BIT_GET_HI4Q_DESC_MODE_8822B(x) \
  5982. (((x) >> BIT_SHIFT_HI4Q_DESC_MODE_8822B) & \
  5983. BIT_MASK_HI4Q_DESC_MODE_8822B)
  5984. #define BIT_SET_HI4Q_DESC_MODE_8822B(x, v) \
  5985. (BIT_CLEAR_HI4Q_DESC_MODE_8822B(x) | BIT_HI4Q_DESC_MODE_8822B(v))
  5986. #define BIT_SHIFT_HI4Q_DESC_NUM_8822B 0
  5987. #define BIT_MASK_HI4Q_DESC_NUM_8822B 0xfff
  5988. #define BIT_HI4Q_DESC_NUM_8822B(x) \
  5989. (((x) & BIT_MASK_HI4Q_DESC_NUM_8822B) << BIT_SHIFT_HI4Q_DESC_NUM_8822B)
  5990. #define BITS_HI4Q_DESC_NUM_8822B \
  5991. (BIT_MASK_HI4Q_DESC_NUM_8822B << BIT_SHIFT_HI4Q_DESC_NUM_8822B)
  5992. #define BIT_CLEAR_HI4Q_DESC_NUM_8822B(x) ((x) & (~BITS_HI4Q_DESC_NUM_8822B))
  5993. #define BIT_GET_HI4Q_DESC_NUM_8822B(x) \
  5994. (((x) >> BIT_SHIFT_HI4Q_DESC_NUM_8822B) & BIT_MASK_HI4Q_DESC_NUM_8822B)
  5995. #define BIT_SET_HI4Q_DESC_NUM_8822B(x, v) \
  5996. (BIT_CLEAR_HI4Q_DESC_NUM_8822B(x) | BIT_HI4Q_DESC_NUM_8822B(v))
  5997. /* 2 REG_HI5Q_TXBD_NUM_8822B */
  5998. #define BIT_HI5Q_FLAG_8822B BIT(14)
  5999. #define BIT_SHIFT_HI5Q_DESC_MODE_8822B 12
  6000. #define BIT_MASK_HI5Q_DESC_MODE_8822B 0x3
  6001. #define BIT_HI5Q_DESC_MODE_8822B(x) \
  6002. (((x) & BIT_MASK_HI5Q_DESC_MODE_8822B) \
  6003. << BIT_SHIFT_HI5Q_DESC_MODE_8822B)
  6004. #define BITS_HI5Q_DESC_MODE_8822B \
  6005. (BIT_MASK_HI5Q_DESC_MODE_8822B << BIT_SHIFT_HI5Q_DESC_MODE_8822B)
  6006. #define BIT_CLEAR_HI5Q_DESC_MODE_8822B(x) ((x) & (~BITS_HI5Q_DESC_MODE_8822B))
  6007. #define BIT_GET_HI5Q_DESC_MODE_8822B(x) \
  6008. (((x) >> BIT_SHIFT_HI5Q_DESC_MODE_8822B) & \
  6009. BIT_MASK_HI5Q_DESC_MODE_8822B)
  6010. #define BIT_SET_HI5Q_DESC_MODE_8822B(x, v) \
  6011. (BIT_CLEAR_HI5Q_DESC_MODE_8822B(x) | BIT_HI5Q_DESC_MODE_8822B(v))
  6012. #define BIT_SHIFT_HI5Q_DESC_NUM_8822B 0
  6013. #define BIT_MASK_HI5Q_DESC_NUM_8822B 0xfff
  6014. #define BIT_HI5Q_DESC_NUM_8822B(x) \
  6015. (((x) & BIT_MASK_HI5Q_DESC_NUM_8822B) << BIT_SHIFT_HI5Q_DESC_NUM_8822B)
  6016. #define BITS_HI5Q_DESC_NUM_8822B \
  6017. (BIT_MASK_HI5Q_DESC_NUM_8822B << BIT_SHIFT_HI5Q_DESC_NUM_8822B)
  6018. #define BIT_CLEAR_HI5Q_DESC_NUM_8822B(x) ((x) & (~BITS_HI5Q_DESC_NUM_8822B))
  6019. #define BIT_GET_HI5Q_DESC_NUM_8822B(x) \
  6020. (((x) >> BIT_SHIFT_HI5Q_DESC_NUM_8822B) & BIT_MASK_HI5Q_DESC_NUM_8822B)
  6021. #define BIT_SET_HI5Q_DESC_NUM_8822B(x, v) \
  6022. (BIT_CLEAR_HI5Q_DESC_NUM_8822B(x) | BIT_HI5Q_DESC_NUM_8822B(v))
  6023. /* 2 REG_HI6Q_TXBD_NUM_8822B */
  6024. #define BIT_HI6Q_FLAG_8822B BIT(14)
  6025. #define BIT_SHIFT_HI6Q_DESC_MODE_8822B 12
  6026. #define BIT_MASK_HI6Q_DESC_MODE_8822B 0x3
  6027. #define BIT_HI6Q_DESC_MODE_8822B(x) \
  6028. (((x) & BIT_MASK_HI6Q_DESC_MODE_8822B) \
  6029. << BIT_SHIFT_HI6Q_DESC_MODE_8822B)
  6030. #define BITS_HI6Q_DESC_MODE_8822B \
  6031. (BIT_MASK_HI6Q_DESC_MODE_8822B << BIT_SHIFT_HI6Q_DESC_MODE_8822B)
  6032. #define BIT_CLEAR_HI6Q_DESC_MODE_8822B(x) ((x) & (~BITS_HI6Q_DESC_MODE_8822B))
  6033. #define BIT_GET_HI6Q_DESC_MODE_8822B(x) \
  6034. (((x) >> BIT_SHIFT_HI6Q_DESC_MODE_8822B) & \
  6035. BIT_MASK_HI6Q_DESC_MODE_8822B)
  6036. #define BIT_SET_HI6Q_DESC_MODE_8822B(x, v) \
  6037. (BIT_CLEAR_HI6Q_DESC_MODE_8822B(x) | BIT_HI6Q_DESC_MODE_8822B(v))
  6038. #define BIT_SHIFT_HI6Q_DESC_NUM_8822B 0
  6039. #define BIT_MASK_HI6Q_DESC_NUM_8822B 0xfff
  6040. #define BIT_HI6Q_DESC_NUM_8822B(x) \
  6041. (((x) & BIT_MASK_HI6Q_DESC_NUM_8822B) << BIT_SHIFT_HI6Q_DESC_NUM_8822B)
  6042. #define BITS_HI6Q_DESC_NUM_8822B \
  6043. (BIT_MASK_HI6Q_DESC_NUM_8822B << BIT_SHIFT_HI6Q_DESC_NUM_8822B)
  6044. #define BIT_CLEAR_HI6Q_DESC_NUM_8822B(x) ((x) & (~BITS_HI6Q_DESC_NUM_8822B))
  6045. #define BIT_GET_HI6Q_DESC_NUM_8822B(x) \
  6046. (((x) >> BIT_SHIFT_HI6Q_DESC_NUM_8822B) & BIT_MASK_HI6Q_DESC_NUM_8822B)
  6047. #define BIT_SET_HI6Q_DESC_NUM_8822B(x, v) \
  6048. (BIT_CLEAR_HI6Q_DESC_NUM_8822B(x) | BIT_HI6Q_DESC_NUM_8822B(v))
  6049. /* 2 REG_HI7Q_TXBD_NUM_8822B */
  6050. #define BIT_HI7Q_FLAG_8822B BIT(14)
  6051. #define BIT_SHIFT_HI7Q_DESC_MODE_8822B 12
  6052. #define BIT_MASK_HI7Q_DESC_MODE_8822B 0x3
  6053. #define BIT_HI7Q_DESC_MODE_8822B(x) \
  6054. (((x) & BIT_MASK_HI7Q_DESC_MODE_8822B) \
  6055. << BIT_SHIFT_HI7Q_DESC_MODE_8822B)
  6056. #define BITS_HI7Q_DESC_MODE_8822B \
  6057. (BIT_MASK_HI7Q_DESC_MODE_8822B << BIT_SHIFT_HI7Q_DESC_MODE_8822B)
  6058. #define BIT_CLEAR_HI7Q_DESC_MODE_8822B(x) ((x) & (~BITS_HI7Q_DESC_MODE_8822B))
  6059. #define BIT_GET_HI7Q_DESC_MODE_8822B(x) \
  6060. (((x) >> BIT_SHIFT_HI7Q_DESC_MODE_8822B) & \
  6061. BIT_MASK_HI7Q_DESC_MODE_8822B)
  6062. #define BIT_SET_HI7Q_DESC_MODE_8822B(x, v) \
  6063. (BIT_CLEAR_HI7Q_DESC_MODE_8822B(x) | BIT_HI7Q_DESC_MODE_8822B(v))
  6064. #define BIT_SHIFT_HI7Q_DESC_NUM_8822B 0
  6065. #define BIT_MASK_HI7Q_DESC_NUM_8822B 0xfff
  6066. #define BIT_HI7Q_DESC_NUM_8822B(x) \
  6067. (((x) & BIT_MASK_HI7Q_DESC_NUM_8822B) << BIT_SHIFT_HI7Q_DESC_NUM_8822B)
  6068. #define BITS_HI7Q_DESC_NUM_8822B \
  6069. (BIT_MASK_HI7Q_DESC_NUM_8822B << BIT_SHIFT_HI7Q_DESC_NUM_8822B)
  6070. #define BIT_CLEAR_HI7Q_DESC_NUM_8822B(x) ((x) & (~BITS_HI7Q_DESC_NUM_8822B))
  6071. #define BIT_GET_HI7Q_DESC_NUM_8822B(x) \
  6072. (((x) >> BIT_SHIFT_HI7Q_DESC_NUM_8822B) & BIT_MASK_HI7Q_DESC_NUM_8822B)
  6073. #define BIT_SET_HI7Q_DESC_NUM_8822B(x, v) \
  6074. (BIT_CLEAR_HI7Q_DESC_NUM_8822B(x) | BIT_HI7Q_DESC_NUM_8822B(v))
  6075. /* 2 REG_TSFTIMER_HCI_8822B */
  6076. #define BIT_SHIFT_TSFT2_HCI_8822B 16
  6077. #define BIT_MASK_TSFT2_HCI_8822B 0xffff
  6078. #define BIT_TSFT2_HCI_8822B(x) \
  6079. (((x) & BIT_MASK_TSFT2_HCI_8822B) << BIT_SHIFT_TSFT2_HCI_8822B)
  6080. #define BITS_TSFT2_HCI_8822B \
  6081. (BIT_MASK_TSFT2_HCI_8822B << BIT_SHIFT_TSFT2_HCI_8822B)
  6082. #define BIT_CLEAR_TSFT2_HCI_8822B(x) ((x) & (~BITS_TSFT2_HCI_8822B))
  6083. #define BIT_GET_TSFT2_HCI_8822B(x) \
  6084. (((x) >> BIT_SHIFT_TSFT2_HCI_8822B) & BIT_MASK_TSFT2_HCI_8822B)
  6085. #define BIT_SET_TSFT2_HCI_8822B(x, v) \
  6086. (BIT_CLEAR_TSFT2_HCI_8822B(x) | BIT_TSFT2_HCI_8822B(v))
  6087. #define BIT_SHIFT_TSFT1_HCI_8822B 0
  6088. #define BIT_MASK_TSFT1_HCI_8822B 0xffff
  6089. #define BIT_TSFT1_HCI_8822B(x) \
  6090. (((x) & BIT_MASK_TSFT1_HCI_8822B) << BIT_SHIFT_TSFT1_HCI_8822B)
  6091. #define BITS_TSFT1_HCI_8822B \
  6092. (BIT_MASK_TSFT1_HCI_8822B << BIT_SHIFT_TSFT1_HCI_8822B)
  6093. #define BIT_CLEAR_TSFT1_HCI_8822B(x) ((x) & (~BITS_TSFT1_HCI_8822B))
  6094. #define BIT_GET_TSFT1_HCI_8822B(x) \
  6095. (((x) >> BIT_SHIFT_TSFT1_HCI_8822B) & BIT_MASK_TSFT1_HCI_8822B)
  6096. #define BIT_SET_TSFT1_HCI_8822B(x, v) \
  6097. (BIT_CLEAR_TSFT1_HCI_8822B(x) | BIT_TSFT1_HCI_8822B(v))
  6098. /* 2 REG_BD_RWPTR_CLR_8822B */
  6099. #define BIT_CLR_HI7Q_HW_IDX_8822B BIT(29)
  6100. #define BIT_CLR_HI6Q_HW_IDX_8822B BIT(28)
  6101. #define BIT_CLR_HI5Q_HW_IDX_8822B BIT(27)
  6102. #define BIT_CLR_HI4Q_HW_IDX_8822B BIT(26)
  6103. #define BIT_CLR_HI3Q_HW_IDX_8822B BIT(25)
  6104. #define BIT_CLR_HI2Q_HW_IDX_8822B BIT(24)
  6105. #define BIT_CLR_HI1Q_HW_IDX_8822B BIT(23)
  6106. #define BIT_CLR_HI0Q_HW_IDX_8822B BIT(22)
  6107. #define BIT_CLR_BKQ_HW_IDX_8822B BIT(21)
  6108. #define BIT_CLR_BEQ_HW_IDX_8822B BIT(20)
  6109. #define BIT_CLR_VIQ_HW_IDX_8822B BIT(19)
  6110. #define BIT_CLR_VOQ_HW_IDX_8822B BIT(18)
  6111. #define BIT_CLR_MGQ_HW_IDX_8822B BIT(17)
  6112. #define BIT_CLR_RXQ_HW_IDX_8822B BIT(16)
  6113. #define BIT_CLR_HI7Q_HOST_IDX_8822B BIT(13)
  6114. #define BIT_CLR_HI6Q_HOST_IDX_8822B BIT(12)
  6115. #define BIT_CLR_HI5Q_HOST_IDX_8822B BIT(11)
  6116. #define BIT_CLR_HI4Q_HOST_IDX_8822B BIT(10)
  6117. #define BIT_CLR_HI3Q_HOST_IDX_8822B BIT(9)
  6118. #define BIT_CLR_HI2Q_HOST_IDX_8822B BIT(8)
  6119. #define BIT_CLR_HI1Q_HOST_IDX_8822B BIT(7)
  6120. #define BIT_CLR_HI0Q_HOST_IDX_8822B BIT(6)
  6121. #define BIT_CLR_BKQ_HOST_IDX_8822B BIT(5)
  6122. #define BIT_CLR_BEQ_HOST_IDX_8822B BIT(4)
  6123. #define BIT_CLR_VIQ_HOST_IDX_8822B BIT(3)
  6124. #define BIT_CLR_VOQ_HOST_IDX_8822B BIT(2)
  6125. #define BIT_CLR_MGQ_HOST_IDX_8822B BIT(1)
  6126. #define BIT_CLR_RXQ_HOST_IDX_8822B BIT(0)
  6127. /* 2 REG_VOQ_TXBD_IDX_8822B */
  6128. #define BIT_SHIFT_VOQ_HW_IDX_8822B 16
  6129. #define BIT_MASK_VOQ_HW_IDX_8822B 0xfff
  6130. #define BIT_VOQ_HW_IDX_8822B(x) \
  6131. (((x) & BIT_MASK_VOQ_HW_IDX_8822B) << BIT_SHIFT_VOQ_HW_IDX_8822B)
  6132. #define BITS_VOQ_HW_IDX_8822B \
  6133. (BIT_MASK_VOQ_HW_IDX_8822B << BIT_SHIFT_VOQ_HW_IDX_8822B)
  6134. #define BIT_CLEAR_VOQ_HW_IDX_8822B(x) ((x) & (~BITS_VOQ_HW_IDX_8822B))
  6135. #define BIT_GET_VOQ_HW_IDX_8822B(x) \
  6136. (((x) >> BIT_SHIFT_VOQ_HW_IDX_8822B) & BIT_MASK_VOQ_HW_IDX_8822B)
  6137. #define BIT_SET_VOQ_HW_IDX_8822B(x, v) \
  6138. (BIT_CLEAR_VOQ_HW_IDX_8822B(x) | BIT_VOQ_HW_IDX_8822B(v))
  6139. #define BIT_SHIFT_VOQ_HOST_IDX_8822B 0
  6140. #define BIT_MASK_VOQ_HOST_IDX_8822B 0xfff
  6141. #define BIT_VOQ_HOST_IDX_8822B(x) \
  6142. (((x) & BIT_MASK_VOQ_HOST_IDX_8822B) << BIT_SHIFT_VOQ_HOST_IDX_8822B)
  6143. #define BITS_VOQ_HOST_IDX_8822B \
  6144. (BIT_MASK_VOQ_HOST_IDX_8822B << BIT_SHIFT_VOQ_HOST_IDX_8822B)
  6145. #define BIT_CLEAR_VOQ_HOST_IDX_8822B(x) ((x) & (~BITS_VOQ_HOST_IDX_8822B))
  6146. #define BIT_GET_VOQ_HOST_IDX_8822B(x) \
  6147. (((x) >> BIT_SHIFT_VOQ_HOST_IDX_8822B) & BIT_MASK_VOQ_HOST_IDX_8822B)
  6148. #define BIT_SET_VOQ_HOST_IDX_8822B(x, v) \
  6149. (BIT_CLEAR_VOQ_HOST_IDX_8822B(x) | BIT_VOQ_HOST_IDX_8822B(v))
  6150. /* 2 REG_VIQ_TXBD_IDX_8822B */
  6151. #define BIT_SHIFT_VIQ_HW_IDX_8822B 16
  6152. #define BIT_MASK_VIQ_HW_IDX_8822B 0xfff
  6153. #define BIT_VIQ_HW_IDX_8822B(x) \
  6154. (((x) & BIT_MASK_VIQ_HW_IDX_8822B) << BIT_SHIFT_VIQ_HW_IDX_8822B)
  6155. #define BITS_VIQ_HW_IDX_8822B \
  6156. (BIT_MASK_VIQ_HW_IDX_8822B << BIT_SHIFT_VIQ_HW_IDX_8822B)
  6157. #define BIT_CLEAR_VIQ_HW_IDX_8822B(x) ((x) & (~BITS_VIQ_HW_IDX_8822B))
  6158. #define BIT_GET_VIQ_HW_IDX_8822B(x) \
  6159. (((x) >> BIT_SHIFT_VIQ_HW_IDX_8822B) & BIT_MASK_VIQ_HW_IDX_8822B)
  6160. #define BIT_SET_VIQ_HW_IDX_8822B(x, v) \
  6161. (BIT_CLEAR_VIQ_HW_IDX_8822B(x) | BIT_VIQ_HW_IDX_8822B(v))
  6162. #define BIT_SHIFT_VIQ_HOST_IDX_8822B 0
  6163. #define BIT_MASK_VIQ_HOST_IDX_8822B 0xfff
  6164. #define BIT_VIQ_HOST_IDX_8822B(x) \
  6165. (((x) & BIT_MASK_VIQ_HOST_IDX_8822B) << BIT_SHIFT_VIQ_HOST_IDX_8822B)
  6166. #define BITS_VIQ_HOST_IDX_8822B \
  6167. (BIT_MASK_VIQ_HOST_IDX_8822B << BIT_SHIFT_VIQ_HOST_IDX_8822B)
  6168. #define BIT_CLEAR_VIQ_HOST_IDX_8822B(x) ((x) & (~BITS_VIQ_HOST_IDX_8822B))
  6169. #define BIT_GET_VIQ_HOST_IDX_8822B(x) \
  6170. (((x) >> BIT_SHIFT_VIQ_HOST_IDX_8822B) & BIT_MASK_VIQ_HOST_IDX_8822B)
  6171. #define BIT_SET_VIQ_HOST_IDX_8822B(x, v) \
  6172. (BIT_CLEAR_VIQ_HOST_IDX_8822B(x) | BIT_VIQ_HOST_IDX_8822B(v))
  6173. /* 2 REG_BEQ_TXBD_IDX_8822B */
  6174. #define BIT_SHIFT_BEQ_HW_IDX_8822B 16
  6175. #define BIT_MASK_BEQ_HW_IDX_8822B 0xfff
  6176. #define BIT_BEQ_HW_IDX_8822B(x) \
  6177. (((x) & BIT_MASK_BEQ_HW_IDX_8822B) << BIT_SHIFT_BEQ_HW_IDX_8822B)
  6178. #define BITS_BEQ_HW_IDX_8822B \
  6179. (BIT_MASK_BEQ_HW_IDX_8822B << BIT_SHIFT_BEQ_HW_IDX_8822B)
  6180. #define BIT_CLEAR_BEQ_HW_IDX_8822B(x) ((x) & (~BITS_BEQ_HW_IDX_8822B))
  6181. #define BIT_GET_BEQ_HW_IDX_8822B(x) \
  6182. (((x) >> BIT_SHIFT_BEQ_HW_IDX_8822B) & BIT_MASK_BEQ_HW_IDX_8822B)
  6183. #define BIT_SET_BEQ_HW_IDX_8822B(x, v) \
  6184. (BIT_CLEAR_BEQ_HW_IDX_8822B(x) | BIT_BEQ_HW_IDX_8822B(v))
  6185. #define BIT_SHIFT_BEQ_HOST_IDX_8822B 0
  6186. #define BIT_MASK_BEQ_HOST_IDX_8822B 0xfff
  6187. #define BIT_BEQ_HOST_IDX_8822B(x) \
  6188. (((x) & BIT_MASK_BEQ_HOST_IDX_8822B) << BIT_SHIFT_BEQ_HOST_IDX_8822B)
  6189. #define BITS_BEQ_HOST_IDX_8822B \
  6190. (BIT_MASK_BEQ_HOST_IDX_8822B << BIT_SHIFT_BEQ_HOST_IDX_8822B)
  6191. #define BIT_CLEAR_BEQ_HOST_IDX_8822B(x) ((x) & (~BITS_BEQ_HOST_IDX_8822B))
  6192. #define BIT_GET_BEQ_HOST_IDX_8822B(x) \
  6193. (((x) >> BIT_SHIFT_BEQ_HOST_IDX_8822B) & BIT_MASK_BEQ_HOST_IDX_8822B)
  6194. #define BIT_SET_BEQ_HOST_IDX_8822B(x, v) \
  6195. (BIT_CLEAR_BEQ_HOST_IDX_8822B(x) | BIT_BEQ_HOST_IDX_8822B(v))
  6196. /* 2 REG_BKQ_TXBD_IDX_8822B */
  6197. #define BIT_SHIFT_BKQ_HW_IDX_8822B 16
  6198. #define BIT_MASK_BKQ_HW_IDX_8822B 0xfff
  6199. #define BIT_BKQ_HW_IDX_8822B(x) \
  6200. (((x) & BIT_MASK_BKQ_HW_IDX_8822B) << BIT_SHIFT_BKQ_HW_IDX_8822B)
  6201. #define BITS_BKQ_HW_IDX_8822B \
  6202. (BIT_MASK_BKQ_HW_IDX_8822B << BIT_SHIFT_BKQ_HW_IDX_8822B)
  6203. #define BIT_CLEAR_BKQ_HW_IDX_8822B(x) ((x) & (~BITS_BKQ_HW_IDX_8822B))
  6204. #define BIT_GET_BKQ_HW_IDX_8822B(x) \
  6205. (((x) >> BIT_SHIFT_BKQ_HW_IDX_8822B) & BIT_MASK_BKQ_HW_IDX_8822B)
  6206. #define BIT_SET_BKQ_HW_IDX_8822B(x, v) \
  6207. (BIT_CLEAR_BKQ_HW_IDX_8822B(x) | BIT_BKQ_HW_IDX_8822B(v))
  6208. #define BIT_SHIFT_BKQ_HOST_IDX_8822B 0
  6209. #define BIT_MASK_BKQ_HOST_IDX_8822B 0xfff
  6210. #define BIT_BKQ_HOST_IDX_8822B(x) \
  6211. (((x) & BIT_MASK_BKQ_HOST_IDX_8822B) << BIT_SHIFT_BKQ_HOST_IDX_8822B)
  6212. #define BITS_BKQ_HOST_IDX_8822B \
  6213. (BIT_MASK_BKQ_HOST_IDX_8822B << BIT_SHIFT_BKQ_HOST_IDX_8822B)
  6214. #define BIT_CLEAR_BKQ_HOST_IDX_8822B(x) ((x) & (~BITS_BKQ_HOST_IDX_8822B))
  6215. #define BIT_GET_BKQ_HOST_IDX_8822B(x) \
  6216. (((x) >> BIT_SHIFT_BKQ_HOST_IDX_8822B) & BIT_MASK_BKQ_HOST_IDX_8822B)
  6217. #define BIT_SET_BKQ_HOST_IDX_8822B(x, v) \
  6218. (BIT_CLEAR_BKQ_HOST_IDX_8822B(x) | BIT_BKQ_HOST_IDX_8822B(v))
  6219. /* 2 REG_MGQ_TXBD_IDX_8822B */
  6220. #define BIT_SHIFT_MGQ_HW_IDX_8822B 16
  6221. #define BIT_MASK_MGQ_HW_IDX_8822B 0xfff
  6222. #define BIT_MGQ_HW_IDX_8822B(x) \
  6223. (((x) & BIT_MASK_MGQ_HW_IDX_8822B) << BIT_SHIFT_MGQ_HW_IDX_8822B)
  6224. #define BITS_MGQ_HW_IDX_8822B \
  6225. (BIT_MASK_MGQ_HW_IDX_8822B << BIT_SHIFT_MGQ_HW_IDX_8822B)
  6226. #define BIT_CLEAR_MGQ_HW_IDX_8822B(x) ((x) & (~BITS_MGQ_HW_IDX_8822B))
  6227. #define BIT_GET_MGQ_HW_IDX_8822B(x) \
  6228. (((x) >> BIT_SHIFT_MGQ_HW_IDX_8822B) & BIT_MASK_MGQ_HW_IDX_8822B)
  6229. #define BIT_SET_MGQ_HW_IDX_8822B(x, v) \
  6230. (BIT_CLEAR_MGQ_HW_IDX_8822B(x) | BIT_MGQ_HW_IDX_8822B(v))
  6231. #define BIT_SHIFT_MGQ_HOST_IDX_8822B 0
  6232. #define BIT_MASK_MGQ_HOST_IDX_8822B 0xfff
  6233. #define BIT_MGQ_HOST_IDX_8822B(x) \
  6234. (((x) & BIT_MASK_MGQ_HOST_IDX_8822B) << BIT_SHIFT_MGQ_HOST_IDX_8822B)
  6235. #define BITS_MGQ_HOST_IDX_8822B \
  6236. (BIT_MASK_MGQ_HOST_IDX_8822B << BIT_SHIFT_MGQ_HOST_IDX_8822B)
  6237. #define BIT_CLEAR_MGQ_HOST_IDX_8822B(x) ((x) & (~BITS_MGQ_HOST_IDX_8822B))
  6238. #define BIT_GET_MGQ_HOST_IDX_8822B(x) \
  6239. (((x) >> BIT_SHIFT_MGQ_HOST_IDX_8822B) & BIT_MASK_MGQ_HOST_IDX_8822B)
  6240. #define BIT_SET_MGQ_HOST_IDX_8822B(x, v) \
  6241. (BIT_CLEAR_MGQ_HOST_IDX_8822B(x) | BIT_MGQ_HOST_IDX_8822B(v))
  6242. /* 2 REG_RXQ_RXBD_IDX_8822B */
  6243. #define BIT_SHIFT_RXQ_HW_IDX_8822B 16
  6244. #define BIT_MASK_RXQ_HW_IDX_8822B 0xfff
  6245. #define BIT_RXQ_HW_IDX_8822B(x) \
  6246. (((x) & BIT_MASK_RXQ_HW_IDX_8822B) << BIT_SHIFT_RXQ_HW_IDX_8822B)
  6247. #define BITS_RXQ_HW_IDX_8822B \
  6248. (BIT_MASK_RXQ_HW_IDX_8822B << BIT_SHIFT_RXQ_HW_IDX_8822B)
  6249. #define BIT_CLEAR_RXQ_HW_IDX_8822B(x) ((x) & (~BITS_RXQ_HW_IDX_8822B))
  6250. #define BIT_GET_RXQ_HW_IDX_8822B(x) \
  6251. (((x) >> BIT_SHIFT_RXQ_HW_IDX_8822B) & BIT_MASK_RXQ_HW_IDX_8822B)
  6252. #define BIT_SET_RXQ_HW_IDX_8822B(x, v) \
  6253. (BIT_CLEAR_RXQ_HW_IDX_8822B(x) | BIT_RXQ_HW_IDX_8822B(v))
  6254. #define BIT_SHIFT_RXQ_HOST_IDX_8822B 0
  6255. #define BIT_MASK_RXQ_HOST_IDX_8822B 0xfff
  6256. #define BIT_RXQ_HOST_IDX_8822B(x) \
  6257. (((x) & BIT_MASK_RXQ_HOST_IDX_8822B) << BIT_SHIFT_RXQ_HOST_IDX_8822B)
  6258. #define BITS_RXQ_HOST_IDX_8822B \
  6259. (BIT_MASK_RXQ_HOST_IDX_8822B << BIT_SHIFT_RXQ_HOST_IDX_8822B)
  6260. #define BIT_CLEAR_RXQ_HOST_IDX_8822B(x) ((x) & (~BITS_RXQ_HOST_IDX_8822B))
  6261. #define BIT_GET_RXQ_HOST_IDX_8822B(x) \
  6262. (((x) >> BIT_SHIFT_RXQ_HOST_IDX_8822B) & BIT_MASK_RXQ_HOST_IDX_8822B)
  6263. #define BIT_SET_RXQ_HOST_IDX_8822B(x, v) \
  6264. (BIT_CLEAR_RXQ_HOST_IDX_8822B(x) | BIT_RXQ_HOST_IDX_8822B(v))
  6265. /* 2 REG_HI0Q_TXBD_IDX_8822B */
  6266. #define BIT_SHIFT_HI0Q_HW_IDX_8822B 16
  6267. #define BIT_MASK_HI0Q_HW_IDX_8822B 0xfff
  6268. #define BIT_HI0Q_HW_IDX_8822B(x) \
  6269. (((x) & BIT_MASK_HI0Q_HW_IDX_8822B) << BIT_SHIFT_HI0Q_HW_IDX_8822B)
  6270. #define BITS_HI0Q_HW_IDX_8822B \
  6271. (BIT_MASK_HI0Q_HW_IDX_8822B << BIT_SHIFT_HI0Q_HW_IDX_8822B)
  6272. #define BIT_CLEAR_HI0Q_HW_IDX_8822B(x) ((x) & (~BITS_HI0Q_HW_IDX_8822B))
  6273. #define BIT_GET_HI0Q_HW_IDX_8822B(x) \
  6274. (((x) >> BIT_SHIFT_HI0Q_HW_IDX_8822B) & BIT_MASK_HI0Q_HW_IDX_8822B)
  6275. #define BIT_SET_HI0Q_HW_IDX_8822B(x, v) \
  6276. (BIT_CLEAR_HI0Q_HW_IDX_8822B(x) | BIT_HI0Q_HW_IDX_8822B(v))
  6277. #define BIT_SHIFT_HI0Q_HOST_IDX_8822B 0
  6278. #define BIT_MASK_HI0Q_HOST_IDX_8822B 0xfff
  6279. #define BIT_HI0Q_HOST_IDX_8822B(x) \
  6280. (((x) & BIT_MASK_HI0Q_HOST_IDX_8822B) << BIT_SHIFT_HI0Q_HOST_IDX_8822B)
  6281. #define BITS_HI0Q_HOST_IDX_8822B \
  6282. (BIT_MASK_HI0Q_HOST_IDX_8822B << BIT_SHIFT_HI0Q_HOST_IDX_8822B)
  6283. #define BIT_CLEAR_HI0Q_HOST_IDX_8822B(x) ((x) & (~BITS_HI0Q_HOST_IDX_8822B))
  6284. #define BIT_GET_HI0Q_HOST_IDX_8822B(x) \
  6285. (((x) >> BIT_SHIFT_HI0Q_HOST_IDX_8822B) & BIT_MASK_HI0Q_HOST_IDX_8822B)
  6286. #define BIT_SET_HI0Q_HOST_IDX_8822B(x, v) \
  6287. (BIT_CLEAR_HI0Q_HOST_IDX_8822B(x) | BIT_HI0Q_HOST_IDX_8822B(v))
  6288. /* 2 REG_HI1Q_TXBD_IDX_8822B */
  6289. #define BIT_SHIFT_HI1Q_HW_IDX_8822B 16
  6290. #define BIT_MASK_HI1Q_HW_IDX_8822B 0xfff
  6291. #define BIT_HI1Q_HW_IDX_8822B(x) \
  6292. (((x) & BIT_MASK_HI1Q_HW_IDX_8822B) << BIT_SHIFT_HI1Q_HW_IDX_8822B)
  6293. #define BITS_HI1Q_HW_IDX_8822B \
  6294. (BIT_MASK_HI1Q_HW_IDX_8822B << BIT_SHIFT_HI1Q_HW_IDX_8822B)
  6295. #define BIT_CLEAR_HI1Q_HW_IDX_8822B(x) ((x) & (~BITS_HI1Q_HW_IDX_8822B))
  6296. #define BIT_GET_HI1Q_HW_IDX_8822B(x) \
  6297. (((x) >> BIT_SHIFT_HI1Q_HW_IDX_8822B) & BIT_MASK_HI1Q_HW_IDX_8822B)
  6298. #define BIT_SET_HI1Q_HW_IDX_8822B(x, v) \
  6299. (BIT_CLEAR_HI1Q_HW_IDX_8822B(x) | BIT_HI1Q_HW_IDX_8822B(v))
  6300. #define BIT_SHIFT_HI1Q_HOST_IDX_8822B 0
  6301. #define BIT_MASK_HI1Q_HOST_IDX_8822B 0xfff
  6302. #define BIT_HI1Q_HOST_IDX_8822B(x) \
  6303. (((x) & BIT_MASK_HI1Q_HOST_IDX_8822B) << BIT_SHIFT_HI1Q_HOST_IDX_8822B)
  6304. #define BITS_HI1Q_HOST_IDX_8822B \
  6305. (BIT_MASK_HI1Q_HOST_IDX_8822B << BIT_SHIFT_HI1Q_HOST_IDX_8822B)
  6306. #define BIT_CLEAR_HI1Q_HOST_IDX_8822B(x) ((x) & (~BITS_HI1Q_HOST_IDX_8822B))
  6307. #define BIT_GET_HI1Q_HOST_IDX_8822B(x) \
  6308. (((x) >> BIT_SHIFT_HI1Q_HOST_IDX_8822B) & BIT_MASK_HI1Q_HOST_IDX_8822B)
  6309. #define BIT_SET_HI1Q_HOST_IDX_8822B(x, v) \
  6310. (BIT_CLEAR_HI1Q_HOST_IDX_8822B(x) | BIT_HI1Q_HOST_IDX_8822B(v))
  6311. /* 2 REG_HI2Q_TXBD_IDX_8822B */
  6312. #define BIT_SHIFT_HI2Q_HW_IDX_8822B 16
  6313. #define BIT_MASK_HI2Q_HW_IDX_8822B 0xfff
  6314. #define BIT_HI2Q_HW_IDX_8822B(x) \
  6315. (((x) & BIT_MASK_HI2Q_HW_IDX_8822B) << BIT_SHIFT_HI2Q_HW_IDX_8822B)
  6316. #define BITS_HI2Q_HW_IDX_8822B \
  6317. (BIT_MASK_HI2Q_HW_IDX_8822B << BIT_SHIFT_HI2Q_HW_IDX_8822B)
  6318. #define BIT_CLEAR_HI2Q_HW_IDX_8822B(x) ((x) & (~BITS_HI2Q_HW_IDX_8822B))
  6319. #define BIT_GET_HI2Q_HW_IDX_8822B(x) \
  6320. (((x) >> BIT_SHIFT_HI2Q_HW_IDX_8822B) & BIT_MASK_HI2Q_HW_IDX_8822B)
  6321. #define BIT_SET_HI2Q_HW_IDX_8822B(x, v) \
  6322. (BIT_CLEAR_HI2Q_HW_IDX_8822B(x) | BIT_HI2Q_HW_IDX_8822B(v))
  6323. #define BIT_SHIFT_HI2Q_HOST_IDX_8822B 0
  6324. #define BIT_MASK_HI2Q_HOST_IDX_8822B 0xfff
  6325. #define BIT_HI2Q_HOST_IDX_8822B(x) \
  6326. (((x) & BIT_MASK_HI2Q_HOST_IDX_8822B) << BIT_SHIFT_HI2Q_HOST_IDX_8822B)
  6327. #define BITS_HI2Q_HOST_IDX_8822B \
  6328. (BIT_MASK_HI2Q_HOST_IDX_8822B << BIT_SHIFT_HI2Q_HOST_IDX_8822B)
  6329. #define BIT_CLEAR_HI2Q_HOST_IDX_8822B(x) ((x) & (~BITS_HI2Q_HOST_IDX_8822B))
  6330. #define BIT_GET_HI2Q_HOST_IDX_8822B(x) \
  6331. (((x) >> BIT_SHIFT_HI2Q_HOST_IDX_8822B) & BIT_MASK_HI2Q_HOST_IDX_8822B)
  6332. #define BIT_SET_HI2Q_HOST_IDX_8822B(x, v) \
  6333. (BIT_CLEAR_HI2Q_HOST_IDX_8822B(x) | BIT_HI2Q_HOST_IDX_8822B(v))
  6334. /* 2 REG_HI3Q_TXBD_IDX_8822B */
  6335. #define BIT_SHIFT_HI3Q_HW_IDX_8822B 16
  6336. #define BIT_MASK_HI3Q_HW_IDX_8822B 0xfff
  6337. #define BIT_HI3Q_HW_IDX_8822B(x) \
  6338. (((x) & BIT_MASK_HI3Q_HW_IDX_8822B) << BIT_SHIFT_HI3Q_HW_IDX_8822B)
  6339. #define BITS_HI3Q_HW_IDX_8822B \
  6340. (BIT_MASK_HI3Q_HW_IDX_8822B << BIT_SHIFT_HI3Q_HW_IDX_8822B)
  6341. #define BIT_CLEAR_HI3Q_HW_IDX_8822B(x) ((x) & (~BITS_HI3Q_HW_IDX_8822B))
  6342. #define BIT_GET_HI3Q_HW_IDX_8822B(x) \
  6343. (((x) >> BIT_SHIFT_HI3Q_HW_IDX_8822B) & BIT_MASK_HI3Q_HW_IDX_8822B)
  6344. #define BIT_SET_HI3Q_HW_IDX_8822B(x, v) \
  6345. (BIT_CLEAR_HI3Q_HW_IDX_8822B(x) | BIT_HI3Q_HW_IDX_8822B(v))
  6346. #define BIT_SHIFT_HI3Q_HOST_IDX_8822B 0
  6347. #define BIT_MASK_HI3Q_HOST_IDX_8822B 0xfff
  6348. #define BIT_HI3Q_HOST_IDX_8822B(x) \
  6349. (((x) & BIT_MASK_HI3Q_HOST_IDX_8822B) << BIT_SHIFT_HI3Q_HOST_IDX_8822B)
  6350. #define BITS_HI3Q_HOST_IDX_8822B \
  6351. (BIT_MASK_HI3Q_HOST_IDX_8822B << BIT_SHIFT_HI3Q_HOST_IDX_8822B)
  6352. #define BIT_CLEAR_HI3Q_HOST_IDX_8822B(x) ((x) & (~BITS_HI3Q_HOST_IDX_8822B))
  6353. #define BIT_GET_HI3Q_HOST_IDX_8822B(x) \
  6354. (((x) >> BIT_SHIFT_HI3Q_HOST_IDX_8822B) & BIT_MASK_HI3Q_HOST_IDX_8822B)
  6355. #define BIT_SET_HI3Q_HOST_IDX_8822B(x, v) \
  6356. (BIT_CLEAR_HI3Q_HOST_IDX_8822B(x) | BIT_HI3Q_HOST_IDX_8822B(v))
  6357. /* 2 REG_HI4Q_TXBD_IDX_8822B */
  6358. #define BIT_SHIFT_HI4Q_HW_IDX_8822B 16
  6359. #define BIT_MASK_HI4Q_HW_IDX_8822B 0xfff
  6360. #define BIT_HI4Q_HW_IDX_8822B(x) \
  6361. (((x) & BIT_MASK_HI4Q_HW_IDX_8822B) << BIT_SHIFT_HI4Q_HW_IDX_8822B)
  6362. #define BITS_HI4Q_HW_IDX_8822B \
  6363. (BIT_MASK_HI4Q_HW_IDX_8822B << BIT_SHIFT_HI4Q_HW_IDX_8822B)
  6364. #define BIT_CLEAR_HI4Q_HW_IDX_8822B(x) ((x) & (~BITS_HI4Q_HW_IDX_8822B))
  6365. #define BIT_GET_HI4Q_HW_IDX_8822B(x) \
  6366. (((x) >> BIT_SHIFT_HI4Q_HW_IDX_8822B) & BIT_MASK_HI4Q_HW_IDX_8822B)
  6367. #define BIT_SET_HI4Q_HW_IDX_8822B(x, v) \
  6368. (BIT_CLEAR_HI4Q_HW_IDX_8822B(x) | BIT_HI4Q_HW_IDX_8822B(v))
  6369. #define BIT_SHIFT_HI4Q_HOST_IDX_8822B 0
  6370. #define BIT_MASK_HI4Q_HOST_IDX_8822B 0xfff
  6371. #define BIT_HI4Q_HOST_IDX_8822B(x) \
  6372. (((x) & BIT_MASK_HI4Q_HOST_IDX_8822B) << BIT_SHIFT_HI4Q_HOST_IDX_8822B)
  6373. #define BITS_HI4Q_HOST_IDX_8822B \
  6374. (BIT_MASK_HI4Q_HOST_IDX_8822B << BIT_SHIFT_HI4Q_HOST_IDX_8822B)
  6375. #define BIT_CLEAR_HI4Q_HOST_IDX_8822B(x) ((x) & (~BITS_HI4Q_HOST_IDX_8822B))
  6376. #define BIT_GET_HI4Q_HOST_IDX_8822B(x) \
  6377. (((x) >> BIT_SHIFT_HI4Q_HOST_IDX_8822B) & BIT_MASK_HI4Q_HOST_IDX_8822B)
  6378. #define BIT_SET_HI4Q_HOST_IDX_8822B(x, v) \
  6379. (BIT_CLEAR_HI4Q_HOST_IDX_8822B(x) | BIT_HI4Q_HOST_IDX_8822B(v))
  6380. /* 2 REG_HI5Q_TXBD_IDX_8822B */
  6381. #define BIT_SHIFT_HI5Q_HW_IDX_8822B 16
  6382. #define BIT_MASK_HI5Q_HW_IDX_8822B 0xfff
  6383. #define BIT_HI5Q_HW_IDX_8822B(x) \
  6384. (((x) & BIT_MASK_HI5Q_HW_IDX_8822B) << BIT_SHIFT_HI5Q_HW_IDX_8822B)
  6385. #define BITS_HI5Q_HW_IDX_8822B \
  6386. (BIT_MASK_HI5Q_HW_IDX_8822B << BIT_SHIFT_HI5Q_HW_IDX_8822B)
  6387. #define BIT_CLEAR_HI5Q_HW_IDX_8822B(x) ((x) & (~BITS_HI5Q_HW_IDX_8822B))
  6388. #define BIT_GET_HI5Q_HW_IDX_8822B(x) \
  6389. (((x) >> BIT_SHIFT_HI5Q_HW_IDX_8822B) & BIT_MASK_HI5Q_HW_IDX_8822B)
  6390. #define BIT_SET_HI5Q_HW_IDX_8822B(x, v) \
  6391. (BIT_CLEAR_HI5Q_HW_IDX_8822B(x) | BIT_HI5Q_HW_IDX_8822B(v))
  6392. #define BIT_SHIFT_HI5Q_HOST_IDX_8822B 0
  6393. #define BIT_MASK_HI5Q_HOST_IDX_8822B 0xfff
  6394. #define BIT_HI5Q_HOST_IDX_8822B(x) \
  6395. (((x) & BIT_MASK_HI5Q_HOST_IDX_8822B) << BIT_SHIFT_HI5Q_HOST_IDX_8822B)
  6396. #define BITS_HI5Q_HOST_IDX_8822B \
  6397. (BIT_MASK_HI5Q_HOST_IDX_8822B << BIT_SHIFT_HI5Q_HOST_IDX_8822B)
  6398. #define BIT_CLEAR_HI5Q_HOST_IDX_8822B(x) ((x) & (~BITS_HI5Q_HOST_IDX_8822B))
  6399. #define BIT_GET_HI5Q_HOST_IDX_8822B(x) \
  6400. (((x) >> BIT_SHIFT_HI5Q_HOST_IDX_8822B) & BIT_MASK_HI5Q_HOST_IDX_8822B)
  6401. #define BIT_SET_HI5Q_HOST_IDX_8822B(x, v) \
  6402. (BIT_CLEAR_HI5Q_HOST_IDX_8822B(x) | BIT_HI5Q_HOST_IDX_8822B(v))
  6403. /* 2 REG_HI6Q_TXBD_IDX_8822B */
  6404. #define BIT_SHIFT_HI6Q_HW_IDX_8822B 16
  6405. #define BIT_MASK_HI6Q_HW_IDX_8822B 0xfff
  6406. #define BIT_HI6Q_HW_IDX_8822B(x) \
  6407. (((x) & BIT_MASK_HI6Q_HW_IDX_8822B) << BIT_SHIFT_HI6Q_HW_IDX_8822B)
  6408. #define BITS_HI6Q_HW_IDX_8822B \
  6409. (BIT_MASK_HI6Q_HW_IDX_8822B << BIT_SHIFT_HI6Q_HW_IDX_8822B)
  6410. #define BIT_CLEAR_HI6Q_HW_IDX_8822B(x) ((x) & (~BITS_HI6Q_HW_IDX_8822B))
  6411. #define BIT_GET_HI6Q_HW_IDX_8822B(x) \
  6412. (((x) >> BIT_SHIFT_HI6Q_HW_IDX_8822B) & BIT_MASK_HI6Q_HW_IDX_8822B)
  6413. #define BIT_SET_HI6Q_HW_IDX_8822B(x, v) \
  6414. (BIT_CLEAR_HI6Q_HW_IDX_8822B(x) | BIT_HI6Q_HW_IDX_8822B(v))
  6415. #define BIT_SHIFT_HI6Q_HOST_IDX_8822B 0
  6416. #define BIT_MASK_HI6Q_HOST_IDX_8822B 0xfff
  6417. #define BIT_HI6Q_HOST_IDX_8822B(x) \
  6418. (((x) & BIT_MASK_HI6Q_HOST_IDX_8822B) << BIT_SHIFT_HI6Q_HOST_IDX_8822B)
  6419. #define BITS_HI6Q_HOST_IDX_8822B \
  6420. (BIT_MASK_HI6Q_HOST_IDX_8822B << BIT_SHIFT_HI6Q_HOST_IDX_8822B)
  6421. #define BIT_CLEAR_HI6Q_HOST_IDX_8822B(x) ((x) & (~BITS_HI6Q_HOST_IDX_8822B))
  6422. #define BIT_GET_HI6Q_HOST_IDX_8822B(x) \
  6423. (((x) >> BIT_SHIFT_HI6Q_HOST_IDX_8822B) & BIT_MASK_HI6Q_HOST_IDX_8822B)
  6424. #define BIT_SET_HI6Q_HOST_IDX_8822B(x, v) \
  6425. (BIT_CLEAR_HI6Q_HOST_IDX_8822B(x) | BIT_HI6Q_HOST_IDX_8822B(v))
  6426. /* 2 REG_HI7Q_TXBD_IDX_8822B */
  6427. #define BIT_SHIFT_HI7Q_HW_IDX_8822B 16
  6428. #define BIT_MASK_HI7Q_HW_IDX_8822B 0xfff
  6429. #define BIT_HI7Q_HW_IDX_8822B(x) \
  6430. (((x) & BIT_MASK_HI7Q_HW_IDX_8822B) << BIT_SHIFT_HI7Q_HW_IDX_8822B)
  6431. #define BITS_HI7Q_HW_IDX_8822B \
  6432. (BIT_MASK_HI7Q_HW_IDX_8822B << BIT_SHIFT_HI7Q_HW_IDX_8822B)
  6433. #define BIT_CLEAR_HI7Q_HW_IDX_8822B(x) ((x) & (~BITS_HI7Q_HW_IDX_8822B))
  6434. #define BIT_GET_HI7Q_HW_IDX_8822B(x) \
  6435. (((x) >> BIT_SHIFT_HI7Q_HW_IDX_8822B) & BIT_MASK_HI7Q_HW_IDX_8822B)
  6436. #define BIT_SET_HI7Q_HW_IDX_8822B(x, v) \
  6437. (BIT_CLEAR_HI7Q_HW_IDX_8822B(x) | BIT_HI7Q_HW_IDX_8822B(v))
  6438. #define BIT_SHIFT_HI7Q_HOST_IDX_8822B 0
  6439. #define BIT_MASK_HI7Q_HOST_IDX_8822B 0xfff
  6440. #define BIT_HI7Q_HOST_IDX_8822B(x) \
  6441. (((x) & BIT_MASK_HI7Q_HOST_IDX_8822B) << BIT_SHIFT_HI7Q_HOST_IDX_8822B)
  6442. #define BITS_HI7Q_HOST_IDX_8822B \
  6443. (BIT_MASK_HI7Q_HOST_IDX_8822B << BIT_SHIFT_HI7Q_HOST_IDX_8822B)
  6444. #define BIT_CLEAR_HI7Q_HOST_IDX_8822B(x) ((x) & (~BITS_HI7Q_HOST_IDX_8822B))
  6445. #define BIT_GET_HI7Q_HOST_IDX_8822B(x) \
  6446. (((x) >> BIT_SHIFT_HI7Q_HOST_IDX_8822B) & BIT_MASK_HI7Q_HOST_IDX_8822B)
  6447. #define BIT_SET_HI7Q_HOST_IDX_8822B(x, v) \
  6448. (BIT_CLEAR_HI7Q_HOST_IDX_8822B(x) | BIT_HI7Q_HOST_IDX_8822B(v))
  6449. /* 2 REG_DBG_SEL_V1_8822B */
  6450. #define BIT_SHIFT_DBG_SEL_8822B 0
  6451. #define BIT_MASK_DBG_SEL_8822B 0xff
  6452. #define BIT_DBG_SEL_8822B(x) \
  6453. (((x) & BIT_MASK_DBG_SEL_8822B) << BIT_SHIFT_DBG_SEL_8822B)
  6454. #define BITS_DBG_SEL_8822B (BIT_MASK_DBG_SEL_8822B << BIT_SHIFT_DBG_SEL_8822B)
  6455. #define BIT_CLEAR_DBG_SEL_8822B(x) ((x) & (~BITS_DBG_SEL_8822B))
  6456. #define BIT_GET_DBG_SEL_8822B(x) \
  6457. (((x) >> BIT_SHIFT_DBG_SEL_8822B) & BIT_MASK_DBG_SEL_8822B)
  6458. #define BIT_SET_DBG_SEL_8822B(x, v) \
  6459. (BIT_CLEAR_DBG_SEL_8822B(x) | BIT_DBG_SEL_8822B(v))
  6460. /* 2 REG_PCIE_HRPWM1_V1_8822B */
  6461. #define BIT_SHIFT_PCIE_HRPWM_8822B 0
  6462. #define BIT_MASK_PCIE_HRPWM_8822B 0xff
  6463. #define BIT_PCIE_HRPWM_8822B(x) \
  6464. (((x) & BIT_MASK_PCIE_HRPWM_8822B) << BIT_SHIFT_PCIE_HRPWM_8822B)
  6465. #define BITS_PCIE_HRPWM_8822B \
  6466. (BIT_MASK_PCIE_HRPWM_8822B << BIT_SHIFT_PCIE_HRPWM_8822B)
  6467. #define BIT_CLEAR_PCIE_HRPWM_8822B(x) ((x) & (~BITS_PCIE_HRPWM_8822B))
  6468. #define BIT_GET_PCIE_HRPWM_8822B(x) \
  6469. (((x) >> BIT_SHIFT_PCIE_HRPWM_8822B) & BIT_MASK_PCIE_HRPWM_8822B)
  6470. #define BIT_SET_PCIE_HRPWM_8822B(x, v) \
  6471. (BIT_CLEAR_PCIE_HRPWM_8822B(x) | BIT_PCIE_HRPWM_8822B(v))
  6472. /* 2 REG_PCIE_HCPWM1_V1_8822B */
  6473. #define BIT_SHIFT_PCIE_HCPWM_8822B 0
  6474. #define BIT_MASK_PCIE_HCPWM_8822B 0xff
  6475. #define BIT_PCIE_HCPWM_8822B(x) \
  6476. (((x) & BIT_MASK_PCIE_HCPWM_8822B) << BIT_SHIFT_PCIE_HCPWM_8822B)
  6477. #define BITS_PCIE_HCPWM_8822B \
  6478. (BIT_MASK_PCIE_HCPWM_8822B << BIT_SHIFT_PCIE_HCPWM_8822B)
  6479. #define BIT_CLEAR_PCIE_HCPWM_8822B(x) ((x) & (~BITS_PCIE_HCPWM_8822B))
  6480. #define BIT_GET_PCIE_HCPWM_8822B(x) \
  6481. (((x) >> BIT_SHIFT_PCIE_HCPWM_8822B) & BIT_MASK_PCIE_HCPWM_8822B)
  6482. #define BIT_SET_PCIE_HCPWM_8822B(x, v) \
  6483. (BIT_CLEAR_PCIE_HCPWM_8822B(x) | BIT_PCIE_HCPWM_8822B(v))
  6484. /* 2 REG_PCIE_CTRL2_8822B */
  6485. #define BIT_DIS_TXDMA_PRE_8822B BIT(7)
  6486. #define BIT_DIS_RXDMA_PRE_8822B BIT(6)
  6487. #define BIT_SHIFT_HPS_CLKR_PCIE_8822B 4
  6488. #define BIT_MASK_HPS_CLKR_PCIE_8822B 0x3
  6489. #define BIT_HPS_CLKR_PCIE_8822B(x) \
  6490. (((x) & BIT_MASK_HPS_CLKR_PCIE_8822B) << BIT_SHIFT_HPS_CLKR_PCIE_8822B)
  6491. #define BITS_HPS_CLKR_PCIE_8822B \
  6492. (BIT_MASK_HPS_CLKR_PCIE_8822B << BIT_SHIFT_HPS_CLKR_PCIE_8822B)
  6493. #define BIT_CLEAR_HPS_CLKR_PCIE_8822B(x) ((x) & (~BITS_HPS_CLKR_PCIE_8822B))
  6494. #define BIT_GET_HPS_CLKR_PCIE_8822B(x) \
  6495. (((x) >> BIT_SHIFT_HPS_CLKR_PCIE_8822B) & BIT_MASK_HPS_CLKR_PCIE_8822B)
  6496. #define BIT_SET_HPS_CLKR_PCIE_8822B(x, v) \
  6497. (BIT_CLEAR_HPS_CLKR_PCIE_8822B(x) | BIT_HPS_CLKR_PCIE_8822B(v))
  6498. #define BIT_PCIE_INT_8822B BIT(3)
  6499. #define BIT_TXFLAG_EXIT_L1_EN_8822B BIT(2)
  6500. #define BIT_EN_RXDMA_ALIGN_8822B BIT(1)
  6501. #define BIT_EN_TXDMA_ALIGN_8822B BIT(0)
  6502. /* 2 REG_PCIE_HRPWM2_V1_8822B */
  6503. #define BIT_SHIFT_PCIE_HRPWM2_8822B 0
  6504. #define BIT_MASK_PCIE_HRPWM2_8822B 0xffff
  6505. #define BIT_PCIE_HRPWM2_8822B(x) \
  6506. (((x) & BIT_MASK_PCIE_HRPWM2_8822B) << BIT_SHIFT_PCIE_HRPWM2_8822B)
  6507. #define BITS_PCIE_HRPWM2_8822B \
  6508. (BIT_MASK_PCIE_HRPWM2_8822B << BIT_SHIFT_PCIE_HRPWM2_8822B)
  6509. #define BIT_CLEAR_PCIE_HRPWM2_8822B(x) ((x) & (~BITS_PCIE_HRPWM2_8822B))
  6510. #define BIT_GET_PCIE_HRPWM2_8822B(x) \
  6511. (((x) >> BIT_SHIFT_PCIE_HRPWM2_8822B) & BIT_MASK_PCIE_HRPWM2_8822B)
  6512. #define BIT_SET_PCIE_HRPWM2_8822B(x, v) \
  6513. (BIT_CLEAR_PCIE_HRPWM2_8822B(x) | BIT_PCIE_HRPWM2_8822B(v))
  6514. /* 2 REG_PCIE_HCPWM2_V1_8822B */
  6515. #define BIT_SHIFT_PCIE_HCPWM2_8822B 0
  6516. #define BIT_MASK_PCIE_HCPWM2_8822B 0xffff
  6517. #define BIT_PCIE_HCPWM2_8822B(x) \
  6518. (((x) & BIT_MASK_PCIE_HCPWM2_8822B) << BIT_SHIFT_PCIE_HCPWM2_8822B)
  6519. #define BITS_PCIE_HCPWM2_8822B \
  6520. (BIT_MASK_PCIE_HCPWM2_8822B << BIT_SHIFT_PCIE_HCPWM2_8822B)
  6521. #define BIT_CLEAR_PCIE_HCPWM2_8822B(x) ((x) & (~BITS_PCIE_HCPWM2_8822B))
  6522. #define BIT_GET_PCIE_HCPWM2_8822B(x) \
  6523. (((x) >> BIT_SHIFT_PCIE_HCPWM2_8822B) & BIT_MASK_PCIE_HCPWM2_8822B)
  6524. #define BIT_SET_PCIE_HCPWM2_8822B(x, v) \
  6525. (BIT_CLEAR_PCIE_HCPWM2_8822B(x) | BIT_PCIE_HCPWM2_8822B(v))
  6526. /* 2 REG_PCIE_H2C_MSG_V1_8822B */
  6527. #define BIT_SHIFT_DRV2FW_INFO_8822B 0
  6528. #define BIT_MASK_DRV2FW_INFO_8822B 0xffffffffL
  6529. #define BIT_DRV2FW_INFO_8822B(x) \
  6530. (((x) & BIT_MASK_DRV2FW_INFO_8822B) << BIT_SHIFT_DRV2FW_INFO_8822B)
  6531. #define BITS_DRV2FW_INFO_8822B \
  6532. (BIT_MASK_DRV2FW_INFO_8822B << BIT_SHIFT_DRV2FW_INFO_8822B)
  6533. #define BIT_CLEAR_DRV2FW_INFO_8822B(x) ((x) & (~BITS_DRV2FW_INFO_8822B))
  6534. #define BIT_GET_DRV2FW_INFO_8822B(x) \
  6535. (((x) >> BIT_SHIFT_DRV2FW_INFO_8822B) & BIT_MASK_DRV2FW_INFO_8822B)
  6536. #define BIT_SET_DRV2FW_INFO_8822B(x, v) \
  6537. (BIT_CLEAR_DRV2FW_INFO_8822B(x) | BIT_DRV2FW_INFO_8822B(v))
  6538. /* 2 REG_PCIE_C2H_MSG_V1_8822B */
  6539. #define BIT_SHIFT_HCI_PCIE_C2H_MSG_8822B 0
  6540. #define BIT_MASK_HCI_PCIE_C2H_MSG_8822B 0xffffffffL
  6541. #define BIT_HCI_PCIE_C2H_MSG_8822B(x) \
  6542. (((x) & BIT_MASK_HCI_PCIE_C2H_MSG_8822B) \
  6543. << BIT_SHIFT_HCI_PCIE_C2H_MSG_8822B)
  6544. #define BITS_HCI_PCIE_C2H_MSG_8822B \
  6545. (BIT_MASK_HCI_PCIE_C2H_MSG_8822B << BIT_SHIFT_HCI_PCIE_C2H_MSG_8822B)
  6546. #define BIT_CLEAR_HCI_PCIE_C2H_MSG_8822B(x) \
  6547. ((x) & (~BITS_HCI_PCIE_C2H_MSG_8822B))
  6548. #define BIT_GET_HCI_PCIE_C2H_MSG_8822B(x) \
  6549. (((x) >> BIT_SHIFT_HCI_PCIE_C2H_MSG_8822B) & \
  6550. BIT_MASK_HCI_PCIE_C2H_MSG_8822B)
  6551. #define BIT_SET_HCI_PCIE_C2H_MSG_8822B(x, v) \
  6552. (BIT_CLEAR_HCI_PCIE_C2H_MSG_8822B(x) | BIT_HCI_PCIE_C2H_MSG_8822B(v))
  6553. /* 2 REG_DBI_WDATA_V1_8822B */
  6554. #define BIT_SHIFT_DBI_WDATA_8822B 0
  6555. #define BIT_MASK_DBI_WDATA_8822B 0xffffffffL
  6556. #define BIT_DBI_WDATA_8822B(x) \
  6557. (((x) & BIT_MASK_DBI_WDATA_8822B) << BIT_SHIFT_DBI_WDATA_8822B)
  6558. #define BITS_DBI_WDATA_8822B \
  6559. (BIT_MASK_DBI_WDATA_8822B << BIT_SHIFT_DBI_WDATA_8822B)
  6560. #define BIT_CLEAR_DBI_WDATA_8822B(x) ((x) & (~BITS_DBI_WDATA_8822B))
  6561. #define BIT_GET_DBI_WDATA_8822B(x) \
  6562. (((x) >> BIT_SHIFT_DBI_WDATA_8822B) & BIT_MASK_DBI_WDATA_8822B)
  6563. #define BIT_SET_DBI_WDATA_8822B(x, v) \
  6564. (BIT_CLEAR_DBI_WDATA_8822B(x) | BIT_DBI_WDATA_8822B(v))
  6565. /* 2 REG_DBI_RDATA_V1_8822B */
  6566. #define BIT_SHIFT_DBI_RDATA_8822B 0
  6567. #define BIT_MASK_DBI_RDATA_8822B 0xffffffffL
  6568. #define BIT_DBI_RDATA_8822B(x) \
  6569. (((x) & BIT_MASK_DBI_RDATA_8822B) << BIT_SHIFT_DBI_RDATA_8822B)
  6570. #define BITS_DBI_RDATA_8822B \
  6571. (BIT_MASK_DBI_RDATA_8822B << BIT_SHIFT_DBI_RDATA_8822B)
  6572. #define BIT_CLEAR_DBI_RDATA_8822B(x) ((x) & (~BITS_DBI_RDATA_8822B))
  6573. #define BIT_GET_DBI_RDATA_8822B(x) \
  6574. (((x) >> BIT_SHIFT_DBI_RDATA_8822B) & BIT_MASK_DBI_RDATA_8822B)
  6575. #define BIT_SET_DBI_RDATA_8822B(x, v) \
  6576. (BIT_CLEAR_DBI_RDATA_8822B(x) | BIT_DBI_RDATA_8822B(v))
  6577. /* 2 REG_DBI_FLAG_V1_8822B */
  6578. #define BIT_EN_STUCK_DBG_8822B BIT(26)
  6579. #define BIT_RX_STUCK_8822B BIT(25)
  6580. #define BIT_TX_STUCK_8822B BIT(24)
  6581. #define BIT_DBI_RFLAG_8822B BIT(17)
  6582. #define BIT_DBI_WFLAG_8822B BIT(16)
  6583. #define BIT_SHIFT_DBI_WREN_8822B 12
  6584. #define BIT_MASK_DBI_WREN_8822B 0xf
  6585. #define BIT_DBI_WREN_8822B(x) \
  6586. (((x) & BIT_MASK_DBI_WREN_8822B) << BIT_SHIFT_DBI_WREN_8822B)
  6587. #define BITS_DBI_WREN_8822B \
  6588. (BIT_MASK_DBI_WREN_8822B << BIT_SHIFT_DBI_WREN_8822B)
  6589. #define BIT_CLEAR_DBI_WREN_8822B(x) ((x) & (~BITS_DBI_WREN_8822B))
  6590. #define BIT_GET_DBI_WREN_8822B(x) \
  6591. (((x) >> BIT_SHIFT_DBI_WREN_8822B) & BIT_MASK_DBI_WREN_8822B)
  6592. #define BIT_SET_DBI_WREN_8822B(x, v) \
  6593. (BIT_CLEAR_DBI_WREN_8822B(x) | BIT_DBI_WREN_8822B(v))
  6594. #define BIT_SHIFT_DBI_ADDR_8822B 0
  6595. #define BIT_MASK_DBI_ADDR_8822B 0xfff
  6596. #define BIT_DBI_ADDR_8822B(x) \
  6597. (((x) & BIT_MASK_DBI_ADDR_8822B) << BIT_SHIFT_DBI_ADDR_8822B)
  6598. #define BITS_DBI_ADDR_8822B \
  6599. (BIT_MASK_DBI_ADDR_8822B << BIT_SHIFT_DBI_ADDR_8822B)
  6600. #define BIT_CLEAR_DBI_ADDR_8822B(x) ((x) & (~BITS_DBI_ADDR_8822B))
  6601. #define BIT_GET_DBI_ADDR_8822B(x) \
  6602. (((x) >> BIT_SHIFT_DBI_ADDR_8822B) & BIT_MASK_DBI_ADDR_8822B)
  6603. #define BIT_SET_DBI_ADDR_8822B(x, v) \
  6604. (BIT_CLEAR_DBI_ADDR_8822B(x) | BIT_DBI_ADDR_8822B(v))
  6605. /* 2 REG_MDIO_V1_8822B */
  6606. #define BIT_SHIFT_MDIO_RDATA_8822B 16
  6607. #define BIT_MASK_MDIO_RDATA_8822B 0xffff
  6608. #define BIT_MDIO_RDATA_8822B(x) \
  6609. (((x) & BIT_MASK_MDIO_RDATA_8822B) << BIT_SHIFT_MDIO_RDATA_8822B)
  6610. #define BITS_MDIO_RDATA_8822B \
  6611. (BIT_MASK_MDIO_RDATA_8822B << BIT_SHIFT_MDIO_RDATA_8822B)
  6612. #define BIT_CLEAR_MDIO_RDATA_8822B(x) ((x) & (~BITS_MDIO_RDATA_8822B))
  6613. #define BIT_GET_MDIO_RDATA_8822B(x) \
  6614. (((x) >> BIT_SHIFT_MDIO_RDATA_8822B) & BIT_MASK_MDIO_RDATA_8822B)
  6615. #define BIT_SET_MDIO_RDATA_8822B(x, v) \
  6616. (BIT_CLEAR_MDIO_RDATA_8822B(x) | BIT_MDIO_RDATA_8822B(v))
  6617. #define BIT_SHIFT_MDIO_WDATA_8822B 0
  6618. #define BIT_MASK_MDIO_WDATA_8822B 0xffff
  6619. #define BIT_MDIO_WDATA_8822B(x) \
  6620. (((x) & BIT_MASK_MDIO_WDATA_8822B) << BIT_SHIFT_MDIO_WDATA_8822B)
  6621. #define BITS_MDIO_WDATA_8822B \
  6622. (BIT_MASK_MDIO_WDATA_8822B << BIT_SHIFT_MDIO_WDATA_8822B)
  6623. #define BIT_CLEAR_MDIO_WDATA_8822B(x) ((x) & (~BITS_MDIO_WDATA_8822B))
  6624. #define BIT_GET_MDIO_WDATA_8822B(x) \
  6625. (((x) >> BIT_SHIFT_MDIO_WDATA_8822B) & BIT_MASK_MDIO_WDATA_8822B)
  6626. #define BIT_SET_MDIO_WDATA_8822B(x, v) \
  6627. (BIT_CLEAR_MDIO_WDATA_8822B(x) | BIT_MDIO_WDATA_8822B(v))
  6628. /* 2 REG_PCIE_MIX_CFG_8822B */
  6629. #define BIT_SHIFT_MDIO_PHY_ADDR_8822B 24
  6630. #define BIT_MASK_MDIO_PHY_ADDR_8822B 0x1f
  6631. #define BIT_MDIO_PHY_ADDR_8822B(x) \
  6632. (((x) & BIT_MASK_MDIO_PHY_ADDR_8822B) << BIT_SHIFT_MDIO_PHY_ADDR_8822B)
  6633. #define BITS_MDIO_PHY_ADDR_8822B \
  6634. (BIT_MASK_MDIO_PHY_ADDR_8822B << BIT_SHIFT_MDIO_PHY_ADDR_8822B)
  6635. #define BIT_CLEAR_MDIO_PHY_ADDR_8822B(x) ((x) & (~BITS_MDIO_PHY_ADDR_8822B))
  6636. #define BIT_GET_MDIO_PHY_ADDR_8822B(x) \
  6637. (((x) >> BIT_SHIFT_MDIO_PHY_ADDR_8822B) & BIT_MASK_MDIO_PHY_ADDR_8822B)
  6638. #define BIT_SET_MDIO_PHY_ADDR_8822B(x, v) \
  6639. (BIT_CLEAR_MDIO_PHY_ADDR_8822B(x) | BIT_MDIO_PHY_ADDR_8822B(v))
  6640. #define BIT_SHIFT_WATCH_DOG_RECORD_V1_8822B 10
  6641. #define BIT_MASK_WATCH_DOG_RECORD_V1_8822B 0x3fff
  6642. #define BIT_WATCH_DOG_RECORD_V1_8822B(x) \
  6643. (((x) & BIT_MASK_WATCH_DOG_RECORD_V1_8822B) \
  6644. << BIT_SHIFT_WATCH_DOG_RECORD_V1_8822B)
  6645. #define BITS_WATCH_DOG_RECORD_V1_8822B \
  6646. (BIT_MASK_WATCH_DOG_RECORD_V1_8822B \
  6647. << BIT_SHIFT_WATCH_DOG_RECORD_V1_8822B)
  6648. #define BIT_CLEAR_WATCH_DOG_RECORD_V1_8822B(x) \
  6649. ((x) & (~BITS_WATCH_DOG_RECORD_V1_8822B))
  6650. #define BIT_GET_WATCH_DOG_RECORD_V1_8822B(x) \
  6651. (((x) >> BIT_SHIFT_WATCH_DOG_RECORD_V1_8822B) & \
  6652. BIT_MASK_WATCH_DOG_RECORD_V1_8822B)
  6653. #define BIT_SET_WATCH_DOG_RECORD_V1_8822B(x, v) \
  6654. (BIT_CLEAR_WATCH_DOG_RECORD_V1_8822B(x) | \
  6655. BIT_WATCH_DOG_RECORD_V1_8822B(v))
  6656. #define BIT_R_IO_TIMEOUT_FLAG_V1_8822B BIT(9)
  6657. #define BIT_EN_WATCH_DOG_8822B BIT(8)
  6658. #define BIT_ECRC_EN_V1_8822B BIT(7)
  6659. #define BIT_MDIO_RFLAG_V1_8822B BIT(6)
  6660. #define BIT_MDIO_WFLAG_V1_8822B BIT(5)
  6661. #define BIT_SHIFT_MDIO_REG_ADDR_V1_8822B 0
  6662. #define BIT_MASK_MDIO_REG_ADDR_V1_8822B 0x1f
  6663. #define BIT_MDIO_REG_ADDR_V1_8822B(x) \
  6664. (((x) & BIT_MASK_MDIO_REG_ADDR_V1_8822B) \
  6665. << BIT_SHIFT_MDIO_REG_ADDR_V1_8822B)
  6666. #define BITS_MDIO_REG_ADDR_V1_8822B \
  6667. (BIT_MASK_MDIO_REG_ADDR_V1_8822B << BIT_SHIFT_MDIO_REG_ADDR_V1_8822B)
  6668. #define BIT_CLEAR_MDIO_REG_ADDR_V1_8822B(x) \
  6669. ((x) & (~BITS_MDIO_REG_ADDR_V1_8822B))
  6670. #define BIT_GET_MDIO_REG_ADDR_V1_8822B(x) \
  6671. (((x) >> BIT_SHIFT_MDIO_REG_ADDR_V1_8822B) & \
  6672. BIT_MASK_MDIO_REG_ADDR_V1_8822B)
  6673. #define BIT_SET_MDIO_REG_ADDR_V1_8822B(x, v) \
  6674. (BIT_CLEAR_MDIO_REG_ADDR_V1_8822B(x) | BIT_MDIO_REG_ADDR_V1_8822B(v))
  6675. /* 2 REG_HCI_MIX_CFG_8822B */
  6676. #define BIT_HOST_GEN2_SUPPORT_8822B BIT(20)
  6677. #define BIT_SHIFT_TXDMA_ERR_FLAG_8822B 16
  6678. #define BIT_MASK_TXDMA_ERR_FLAG_8822B 0xf
  6679. #define BIT_TXDMA_ERR_FLAG_8822B(x) \
  6680. (((x) & BIT_MASK_TXDMA_ERR_FLAG_8822B) \
  6681. << BIT_SHIFT_TXDMA_ERR_FLAG_8822B)
  6682. #define BITS_TXDMA_ERR_FLAG_8822B \
  6683. (BIT_MASK_TXDMA_ERR_FLAG_8822B << BIT_SHIFT_TXDMA_ERR_FLAG_8822B)
  6684. #define BIT_CLEAR_TXDMA_ERR_FLAG_8822B(x) ((x) & (~BITS_TXDMA_ERR_FLAG_8822B))
  6685. #define BIT_GET_TXDMA_ERR_FLAG_8822B(x) \
  6686. (((x) >> BIT_SHIFT_TXDMA_ERR_FLAG_8822B) & \
  6687. BIT_MASK_TXDMA_ERR_FLAG_8822B)
  6688. #define BIT_SET_TXDMA_ERR_FLAG_8822B(x, v) \
  6689. (BIT_CLEAR_TXDMA_ERR_FLAG_8822B(x) | BIT_TXDMA_ERR_FLAG_8822B(v))
  6690. #define BIT_SHIFT_EARLY_MODE_SEL_8822B 12
  6691. #define BIT_MASK_EARLY_MODE_SEL_8822B 0xf
  6692. #define BIT_EARLY_MODE_SEL_8822B(x) \
  6693. (((x) & BIT_MASK_EARLY_MODE_SEL_8822B) \
  6694. << BIT_SHIFT_EARLY_MODE_SEL_8822B)
  6695. #define BITS_EARLY_MODE_SEL_8822B \
  6696. (BIT_MASK_EARLY_MODE_SEL_8822B << BIT_SHIFT_EARLY_MODE_SEL_8822B)
  6697. #define BIT_CLEAR_EARLY_MODE_SEL_8822B(x) ((x) & (~BITS_EARLY_MODE_SEL_8822B))
  6698. #define BIT_GET_EARLY_MODE_SEL_8822B(x) \
  6699. (((x) >> BIT_SHIFT_EARLY_MODE_SEL_8822B) & \
  6700. BIT_MASK_EARLY_MODE_SEL_8822B)
  6701. #define BIT_SET_EARLY_MODE_SEL_8822B(x, v) \
  6702. (BIT_CLEAR_EARLY_MODE_SEL_8822B(x) | BIT_EARLY_MODE_SEL_8822B(v))
  6703. #define BIT_EPHY_RX50_EN_8822B BIT(11)
  6704. #define BIT_SHIFT_MSI_TIMEOUT_ID_V1_8822B 8
  6705. #define BIT_MASK_MSI_TIMEOUT_ID_V1_8822B 0x7
  6706. #define BIT_MSI_TIMEOUT_ID_V1_8822B(x) \
  6707. (((x) & BIT_MASK_MSI_TIMEOUT_ID_V1_8822B) \
  6708. << BIT_SHIFT_MSI_TIMEOUT_ID_V1_8822B)
  6709. #define BITS_MSI_TIMEOUT_ID_V1_8822B \
  6710. (BIT_MASK_MSI_TIMEOUT_ID_V1_8822B << BIT_SHIFT_MSI_TIMEOUT_ID_V1_8822B)
  6711. #define BIT_CLEAR_MSI_TIMEOUT_ID_V1_8822B(x) \
  6712. ((x) & (~BITS_MSI_TIMEOUT_ID_V1_8822B))
  6713. #define BIT_GET_MSI_TIMEOUT_ID_V1_8822B(x) \
  6714. (((x) >> BIT_SHIFT_MSI_TIMEOUT_ID_V1_8822B) & \
  6715. BIT_MASK_MSI_TIMEOUT_ID_V1_8822B)
  6716. #define BIT_SET_MSI_TIMEOUT_ID_V1_8822B(x, v) \
  6717. (BIT_CLEAR_MSI_TIMEOUT_ID_V1_8822B(x) | BIT_MSI_TIMEOUT_ID_V1_8822B(v))
  6718. #define BIT_RADDR_RD_8822B BIT(7)
  6719. #define BIT_EN_MUL_TAG_8822B BIT(6)
  6720. #define BIT_EN_EARLY_MODE_8822B BIT(5)
  6721. #define BIT_L0S_LINK_OFF_8822B BIT(4)
  6722. #define BIT_ACT_LINK_OFF_8822B BIT(3)
  6723. #define BIT_EN_SLOW_MAC_TX_8822B BIT(2)
  6724. #define BIT_EN_SLOW_MAC_RX_8822B BIT(1)
  6725. /* 2 REG_STC_INT_CS_8822B(PCIE STATE CHANGE INTERRUPT CONTROL AND STATUS) */
  6726. #define BIT_STC_INT_EN_8822B BIT(31)
  6727. #define BIT_SHIFT_STC_INT_FLAG_8822B 16
  6728. #define BIT_MASK_STC_INT_FLAG_8822B 0xff
  6729. #define BIT_STC_INT_FLAG_8822B(x) \
  6730. (((x) & BIT_MASK_STC_INT_FLAG_8822B) << BIT_SHIFT_STC_INT_FLAG_8822B)
  6731. #define BITS_STC_INT_FLAG_8822B \
  6732. (BIT_MASK_STC_INT_FLAG_8822B << BIT_SHIFT_STC_INT_FLAG_8822B)
  6733. #define BIT_CLEAR_STC_INT_FLAG_8822B(x) ((x) & (~BITS_STC_INT_FLAG_8822B))
  6734. #define BIT_GET_STC_INT_FLAG_8822B(x) \
  6735. (((x) >> BIT_SHIFT_STC_INT_FLAG_8822B) & BIT_MASK_STC_INT_FLAG_8822B)
  6736. #define BIT_SET_STC_INT_FLAG_8822B(x, v) \
  6737. (BIT_CLEAR_STC_INT_FLAG_8822B(x) | BIT_STC_INT_FLAG_8822B(v))
  6738. #define BIT_SHIFT_STC_INT_IDX_8822B 8
  6739. #define BIT_MASK_STC_INT_IDX_8822B 0x7
  6740. #define BIT_STC_INT_IDX_8822B(x) \
  6741. (((x) & BIT_MASK_STC_INT_IDX_8822B) << BIT_SHIFT_STC_INT_IDX_8822B)
  6742. #define BITS_STC_INT_IDX_8822B \
  6743. (BIT_MASK_STC_INT_IDX_8822B << BIT_SHIFT_STC_INT_IDX_8822B)
  6744. #define BIT_CLEAR_STC_INT_IDX_8822B(x) ((x) & (~BITS_STC_INT_IDX_8822B))
  6745. #define BIT_GET_STC_INT_IDX_8822B(x) \
  6746. (((x) >> BIT_SHIFT_STC_INT_IDX_8822B) & BIT_MASK_STC_INT_IDX_8822B)
  6747. #define BIT_SET_STC_INT_IDX_8822B(x, v) \
  6748. (BIT_CLEAR_STC_INT_IDX_8822B(x) | BIT_STC_INT_IDX_8822B(v))
  6749. #define BIT_SHIFT_STC_INT_REALTIME_CS_8822B 0
  6750. #define BIT_MASK_STC_INT_REALTIME_CS_8822B 0x3f
  6751. #define BIT_STC_INT_REALTIME_CS_8822B(x) \
  6752. (((x) & BIT_MASK_STC_INT_REALTIME_CS_8822B) \
  6753. << BIT_SHIFT_STC_INT_REALTIME_CS_8822B)
  6754. #define BITS_STC_INT_REALTIME_CS_8822B \
  6755. (BIT_MASK_STC_INT_REALTIME_CS_8822B \
  6756. << BIT_SHIFT_STC_INT_REALTIME_CS_8822B)
  6757. #define BIT_CLEAR_STC_INT_REALTIME_CS_8822B(x) \
  6758. ((x) & (~BITS_STC_INT_REALTIME_CS_8822B))
  6759. #define BIT_GET_STC_INT_REALTIME_CS_8822B(x) \
  6760. (((x) >> BIT_SHIFT_STC_INT_REALTIME_CS_8822B) & \
  6761. BIT_MASK_STC_INT_REALTIME_CS_8822B)
  6762. #define BIT_SET_STC_INT_REALTIME_CS_8822B(x, v) \
  6763. (BIT_CLEAR_STC_INT_REALTIME_CS_8822B(x) | \
  6764. BIT_STC_INT_REALTIME_CS_8822B(v))
  6765. /* 2 REG_ST_INT_CFG_8822B(PCIE STATE CHANGE INTERRUPT CONFIGURATION) */
  6766. #define BIT_STC_INT_GRP_EN_8822B BIT(31)
  6767. #define BIT_SHIFT_STC_INT_EXPECT_LS_8822B 8
  6768. #define BIT_MASK_STC_INT_EXPECT_LS_8822B 0x3f
  6769. #define BIT_STC_INT_EXPECT_LS_8822B(x) \
  6770. (((x) & BIT_MASK_STC_INT_EXPECT_LS_8822B) \
  6771. << BIT_SHIFT_STC_INT_EXPECT_LS_8822B)
  6772. #define BITS_STC_INT_EXPECT_LS_8822B \
  6773. (BIT_MASK_STC_INT_EXPECT_LS_8822B << BIT_SHIFT_STC_INT_EXPECT_LS_8822B)
  6774. #define BIT_CLEAR_STC_INT_EXPECT_LS_8822B(x) \
  6775. ((x) & (~BITS_STC_INT_EXPECT_LS_8822B))
  6776. #define BIT_GET_STC_INT_EXPECT_LS_8822B(x) \
  6777. (((x) >> BIT_SHIFT_STC_INT_EXPECT_LS_8822B) & \
  6778. BIT_MASK_STC_INT_EXPECT_LS_8822B)
  6779. #define BIT_SET_STC_INT_EXPECT_LS_8822B(x, v) \
  6780. (BIT_CLEAR_STC_INT_EXPECT_LS_8822B(x) | BIT_STC_INT_EXPECT_LS_8822B(v))
  6781. #define BIT_SHIFT_STC_INT_EXPECT_CS_8822B 0
  6782. #define BIT_MASK_STC_INT_EXPECT_CS_8822B 0x3f
  6783. #define BIT_STC_INT_EXPECT_CS_8822B(x) \
  6784. (((x) & BIT_MASK_STC_INT_EXPECT_CS_8822B) \
  6785. << BIT_SHIFT_STC_INT_EXPECT_CS_8822B)
  6786. #define BITS_STC_INT_EXPECT_CS_8822B \
  6787. (BIT_MASK_STC_INT_EXPECT_CS_8822B << BIT_SHIFT_STC_INT_EXPECT_CS_8822B)
  6788. #define BIT_CLEAR_STC_INT_EXPECT_CS_8822B(x) \
  6789. ((x) & (~BITS_STC_INT_EXPECT_CS_8822B))
  6790. #define BIT_GET_STC_INT_EXPECT_CS_8822B(x) \
  6791. (((x) >> BIT_SHIFT_STC_INT_EXPECT_CS_8822B) & \
  6792. BIT_MASK_STC_INT_EXPECT_CS_8822B)
  6793. #define BIT_SET_STC_INT_EXPECT_CS_8822B(x, v) \
  6794. (BIT_CLEAR_STC_INT_EXPECT_CS_8822B(x) | BIT_STC_INT_EXPECT_CS_8822B(v))
  6795. /* 2 REG_CMU_DLY_CTRL_8822B(PCIE PHY CLOCK MGT UNIT DELAY CONTROL ) */
  6796. #define BIT_CMU_DLY_EN_8822B BIT(31)
  6797. #define BIT_CMU_DLY_MODE_8822B BIT(30)
  6798. #define BIT_SHIFT_CMU_DLY_PRE_DIV_8822B 0
  6799. #define BIT_MASK_CMU_DLY_PRE_DIV_8822B 0xff
  6800. #define BIT_CMU_DLY_PRE_DIV_8822B(x) \
  6801. (((x) & BIT_MASK_CMU_DLY_PRE_DIV_8822B) \
  6802. << BIT_SHIFT_CMU_DLY_PRE_DIV_8822B)
  6803. #define BITS_CMU_DLY_PRE_DIV_8822B \
  6804. (BIT_MASK_CMU_DLY_PRE_DIV_8822B << BIT_SHIFT_CMU_DLY_PRE_DIV_8822B)
  6805. #define BIT_CLEAR_CMU_DLY_PRE_DIV_8822B(x) ((x) & (~BITS_CMU_DLY_PRE_DIV_8822B))
  6806. #define BIT_GET_CMU_DLY_PRE_DIV_8822B(x) \
  6807. (((x) >> BIT_SHIFT_CMU_DLY_PRE_DIV_8822B) & \
  6808. BIT_MASK_CMU_DLY_PRE_DIV_8822B)
  6809. #define BIT_SET_CMU_DLY_PRE_DIV_8822B(x, v) \
  6810. (BIT_CLEAR_CMU_DLY_PRE_DIV_8822B(x) | BIT_CMU_DLY_PRE_DIV_8822B(v))
  6811. /* 2 REG_CMU_DLY_CFG_8822B(PCIE PHY CLOCK MGT UNIT DELAY CONFIGURATION ) */
  6812. #define BIT_SHIFT_CMU_DLY_LTR_A2I_8822B 24
  6813. #define BIT_MASK_CMU_DLY_LTR_A2I_8822B 0xff
  6814. #define BIT_CMU_DLY_LTR_A2I_8822B(x) \
  6815. (((x) & BIT_MASK_CMU_DLY_LTR_A2I_8822B) \
  6816. << BIT_SHIFT_CMU_DLY_LTR_A2I_8822B)
  6817. #define BITS_CMU_DLY_LTR_A2I_8822B \
  6818. (BIT_MASK_CMU_DLY_LTR_A2I_8822B << BIT_SHIFT_CMU_DLY_LTR_A2I_8822B)
  6819. #define BIT_CLEAR_CMU_DLY_LTR_A2I_8822B(x) ((x) & (~BITS_CMU_DLY_LTR_A2I_8822B))
  6820. #define BIT_GET_CMU_DLY_LTR_A2I_8822B(x) \
  6821. (((x) >> BIT_SHIFT_CMU_DLY_LTR_A2I_8822B) & \
  6822. BIT_MASK_CMU_DLY_LTR_A2I_8822B)
  6823. #define BIT_SET_CMU_DLY_LTR_A2I_8822B(x, v) \
  6824. (BIT_CLEAR_CMU_DLY_LTR_A2I_8822B(x) | BIT_CMU_DLY_LTR_A2I_8822B(v))
  6825. #define BIT_SHIFT_CMU_DLY_LTR_I2A_8822B 16
  6826. #define BIT_MASK_CMU_DLY_LTR_I2A_8822B 0xff
  6827. #define BIT_CMU_DLY_LTR_I2A_8822B(x) \
  6828. (((x) & BIT_MASK_CMU_DLY_LTR_I2A_8822B) \
  6829. << BIT_SHIFT_CMU_DLY_LTR_I2A_8822B)
  6830. #define BITS_CMU_DLY_LTR_I2A_8822B \
  6831. (BIT_MASK_CMU_DLY_LTR_I2A_8822B << BIT_SHIFT_CMU_DLY_LTR_I2A_8822B)
  6832. #define BIT_CLEAR_CMU_DLY_LTR_I2A_8822B(x) ((x) & (~BITS_CMU_DLY_LTR_I2A_8822B))
  6833. #define BIT_GET_CMU_DLY_LTR_I2A_8822B(x) \
  6834. (((x) >> BIT_SHIFT_CMU_DLY_LTR_I2A_8822B) & \
  6835. BIT_MASK_CMU_DLY_LTR_I2A_8822B)
  6836. #define BIT_SET_CMU_DLY_LTR_I2A_8822B(x, v) \
  6837. (BIT_CLEAR_CMU_DLY_LTR_I2A_8822B(x) | BIT_CMU_DLY_LTR_I2A_8822B(v))
  6838. #define BIT_SHIFT_CMU_DLY_LTR_IDLE_8822B 8
  6839. #define BIT_MASK_CMU_DLY_LTR_IDLE_8822B 0xff
  6840. #define BIT_CMU_DLY_LTR_IDLE_8822B(x) \
  6841. (((x) & BIT_MASK_CMU_DLY_LTR_IDLE_8822B) \
  6842. << BIT_SHIFT_CMU_DLY_LTR_IDLE_8822B)
  6843. #define BITS_CMU_DLY_LTR_IDLE_8822B \
  6844. (BIT_MASK_CMU_DLY_LTR_IDLE_8822B << BIT_SHIFT_CMU_DLY_LTR_IDLE_8822B)
  6845. #define BIT_CLEAR_CMU_DLY_LTR_IDLE_8822B(x) \
  6846. ((x) & (~BITS_CMU_DLY_LTR_IDLE_8822B))
  6847. #define BIT_GET_CMU_DLY_LTR_IDLE_8822B(x) \
  6848. (((x) >> BIT_SHIFT_CMU_DLY_LTR_IDLE_8822B) & \
  6849. BIT_MASK_CMU_DLY_LTR_IDLE_8822B)
  6850. #define BIT_SET_CMU_DLY_LTR_IDLE_8822B(x, v) \
  6851. (BIT_CLEAR_CMU_DLY_LTR_IDLE_8822B(x) | BIT_CMU_DLY_LTR_IDLE_8822B(v))
  6852. #define BIT_SHIFT_CMU_DLY_LTR_ACT_8822B 0
  6853. #define BIT_MASK_CMU_DLY_LTR_ACT_8822B 0xff
  6854. #define BIT_CMU_DLY_LTR_ACT_8822B(x) \
  6855. (((x) & BIT_MASK_CMU_DLY_LTR_ACT_8822B) \
  6856. << BIT_SHIFT_CMU_DLY_LTR_ACT_8822B)
  6857. #define BITS_CMU_DLY_LTR_ACT_8822B \
  6858. (BIT_MASK_CMU_DLY_LTR_ACT_8822B << BIT_SHIFT_CMU_DLY_LTR_ACT_8822B)
  6859. #define BIT_CLEAR_CMU_DLY_LTR_ACT_8822B(x) ((x) & (~BITS_CMU_DLY_LTR_ACT_8822B))
  6860. #define BIT_GET_CMU_DLY_LTR_ACT_8822B(x) \
  6861. (((x) >> BIT_SHIFT_CMU_DLY_LTR_ACT_8822B) & \
  6862. BIT_MASK_CMU_DLY_LTR_ACT_8822B)
  6863. #define BIT_SET_CMU_DLY_LTR_ACT_8822B(x, v) \
  6864. (BIT_CLEAR_CMU_DLY_LTR_ACT_8822B(x) | BIT_CMU_DLY_LTR_ACT_8822B(v))
  6865. /* 2 REG_H2CQ_TXBD_DESA_8822B */
  6866. #define BIT_SHIFT_H2CQ_TXBD_DESA_8822B 0
  6867. #define BIT_MASK_H2CQ_TXBD_DESA_8822B 0xffffffffffffffffL
  6868. #define BIT_H2CQ_TXBD_DESA_8822B(x) \
  6869. (((x) & BIT_MASK_H2CQ_TXBD_DESA_8822B) \
  6870. << BIT_SHIFT_H2CQ_TXBD_DESA_8822B)
  6871. #define BITS_H2CQ_TXBD_DESA_8822B \
  6872. (BIT_MASK_H2CQ_TXBD_DESA_8822B << BIT_SHIFT_H2CQ_TXBD_DESA_8822B)
  6873. #define BIT_CLEAR_H2CQ_TXBD_DESA_8822B(x) ((x) & (~BITS_H2CQ_TXBD_DESA_8822B))
  6874. #define BIT_GET_H2CQ_TXBD_DESA_8822B(x) \
  6875. (((x) >> BIT_SHIFT_H2CQ_TXBD_DESA_8822B) & \
  6876. BIT_MASK_H2CQ_TXBD_DESA_8822B)
  6877. #define BIT_SET_H2CQ_TXBD_DESA_8822B(x, v) \
  6878. (BIT_CLEAR_H2CQ_TXBD_DESA_8822B(x) | BIT_H2CQ_TXBD_DESA_8822B(v))
  6879. /* 2 REG_H2CQ_TXBD_NUM_8822B */
  6880. #define BIT_PCIE_H2CQ_FLAG_8822B BIT(14)
  6881. #define BIT_SHIFT_H2CQ_DESC_MODE_8822B 12
  6882. #define BIT_MASK_H2CQ_DESC_MODE_8822B 0x3
  6883. #define BIT_H2CQ_DESC_MODE_8822B(x) \
  6884. (((x) & BIT_MASK_H2CQ_DESC_MODE_8822B) \
  6885. << BIT_SHIFT_H2CQ_DESC_MODE_8822B)
  6886. #define BITS_H2CQ_DESC_MODE_8822B \
  6887. (BIT_MASK_H2CQ_DESC_MODE_8822B << BIT_SHIFT_H2CQ_DESC_MODE_8822B)
  6888. #define BIT_CLEAR_H2CQ_DESC_MODE_8822B(x) ((x) & (~BITS_H2CQ_DESC_MODE_8822B))
  6889. #define BIT_GET_H2CQ_DESC_MODE_8822B(x) \
  6890. (((x) >> BIT_SHIFT_H2CQ_DESC_MODE_8822B) & \
  6891. BIT_MASK_H2CQ_DESC_MODE_8822B)
  6892. #define BIT_SET_H2CQ_DESC_MODE_8822B(x, v) \
  6893. (BIT_CLEAR_H2CQ_DESC_MODE_8822B(x) | BIT_H2CQ_DESC_MODE_8822B(v))
  6894. #define BIT_SHIFT_H2CQ_DESC_NUM_8822B 0
  6895. #define BIT_MASK_H2CQ_DESC_NUM_8822B 0xfff
  6896. #define BIT_H2CQ_DESC_NUM_8822B(x) \
  6897. (((x) & BIT_MASK_H2CQ_DESC_NUM_8822B) << BIT_SHIFT_H2CQ_DESC_NUM_8822B)
  6898. #define BITS_H2CQ_DESC_NUM_8822B \
  6899. (BIT_MASK_H2CQ_DESC_NUM_8822B << BIT_SHIFT_H2CQ_DESC_NUM_8822B)
  6900. #define BIT_CLEAR_H2CQ_DESC_NUM_8822B(x) ((x) & (~BITS_H2CQ_DESC_NUM_8822B))
  6901. #define BIT_GET_H2CQ_DESC_NUM_8822B(x) \
  6902. (((x) >> BIT_SHIFT_H2CQ_DESC_NUM_8822B) & BIT_MASK_H2CQ_DESC_NUM_8822B)
  6903. #define BIT_SET_H2CQ_DESC_NUM_8822B(x, v) \
  6904. (BIT_CLEAR_H2CQ_DESC_NUM_8822B(x) | BIT_H2CQ_DESC_NUM_8822B(v))
  6905. /* 2 REG_H2CQ_TXBD_IDX_8822B */
  6906. #define BIT_SHIFT_H2CQ_HW_IDX_8822B 16
  6907. #define BIT_MASK_H2CQ_HW_IDX_8822B 0xfff
  6908. #define BIT_H2CQ_HW_IDX_8822B(x) \
  6909. (((x) & BIT_MASK_H2CQ_HW_IDX_8822B) << BIT_SHIFT_H2CQ_HW_IDX_8822B)
  6910. #define BITS_H2CQ_HW_IDX_8822B \
  6911. (BIT_MASK_H2CQ_HW_IDX_8822B << BIT_SHIFT_H2CQ_HW_IDX_8822B)
  6912. #define BIT_CLEAR_H2CQ_HW_IDX_8822B(x) ((x) & (~BITS_H2CQ_HW_IDX_8822B))
  6913. #define BIT_GET_H2CQ_HW_IDX_8822B(x) \
  6914. (((x) >> BIT_SHIFT_H2CQ_HW_IDX_8822B) & BIT_MASK_H2CQ_HW_IDX_8822B)
  6915. #define BIT_SET_H2CQ_HW_IDX_8822B(x, v) \
  6916. (BIT_CLEAR_H2CQ_HW_IDX_8822B(x) | BIT_H2CQ_HW_IDX_8822B(v))
  6917. #define BIT_SHIFT_H2CQ_HOST_IDX_8822B 0
  6918. #define BIT_MASK_H2CQ_HOST_IDX_8822B 0xfff
  6919. #define BIT_H2CQ_HOST_IDX_8822B(x) \
  6920. (((x) & BIT_MASK_H2CQ_HOST_IDX_8822B) << BIT_SHIFT_H2CQ_HOST_IDX_8822B)
  6921. #define BITS_H2CQ_HOST_IDX_8822B \
  6922. (BIT_MASK_H2CQ_HOST_IDX_8822B << BIT_SHIFT_H2CQ_HOST_IDX_8822B)
  6923. #define BIT_CLEAR_H2CQ_HOST_IDX_8822B(x) ((x) & (~BITS_H2CQ_HOST_IDX_8822B))
  6924. #define BIT_GET_H2CQ_HOST_IDX_8822B(x) \
  6925. (((x) >> BIT_SHIFT_H2CQ_HOST_IDX_8822B) & BIT_MASK_H2CQ_HOST_IDX_8822B)
  6926. #define BIT_SET_H2CQ_HOST_IDX_8822B(x, v) \
  6927. (BIT_CLEAR_H2CQ_HOST_IDX_8822B(x) | BIT_H2CQ_HOST_IDX_8822B(v))
  6928. /* 2 REG_H2CQ_CSR_8822B[31:0] (H2CQ CONTROL AND STATUS) */
  6929. #define BIT_H2CQ_FULL_8822B BIT(31)
  6930. #define BIT_CLR_H2CQ_HOST_IDX_8822B BIT(16)
  6931. #define BIT_CLR_H2CQ_HW_IDX_8822B BIT(8)
  6932. #define BIT_STOP_H2CQ_8822B BIT(0)
  6933. /* 2 REG_CHANGE_PCIE_SPEED_8822B */
  6934. #define BIT_CHANGE_PCIE_SPEED_8822B BIT(18)
  6935. #define BIT_SHIFT_GEN1_GEN2_8822B 16
  6936. #define BIT_MASK_GEN1_GEN2_8822B 0x3
  6937. #define BIT_GEN1_GEN2_8822B(x) \
  6938. (((x) & BIT_MASK_GEN1_GEN2_8822B) << BIT_SHIFT_GEN1_GEN2_8822B)
  6939. #define BITS_GEN1_GEN2_8822B \
  6940. (BIT_MASK_GEN1_GEN2_8822B << BIT_SHIFT_GEN1_GEN2_8822B)
  6941. #define BIT_CLEAR_GEN1_GEN2_8822B(x) ((x) & (~BITS_GEN1_GEN2_8822B))
  6942. #define BIT_GET_GEN1_GEN2_8822B(x) \
  6943. (((x) >> BIT_SHIFT_GEN1_GEN2_8822B) & BIT_MASK_GEN1_GEN2_8822B)
  6944. #define BIT_SET_GEN1_GEN2_8822B(x, v) \
  6945. (BIT_CLEAR_GEN1_GEN2_8822B(x) | BIT_GEN1_GEN2_8822B(v))
  6946. #define BIT_SHIFT_RXDMA_ERROR_COUNTER_8822B 8
  6947. #define BIT_MASK_RXDMA_ERROR_COUNTER_8822B 0xff
  6948. #define BIT_RXDMA_ERROR_COUNTER_8822B(x) \
  6949. (((x) & BIT_MASK_RXDMA_ERROR_COUNTER_8822B) \
  6950. << BIT_SHIFT_RXDMA_ERROR_COUNTER_8822B)
  6951. #define BITS_RXDMA_ERROR_COUNTER_8822B \
  6952. (BIT_MASK_RXDMA_ERROR_COUNTER_8822B \
  6953. << BIT_SHIFT_RXDMA_ERROR_COUNTER_8822B)
  6954. #define BIT_CLEAR_RXDMA_ERROR_COUNTER_8822B(x) \
  6955. ((x) & (~BITS_RXDMA_ERROR_COUNTER_8822B))
  6956. #define BIT_GET_RXDMA_ERROR_COUNTER_8822B(x) \
  6957. (((x) >> BIT_SHIFT_RXDMA_ERROR_COUNTER_8822B) & \
  6958. BIT_MASK_RXDMA_ERROR_COUNTER_8822B)
  6959. #define BIT_SET_RXDMA_ERROR_COUNTER_8822B(x, v) \
  6960. (BIT_CLEAR_RXDMA_ERROR_COUNTER_8822B(x) | \
  6961. BIT_RXDMA_ERROR_COUNTER_8822B(v))
  6962. #define BIT_TXDMA_ERROR_HANDLE_STATUS_8822B BIT(7)
  6963. #define BIT_TXDMA_ERROR_PULSE_8822B BIT(6)
  6964. #define BIT_TXDMA_STUCK_ERROR_HANDLE_ENABLE_8822B BIT(5)
  6965. #define BIT_TXDMA_RETURN_ERROR_ENABLE_8822B BIT(4)
  6966. #define BIT_RXDMA_ERROR_HANDLE_STATUS_8822B BIT(3)
  6967. #define BIT_SHIFT_AUTO_HANG_RELEASE_8822B 0
  6968. #define BIT_MASK_AUTO_HANG_RELEASE_8822B 0x7
  6969. #define BIT_AUTO_HANG_RELEASE_8822B(x) \
  6970. (((x) & BIT_MASK_AUTO_HANG_RELEASE_8822B) \
  6971. << BIT_SHIFT_AUTO_HANG_RELEASE_8822B)
  6972. #define BITS_AUTO_HANG_RELEASE_8822B \
  6973. (BIT_MASK_AUTO_HANG_RELEASE_8822B << BIT_SHIFT_AUTO_HANG_RELEASE_8822B)
  6974. #define BIT_CLEAR_AUTO_HANG_RELEASE_8822B(x) \
  6975. ((x) & (~BITS_AUTO_HANG_RELEASE_8822B))
  6976. #define BIT_GET_AUTO_HANG_RELEASE_8822B(x) \
  6977. (((x) >> BIT_SHIFT_AUTO_HANG_RELEASE_8822B) & \
  6978. BIT_MASK_AUTO_HANG_RELEASE_8822B)
  6979. #define BIT_SET_AUTO_HANG_RELEASE_8822B(x, v) \
  6980. (BIT_CLEAR_AUTO_HANG_RELEASE_8822B(x) | BIT_AUTO_HANG_RELEASE_8822B(v))
  6981. /* 2 REG_OLD_DEHANG_8822B */
  6982. #define BIT_OLD_DEHANG_8822B BIT(1)
  6983. /* 2 REG_Q0_INFO_8822B */
  6984. #define BIT_SHIFT_QUEUEMACID_Q0_V1_8822B 25
  6985. #define BIT_MASK_QUEUEMACID_Q0_V1_8822B 0x7f
  6986. #define BIT_QUEUEMACID_Q0_V1_8822B(x) \
  6987. (((x) & BIT_MASK_QUEUEMACID_Q0_V1_8822B) \
  6988. << BIT_SHIFT_QUEUEMACID_Q0_V1_8822B)
  6989. #define BITS_QUEUEMACID_Q0_V1_8822B \
  6990. (BIT_MASK_QUEUEMACID_Q0_V1_8822B << BIT_SHIFT_QUEUEMACID_Q0_V1_8822B)
  6991. #define BIT_CLEAR_QUEUEMACID_Q0_V1_8822B(x) \
  6992. ((x) & (~BITS_QUEUEMACID_Q0_V1_8822B))
  6993. #define BIT_GET_QUEUEMACID_Q0_V1_8822B(x) \
  6994. (((x) >> BIT_SHIFT_QUEUEMACID_Q0_V1_8822B) & \
  6995. BIT_MASK_QUEUEMACID_Q0_V1_8822B)
  6996. #define BIT_SET_QUEUEMACID_Q0_V1_8822B(x, v) \
  6997. (BIT_CLEAR_QUEUEMACID_Q0_V1_8822B(x) | BIT_QUEUEMACID_Q0_V1_8822B(v))
  6998. #define BIT_SHIFT_QUEUEAC_Q0_V1_8822B 23
  6999. #define BIT_MASK_QUEUEAC_Q0_V1_8822B 0x3
  7000. #define BIT_QUEUEAC_Q0_V1_8822B(x) \
  7001. (((x) & BIT_MASK_QUEUEAC_Q0_V1_8822B) << BIT_SHIFT_QUEUEAC_Q0_V1_8822B)
  7002. #define BITS_QUEUEAC_Q0_V1_8822B \
  7003. (BIT_MASK_QUEUEAC_Q0_V1_8822B << BIT_SHIFT_QUEUEAC_Q0_V1_8822B)
  7004. #define BIT_CLEAR_QUEUEAC_Q0_V1_8822B(x) ((x) & (~BITS_QUEUEAC_Q0_V1_8822B))
  7005. #define BIT_GET_QUEUEAC_Q0_V1_8822B(x) \
  7006. (((x) >> BIT_SHIFT_QUEUEAC_Q0_V1_8822B) & BIT_MASK_QUEUEAC_Q0_V1_8822B)
  7007. #define BIT_SET_QUEUEAC_Q0_V1_8822B(x, v) \
  7008. (BIT_CLEAR_QUEUEAC_Q0_V1_8822B(x) | BIT_QUEUEAC_Q0_V1_8822B(v))
  7009. #define BIT_TIDEMPTY_Q0_V1_8822B BIT(22)
  7010. #define BIT_SHIFT_TAIL_PKT_Q0_V2_8822B 11
  7011. #define BIT_MASK_TAIL_PKT_Q0_V2_8822B 0x7ff
  7012. #define BIT_TAIL_PKT_Q0_V2_8822B(x) \
  7013. (((x) & BIT_MASK_TAIL_PKT_Q0_V2_8822B) \
  7014. << BIT_SHIFT_TAIL_PKT_Q0_V2_8822B)
  7015. #define BITS_TAIL_PKT_Q0_V2_8822B \
  7016. (BIT_MASK_TAIL_PKT_Q0_V2_8822B << BIT_SHIFT_TAIL_PKT_Q0_V2_8822B)
  7017. #define BIT_CLEAR_TAIL_PKT_Q0_V2_8822B(x) ((x) & (~BITS_TAIL_PKT_Q0_V2_8822B))
  7018. #define BIT_GET_TAIL_PKT_Q0_V2_8822B(x) \
  7019. (((x) >> BIT_SHIFT_TAIL_PKT_Q0_V2_8822B) & \
  7020. BIT_MASK_TAIL_PKT_Q0_V2_8822B)
  7021. #define BIT_SET_TAIL_PKT_Q0_V2_8822B(x, v) \
  7022. (BIT_CLEAR_TAIL_PKT_Q0_V2_8822B(x) | BIT_TAIL_PKT_Q0_V2_8822B(v))
  7023. #define BIT_SHIFT_HEAD_PKT_Q0_V1_8822B 0
  7024. #define BIT_MASK_HEAD_PKT_Q0_V1_8822B 0x7ff
  7025. #define BIT_HEAD_PKT_Q0_V1_8822B(x) \
  7026. (((x) & BIT_MASK_HEAD_PKT_Q0_V1_8822B) \
  7027. << BIT_SHIFT_HEAD_PKT_Q0_V1_8822B)
  7028. #define BITS_HEAD_PKT_Q0_V1_8822B \
  7029. (BIT_MASK_HEAD_PKT_Q0_V1_8822B << BIT_SHIFT_HEAD_PKT_Q0_V1_8822B)
  7030. #define BIT_CLEAR_HEAD_PKT_Q0_V1_8822B(x) ((x) & (~BITS_HEAD_PKT_Q0_V1_8822B))
  7031. #define BIT_GET_HEAD_PKT_Q0_V1_8822B(x) \
  7032. (((x) >> BIT_SHIFT_HEAD_PKT_Q0_V1_8822B) & \
  7033. BIT_MASK_HEAD_PKT_Q0_V1_8822B)
  7034. #define BIT_SET_HEAD_PKT_Q0_V1_8822B(x, v) \
  7035. (BIT_CLEAR_HEAD_PKT_Q0_V1_8822B(x) | BIT_HEAD_PKT_Q0_V1_8822B(v))
  7036. /* 2 REG_Q1_INFO_8822B */
  7037. #define BIT_SHIFT_QUEUEMACID_Q1_V1_8822B 25
  7038. #define BIT_MASK_QUEUEMACID_Q1_V1_8822B 0x7f
  7039. #define BIT_QUEUEMACID_Q1_V1_8822B(x) \
  7040. (((x) & BIT_MASK_QUEUEMACID_Q1_V1_8822B) \
  7041. << BIT_SHIFT_QUEUEMACID_Q1_V1_8822B)
  7042. #define BITS_QUEUEMACID_Q1_V1_8822B \
  7043. (BIT_MASK_QUEUEMACID_Q1_V1_8822B << BIT_SHIFT_QUEUEMACID_Q1_V1_8822B)
  7044. #define BIT_CLEAR_QUEUEMACID_Q1_V1_8822B(x) \
  7045. ((x) & (~BITS_QUEUEMACID_Q1_V1_8822B))
  7046. #define BIT_GET_QUEUEMACID_Q1_V1_8822B(x) \
  7047. (((x) >> BIT_SHIFT_QUEUEMACID_Q1_V1_8822B) & \
  7048. BIT_MASK_QUEUEMACID_Q1_V1_8822B)
  7049. #define BIT_SET_QUEUEMACID_Q1_V1_8822B(x, v) \
  7050. (BIT_CLEAR_QUEUEMACID_Q1_V1_8822B(x) | BIT_QUEUEMACID_Q1_V1_8822B(v))
  7051. #define BIT_SHIFT_QUEUEAC_Q1_V1_8822B 23
  7052. #define BIT_MASK_QUEUEAC_Q1_V1_8822B 0x3
  7053. #define BIT_QUEUEAC_Q1_V1_8822B(x) \
  7054. (((x) & BIT_MASK_QUEUEAC_Q1_V1_8822B) << BIT_SHIFT_QUEUEAC_Q1_V1_8822B)
  7055. #define BITS_QUEUEAC_Q1_V1_8822B \
  7056. (BIT_MASK_QUEUEAC_Q1_V1_8822B << BIT_SHIFT_QUEUEAC_Q1_V1_8822B)
  7057. #define BIT_CLEAR_QUEUEAC_Q1_V1_8822B(x) ((x) & (~BITS_QUEUEAC_Q1_V1_8822B))
  7058. #define BIT_GET_QUEUEAC_Q1_V1_8822B(x) \
  7059. (((x) >> BIT_SHIFT_QUEUEAC_Q1_V1_8822B) & BIT_MASK_QUEUEAC_Q1_V1_8822B)
  7060. #define BIT_SET_QUEUEAC_Q1_V1_8822B(x, v) \
  7061. (BIT_CLEAR_QUEUEAC_Q1_V1_8822B(x) | BIT_QUEUEAC_Q1_V1_8822B(v))
  7062. #define BIT_TIDEMPTY_Q1_V1_8822B BIT(22)
  7063. #define BIT_SHIFT_TAIL_PKT_Q1_V2_8822B 11
  7064. #define BIT_MASK_TAIL_PKT_Q1_V2_8822B 0x7ff
  7065. #define BIT_TAIL_PKT_Q1_V2_8822B(x) \
  7066. (((x) & BIT_MASK_TAIL_PKT_Q1_V2_8822B) \
  7067. << BIT_SHIFT_TAIL_PKT_Q1_V2_8822B)
  7068. #define BITS_TAIL_PKT_Q1_V2_8822B \
  7069. (BIT_MASK_TAIL_PKT_Q1_V2_8822B << BIT_SHIFT_TAIL_PKT_Q1_V2_8822B)
  7070. #define BIT_CLEAR_TAIL_PKT_Q1_V2_8822B(x) ((x) & (~BITS_TAIL_PKT_Q1_V2_8822B))
  7071. #define BIT_GET_TAIL_PKT_Q1_V2_8822B(x) \
  7072. (((x) >> BIT_SHIFT_TAIL_PKT_Q1_V2_8822B) & \
  7073. BIT_MASK_TAIL_PKT_Q1_V2_8822B)
  7074. #define BIT_SET_TAIL_PKT_Q1_V2_8822B(x, v) \
  7075. (BIT_CLEAR_TAIL_PKT_Q1_V2_8822B(x) | BIT_TAIL_PKT_Q1_V2_8822B(v))
  7076. #define BIT_SHIFT_HEAD_PKT_Q1_V1_8822B 0
  7077. #define BIT_MASK_HEAD_PKT_Q1_V1_8822B 0x7ff
  7078. #define BIT_HEAD_PKT_Q1_V1_8822B(x) \
  7079. (((x) & BIT_MASK_HEAD_PKT_Q1_V1_8822B) \
  7080. << BIT_SHIFT_HEAD_PKT_Q1_V1_8822B)
  7081. #define BITS_HEAD_PKT_Q1_V1_8822B \
  7082. (BIT_MASK_HEAD_PKT_Q1_V1_8822B << BIT_SHIFT_HEAD_PKT_Q1_V1_8822B)
  7083. #define BIT_CLEAR_HEAD_PKT_Q1_V1_8822B(x) ((x) & (~BITS_HEAD_PKT_Q1_V1_8822B))
  7084. #define BIT_GET_HEAD_PKT_Q1_V1_8822B(x) \
  7085. (((x) >> BIT_SHIFT_HEAD_PKT_Q1_V1_8822B) & \
  7086. BIT_MASK_HEAD_PKT_Q1_V1_8822B)
  7087. #define BIT_SET_HEAD_PKT_Q1_V1_8822B(x, v) \
  7088. (BIT_CLEAR_HEAD_PKT_Q1_V1_8822B(x) | BIT_HEAD_PKT_Q1_V1_8822B(v))
  7089. /* 2 REG_Q2_INFO_8822B */
  7090. #define BIT_SHIFT_QUEUEMACID_Q2_V1_8822B 25
  7091. #define BIT_MASK_QUEUEMACID_Q2_V1_8822B 0x7f
  7092. #define BIT_QUEUEMACID_Q2_V1_8822B(x) \
  7093. (((x) & BIT_MASK_QUEUEMACID_Q2_V1_8822B) \
  7094. << BIT_SHIFT_QUEUEMACID_Q2_V1_8822B)
  7095. #define BITS_QUEUEMACID_Q2_V1_8822B \
  7096. (BIT_MASK_QUEUEMACID_Q2_V1_8822B << BIT_SHIFT_QUEUEMACID_Q2_V1_8822B)
  7097. #define BIT_CLEAR_QUEUEMACID_Q2_V1_8822B(x) \
  7098. ((x) & (~BITS_QUEUEMACID_Q2_V1_8822B))
  7099. #define BIT_GET_QUEUEMACID_Q2_V1_8822B(x) \
  7100. (((x) >> BIT_SHIFT_QUEUEMACID_Q2_V1_8822B) & \
  7101. BIT_MASK_QUEUEMACID_Q2_V1_8822B)
  7102. #define BIT_SET_QUEUEMACID_Q2_V1_8822B(x, v) \
  7103. (BIT_CLEAR_QUEUEMACID_Q2_V1_8822B(x) | BIT_QUEUEMACID_Q2_V1_8822B(v))
  7104. #define BIT_SHIFT_QUEUEAC_Q2_V1_8822B 23
  7105. #define BIT_MASK_QUEUEAC_Q2_V1_8822B 0x3
  7106. #define BIT_QUEUEAC_Q2_V1_8822B(x) \
  7107. (((x) & BIT_MASK_QUEUEAC_Q2_V1_8822B) << BIT_SHIFT_QUEUEAC_Q2_V1_8822B)
  7108. #define BITS_QUEUEAC_Q2_V1_8822B \
  7109. (BIT_MASK_QUEUEAC_Q2_V1_8822B << BIT_SHIFT_QUEUEAC_Q2_V1_8822B)
  7110. #define BIT_CLEAR_QUEUEAC_Q2_V1_8822B(x) ((x) & (~BITS_QUEUEAC_Q2_V1_8822B))
  7111. #define BIT_GET_QUEUEAC_Q2_V1_8822B(x) \
  7112. (((x) >> BIT_SHIFT_QUEUEAC_Q2_V1_8822B) & BIT_MASK_QUEUEAC_Q2_V1_8822B)
  7113. #define BIT_SET_QUEUEAC_Q2_V1_8822B(x, v) \
  7114. (BIT_CLEAR_QUEUEAC_Q2_V1_8822B(x) | BIT_QUEUEAC_Q2_V1_8822B(v))
  7115. #define BIT_TIDEMPTY_Q2_V1_8822B BIT(22)
  7116. #define BIT_SHIFT_TAIL_PKT_Q2_V2_8822B 11
  7117. #define BIT_MASK_TAIL_PKT_Q2_V2_8822B 0x7ff
  7118. #define BIT_TAIL_PKT_Q2_V2_8822B(x) \
  7119. (((x) & BIT_MASK_TAIL_PKT_Q2_V2_8822B) \
  7120. << BIT_SHIFT_TAIL_PKT_Q2_V2_8822B)
  7121. #define BITS_TAIL_PKT_Q2_V2_8822B \
  7122. (BIT_MASK_TAIL_PKT_Q2_V2_8822B << BIT_SHIFT_TAIL_PKT_Q2_V2_8822B)
  7123. #define BIT_CLEAR_TAIL_PKT_Q2_V2_8822B(x) ((x) & (~BITS_TAIL_PKT_Q2_V2_8822B))
  7124. #define BIT_GET_TAIL_PKT_Q2_V2_8822B(x) \
  7125. (((x) >> BIT_SHIFT_TAIL_PKT_Q2_V2_8822B) & \
  7126. BIT_MASK_TAIL_PKT_Q2_V2_8822B)
  7127. #define BIT_SET_TAIL_PKT_Q2_V2_8822B(x, v) \
  7128. (BIT_CLEAR_TAIL_PKT_Q2_V2_8822B(x) | BIT_TAIL_PKT_Q2_V2_8822B(v))
  7129. #define BIT_SHIFT_HEAD_PKT_Q2_V1_8822B 0
  7130. #define BIT_MASK_HEAD_PKT_Q2_V1_8822B 0x7ff
  7131. #define BIT_HEAD_PKT_Q2_V1_8822B(x) \
  7132. (((x) & BIT_MASK_HEAD_PKT_Q2_V1_8822B) \
  7133. << BIT_SHIFT_HEAD_PKT_Q2_V1_8822B)
  7134. #define BITS_HEAD_PKT_Q2_V1_8822B \
  7135. (BIT_MASK_HEAD_PKT_Q2_V1_8822B << BIT_SHIFT_HEAD_PKT_Q2_V1_8822B)
  7136. #define BIT_CLEAR_HEAD_PKT_Q2_V1_8822B(x) ((x) & (~BITS_HEAD_PKT_Q2_V1_8822B))
  7137. #define BIT_GET_HEAD_PKT_Q2_V1_8822B(x) \
  7138. (((x) >> BIT_SHIFT_HEAD_PKT_Q2_V1_8822B) & \
  7139. BIT_MASK_HEAD_PKT_Q2_V1_8822B)
  7140. #define BIT_SET_HEAD_PKT_Q2_V1_8822B(x, v) \
  7141. (BIT_CLEAR_HEAD_PKT_Q2_V1_8822B(x) | BIT_HEAD_PKT_Q2_V1_8822B(v))
  7142. /* 2 REG_Q3_INFO_8822B */
  7143. #define BIT_SHIFT_QUEUEMACID_Q3_V1_8822B 25
  7144. #define BIT_MASK_QUEUEMACID_Q3_V1_8822B 0x7f
  7145. #define BIT_QUEUEMACID_Q3_V1_8822B(x) \
  7146. (((x) & BIT_MASK_QUEUEMACID_Q3_V1_8822B) \
  7147. << BIT_SHIFT_QUEUEMACID_Q3_V1_8822B)
  7148. #define BITS_QUEUEMACID_Q3_V1_8822B \
  7149. (BIT_MASK_QUEUEMACID_Q3_V1_8822B << BIT_SHIFT_QUEUEMACID_Q3_V1_8822B)
  7150. #define BIT_CLEAR_QUEUEMACID_Q3_V1_8822B(x) \
  7151. ((x) & (~BITS_QUEUEMACID_Q3_V1_8822B))
  7152. #define BIT_GET_QUEUEMACID_Q3_V1_8822B(x) \
  7153. (((x) >> BIT_SHIFT_QUEUEMACID_Q3_V1_8822B) & \
  7154. BIT_MASK_QUEUEMACID_Q3_V1_8822B)
  7155. #define BIT_SET_QUEUEMACID_Q3_V1_8822B(x, v) \
  7156. (BIT_CLEAR_QUEUEMACID_Q3_V1_8822B(x) | BIT_QUEUEMACID_Q3_V1_8822B(v))
  7157. #define BIT_SHIFT_QUEUEAC_Q3_V1_8822B 23
  7158. #define BIT_MASK_QUEUEAC_Q3_V1_8822B 0x3
  7159. #define BIT_QUEUEAC_Q3_V1_8822B(x) \
  7160. (((x) & BIT_MASK_QUEUEAC_Q3_V1_8822B) << BIT_SHIFT_QUEUEAC_Q3_V1_8822B)
  7161. #define BITS_QUEUEAC_Q3_V1_8822B \
  7162. (BIT_MASK_QUEUEAC_Q3_V1_8822B << BIT_SHIFT_QUEUEAC_Q3_V1_8822B)
  7163. #define BIT_CLEAR_QUEUEAC_Q3_V1_8822B(x) ((x) & (~BITS_QUEUEAC_Q3_V1_8822B))
  7164. #define BIT_GET_QUEUEAC_Q3_V1_8822B(x) \
  7165. (((x) >> BIT_SHIFT_QUEUEAC_Q3_V1_8822B) & BIT_MASK_QUEUEAC_Q3_V1_8822B)
  7166. #define BIT_SET_QUEUEAC_Q3_V1_8822B(x, v) \
  7167. (BIT_CLEAR_QUEUEAC_Q3_V1_8822B(x) | BIT_QUEUEAC_Q3_V1_8822B(v))
  7168. #define BIT_TIDEMPTY_Q3_V1_8822B BIT(22)
  7169. #define BIT_SHIFT_TAIL_PKT_Q3_V2_8822B 11
  7170. #define BIT_MASK_TAIL_PKT_Q3_V2_8822B 0x7ff
  7171. #define BIT_TAIL_PKT_Q3_V2_8822B(x) \
  7172. (((x) & BIT_MASK_TAIL_PKT_Q3_V2_8822B) \
  7173. << BIT_SHIFT_TAIL_PKT_Q3_V2_8822B)
  7174. #define BITS_TAIL_PKT_Q3_V2_8822B \
  7175. (BIT_MASK_TAIL_PKT_Q3_V2_8822B << BIT_SHIFT_TAIL_PKT_Q3_V2_8822B)
  7176. #define BIT_CLEAR_TAIL_PKT_Q3_V2_8822B(x) ((x) & (~BITS_TAIL_PKT_Q3_V2_8822B))
  7177. #define BIT_GET_TAIL_PKT_Q3_V2_8822B(x) \
  7178. (((x) >> BIT_SHIFT_TAIL_PKT_Q3_V2_8822B) & \
  7179. BIT_MASK_TAIL_PKT_Q3_V2_8822B)
  7180. #define BIT_SET_TAIL_PKT_Q3_V2_8822B(x, v) \
  7181. (BIT_CLEAR_TAIL_PKT_Q3_V2_8822B(x) | BIT_TAIL_PKT_Q3_V2_8822B(v))
  7182. #define BIT_SHIFT_HEAD_PKT_Q3_V1_8822B 0
  7183. #define BIT_MASK_HEAD_PKT_Q3_V1_8822B 0x7ff
  7184. #define BIT_HEAD_PKT_Q3_V1_8822B(x) \
  7185. (((x) & BIT_MASK_HEAD_PKT_Q3_V1_8822B) \
  7186. << BIT_SHIFT_HEAD_PKT_Q3_V1_8822B)
  7187. #define BITS_HEAD_PKT_Q3_V1_8822B \
  7188. (BIT_MASK_HEAD_PKT_Q3_V1_8822B << BIT_SHIFT_HEAD_PKT_Q3_V1_8822B)
  7189. #define BIT_CLEAR_HEAD_PKT_Q3_V1_8822B(x) ((x) & (~BITS_HEAD_PKT_Q3_V1_8822B))
  7190. #define BIT_GET_HEAD_PKT_Q3_V1_8822B(x) \
  7191. (((x) >> BIT_SHIFT_HEAD_PKT_Q3_V1_8822B) & \
  7192. BIT_MASK_HEAD_PKT_Q3_V1_8822B)
  7193. #define BIT_SET_HEAD_PKT_Q3_V1_8822B(x, v) \
  7194. (BIT_CLEAR_HEAD_PKT_Q3_V1_8822B(x) | BIT_HEAD_PKT_Q3_V1_8822B(v))
  7195. /* 2 REG_MGQ_INFO_8822B */
  7196. #define BIT_SHIFT_QUEUEMACID_MGQ_V1_8822B 25
  7197. #define BIT_MASK_QUEUEMACID_MGQ_V1_8822B 0x7f
  7198. #define BIT_QUEUEMACID_MGQ_V1_8822B(x) \
  7199. (((x) & BIT_MASK_QUEUEMACID_MGQ_V1_8822B) \
  7200. << BIT_SHIFT_QUEUEMACID_MGQ_V1_8822B)
  7201. #define BITS_QUEUEMACID_MGQ_V1_8822B \
  7202. (BIT_MASK_QUEUEMACID_MGQ_V1_8822B << BIT_SHIFT_QUEUEMACID_MGQ_V1_8822B)
  7203. #define BIT_CLEAR_QUEUEMACID_MGQ_V1_8822B(x) \
  7204. ((x) & (~BITS_QUEUEMACID_MGQ_V1_8822B))
  7205. #define BIT_GET_QUEUEMACID_MGQ_V1_8822B(x) \
  7206. (((x) >> BIT_SHIFT_QUEUEMACID_MGQ_V1_8822B) & \
  7207. BIT_MASK_QUEUEMACID_MGQ_V1_8822B)
  7208. #define BIT_SET_QUEUEMACID_MGQ_V1_8822B(x, v) \
  7209. (BIT_CLEAR_QUEUEMACID_MGQ_V1_8822B(x) | BIT_QUEUEMACID_MGQ_V1_8822B(v))
  7210. #define BIT_SHIFT_QUEUEAC_MGQ_V1_8822B 23
  7211. #define BIT_MASK_QUEUEAC_MGQ_V1_8822B 0x3
  7212. #define BIT_QUEUEAC_MGQ_V1_8822B(x) \
  7213. (((x) & BIT_MASK_QUEUEAC_MGQ_V1_8822B) \
  7214. << BIT_SHIFT_QUEUEAC_MGQ_V1_8822B)
  7215. #define BITS_QUEUEAC_MGQ_V1_8822B \
  7216. (BIT_MASK_QUEUEAC_MGQ_V1_8822B << BIT_SHIFT_QUEUEAC_MGQ_V1_8822B)
  7217. #define BIT_CLEAR_QUEUEAC_MGQ_V1_8822B(x) ((x) & (~BITS_QUEUEAC_MGQ_V1_8822B))
  7218. #define BIT_GET_QUEUEAC_MGQ_V1_8822B(x) \
  7219. (((x) >> BIT_SHIFT_QUEUEAC_MGQ_V1_8822B) & \
  7220. BIT_MASK_QUEUEAC_MGQ_V1_8822B)
  7221. #define BIT_SET_QUEUEAC_MGQ_V1_8822B(x, v) \
  7222. (BIT_CLEAR_QUEUEAC_MGQ_V1_8822B(x) | BIT_QUEUEAC_MGQ_V1_8822B(v))
  7223. #define BIT_TIDEMPTY_MGQ_V1_8822B BIT(22)
  7224. #define BIT_SHIFT_TAIL_PKT_MGQ_V2_8822B 11
  7225. #define BIT_MASK_TAIL_PKT_MGQ_V2_8822B 0x7ff
  7226. #define BIT_TAIL_PKT_MGQ_V2_8822B(x) \
  7227. (((x) & BIT_MASK_TAIL_PKT_MGQ_V2_8822B) \
  7228. << BIT_SHIFT_TAIL_PKT_MGQ_V2_8822B)
  7229. #define BITS_TAIL_PKT_MGQ_V2_8822B \
  7230. (BIT_MASK_TAIL_PKT_MGQ_V2_8822B << BIT_SHIFT_TAIL_PKT_MGQ_V2_8822B)
  7231. #define BIT_CLEAR_TAIL_PKT_MGQ_V2_8822B(x) ((x) & (~BITS_TAIL_PKT_MGQ_V2_8822B))
  7232. #define BIT_GET_TAIL_PKT_MGQ_V2_8822B(x) \
  7233. (((x) >> BIT_SHIFT_TAIL_PKT_MGQ_V2_8822B) & \
  7234. BIT_MASK_TAIL_PKT_MGQ_V2_8822B)
  7235. #define BIT_SET_TAIL_PKT_MGQ_V2_8822B(x, v) \
  7236. (BIT_CLEAR_TAIL_PKT_MGQ_V2_8822B(x) | BIT_TAIL_PKT_MGQ_V2_8822B(v))
  7237. #define BIT_SHIFT_HEAD_PKT_MGQ_V1_8822B 0
  7238. #define BIT_MASK_HEAD_PKT_MGQ_V1_8822B 0x7ff
  7239. #define BIT_HEAD_PKT_MGQ_V1_8822B(x) \
  7240. (((x) & BIT_MASK_HEAD_PKT_MGQ_V1_8822B) \
  7241. << BIT_SHIFT_HEAD_PKT_MGQ_V1_8822B)
  7242. #define BITS_HEAD_PKT_MGQ_V1_8822B \
  7243. (BIT_MASK_HEAD_PKT_MGQ_V1_8822B << BIT_SHIFT_HEAD_PKT_MGQ_V1_8822B)
  7244. #define BIT_CLEAR_HEAD_PKT_MGQ_V1_8822B(x) ((x) & (~BITS_HEAD_PKT_MGQ_V1_8822B))
  7245. #define BIT_GET_HEAD_PKT_MGQ_V1_8822B(x) \
  7246. (((x) >> BIT_SHIFT_HEAD_PKT_MGQ_V1_8822B) & \
  7247. BIT_MASK_HEAD_PKT_MGQ_V1_8822B)
  7248. #define BIT_SET_HEAD_PKT_MGQ_V1_8822B(x, v) \
  7249. (BIT_CLEAR_HEAD_PKT_MGQ_V1_8822B(x) | BIT_HEAD_PKT_MGQ_V1_8822B(v))
  7250. /* 2 REG_HIQ_INFO_8822B */
  7251. #define BIT_SHIFT_QUEUEMACID_HIQ_V1_8822B 25
  7252. #define BIT_MASK_QUEUEMACID_HIQ_V1_8822B 0x7f
  7253. #define BIT_QUEUEMACID_HIQ_V1_8822B(x) \
  7254. (((x) & BIT_MASK_QUEUEMACID_HIQ_V1_8822B) \
  7255. << BIT_SHIFT_QUEUEMACID_HIQ_V1_8822B)
  7256. #define BITS_QUEUEMACID_HIQ_V1_8822B \
  7257. (BIT_MASK_QUEUEMACID_HIQ_V1_8822B << BIT_SHIFT_QUEUEMACID_HIQ_V1_8822B)
  7258. #define BIT_CLEAR_QUEUEMACID_HIQ_V1_8822B(x) \
  7259. ((x) & (~BITS_QUEUEMACID_HIQ_V1_8822B))
  7260. #define BIT_GET_QUEUEMACID_HIQ_V1_8822B(x) \
  7261. (((x) >> BIT_SHIFT_QUEUEMACID_HIQ_V1_8822B) & \
  7262. BIT_MASK_QUEUEMACID_HIQ_V1_8822B)
  7263. #define BIT_SET_QUEUEMACID_HIQ_V1_8822B(x, v) \
  7264. (BIT_CLEAR_QUEUEMACID_HIQ_V1_8822B(x) | BIT_QUEUEMACID_HIQ_V1_8822B(v))
  7265. #define BIT_SHIFT_QUEUEAC_HIQ_V1_8822B 23
  7266. #define BIT_MASK_QUEUEAC_HIQ_V1_8822B 0x3
  7267. #define BIT_QUEUEAC_HIQ_V1_8822B(x) \
  7268. (((x) & BIT_MASK_QUEUEAC_HIQ_V1_8822B) \
  7269. << BIT_SHIFT_QUEUEAC_HIQ_V1_8822B)
  7270. #define BITS_QUEUEAC_HIQ_V1_8822B \
  7271. (BIT_MASK_QUEUEAC_HIQ_V1_8822B << BIT_SHIFT_QUEUEAC_HIQ_V1_8822B)
  7272. #define BIT_CLEAR_QUEUEAC_HIQ_V1_8822B(x) ((x) & (~BITS_QUEUEAC_HIQ_V1_8822B))
  7273. #define BIT_GET_QUEUEAC_HIQ_V1_8822B(x) \
  7274. (((x) >> BIT_SHIFT_QUEUEAC_HIQ_V1_8822B) & \
  7275. BIT_MASK_QUEUEAC_HIQ_V1_8822B)
  7276. #define BIT_SET_QUEUEAC_HIQ_V1_8822B(x, v) \
  7277. (BIT_CLEAR_QUEUEAC_HIQ_V1_8822B(x) | BIT_QUEUEAC_HIQ_V1_8822B(v))
  7278. #define BIT_TIDEMPTY_HIQ_V1_8822B BIT(22)
  7279. #define BIT_SHIFT_TAIL_PKT_HIQ_V2_8822B 11
  7280. #define BIT_MASK_TAIL_PKT_HIQ_V2_8822B 0x7ff
  7281. #define BIT_TAIL_PKT_HIQ_V2_8822B(x) \
  7282. (((x) & BIT_MASK_TAIL_PKT_HIQ_V2_8822B) \
  7283. << BIT_SHIFT_TAIL_PKT_HIQ_V2_8822B)
  7284. #define BITS_TAIL_PKT_HIQ_V2_8822B \
  7285. (BIT_MASK_TAIL_PKT_HIQ_V2_8822B << BIT_SHIFT_TAIL_PKT_HIQ_V2_8822B)
  7286. #define BIT_CLEAR_TAIL_PKT_HIQ_V2_8822B(x) ((x) & (~BITS_TAIL_PKT_HIQ_V2_8822B))
  7287. #define BIT_GET_TAIL_PKT_HIQ_V2_8822B(x) \
  7288. (((x) >> BIT_SHIFT_TAIL_PKT_HIQ_V2_8822B) & \
  7289. BIT_MASK_TAIL_PKT_HIQ_V2_8822B)
  7290. #define BIT_SET_TAIL_PKT_HIQ_V2_8822B(x, v) \
  7291. (BIT_CLEAR_TAIL_PKT_HIQ_V2_8822B(x) | BIT_TAIL_PKT_HIQ_V2_8822B(v))
  7292. #define BIT_SHIFT_HEAD_PKT_HIQ_V1_8822B 0
  7293. #define BIT_MASK_HEAD_PKT_HIQ_V1_8822B 0x7ff
  7294. #define BIT_HEAD_PKT_HIQ_V1_8822B(x) \
  7295. (((x) & BIT_MASK_HEAD_PKT_HIQ_V1_8822B) \
  7296. << BIT_SHIFT_HEAD_PKT_HIQ_V1_8822B)
  7297. #define BITS_HEAD_PKT_HIQ_V1_8822B \
  7298. (BIT_MASK_HEAD_PKT_HIQ_V1_8822B << BIT_SHIFT_HEAD_PKT_HIQ_V1_8822B)
  7299. #define BIT_CLEAR_HEAD_PKT_HIQ_V1_8822B(x) ((x) & (~BITS_HEAD_PKT_HIQ_V1_8822B))
  7300. #define BIT_GET_HEAD_PKT_HIQ_V1_8822B(x) \
  7301. (((x) >> BIT_SHIFT_HEAD_PKT_HIQ_V1_8822B) & \
  7302. BIT_MASK_HEAD_PKT_HIQ_V1_8822B)
  7303. #define BIT_SET_HEAD_PKT_HIQ_V1_8822B(x, v) \
  7304. (BIT_CLEAR_HEAD_PKT_HIQ_V1_8822B(x) | BIT_HEAD_PKT_HIQ_V1_8822B(v))
  7305. /* 2 REG_BCNQ_INFO_8822B */
  7306. #define BIT_SHIFT_BCNQ_HEAD_PG_V1_8822B 0
  7307. #define BIT_MASK_BCNQ_HEAD_PG_V1_8822B 0xfff
  7308. #define BIT_BCNQ_HEAD_PG_V1_8822B(x) \
  7309. (((x) & BIT_MASK_BCNQ_HEAD_PG_V1_8822B) \
  7310. << BIT_SHIFT_BCNQ_HEAD_PG_V1_8822B)
  7311. #define BITS_BCNQ_HEAD_PG_V1_8822B \
  7312. (BIT_MASK_BCNQ_HEAD_PG_V1_8822B << BIT_SHIFT_BCNQ_HEAD_PG_V1_8822B)
  7313. #define BIT_CLEAR_BCNQ_HEAD_PG_V1_8822B(x) ((x) & (~BITS_BCNQ_HEAD_PG_V1_8822B))
  7314. #define BIT_GET_BCNQ_HEAD_PG_V1_8822B(x) \
  7315. (((x) >> BIT_SHIFT_BCNQ_HEAD_PG_V1_8822B) & \
  7316. BIT_MASK_BCNQ_HEAD_PG_V1_8822B)
  7317. #define BIT_SET_BCNQ_HEAD_PG_V1_8822B(x, v) \
  7318. (BIT_CLEAR_BCNQ_HEAD_PG_V1_8822B(x) | BIT_BCNQ_HEAD_PG_V1_8822B(v))
  7319. /* 2 REG_TXPKT_EMPTY_8822B */
  7320. #define BIT_BCNQ_EMPTY_8822B BIT(11)
  7321. #define BIT_HQQ_EMPTY_8822B BIT(10)
  7322. #define BIT_MQQ_EMPTY_8822B BIT(9)
  7323. #define BIT_MGQ_CPU_EMPTY_8822B BIT(8)
  7324. #define BIT_AC7Q_EMPTY_8822B BIT(7)
  7325. #define BIT_AC6Q_EMPTY_8822B BIT(6)
  7326. #define BIT_AC5Q_EMPTY_8822B BIT(5)
  7327. #define BIT_AC4Q_EMPTY_8822B BIT(4)
  7328. #define BIT_AC3Q_EMPTY_8822B BIT(3)
  7329. #define BIT_AC2Q_EMPTY_8822B BIT(2)
  7330. #define BIT_AC1Q_EMPTY_8822B BIT(1)
  7331. #define BIT_AC0Q_EMPTY_8822B BIT(0)
  7332. /* 2 REG_CPU_MGQ_INFO_8822B */
  7333. #define BIT_BCN1_POLL_8822B BIT(30)
  7334. #define BIT_CPUMGT_POLL_8822B BIT(29)
  7335. #define BIT_BCN_POLL_8822B BIT(28)
  7336. #define BIT_CPUMGQ_FW_NUM_V1_8822B BIT(12)
  7337. #define BIT_SHIFT_FW_FREE_TAIL_V1_8822B 0
  7338. #define BIT_MASK_FW_FREE_TAIL_V1_8822B 0xfff
  7339. #define BIT_FW_FREE_TAIL_V1_8822B(x) \
  7340. (((x) & BIT_MASK_FW_FREE_TAIL_V1_8822B) \
  7341. << BIT_SHIFT_FW_FREE_TAIL_V1_8822B)
  7342. #define BITS_FW_FREE_TAIL_V1_8822B \
  7343. (BIT_MASK_FW_FREE_TAIL_V1_8822B << BIT_SHIFT_FW_FREE_TAIL_V1_8822B)
  7344. #define BIT_CLEAR_FW_FREE_TAIL_V1_8822B(x) ((x) & (~BITS_FW_FREE_TAIL_V1_8822B))
  7345. #define BIT_GET_FW_FREE_TAIL_V1_8822B(x) \
  7346. (((x) >> BIT_SHIFT_FW_FREE_TAIL_V1_8822B) & \
  7347. BIT_MASK_FW_FREE_TAIL_V1_8822B)
  7348. #define BIT_SET_FW_FREE_TAIL_V1_8822B(x, v) \
  7349. (BIT_CLEAR_FW_FREE_TAIL_V1_8822B(x) | BIT_FW_FREE_TAIL_V1_8822B(v))
  7350. /* 2 REG_FWHW_TXQ_CTRL_8822B */
  7351. #define BIT_RTS_LIMIT_IN_OFDM_8822B BIT(23)
  7352. #define BIT_EN_BCNQ_DL_8822B BIT(22)
  7353. #define BIT_EN_RD_RESP_NAV_BK_8822B BIT(21)
  7354. #define BIT_EN_WR_FREE_TAIL_8822B BIT(20)
  7355. #define BIT_SHIFT_EN_QUEUE_RPT_8822B 8
  7356. #define BIT_MASK_EN_QUEUE_RPT_8822B 0xff
  7357. #define BIT_EN_QUEUE_RPT_8822B(x) \
  7358. (((x) & BIT_MASK_EN_QUEUE_RPT_8822B) << BIT_SHIFT_EN_QUEUE_RPT_8822B)
  7359. #define BITS_EN_QUEUE_RPT_8822B \
  7360. (BIT_MASK_EN_QUEUE_RPT_8822B << BIT_SHIFT_EN_QUEUE_RPT_8822B)
  7361. #define BIT_CLEAR_EN_QUEUE_RPT_8822B(x) ((x) & (~BITS_EN_QUEUE_RPT_8822B))
  7362. #define BIT_GET_EN_QUEUE_RPT_8822B(x) \
  7363. (((x) >> BIT_SHIFT_EN_QUEUE_RPT_8822B) & BIT_MASK_EN_QUEUE_RPT_8822B)
  7364. #define BIT_SET_EN_QUEUE_RPT_8822B(x, v) \
  7365. (BIT_CLEAR_EN_QUEUE_RPT_8822B(x) | BIT_EN_QUEUE_RPT_8822B(v))
  7366. #define BIT_EN_RTY_BK_8822B BIT(7)
  7367. #define BIT_EN_USE_INI_RAT_8822B BIT(6)
  7368. #define BIT_EN_RTS_NAV_BK_8822B BIT(5)
  7369. #define BIT_DIS_SSN_CHECK_8822B BIT(4)
  7370. #define BIT_MACID_MATCH_RTS_8822B BIT(3)
  7371. #define BIT_EN_BCN_TRXRPT_V1_8822B BIT(2)
  7372. #define BIT_EN_FTMACKRPT_8822B BIT(1)
  7373. #define BIT_EN_FTMRPT_8822B BIT(0)
  7374. /* 2 REG_DATAFB_SEL_8822B */
  7375. #define BIT_SHIFT__R_DATA_FALLBACK_SEL_8822B 0
  7376. #define BIT_MASK__R_DATA_FALLBACK_SEL_8822B 0x3
  7377. #define BIT__R_DATA_FALLBACK_SEL_8822B(x) \
  7378. (((x) & BIT_MASK__R_DATA_FALLBACK_SEL_8822B) \
  7379. << BIT_SHIFT__R_DATA_FALLBACK_SEL_8822B)
  7380. #define BITS__R_DATA_FALLBACK_SEL_8822B \
  7381. (BIT_MASK__R_DATA_FALLBACK_SEL_8822B \
  7382. << BIT_SHIFT__R_DATA_FALLBACK_SEL_8822B)
  7383. #define BIT_CLEAR__R_DATA_FALLBACK_SEL_8822B(x) \
  7384. ((x) & (~BITS__R_DATA_FALLBACK_SEL_8822B))
  7385. #define BIT_GET__R_DATA_FALLBACK_SEL_8822B(x) \
  7386. (((x) >> BIT_SHIFT__R_DATA_FALLBACK_SEL_8822B) & \
  7387. BIT_MASK__R_DATA_FALLBACK_SEL_8822B)
  7388. #define BIT_SET__R_DATA_FALLBACK_SEL_8822B(x, v) \
  7389. (BIT_CLEAR__R_DATA_FALLBACK_SEL_8822B(x) | \
  7390. BIT__R_DATA_FALLBACK_SEL_8822B(v))
  7391. /* 2 REG_BCNQ_BDNY_V1_8822B */
  7392. #define BIT_SHIFT_BCNQ_PGBNDY_V1_8822B 0
  7393. #define BIT_MASK_BCNQ_PGBNDY_V1_8822B 0xfff
  7394. #define BIT_BCNQ_PGBNDY_V1_8822B(x) \
  7395. (((x) & BIT_MASK_BCNQ_PGBNDY_V1_8822B) \
  7396. << BIT_SHIFT_BCNQ_PGBNDY_V1_8822B)
  7397. #define BITS_BCNQ_PGBNDY_V1_8822B \
  7398. (BIT_MASK_BCNQ_PGBNDY_V1_8822B << BIT_SHIFT_BCNQ_PGBNDY_V1_8822B)
  7399. #define BIT_CLEAR_BCNQ_PGBNDY_V1_8822B(x) ((x) & (~BITS_BCNQ_PGBNDY_V1_8822B))
  7400. #define BIT_GET_BCNQ_PGBNDY_V1_8822B(x) \
  7401. (((x) >> BIT_SHIFT_BCNQ_PGBNDY_V1_8822B) & \
  7402. BIT_MASK_BCNQ_PGBNDY_V1_8822B)
  7403. #define BIT_SET_BCNQ_PGBNDY_V1_8822B(x, v) \
  7404. (BIT_CLEAR_BCNQ_PGBNDY_V1_8822B(x) | BIT_BCNQ_PGBNDY_V1_8822B(v))
  7405. /* 2 REG_LIFETIME_EN_8822B */
  7406. #define BIT_BT_INT_CPU_8822B BIT(7)
  7407. #define BIT_BT_INT_PTA_8822B BIT(6)
  7408. #define BIT_EN_CTRL_RTYBIT_8822B BIT(4)
  7409. #define BIT_LIFETIME_BK_EN_8822B BIT(3)
  7410. #define BIT_LIFETIME_BE_EN_8822B BIT(2)
  7411. #define BIT_LIFETIME_VI_EN_8822B BIT(1)
  7412. #define BIT_LIFETIME_VO_EN_8822B BIT(0)
  7413. /* 2 REG_SPEC_SIFS_8822B */
  7414. #define BIT_SHIFT_SPEC_SIFS_OFDM_PTCL_8822B 8
  7415. #define BIT_MASK_SPEC_SIFS_OFDM_PTCL_8822B 0xff
  7416. #define BIT_SPEC_SIFS_OFDM_PTCL_8822B(x) \
  7417. (((x) & BIT_MASK_SPEC_SIFS_OFDM_PTCL_8822B) \
  7418. << BIT_SHIFT_SPEC_SIFS_OFDM_PTCL_8822B)
  7419. #define BITS_SPEC_SIFS_OFDM_PTCL_8822B \
  7420. (BIT_MASK_SPEC_SIFS_OFDM_PTCL_8822B \
  7421. << BIT_SHIFT_SPEC_SIFS_OFDM_PTCL_8822B)
  7422. #define BIT_CLEAR_SPEC_SIFS_OFDM_PTCL_8822B(x) \
  7423. ((x) & (~BITS_SPEC_SIFS_OFDM_PTCL_8822B))
  7424. #define BIT_GET_SPEC_SIFS_OFDM_PTCL_8822B(x) \
  7425. (((x) >> BIT_SHIFT_SPEC_SIFS_OFDM_PTCL_8822B) & \
  7426. BIT_MASK_SPEC_SIFS_OFDM_PTCL_8822B)
  7427. #define BIT_SET_SPEC_SIFS_OFDM_PTCL_8822B(x, v) \
  7428. (BIT_CLEAR_SPEC_SIFS_OFDM_PTCL_8822B(x) | \
  7429. BIT_SPEC_SIFS_OFDM_PTCL_8822B(v))
  7430. #define BIT_SHIFT_SPEC_SIFS_CCK_PTCL_8822B 0
  7431. #define BIT_MASK_SPEC_SIFS_CCK_PTCL_8822B 0xff
  7432. #define BIT_SPEC_SIFS_CCK_PTCL_8822B(x) \
  7433. (((x) & BIT_MASK_SPEC_SIFS_CCK_PTCL_8822B) \
  7434. << BIT_SHIFT_SPEC_SIFS_CCK_PTCL_8822B)
  7435. #define BITS_SPEC_SIFS_CCK_PTCL_8822B \
  7436. (BIT_MASK_SPEC_SIFS_CCK_PTCL_8822B \
  7437. << BIT_SHIFT_SPEC_SIFS_CCK_PTCL_8822B)
  7438. #define BIT_CLEAR_SPEC_SIFS_CCK_PTCL_8822B(x) \
  7439. ((x) & (~BITS_SPEC_SIFS_CCK_PTCL_8822B))
  7440. #define BIT_GET_SPEC_SIFS_CCK_PTCL_8822B(x) \
  7441. (((x) >> BIT_SHIFT_SPEC_SIFS_CCK_PTCL_8822B) & \
  7442. BIT_MASK_SPEC_SIFS_CCK_PTCL_8822B)
  7443. #define BIT_SET_SPEC_SIFS_CCK_PTCL_8822B(x, v) \
  7444. (BIT_CLEAR_SPEC_SIFS_CCK_PTCL_8822B(x) | \
  7445. BIT_SPEC_SIFS_CCK_PTCL_8822B(v))
  7446. /* 2 REG_RETRY_LIMIT_8822B */
  7447. #define BIT_SHIFT_SRL_8822B 8
  7448. #define BIT_MASK_SRL_8822B 0x3f
  7449. #define BIT_SRL_8822B(x) (((x) & BIT_MASK_SRL_8822B) << BIT_SHIFT_SRL_8822B)
  7450. #define BITS_SRL_8822B (BIT_MASK_SRL_8822B << BIT_SHIFT_SRL_8822B)
  7451. #define BIT_CLEAR_SRL_8822B(x) ((x) & (~BITS_SRL_8822B))
  7452. #define BIT_GET_SRL_8822B(x) (((x) >> BIT_SHIFT_SRL_8822B) & BIT_MASK_SRL_8822B)
  7453. #define BIT_SET_SRL_8822B(x, v) (BIT_CLEAR_SRL_8822B(x) | BIT_SRL_8822B(v))
  7454. #define BIT_SHIFT_LRL_8822B 0
  7455. #define BIT_MASK_LRL_8822B 0x3f
  7456. #define BIT_LRL_8822B(x) (((x) & BIT_MASK_LRL_8822B) << BIT_SHIFT_LRL_8822B)
  7457. #define BITS_LRL_8822B (BIT_MASK_LRL_8822B << BIT_SHIFT_LRL_8822B)
  7458. #define BIT_CLEAR_LRL_8822B(x) ((x) & (~BITS_LRL_8822B))
  7459. #define BIT_GET_LRL_8822B(x) (((x) >> BIT_SHIFT_LRL_8822B) & BIT_MASK_LRL_8822B)
  7460. #define BIT_SET_LRL_8822B(x, v) (BIT_CLEAR_LRL_8822B(x) | BIT_LRL_8822B(v))
  7461. /* 2 REG_TXBF_CTRL_8822B */
  7462. #define BIT_R_ENABLE_NDPA_8822B BIT(31)
  7463. #define BIT_USE_NDPA_PARAMETER_8822B BIT(30)
  7464. #define BIT_R_PROP_TXBF_8822B BIT(29)
  7465. #define BIT_R_EN_NDPA_INT_8822B BIT(28)
  7466. #define BIT_R_TXBF1_80M_8822B BIT(27)
  7467. #define BIT_R_TXBF1_40M_8822B BIT(26)
  7468. #define BIT_R_TXBF1_20M_8822B BIT(25)
  7469. #define BIT_SHIFT_R_TXBF1_AID_8822B 16
  7470. #define BIT_MASK_R_TXBF1_AID_8822B 0x1ff
  7471. #define BIT_R_TXBF1_AID_8822B(x) \
  7472. (((x) & BIT_MASK_R_TXBF1_AID_8822B) << BIT_SHIFT_R_TXBF1_AID_8822B)
  7473. #define BITS_R_TXBF1_AID_8822B \
  7474. (BIT_MASK_R_TXBF1_AID_8822B << BIT_SHIFT_R_TXBF1_AID_8822B)
  7475. #define BIT_CLEAR_R_TXBF1_AID_8822B(x) ((x) & (~BITS_R_TXBF1_AID_8822B))
  7476. #define BIT_GET_R_TXBF1_AID_8822B(x) \
  7477. (((x) >> BIT_SHIFT_R_TXBF1_AID_8822B) & BIT_MASK_R_TXBF1_AID_8822B)
  7478. #define BIT_SET_R_TXBF1_AID_8822B(x, v) \
  7479. (BIT_CLEAR_R_TXBF1_AID_8822B(x) | BIT_R_TXBF1_AID_8822B(v))
  7480. #define BIT_DIS_NDP_BFEN_8822B BIT(15)
  7481. #define BIT_R_TXBCN_NOBLOCK_NDP_8822B BIT(14)
  7482. #define BIT_R_TXBF0_80M_8822B BIT(11)
  7483. #define BIT_R_TXBF0_40M_8822B BIT(10)
  7484. #define BIT_R_TXBF0_20M_8822B BIT(9)
  7485. #define BIT_SHIFT_R_TXBF0_AID_8822B 0
  7486. #define BIT_MASK_R_TXBF0_AID_8822B 0x1ff
  7487. #define BIT_R_TXBF0_AID_8822B(x) \
  7488. (((x) & BIT_MASK_R_TXBF0_AID_8822B) << BIT_SHIFT_R_TXBF0_AID_8822B)
  7489. #define BITS_R_TXBF0_AID_8822B \
  7490. (BIT_MASK_R_TXBF0_AID_8822B << BIT_SHIFT_R_TXBF0_AID_8822B)
  7491. #define BIT_CLEAR_R_TXBF0_AID_8822B(x) ((x) & (~BITS_R_TXBF0_AID_8822B))
  7492. #define BIT_GET_R_TXBF0_AID_8822B(x) \
  7493. (((x) >> BIT_SHIFT_R_TXBF0_AID_8822B) & BIT_MASK_R_TXBF0_AID_8822B)
  7494. #define BIT_SET_R_TXBF0_AID_8822B(x, v) \
  7495. (BIT_CLEAR_R_TXBF0_AID_8822B(x) | BIT_R_TXBF0_AID_8822B(v))
  7496. /* 2 REG_DARFRC_8822B */
  7497. #define BIT_SHIFT_DARF_RC8_8822B (56 & CPU_OPT_WIDTH)
  7498. #define BIT_MASK_DARF_RC8_8822B 0x1f
  7499. #define BIT_DARF_RC8_8822B(x) \
  7500. (((x) & BIT_MASK_DARF_RC8_8822B) << BIT_SHIFT_DARF_RC8_8822B)
  7501. #define BITS_DARF_RC8_8822B \
  7502. (BIT_MASK_DARF_RC8_8822B << BIT_SHIFT_DARF_RC8_8822B)
  7503. #define BIT_CLEAR_DARF_RC8_8822B(x) ((x) & (~BITS_DARF_RC8_8822B))
  7504. #define BIT_GET_DARF_RC8_8822B(x) \
  7505. (((x) >> BIT_SHIFT_DARF_RC8_8822B) & BIT_MASK_DARF_RC8_8822B)
  7506. #define BIT_SET_DARF_RC8_8822B(x, v) \
  7507. (BIT_CLEAR_DARF_RC8_8822B(x) | BIT_DARF_RC8_8822B(v))
  7508. #define BIT_SHIFT_DARF_RC7_8822B (48 & CPU_OPT_WIDTH)
  7509. #define BIT_MASK_DARF_RC7_8822B 0x1f
  7510. #define BIT_DARF_RC7_8822B(x) \
  7511. (((x) & BIT_MASK_DARF_RC7_8822B) << BIT_SHIFT_DARF_RC7_8822B)
  7512. #define BITS_DARF_RC7_8822B \
  7513. (BIT_MASK_DARF_RC7_8822B << BIT_SHIFT_DARF_RC7_8822B)
  7514. #define BIT_CLEAR_DARF_RC7_8822B(x) ((x) & (~BITS_DARF_RC7_8822B))
  7515. #define BIT_GET_DARF_RC7_8822B(x) \
  7516. (((x) >> BIT_SHIFT_DARF_RC7_8822B) & BIT_MASK_DARF_RC7_8822B)
  7517. #define BIT_SET_DARF_RC7_8822B(x, v) \
  7518. (BIT_CLEAR_DARF_RC7_8822B(x) | BIT_DARF_RC7_8822B(v))
  7519. #define BIT_SHIFT_DARF_RC6_8822B (40 & CPU_OPT_WIDTH)
  7520. #define BIT_MASK_DARF_RC6_8822B 0x1f
  7521. #define BIT_DARF_RC6_8822B(x) \
  7522. (((x) & BIT_MASK_DARF_RC6_8822B) << BIT_SHIFT_DARF_RC6_8822B)
  7523. #define BITS_DARF_RC6_8822B \
  7524. (BIT_MASK_DARF_RC6_8822B << BIT_SHIFT_DARF_RC6_8822B)
  7525. #define BIT_CLEAR_DARF_RC6_8822B(x) ((x) & (~BITS_DARF_RC6_8822B))
  7526. #define BIT_GET_DARF_RC6_8822B(x) \
  7527. (((x) >> BIT_SHIFT_DARF_RC6_8822B) & BIT_MASK_DARF_RC6_8822B)
  7528. #define BIT_SET_DARF_RC6_8822B(x, v) \
  7529. (BIT_CLEAR_DARF_RC6_8822B(x) | BIT_DARF_RC6_8822B(v))
  7530. #define BIT_SHIFT_DARF_RC5_8822B (32 & CPU_OPT_WIDTH)
  7531. #define BIT_MASK_DARF_RC5_8822B 0x1f
  7532. #define BIT_DARF_RC5_8822B(x) \
  7533. (((x) & BIT_MASK_DARF_RC5_8822B) << BIT_SHIFT_DARF_RC5_8822B)
  7534. #define BITS_DARF_RC5_8822B \
  7535. (BIT_MASK_DARF_RC5_8822B << BIT_SHIFT_DARF_RC5_8822B)
  7536. #define BIT_CLEAR_DARF_RC5_8822B(x) ((x) & (~BITS_DARF_RC5_8822B))
  7537. #define BIT_GET_DARF_RC5_8822B(x) \
  7538. (((x) >> BIT_SHIFT_DARF_RC5_8822B) & BIT_MASK_DARF_RC5_8822B)
  7539. #define BIT_SET_DARF_RC5_8822B(x, v) \
  7540. (BIT_CLEAR_DARF_RC5_8822B(x) | BIT_DARF_RC5_8822B(v))
  7541. #define BIT_SHIFT_DARF_RC4_8822B 24
  7542. #define BIT_MASK_DARF_RC4_8822B 0x1f
  7543. #define BIT_DARF_RC4_8822B(x) \
  7544. (((x) & BIT_MASK_DARF_RC4_8822B) << BIT_SHIFT_DARF_RC4_8822B)
  7545. #define BITS_DARF_RC4_8822B \
  7546. (BIT_MASK_DARF_RC4_8822B << BIT_SHIFT_DARF_RC4_8822B)
  7547. #define BIT_CLEAR_DARF_RC4_8822B(x) ((x) & (~BITS_DARF_RC4_8822B))
  7548. #define BIT_GET_DARF_RC4_8822B(x) \
  7549. (((x) >> BIT_SHIFT_DARF_RC4_8822B) & BIT_MASK_DARF_RC4_8822B)
  7550. #define BIT_SET_DARF_RC4_8822B(x, v) \
  7551. (BIT_CLEAR_DARF_RC4_8822B(x) | BIT_DARF_RC4_8822B(v))
  7552. #define BIT_SHIFT_DARF_RC3_8822B 16
  7553. #define BIT_MASK_DARF_RC3_8822B 0x1f
  7554. #define BIT_DARF_RC3_8822B(x) \
  7555. (((x) & BIT_MASK_DARF_RC3_8822B) << BIT_SHIFT_DARF_RC3_8822B)
  7556. #define BITS_DARF_RC3_8822B \
  7557. (BIT_MASK_DARF_RC3_8822B << BIT_SHIFT_DARF_RC3_8822B)
  7558. #define BIT_CLEAR_DARF_RC3_8822B(x) ((x) & (~BITS_DARF_RC3_8822B))
  7559. #define BIT_GET_DARF_RC3_8822B(x) \
  7560. (((x) >> BIT_SHIFT_DARF_RC3_8822B) & BIT_MASK_DARF_RC3_8822B)
  7561. #define BIT_SET_DARF_RC3_8822B(x, v) \
  7562. (BIT_CLEAR_DARF_RC3_8822B(x) | BIT_DARF_RC3_8822B(v))
  7563. #define BIT_SHIFT_DARF_RC2_8822B 8
  7564. #define BIT_MASK_DARF_RC2_8822B 0x1f
  7565. #define BIT_DARF_RC2_8822B(x) \
  7566. (((x) & BIT_MASK_DARF_RC2_8822B) << BIT_SHIFT_DARF_RC2_8822B)
  7567. #define BITS_DARF_RC2_8822B \
  7568. (BIT_MASK_DARF_RC2_8822B << BIT_SHIFT_DARF_RC2_8822B)
  7569. #define BIT_CLEAR_DARF_RC2_8822B(x) ((x) & (~BITS_DARF_RC2_8822B))
  7570. #define BIT_GET_DARF_RC2_8822B(x) \
  7571. (((x) >> BIT_SHIFT_DARF_RC2_8822B) & BIT_MASK_DARF_RC2_8822B)
  7572. #define BIT_SET_DARF_RC2_8822B(x, v) \
  7573. (BIT_CLEAR_DARF_RC2_8822B(x) | BIT_DARF_RC2_8822B(v))
  7574. #define BIT_SHIFT_DARF_RC1_8822B 0
  7575. #define BIT_MASK_DARF_RC1_8822B 0x1f
  7576. #define BIT_DARF_RC1_8822B(x) \
  7577. (((x) & BIT_MASK_DARF_RC1_8822B) << BIT_SHIFT_DARF_RC1_8822B)
  7578. #define BITS_DARF_RC1_8822B \
  7579. (BIT_MASK_DARF_RC1_8822B << BIT_SHIFT_DARF_RC1_8822B)
  7580. #define BIT_CLEAR_DARF_RC1_8822B(x) ((x) & (~BITS_DARF_RC1_8822B))
  7581. #define BIT_GET_DARF_RC1_8822B(x) \
  7582. (((x) >> BIT_SHIFT_DARF_RC1_8822B) & BIT_MASK_DARF_RC1_8822B)
  7583. #define BIT_SET_DARF_RC1_8822B(x, v) \
  7584. (BIT_CLEAR_DARF_RC1_8822B(x) | BIT_DARF_RC1_8822B(v))
  7585. /* 2 REG_RARFRC_8822B */
  7586. #define BIT_SHIFT_RARF_RC8_8822B (56 & CPU_OPT_WIDTH)
  7587. #define BIT_MASK_RARF_RC8_8822B 0x1f
  7588. #define BIT_RARF_RC8_8822B(x) \
  7589. (((x) & BIT_MASK_RARF_RC8_8822B) << BIT_SHIFT_RARF_RC8_8822B)
  7590. #define BITS_RARF_RC8_8822B \
  7591. (BIT_MASK_RARF_RC8_8822B << BIT_SHIFT_RARF_RC8_8822B)
  7592. #define BIT_CLEAR_RARF_RC8_8822B(x) ((x) & (~BITS_RARF_RC8_8822B))
  7593. #define BIT_GET_RARF_RC8_8822B(x) \
  7594. (((x) >> BIT_SHIFT_RARF_RC8_8822B) & BIT_MASK_RARF_RC8_8822B)
  7595. #define BIT_SET_RARF_RC8_8822B(x, v) \
  7596. (BIT_CLEAR_RARF_RC8_8822B(x) | BIT_RARF_RC8_8822B(v))
  7597. #define BIT_SHIFT_RARF_RC7_8822B (48 & CPU_OPT_WIDTH)
  7598. #define BIT_MASK_RARF_RC7_8822B 0x1f
  7599. #define BIT_RARF_RC7_8822B(x) \
  7600. (((x) & BIT_MASK_RARF_RC7_8822B) << BIT_SHIFT_RARF_RC7_8822B)
  7601. #define BITS_RARF_RC7_8822B \
  7602. (BIT_MASK_RARF_RC7_8822B << BIT_SHIFT_RARF_RC7_8822B)
  7603. #define BIT_CLEAR_RARF_RC7_8822B(x) ((x) & (~BITS_RARF_RC7_8822B))
  7604. #define BIT_GET_RARF_RC7_8822B(x) \
  7605. (((x) >> BIT_SHIFT_RARF_RC7_8822B) & BIT_MASK_RARF_RC7_8822B)
  7606. #define BIT_SET_RARF_RC7_8822B(x, v) \
  7607. (BIT_CLEAR_RARF_RC7_8822B(x) | BIT_RARF_RC7_8822B(v))
  7608. #define BIT_SHIFT_RARF_RC6_8822B (40 & CPU_OPT_WIDTH)
  7609. #define BIT_MASK_RARF_RC6_8822B 0x1f
  7610. #define BIT_RARF_RC6_8822B(x) \
  7611. (((x) & BIT_MASK_RARF_RC6_8822B) << BIT_SHIFT_RARF_RC6_8822B)
  7612. #define BITS_RARF_RC6_8822B \
  7613. (BIT_MASK_RARF_RC6_8822B << BIT_SHIFT_RARF_RC6_8822B)
  7614. #define BIT_CLEAR_RARF_RC6_8822B(x) ((x) & (~BITS_RARF_RC6_8822B))
  7615. #define BIT_GET_RARF_RC6_8822B(x) \
  7616. (((x) >> BIT_SHIFT_RARF_RC6_8822B) & BIT_MASK_RARF_RC6_8822B)
  7617. #define BIT_SET_RARF_RC6_8822B(x, v) \
  7618. (BIT_CLEAR_RARF_RC6_8822B(x) | BIT_RARF_RC6_8822B(v))
  7619. #define BIT_SHIFT_RARF_RC5_8822B (32 & CPU_OPT_WIDTH)
  7620. #define BIT_MASK_RARF_RC5_8822B 0x1f
  7621. #define BIT_RARF_RC5_8822B(x) \
  7622. (((x) & BIT_MASK_RARF_RC5_8822B) << BIT_SHIFT_RARF_RC5_8822B)
  7623. #define BITS_RARF_RC5_8822B \
  7624. (BIT_MASK_RARF_RC5_8822B << BIT_SHIFT_RARF_RC5_8822B)
  7625. #define BIT_CLEAR_RARF_RC5_8822B(x) ((x) & (~BITS_RARF_RC5_8822B))
  7626. #define BIT_GET_RARF_RC5_8822B(x) \
  7627. (((x) >> BIT_SHIFT_RARF_RC5_8822B) & BIT_MASK_RARF_RC5_8822B)
  7628. #define BIT_SET_RARF_RC5_8822B(x, v) \
  7629. (BIT_CLEAR_RARF_RC5_8822B(x) | BIT_RARF_RC5_8822B(v))
  7630. #define BIT_SHIFT_RARF_RC4_8822B 24
  7631. #define BIT_MASK_RARF_RC4_8822B 0x1f
  7632. #define BIT_RARF_RC4_8822B(x) \
  7633. (((x) & BIT_MASK_RARF_RC4_8822B) << BIT_SHIFT_RARF_RC4_8822B)
  7634. #define BITS_RARF_RC4_8822B \
  7635. (BIT_MASK_RARF_RC4_8822B << BIT_SHIFT_RARF_RC4_8822B)
  7636. #define BIT_CLEAR_RARF_RC4_8822B(x) ((x) & (~BITS_RARF_RC4_8822B))
  7637. #define BIT_GET_RARF_RC4_8822B(x) \
  7638. (((x) >> BIT_SHIFT_RARF_RC4_8822B) & BIT_MASK_RARF_RC4_8822B)
  7639. #define BIT_SET_RARF_RC4_8822B(x, v) \
  7640. (BIT_CLEAR_RARF_RC4_8822B(x) | BIT_RARF_RC4_8822B(v))
  7641. #define BIT_SHIFT_RARF_RC3_8822B 16
  7642. #define BIT_MASK_RARF_RC3_8822B 0x1f
  7643. #define BIT_RARF_RC3_8822B(x) \
  7644. (((x) & BIT_MASK_RARF_RC3_8822B) << BIT_SHIFT_RARF_RC3_8822B)
  7645. #define BITS_RARF_RC3_8822B \
  7646. (BIT_MASK_RARF_RC3_8822B << BIT_SHIFT_RARF_RC3_8822B)
  7647. #define BIT_CLEAR_RARF_RC3_8822B(x) ((x) & (~BITS_RARF_RC3_8822B))
  7648. #define BIT_GET_RARF_RC3_8822B(x) \
  7649. (((x) >> BIT_SHIFT_RARF_RC3_8822B) & BIT_MASK_RARF_RC3_8822B)
  7650. #define BIT_SET_RARF_RC3_8822B(x, v) \
  7651. (BIT_CLEAR_RARF_RC3_8822B(x) | BIT_RARF_RC3_8822B(v))
  7652. #define BIT_SHIFT_RARF_RC2_8822B 8
  7653. #define BIT_MASK_RARF_RC2_8822B 0x1f
  7654. #define BIT_RARF_RC2_8822B(x) \
  7655. (((x) & BIT_MASK_RARF_RC2_8822B) << BIT_SHIFT_RARF_RC2_8822B)
  7656. #define BITS_RARF_RC2_8822B \
  7657. (BIT_MASK_RARF_RC2_8822B << BIT_SHIFT_RARF_RC2_8822B)
  7658. #define BIT_CLEAR_RARF_RC2_8822B(x) ((x) & (~BITS_RARF_RC2_8822B))
  7659. #define BIT_GET_RARF_RC2_8822B(x) \
  7660. (((x) >> BIT_SHIFT_RARF_RC2_8822B) & BIT_MASK_RARF_RC2_8822B)
  7661. #define BIT_SET_RARF_RC2_8822B(x, v) \
  7662. (BIT_CLEAR_RARF_RC2_8822B(x) | BIT_RARF_RC2_8822B(v))
  7663. #define BIT_SHIFT_RARF_RC1_8822B 0
  7664. #define BIT_MASK_RARF_RC1_8822B 0x1f
  7665. #define BIT_RARF_RC1_8822B(x) \
  7666. (((x) & BIT_MASK_RARF_RC1_8822B) << BIT_SHIFT_RARF_RC1_8822B)
  7667. #define BITS_RARF_RC1_8822B \
  7668. (BIT_MASK_RARF_RC1_8822B << BIT_SHIFT_RARF_RC1_8822B)
  7669. #define BIT_CLEAR_RARF_RC1_8822B(x) ((x) & (~BITS_RARF_RC1_8822B))
  7670. #define BIT_GET_RARF_RC1_8822B(x) \
  7671. (((x) >> BIT_SHIFT_RARF_RC1_8822B) & BIT_MASK_RARF_RC1_8822B)
  7672. #define BIT_SET_RARF_RC1_8822B(x, v) \
  7673. (BIT_CLEAR_RARF_RC1_8822B(x) | BIT_RARF_RC1_8822B(v))
  7674. /* 2 REG_RRSR_8822B */
  7675. #define BIT_SHIFT_RRSR_RSC_8822B 21
  7676. #define BIT_MASK_RRSR_RSC_8822B 0x3
  7677. #define BIT_RRSR_RSC_8822B(x) \
  7678. (((x) & BIT_MASK_RRSR_RSC_8822B) << BIT_SHIFT_RRSR_RSC_8822B)
  7679. #define BITS_RRSR_RSC_8822B \
  7680. (BIT_MASK_RRSR_RSC_8822B << BIT_SHIFT_RRSR_RSC_8822B)
  7681. #define BIT_CLEAR_RRSR_RSC_8822B(x) ((x) & (~BITS_RRSR_RSC_8822B))
  7682. #define BIT_GET_RRSR_RSC_8822B(x) \
  7683. (((x) >> BIT_SHIFT_RRSR_RSC_8822B) & BIT_MASK_RRSR_RSC_8822B)
  7684. #define BIT_SET_RRSR_RSC_8822B(x, v) \
  7685. (BIT_CLEAR_RRSR_RSC_8822B(x) | BIT_RRSR_RSC_8822B(v))
  7686. #define BIT_RRSR_BW_8822B BIT(20)
  7687. #define BIT_SHIFT_RRSC_BITMAP_8822B 0
  7688. #define BIT_MASK_RRSC_BITMAP_8822B 0xfffff
  7689. #define BIT_RRSC_BITMAP_8822B(x) \
  7690. (((x) & BIT_MASK_RRSC_BITMAP_8822B) << BIT_SHIFT_RRSC_BITMAP_8822B)
  7691. #define BITS_RRSC_BITMAP_8822B \
  7692. (BIT_MASK_RRSC_BITMAP_8822B << BIT_SHIFT_RRSC_BITMAP_8822B)
  7693. #define BIT_CLEAR_RRSC_BITMAP_8822B(x) ((x) & (~BITS_RRSC_BITMAP_8822B))
  7694. #define BIT_GET_RRSC_BITMAP_8822B(x) \
  7695. (((x) >> BIT_SHIFT_RRSC_BITMAP_8822B) & BIT_MASK_RRSC_BITMAP_8822B)
  7696. #define BIT_SET_RRSC_BITMAP_8822B(x, v) \
  7697. (BIT_CLEAR_RRSC_BITMAP_8822B(x) | BIT_RRSC_BITMAP_8822B(v))
  7698. /* 2 REG_ARFR0_8822B */
  7699. #define BIT_SHIFT_ARFR0_V1_8822B 0
  7700. #define BIT_MASK_ARFR0_V1_8822B 0xffffffffffffffffL
  7701. #define BIT_ARFR0_V1_8822B(x) \
  7702. (((x) & BIT_MASK_ARFR0_V1_8822B) << BIT_SHIFT_ARFR0_V1_8822B)
  7703. #define BITS_ARFR0_V1_8822B \
  7704. (BIT_MASK_ARFR0_V1_8822B << BIT_SHIFT_ARFR0_V1_8822B)
  7705. #define BIT_CLEAR_ARFR0_V1_8822B(x) ((x) & (~BITS_ARFR0_V1_8822B))
  7706. #define BIT_GET_ARFR0_V1_8822B(x) \
  7707. (((x) >> BIT_SHIFT_ARFR0_V1_8822B) & BIT_MASK_ARFR0_V1_8822B)
  7708. #define BIT_SET_ARFR0_V1_8822B(x, v) \
  7709. (BIT_CLEAR_ARFR0_V1_8822B(x) | BIT_ARFR0_V1_8822B(v))
  7710. /* 2 REG_ARFR1_V1_8822B */
  7711. #define BIT_SHIFT_ARFR1_V1_8822B 0
  7712. #define BIT_MASK_ARFR1_V1_8822B 0xffffffffffffffffL
  7713. #define BIT_ARFR1_V1_8822B(x) \
  7714. (((x) & BIT_MASK_ARFR1_V1_8822B) << BIT_SHIFT_ARFR1_V1_8822B)
  7715. #define BITS_ARFR1_V1_8822B \
  7716. (BIT_MASK_ARFR1_V1_8822B << BIT_SHIFT_ARFR1_V1_8822B)
  7717. #define BIT_CLEAR_ARFR1_V1_8822B(x) ((x) & (~BITS_ARFR1_V1_8822B))
  7718. #define BIT_GET_ARFR1_V1_8822B(x) \
  7719. (((x) >> BIT_SHIFT_ARFR1_V1_8822B) & BIT_MASK_ARFR1_V1_8822B)
  7720. #define BIT_SET_ARFR1_V1_8822B(x, v) \
  7721. (BIT_CLEAR_ARFR1_V1_8822B(x) | BIT_ARFR1_V1_8822B(v))
  7722. /* 2 REG_CCK_CHECK_8822B */
  7723. #define BIT_CHECK_CCK_EN_8822B BIT(7)
  7724. #define BIT_EN_BCN_PKT_REL_8822B BIT(6)
  7725. #define BIT_BCN_PORT_SEL_8822B BIT(5)
  7726. #define BIT_MOREDATA_BYPASS_8822B BIT(4)
  7727. #define BIT_EN_CLR_CMD_REL_BCN_PKT_8822B BIT(3)
  7728. #define BIT_R_EN_SET_MOREDATA_8822B BIT(2)
  7729. #define BIT__R_DIS_CLEAR_MACID_RELEASE_8822B BIT(1)
  7730. #define BIT__R_MACID_RELEASE_EN_8822B BIT(0)
  7731. /* 2 REG_AMPDU_MAX_TIME_V1_8822B */
  7732. #define BIT_SHIFT_AMPDU_MAX_TIME_8822B 0
  7733. #define BIT_MASK_AMPDU_MAX_TIME_8822B 0xff
  7734. #define BIT_AMPDU_MAX_TIME_8822B(x) \
  7735. (((x) & BIT_MASK_AMPDU_MAX_TIME_8822B) \
  7736. << BIT_SHIFT_AMPDU_MAX_TIME_8822B)
  7737. #define BITS_AMPDU_MAX_TIME_8822B \
  7738. (BIT_MASK_AMPDU_MAX_TIME_8822B << BIT_SHIFT_AMPDU_MAX_TIME_8822B)
  7739. #define BIT_CLEAR_AMPDU_MAX_TIME_8822B(x) ((x) & (~BITS_AMPDU_MAX_TIME_8822B))
  7740. #define BIT_GET_AMPDU_MAX_TIME_8822B(x) \
  7741. (((x) >> BIT_SHIFT_AMPDU_MAX_TIME_8822B) & \
  7742. BIT_MASK_AMPDU_MAX_TIME_8822B)
  7743. #define BIT_SET_AMPDU_MAX_TIME_8822B(x, v) \
  7744. (BIT_CLEAR_AMPDU_MAX_TIME_8822B(x) | BIT_AMPDU_MAX_TIME_8822B(v))
  7745. /* 2 REG_BCNQ1_BDNY_V1_8822B */
  7746. #define BIT_SHIFT_BCNQ1_PGBNDY_V1_8822B 0
  7747. #define BIT_MASK_BCNQ1_PGBNDY_V1_8822B 0xfff
  7748. #define BIT_BCNQ1_PGBNDY_V1_8822B(x) \
  7749. (((x) & BIT_MASK_BCNQ1_PGBNDY_V1_8822B) \
  7750. << BIT_SHIFT_BCNQ1_PGBNDY_V1_8822B)
  7751. #define BITS_BCNQ1_PGBNDY_V1_8822B \
  7752. (BIT_MASK_BCNQ1_PGBNDY_V1_8822B << BIT_SHIFT_BCNQ1_PGBNDY_V1_8822B)
  7753. #define BIT_CLEAR_BCNQ1_PGBNDY_V1_8822B(x) ((x) & (~BITS_BCNQ1_PGBNDY_V1_8822B))
  7754. #define BIT_GET_BCNQ1_PGBNDY_V1_8822B(x) \
  7755. (((x) >> BIT_SHIFT_BCNQ1_PGBNDY_V1_8822B) & \
  7756. BIT_MASK_BCNQ1_PGBNDY_V1_8822B)
  7757. #define BIT_SET_BCNQ1_PGBNDY_V1_8822B(x, v) \
  7758. (BIT_CLEAR_BCNQ1_PGBNDY_V1_8822B(x) | BIT_BCNQ1_PGBNDY_V1_8822B(v))
  7759. /* 2 REG_AMPDU_MAX_LENGTH_8822B */
  7760. #define BIT_SHIFT_AMPDU_MAX_LENGTH_8822B 0
  7761. #define BIT_MASK_AMPDU_MAX_LENGTH_8822B 0xffffffffL
  7762. #define BIT_AMPDU_MAX_LENGTH_8822B(x) \
  7763. (((x) & BIT_MASK_AMPDU_MAX_LENGTH_8822B) \
  7764. << BIT_SHIFT_AMPDU_MAX_LENGTH_8822B)
  7765. #define BITS_AMPDU_MAX_LENGTH_8822B \
  7766. (BIT_MASK_AMPDU_MAX_LENGTH_8822B << BIT_SHIFT_AMPDU_MAX_LENGTH_8822B)
  7767. #define BIT_CLEAR_AMPDU_MAX_LENGTH_8822B(x) \
  7768. ((x) & (~BITS_AMPDU_MAX_LENGTH_8822B))
  7769. #define BIT_GET_AMPDU_MAX_LENGTH_8822B(x) \
  7770. (((x) >> BIT_SHIFT_AMPDU_MAX_LENGTH_8822B) & \
  7771. BIT_MASK_AMPDU_MAX_LENGTH_8822B)
  7772. #define BIT_SET_AMPDU_MAX_LENGTH_8822B(x, v) \
  7773. (BIT_CLEAR_AMPDU_MAX_LENGTH_8822B(x) | BIT_AMPDU_MAX_LENGTH_8822B(v))
  7774. /* 2 REG_ACQ_STOP_8822B */
  7775. #define BIT_AC7Q_STOP_8822B BIT(7)
  7776. #define BIT_AC6Q_STOP_8822B BIT(6)
  7777. #define BIT_AC5Q_STOP_8822B BIT(5)
  7778. #define BIT_AC4Q_STOP_8822B BIT(4)
  7779. #define BIT_AC3Q_STOP_8822B BIT(3)
  7780. #define BIT_AC2Q_STOP_8822B BIT(2)
  7781. #define BIT_AC1Q_STOP_8822B BIT(1)
  7782. #define BIT_AC0Q_STOP_8822B BIT(0)
  7783. /* 2 REG_NDPA_RATE_8822B */
  7784. #define BIT_SHIFT_R_NDPA_RATE_V1_8822B 0
  7785. #define BIT_MASK_R_NDPA_RATE_V1_8822B 0xff
  7786. #define BIT_R_NDPA_RATE_V1_8822B(x) \
  7787. (((x) & BIT_MASK_R_NDPA_RATE_V1_8822B) \
  7788. << BIT_SHIFT_R_NDPA_RATE_V1_8822B)
  7789. #define BITS_R_NDPA_RATE_V1_8822B \
  7790. (BIT_MASK_R_NDPA_RATE_V1_8822B << BIT_SHIFT_R_NDPA_RATE_V1_8822B)
  7791. #define BIT_CLEAR_R_NDPA_RATE_V1_8822B(x) ((x) & (~BITS_R_NDPA_RATE_V1_8822B))
  7792. #define BIT_GET_R_NDPA_RATE_V1_8822B(x) \
  7793. (((x) >> BIT_SHIFT_R_NDPA_RATE_V1_8822B) & \
  7794. BIT_MASK_R_NDPA_RATE_V1_8822B)
  7795. #define BIT_SET_R_NDPA_RATE_V1_8822B(x, v) \
  7796. (BIT_CLEAR_R_NDPA_RATE_V1_8822B(x) | BIT_R_NDPA_RATE_V1_8822B(v))
  7797. /* 2 REG_TX_HANG_CTRL_8822B */
  7798. #define BIT_R_EN_GNT_BT_AWAKE_8822B BIT(3)
  7799. #define BIT_EN_EOF_V1_8822B BIT(2)
  7800. #define BIT_DIS_OQT_BLOCK_8822B BIT(1)
  7801. #define BIT_SEARCH_QUEUE_EN_8822B BIT(0)
  7802. /* 2 REG_NDPA_OPT_CTRL_8822B */
  7803. #define BIT_R_DIS_MACID_RELEASE_RTY_8822B BIT(5)
  7804. #define BIT_SHIFT_BW_SIGTA_8822B 3
  7805. #define BIT_MASK_BW_SIGTA_8822B 0x3
  7806. #define BIT_BW_SIGTA_8822B(x) \
  7807. (((x) & BIT_MASK_BW_SIGTA_8822B) << BIT_SHIFT_BW_SIGTA_8822B)
  7808. #define BITS_BW_SIGTA_8822B \
  7809. (BIT_MASK_BW_SIGTA_8822B << BIT_SHIFT_BW_SIGTA_8822B)
  7810. #define BIT_CLEAR_BW_SIGTA_8822B(x) ((x) & (~BITS_BW_SIGTA_8822B))
  7811. #define BIT_GET_BW_SIGTA_8822B(x) \
  7812. (((x) >> BIT_SHIFT_BW_SIGTA_8822B) & BIT_MASK_BW_SIGTA_8822B)
  7813. #define BIT_SET_BW_SIGTA_8822B(x, v) \
  7814. (BIT_CLEAR_BW_SIGTA_8822B(x) | BIT_BW_SIGTA_8822B(v))
  7815. #define BIT_EN_BAR_SIGTA_8822B BIT(2)
  7816. #define BIT_SHIFT_R_NDPA_BW_8822B 0
  7817. #define BIT_MASK_R_NDPA_BW_8822B 0x3
  7818. #define BIT_R_NDPA_BW_8822B(x) \
  7819. (((x) & BIT_MASK_R_NDPA_BW_8822B) << BIT_SHIFT_R_NDPA_BW_8822B)
  7820. #define BITS_R_NDPA_BW_8822B \
  7821. (BIT_MASK_R_NDPA_BW_8822B << BIT_SHIFT_R_NDPA_BW_8822B)
  7822. #define BIT_CLEAR_R_NDPA_BW_8822B(x) ((x) & (~BITS_R_NDPA_BW_8822B))
  7823. #define BIT_GET_R_NDPA_BW_8822B(x) \
  7824. (((x) >> BIT_SHIFT_R_NDPA_BW_8822B) & BIT_MASK_R_NDPA_BW_8822B)
  7825. #define BIT_SET_R_NDPA_BW_8822B(x, v) \
  7826. (BIT_CLEAR_R_NDPA_BW_8822B(x) | BIT_R_NDPA_BW_8822B(v))
  7827. /* 2 REG_RD_RESP_PKT_TH_8822B */
  7828. #define BIT_SHIFT_RD_RESP_PKT_TH_V1_8822B 0
  7829. #define BIT_MASK_RD_RESP_PKT_TH_V1_8822B 0x3f
  7830. #define BIT_RD_RESP_PKT_TH_V1_8822B(x) \
  7831. (((x) & BIT_MASK_RD_RESP_PKT_TH_V1_8822B) \
  7832. << BIT_SHIFT_RD_RESP_PKT_TH_V1_8822B)
  7833. #define BITS_RD_RESP_PKT_TH_V1_8822B \
  7834. (BIT_MASK_RD_RESP_PKT_TH_V1_8822B << BIT_SHIFT_RD_RESP_PKT_TH_V1_8822B)
  7835. #define BIT_CLEAR_RD_RESP_PKT_TH_V1_8822B(x) \
  7836. ((x) & (~BITS_RD_RESP_PKT_TH_V1_8822B))
  7837. #define BIT_GET_RD_RESP_PKT_TH_V1_8822B(x) \
  7838. (((x) >> BIT_SHIFT_RD_RESP_PKT_TH_V1_8822B) & \
  7839. BIT_MASK_RD_RESP_PKT_TH_V1_8822B)
  7840. #define BIT_SET_RD_RESP_PKT_TH_V1_8822B(x, v) \
  7841. (BIT_CLEAR_RD_RESP_PKT_TH_V1_8822B(x) | BIT_RD_RESP_PKT_TH_V1_8822B(v))
  7842. /* 2 REG_CMDQ_INFO_8822B */
  7843. #define BIT_SHIFT_QUEUEMACID_CMDQ_V1_8822B 25
  7844. #define BIT_MASK_QUEUEMACID_CMDQ_V1_8822B 0x7f
  7845. #define BIT_QUEUEMACID_CMDQ_V1_8822B(x) \
  7846. (((x) & BIT_MASK_QUEUEMACID_CMDQ_V1_8822B) \
  7847. << BIT_SHIFT_QUEUEMACID_CMDQ_V1_8822B)
  7848. #define BITS_QUEUEMACID_CMDQ_V1_8822B \
  7849. (BIT_MASK_QUEUEMACID_CMDQ_V1_8822B \
  7850. << BIT_SHIFT_QUEUEMACID_CMDQ_V1_8822B)
  7851. #define BIT_CLEAR_QUEUEMACID_CMDQ_V1_8822B(x) \
  7852. ((x) & (~BITS_QUEUEMACID_CMDQ_V1_8822B))
  7853. #define BIT_GET_QUEUEMACID_CMDQ_V1_8822B(x) \
  7854. (((x) >> BIT_SHIFT_QUEUEMACID_CMDQ_V1_8822B) & \
  7855. BIT_MASK_QUEUEMACID_CMDQ_V1_8822B)
  7856. #define BIT_SET_QUEUEMACID_CMDQ_V1_8822B(x, v) \
  7857. (BIT_CLEAR_QUEUEMACID_CMDQ_V1_8822B(x) | \
  7858. BIT_QUEUEMACID_CMDQ_V1_8822B(v))
  7859. #define BIT_SHIFT_QUEUEAC_CMDQ_V1_8822B 23
  7860. #define BIT_MASK_QUEUEAC_CMDQ_V1_8822B 0x3
  7861. #define BIT_QUEUEAC_CMDQ_V1_8822B(x) \
  7862. (((x) & BIT_MASK_QUEUEAC_CMDQ_V1_8822B) \
  7863. << BIT_SHIFT_QUEUEAC_CMDQ_V1_8822B)
  7864. #define BITS_QUEUEAC_CMDQ_V1_8822B \
  7865. (BIT_MASK_QUEUEAC_CMDQ_V1_8822B << BIT_SHIFT_QUEUEAC_CMDQ_V1_8822B)
  7866. #define BIT_CLEAR_QUEUEAC_CMDQ_V1_8822B(x) ((x) & (~BITS_QUEUEAC_CMDQ_V1_8822B))
  7867. #define BIT_GET_QUEUEAC_CMDQ_V1_8822B(x) \
  7868. (((x) >> BIT_SHIFT_QUEUEAC_CMDQ_V1_8822B) & \
  7869. BIT_MASK_QUEUEAC_CMDQ_V1_8822B)
  7870. #define BIT_SET_QUEUEAC_CMDQ_V1_8822B(x, v) \
  7871. (BIT_CLEAR_QUEUEAC_CMDQ_V1_8822B(x) | BIT_QUEUEAC_CMDQ_V1_8822B(v))
  7872. #define BIT_TIDEMPTY_CMDQ_V1_8822B BIT(22)
  7873. #define BIT_SHIFT_TAIL_PKT_CMDQ_V2_8822B 11
  7874. #define BIT_MASK_TAIL_PKT_CMDQ_V2_8822B 0x7ff
  7875. #define BIT_TAIL_PKT_CMDQ_V2_8822B(x) \
  7876. (((x) & BIT_MASK_TAIL_PKT_CMDQ_V2_8822B) \
  7877. << BIT_SHIFT_TAIL_PKT_CMDQ_V2_8822B)
  7878. #define BITS_TAIL_PKT_CMDQ_V2_8822B \
  7879. (BIT_MASK_TAIL_PKT_CMDQ_V2_8822B << BIT_SHIFT_TAIL_PKT_CMDQ_V2_8822B)
  7880. #define BIT_CLEAR_TAIL_PKT_CMDQ_V2_8822B(x) \
  7881. ((x) & (~BITS_TAIL_PKT_CMDQ_V2_8822B))
  7882. #define BIT_GET_TAIL_PKT_CMDQ_V2_8822B(x) \
  7883. (((x) >> BIT_SHIFT_TAIL_PKT_CMDQ_V2_8822B) & \
  7884. BIT_MASK_TAIL_PKT_CMDQ_V2_8822B)
  7885. #define BIT_SET_TAIL_PKT_CMDQ_V2_8822B(x, v) \
  7886. (BIT_CLEAR_TAIL_PKT_CMDQ_V2_8822B(x) | BIT_TAIL_PKT_CMDQ_V2_8822B(v))
  7887. #define BIT_SHIFT_HEAD_PKT_CMDQ_V1_8822B 0
  7888. #define BIT_MASK_HEAD_PKT_CMDQ_V1_8822B 0x7ff
  7889. #define BIT_HEAD_PKT_CMDQ_V1_8822B(x) \
  7890. (((x) & BIT_MASK_HEAD_PKT_CMDQ_V1_8822B) \
  7891. << BIT_SHIFT_HEAD_PKT_CMDQ_V1_8822B)
  7892. #define BITS_HEAD_PKT_CMDQ_V1_8822B \
  7893. (BIT_MASK_HEAD_PKT_CMDQ_V1_8822B << BIT_SHIFT_HEAD_PKT_CMDQ_V1_8822B)
  7894. #define BIT_CLEAR_HEAD_PKT_CMDQ_V1_8822B(x) \
  7895. ((x) & (~BITS_HEAD_PKT_CMDQ_V1_8822B))
  7896. #define BIT_GET_HEAD_PKT_CMDQ_V1_8822B(x) \
  7897. (((x) >> BIT_SHIFT_HEAD_PKT_CMDQ_V1_8822B) & \
  7898. BIT_MASK_HEAD_PKT_CMDQ_V1_8822B)
  7899. #define BIT_SET_HEAD_PKT_CMDQ_V1_8822B(x, v) \
  7900. (BIT_CLEAR_HEAD_PKT_CMDQ_V1_8822B(x) | BIT_HEAD_PKT_CMDQ_V1_8822B(v))
  7901. /* 2 REG_Q4_INFO_8822B */
  7902. #define BIT_SHIFT_QUEUEMACID_Q4_V1_8822B 25
  7903. #define BIT_MASK_QUEUEMACID_Q4_V1_8822B 0x7f
  7904. #define BIT_QUEUEMACID_Q4_V1_8822B(x) \
  7905. (((x) & BIT_MASK_QUEUEMACID_Q4_V1_8822B) \
  7906. << BIT_SHIFT_QUEUEMACID_Q4_V1_8822B)
  7907. #define BITS_QUEUEMACID_Q4_V1_8822B \
  7908. (BIT_MASK_QUEUEMACID_Q4_V1_8822B << BIT_SHIFT_QUEUEMACID_Q4_V1_8822B)
  7909. #define BIT_CLEAR_QUEUEMACID_Q4_V1_8822B(x) \
  7910. ((x) & (~BITS_QUEUEMACID_Q4_V1_8822B))
  7911. #define BIT_GET_QUEUEMACID_Q4_V1_8822B(x) \
  7912. (((x) >> BIT_SHIFT_QUEUEMACID_Q4_V1_8822B) & \
  7913. BIT_MASK_QUEUEMACID_Q4_V1_8822B)
  7914. #define BIT_SET_QUEUEMACID_Q4_V1_8822B(x, v) \
  7915. (BIT_CLEAR_QUEUEMACID_Q4_V1_8822B(x) | BIT_QUEUEMACID_Q4_V1_8822B(v))
  7916. #define BIT_SHIFT_QUEUEAC_Q4_V1_8822B 23
  7917. #define BIT_MASK_QUEUEAC_Q4_V1_8822B 0x3
  7918. #define BIT_QUEUEAC_Q4_V1_8822B(x) \
  7919. (((x) & BIT_MASK_QUEUEAC_Q4_V1_8822B) << BIT_SHIFT_QUEUEAC_Q4_V1_8822B)
  7920. #define BITS_QUEUEAC_Q4_V1_8822B \
  7921. (BIT_MASK_QUEUEAC_Q4_V1_8822B << BIT_SHIFT_QUEUEAC_Q4_V1_8822B)
  7922. #define BIT_CLEAR_QUEUEAC_Q4_V1_8822B(x) ((x) & (~BITS_QUEUEAC_Q4_V1_8822B))
  7923. #define BIT_GET_QUEUEAC_Q4_V1_8822B(x) \
  7924. (((x) >> BIT_SHIFT_QUEUEAC_Q4_V1_8822B) & BIT_MASK_QUEUEAC_Q4_V1_8822B)
  7925. #define BIT_SET_QUEUEAC_Q4_V1_8822B(x, v) \
  7926. (BIT_CLEAR_QUEUEAC_Q4_V1_8822B(x) | BIT_QUEUEAC_Q4_V1_8822B(v))
  7927. #define BIT_TIDEMPTY_Q4_V1_8822B BIT(22)
  7928. #define BIT_SHIFT_TAIL_PKT_Q4_V2_8822B 11
  7929. #define BIT_MASK_TAIL_PKT_Q4_V2_8822B 0x7ff
  7930. #define BIT_TAIL_PKT_Q4_V2_8822B(x) \
  7931. (((x) & BIT_MASK_TAIL_PKT_Q4_V2_8822B) \
  7932. << BIT_SHIFT_TAIL_PKT_Q4_V2_8822B)
  7933. #define BITS_TAIL_PKT_Q4_V2_8822B \
  7934. (BIT_MASK_TAIL_PKT_Q4_V2_8822B << BIT_SHIFT_TAIL_PKT_Q4_V2_8822B)
  7935. #define BIT_CLEAR_TAIL_PKT_Q4_V2_8822B(x) ((x) & (~BITS_TAIL_PKT_Q4_V2_8822B))
  7936. #define BIT_GET_TAIL_PKT_Q4_V2_8822B(x) \
  7937. (((x) >> BIT_SHIFT_TAIL_PKT_Q4_V2_8822B) & \
  7938. BIT_MASK_TAIL_PKT_Q4_V2_8822B)
  7939. #define BIT_SET_TAIL_PKT_Q4_V2_8822B(x, v) \
  7940. (BIT_CLEAR_TAIL_PKT_Q4_V2_8822B(x) | BIT_TAIL_PKT_Q4_V2_8822B(v))
  7941. #define BIT_SHIFT_HEAD_PKT_Q4_V1_8822B 0
  7942. #define BIT_MASK_HEAD_PKT_Q4_V1_8822B 0x7ff
  7943. #define BIT_HEAD_PKT_Q4_V1_8822B(x) \
  7944. (((x) & BIT_MASK_HEAD_PKT_Q4_V1_8822B) \
  7945. << BIT_SHIFT_HEAD_PKT_Q4_V1_8822B)
  7946. #define BITS_HEAD_PKT_Q4_V1_8822B \
  7947. (BIT_MASK_HEAD_PKT_Q4_V1_8822B << BIT_SHIFT_HEAD_PKT_Q4_V1_8822B)
  7948. #define BIT_CLEAR_HEAD_PKT_Q4_V1_8822B(x) ((x) & (~BITS_HEAD_PKT_Q4_V1_8822B))
  7949. #define BIT_GET_HEAD_PKT_Q4_V1_8822B(x) \
  7950. (((x) >> BIT_SHIFT_HEAD_PKT_Q4_V1_8822B) & \
  7951. BIT_MASK_HEAD_PKT_Q4_V1_8822B)
  7952. #define BIT_SET_HEAD_PKT_Q4_V1_8822B(x, v) \
  7953. (BIT_CLEAR_HEAD_PKT_Q4_V1_8822B(x) | BIT_HEAD_PKT_Q4_V1_8822B(v))
  7954. /* 2 REG_Q5_INFO_8822B */
  7955. #define BIT_SHIFT_QUEUEMACID_Q5_V1_8822B 25
  7956. #define BIT_MASK_QUEUEMACID_Q5_V1_8822B 0x7f
  7957. #define BIT_QUEUEMACID_Q5_V1_8822B(x) \
  7958. (((x) & BIT_MASK_QUEUEMACID_Q5_V1_8822B) \
  7959. << BIT_SHIFT_QUEUEMACID_Q5_V1_8822B)
  7960. #define BITS_QUEUEMACID_Q5_V1_8822B \
  7961. (BIT_MASK_QUEUEMACID_Q5_V1_8822B << BIT_SHIFT_QUEUEMACID_Q5_V1_8822B)
  7962. #define BIT_CLEAR_QUEUEMACID_Q5_V1_8822B(x) \
  7963. ((x) & (~BITS_QUEUEMACID_Q5_V1_8822B))
  7964. #define BIT_GET_QUEUEMACID_Q5_V1_8822B(x) \
  7965. (((x) >> BIT_SHIFT_QUEUEMACID_Q5_V1_8822B) & \
  7966. BIT_MASK_QUEUEMACID_Q5_V1_8822B)
  7967. #define BIT_SET_QUEUEMACID_Q5_V1_8822B(x, v) \
  7968. (BIT_CLEAR_QUEUEMACID_Q5_V1_8822B(x) | BIT_QUEUEMACID_Q5_V1_8822B(v))
  7969. #define BIT_SHIFT_QUEUEAC_Q5_V1_8822B 23
  7970. #define BIT_MASK_QUEUEAC_Q5_V1_8822B 0x3
  7971. #define BIT_QUEUEAC_Q5_V1_8822B(x) \
  7972. (((x) & BIT_MASK_QUEUEAC_Q5_V1_8822B) << BIT_SHIFT_QUEUEAC_Q5_V1_8822B)
  7973. #define BITS_QUEUEAC_Q5_V1_8822B \
  7974. (BIT_MASK_QUEUEAC_Q5_V1_8822B << BIT_SHIFT_QUEUEAC_Q5_V1_8822B)
  7975. #define BIT_CLEAR_QUEUEAC_Q5_V1_8822B(x) ((x) & (~BITS_QUEUEAC_Q5_V1_8822B))
  7976. #define BIT_GET_QUEUEAC_Q5_V1_8822B(x) \
  7977. (((x) >> BIT_SHIFT_QUEUEAC_Q5_V1_8822B) & BIT_MASK_QUEUEAC_Q5_V1_8822B)
  7978. #define BIT_SET_QUEUEAC_Q5_V1_8822B(x, v) \
  7979. (BIT_CLEAR_QUEUEAC_Q5_V1_8822B(x) | BIT_QUEUEAC_Q5_V1_8822B(v))
  7980. #define BIT_TIDEMPTY_Q5_V1_8822B BIT(22)
  7981. #define BIT_SHIFT_TAIL_PKT_Q5_V2_8822B 11
  7982. #define BIT_MASK_TAIL_PKT_Q5_V2_8822B 0x7ff
  7983. #define BIT_TAIL_PKT_Q5_V2_8822B(x) \
  7984. (((x) & BIT_MASK_TAIL_PKT_Q5_V2_8822B) \
  7985. << BIT_SHIFT_TAIL_PKT_Q5_V2_8822B)
  7986. #define BITS_TAIL_PKT_Q5_V2_8822B \
  7987. (BIT_MASK_TAIL_PKT_Q5_V2_8822B << BIT_SHIFT_TAIL_PKT_Q5_V2_8822B)
  7988. #define BIT_CLEAR_TAIL_PKT_Q5_V2_8822B(x) ((x) & (~BITS_TAIL_PKT_Q5_V2_8822B))
  7989. #define BIT_GET_TAIL_PKT_Q5_V2_8822B(x) \
  7990. (((x) >> BIT_SHIFT_TAIL_PKT_Q5_V2_8822B) & \
  7991. BIT_MASK_TAIL_PKT_Q5_V2_8822B)
  7992. #define BIT_SET_TAIL_PKT_Q5_V2_8822B(x, v) \
  7993. (BIT_CLEAR_TAIL_PKT_Q5_V2_8822B(x) | BIT_TAIL_PKT_Q5_V2_8822B(v))
  7994. #define BIT_SHIFT_HEAD_PKT_Q5_V1_8822B 0
  7995. #define BIT_MASK_HEAD_PKT_Q5_V1_8822B 0x7ff
  7996. #define BIT_HEAD_PKT_Q5_V1_8822B(x) \
  7997. (((x) & BIT_MASK_HEAD_PKT_Q5_V1_8822B) \
  7998. << BIT_SHIFT_HEAD_PKT_Q5_V1_8822B)
  7999. #define BITS_HEAD_PKT_Q5_V1_8822B \
  8000. (BIT_MASK_HEAD_PKT_Q5_V1_8822B << BIT_SHIFT_HEAD_PKT_Q5_V1_8822B)
  8001. #define BIT_CLEAR_HEAD_PKT_Q5_V1_8822B(x) ((x) & (~BITS_HEAD_PKT_Q5_V1_8822B))
  8002. #define BIT_GET_HEAD_PKT_Q5_V1_8822B(x) \
  8003. (((x) >> BIT_SHIFT_HEAD_PKT_Q5_V1_8822B) & \
  8004. BIT_MASK_HEAD_PKT_Q5_V1_8822B)
  8005. #define BIT_SET_HEAD_PKT_Q5_V1_8822B(x, v) \
  8006. (BIT_CLEAR_HEAD_PKT_Q5_V1_8822B(x) | BIT_HEAD_PKT_Q5_V1_8822B(v))
  8007. /* 2 REG_Q6_INFO_8822B */
  8008. #define BIT_SHIFT_QUEUEMACID_Q6_V1_8822B 25
  8009. #define BIT_MASK_QUEUEMACID_Q6_V1_8822B 0x7f
  8010. #define BIT_QUEUEMACID_Q6_V1_8822B(x) \
  8011. (((x) & BIT_MASK_QUEUEMACID_Q6_V1_8822B) \
  8012. << BIT_SHIFT_QUEUEMACID_Q6_V1_8822B)
  8013. #define BITS_QUEUEMACID_Q6_V1_8822B \
  8014. (BIT_MASK_QUEUEMACID_Q6_V1_8822B << BIT_SHIFT_QUEUEMACID_Q6_V1_8822B)
  8015. #define BIT_CLEAR_QUEUEMACID_Q6_V1_8822B(x) \
  8016. ((x) & (~BITS_QUEUEMACID_Q6_V1_8822B))
  8017. #define BIT_GET_QUEUEMACID_Q6_V1_8822B(x) \
  8018. (((x) >> BIT_SHIFT_QUEUEMACID_Q6_V1_8822B) & \
  8019. BIT_MASK_QUEUEMACID_Q6_V1_8822B)
  8020. #define BIT_SET_QUEUEMACID_Q6_V1_8822B(x, v) \
  8021. (BIT_CLEAR_QUEUEMACID_Q6_V1_8822B(x) | BIT_QUEUEMACID_Q6_V1_8822B(v))
  8022. #define BIT_SHIFT_QUEUEAC_Q6_V1_8822B 23
  8023. #define BIT_MASK_QUEUEAC_Q6_V1_8822B 0x3
  8024. #define BIT_QUEUEAC_Q6_V1_8822B(x) \
  8025. (((x) & BIT_MASK_QUEUEAC_Q6_V1_8822B) << BIT_SHIFT_QUEUEAC_Q6_V1_8822B)
  8026. #define BITS_QUEUEAC_Q6_V1_8822B \
  8027. (BIT_MASK_QUEUEAC_Q6_V1_8822B << BIT_SHIFT_QUEUEAC_Q6_V1_8822B)
  8028. #define BIT_CLEAR_QUEUEAC_Q6_V1_8822B(x) ((x) & (~BITS_QUEUEAC_Q6_V1_8822B))
  8029. #define BIT_GET_QUEUEAC_Q6_V1_8822B(x) \
  8030. (((x) >> BIT_SHIFT_QUEUEAC_Q6_V1_8822B) & BIT_MASK_QUEUEAC_Q6_V1_8822B)
  8031. #define BIT_SET_QUEUEAC_Q6_V1_8822B(x, v) \
  8032. (BIT_CLEAR_QUEUEAC_Q6_V1_8822B(x) | BIT_QUEUEAC_Q6_V1_8822B(v))
  8033. #define BIT_TIDEMPTY_Q6_V1_8822B BIT(22)
  8034. #define BIT_SHIFT_TAIL_PKT_Q6_V2_8822B 11
  8035. #define BIT_MASK_TAIL_PKT_Q6_V2_8822B 0x7ff
  8036. #define BIT_TAIL_PKT_Q6_V2_8822B(x) \
  8037. (((x) & BIT_MASK_TAIL_PKT_Q6_V2_8822B) \
  8038. << BIT_SHIFT_TAIL_PKT_Q6_V2_8822B)
  8039. #define BITS_TAIL_PKT_Q6_V2_8822B \
  8040. (BIT_MASK_TAIL_PKT_Q6_V2_8822B << BIT_SHIFT_TAIL_PKT_Q6_V2_8822B)
  8041. #define BIT_CLEAR_TAIL_PKT_Q6_V2_8822B(x) ((x) & (~BITS_TAIL_PKT_Q6_V2_8822B))
  8042. #define BIT_GET_TAIL_PKT_Q6_V2_8822B(x) \
  8043. (((x) >> BIT_SHIFT_TAIL_PKT_Q6_V2_8822B) & \
  8044. BIT_MASK_TAIL_PKT_Q6_V2_8822B)
  8045. #define BIT_SET_TAIL_PKT_Q6_V2_8822B(x, v) \
  8046. (BIT_CLEAR_TAIL_PKT_Q6_V2_8822B(x) | BIT_TAIL_PKT_Q6_V2_8822B(v))
  8047. #define BIT_SHIFT_HEAD_PKT_Q6_V1_8822B 0
  8048. #define BIT_MASK_HEAD_PKT_Q6_V1_8822B 0x7ff
  8049. #define BIT_HEAD_PKT_Q6_V1_8822B(x) \
  8050. (((x) & BIT_MASK_HEAD_PKT_Q6_V1_8822B) \
  8051. << BIT_SHIFT_HEAD_PKT_Q6_V1_8822B)
  8052. #define BITS_HEAD_PKT_Q6_V1_8822B \
  8053. (BIT_MASK_HEAD_PKT_Q6_V1_8822B << BIT_SHIFT_HEAD_PKT_Q6_V1_8822B)
  8054. #define BIT_CLEAR_HEAD_PKT_Q6_V1_8822B(x) ((x) & (~BITS_HEAD_PKT_Q6_V1_8822B))
  8055. #define BIT_GET_HEAD_PKT_Q6_V1_8822B(x) \
  8056. (((x) >> BIT_SHIFT_HEAD_PKT_Q6_V1_8822B) & \
  8057. BIT_MASK_HEAD_PKT_Q6_V1_8822B)
  8058. #define BIT_SET_HEAD_PKT_Q6_V1_8822B(x, v) \
  8059. (BIT_CLEAR_HEAD_PKT_Q6_V1_8822B(x) | BIT_HEAD_PKT_Q6_V1_8822B(v))
  8060. /* 2 REG_Q7_INFO_8822B */
  8061. #define BIT_SHIFT_QUEUEMACID_Q7_V1_8822B 25
  8062. #define BIT_MASK_QUEUEMACID_Q7_V1_8822B 0x7f
  8063. #define BIT_QUEUEMACID_Q7_V1_8822B(x) \
  8064. (((x) & BIT_MASK_QUEUEMACID_Q7_V1_8822B) \
  8065. << BIT_SHIFT_QUEUEMACID_Q7_V1_8822B)
  8066. #define BITS_QUEUEMACID_Q7_V1_8822B \
  8067. (BIT_MASK_QUEUEMACID_Q7_V1_8822B << BIT_SHIFT_QUEUEMACID_Q7_V1_8822B)
  8068. #define BIT_CLEAR_QUEUEMACID_Q7_V1_8822B(x) \
  8069. ((x) & (~BITS_QUEUEMACID_Q7_V1_8822B))
  8070. #define BIT_GET_QUEUEMACID_Q7_V1_8822B(x) \
  8071. (((x) >> BIT_SHIFT_QUEUEMACID_Q7_V1_8822B) & \
  8072. BIT_MASK_QUEUEMACID_Q7_V1_8822B)
  8073. #define BIT_SET_QUEUEMACID_Q7_V1_8822B(x, v) \
  8074. (BIT_CLEAR_QUEUEMACID_Q7_V1_8822B(x) | BIT_QUEUEMACID_Q7_V1_8822B(v))
  8075. #define BIT_SHIFT_QUEUEAC_Q7_V1_8822B 23
  8076. #define BIT_MASK_QUEUEAC_Q7_V1_8822B 0x3
  8077. #define BIT_QUEUEAC_Q7_V1_8822B(x) \
  8078. (((x) & BIT_MASK_QUEUEAC_Q7_V1_8822B) << BIT_SHIFT_QUEUEAC_Q7_V1_8822B)
  8079. #define BITS_QUEUEAC_Q7_V1_8822B \
  8080. (BIT_MASK_QUEUEAC_Q7_V1_8822B << BIT_SHIFT_QUEUEAC_Q7_V1_8822B)
  8081. #define BIT_CLEAR_QUEUEAC_Q7_V1_8822B(x) ((x) & (~BITS_QUEUEAC_Q7_V1_8822B))
  8082. #define BIT_GET_QUEUEAC_Q7_V1_8822B(x) \
  8083. (((x) >> BIT_SHIFT_QUEUEAC_Q7_V1_8822B) & BIT_MASK_QUEUEAC_Q7_V1_8822B)
  8084. #define BIT_SET_QUEUEAC_Q7_V1_8822B(x, v) \
  8085. (BIT_CLEAR_QUEUEAC_Q7_V1_8822B(x) | BIT_QUEUEAC_Q7_V1_8822B(v))
  8086. #define BIT_TIDEMPTY_Q7_V1_8822B BIT(22)
  8087. #define BIT_SHIFT_TAIL_PKT_Q7_V2_8822B 11
  8088. #define BIT_MASK_TAIL_PKT_Q7_V2_8822B 0x7ff
  8089. #define BIT_TAIL_PKT_Q7_V2_8822B(x) \
  8090. (((x) & BIT_MASK_TAIL_PKT_Q7_V2_8822B) \
  8091. << BIT_SHIFT_TAIL_PKT_Q7_V2_8822B)
  8092. #define BITS_TAIL_PKT_Q7_V2_8822B \
  8093. (BIT_MASK_TAIL_PKT_Q7_V2_8822B << BIT_SHIFT_TAIL_PKT_Q7_V2_8822B)
  8094. #define BIT_CLEAR_TAIL_PKT_Q7_V2_8822B(x) ((x) & (~BITS_TAIL_PKT_Q7_V2_8822B))
  8095. #define BIT_GET_TAIL_PKT_Q7_V2_8822B(x) \
  8096. (((x) >> BIT_SHIFT_TAIL_PKT_Q7_V2_8822B) & \
  8097. BIT_MASK_TAIL_PKT_Q7_V2_8822B)
  8098. #define BIT_SET_TAIL_PKT_Q7_V2_8822B(x, v) \
  8099. (BIT_CLEAR_TAIL_PKT_Q7_V2_8822B(x) | BIT_TAIL_PKT_Q7_V2_8822B(v))
  8100. #define BIT_SHIFT_HEAD_PKT_Q7_V1_8822B 0
  8101. #define BIT_MASK_HEAD_PKT_Q7_V1_8822B 0x7ff
  8102. #define BIT_HEAD_PKT_Q7_V1_8822B(x) \
  8103. (((x) & BIT_MASK_HEAD_PKT_Q7_V1_8822B) \
  8104. << BIT_SHIFT_HEAD_PKT_Q7_V1_8822B)
  8105. #define BITS_HEAD_PKT_Q7_V1_8822B \
  8106. (BIT_MASK_HEAD_PKT_Q7_V1_8822B << BIT_SHIFT_HEAD_PKT_Q7_V1_8822B)
  8107. #define BIT_CLEAR_HEAD_PKT_Q7_V1_8822B(x) ((x) & (~BITS_HEAD_PKT_Q7_V1_8822B))
  8108. #define BIT_GET_HEAD_PKT_Q7_V1_8822B(x) \
  8109. (((x) >> BIT_SHIFT_HEAD_PKT_Q7_V1_8822B) & \
  8110. BIT_MASK_HEAD_PKT_Q7_V1_8822B)
  8111. #define BIT_SET_HEAD_PKT_Q7_V1_8822B(x, v) \
  8112. (BIT_CLEAR_HEAD_PKT_Q7_V1_8822B(x) | BIT_HEAD_PKT_Q7_V1_8822B(v))
  8113. /* 2 REG_WMAC_LBK_BUF_HD_V1_8822B */
  8114. #define BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1_8822B 0
  8115. #define BIT_MASK_WMAC_LBK_BUF_HEAD_V1_8822B 0xfff
  8116. #define BIT_WMAC_LBK_BUF_HEAD_V1_8822B(x) \
  8117. (((x) & BIT_MASK_WMAC_LBK_BUF_HEAD_V1_8822B) \
  8118. << BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1_8822B)
  8119. #define BITS_WMAC_LBK_BUF_HEAD_V1_8822B \
  8120. (BIT_MASK_WMAC_LBK_BUF_HEAD_V1_8822B \
  8121. << BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1_8822B)
  8122. #define BIT_CLEAR_WMAC_LBK_BUF_HEAD_V1_8822B(x) \
  8123. ((x) & (~BITS_WMAC_LBK_BUF_HEAD_V1_8822B))
  8124. #define BIT_GET_WMAC_LBK_BUF_HEAD_V1_8822B(x) \
  8125. (((x) >> BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1_8822B) & \
  8126. BIT_MASK_WMAC_LBK_BUF_HEAD_V1_8822B)
  8127. #define BIT_SET_WMAC_LBK_BUF_HEAD_V1_8822B(x, v) \
  8128. (BIT_CLEAR_WMAC_LBK_BUF_HEAD_V1_8822B(x) | \
  8129. BIT_WMAC_LBK_BUF_HEAD_V1_8822B(v))
  8130. /* 2 REG_MGQ_BDNY_V1_8822B */
  8131. #define BIT_SHIFT_MGQ_PGBNDY_V1_8822B 0
  8132. #define BIT_MASK_MGQ_PGBNDY_V1_8822B 0xfff
  8133. #define BIT_MGQ_PGBNDY_V1_8822B(x) \
  8134. (((x) & BIT_MASK_MGQ_PGBNDY_V1_8822B) << BIT_SHIFT_MGQ_PGBNDY_V1_8822B)
  8135. #define BITS_MGQ_PGBNDY_V1_8822B \
  8136. (BIT_MASK_MGQ_PGBNDY_V1_8822B << BIT_SHIFT_MGQ_PGBNDY_V1_8822B)
  8137. #define BIT_CLEAR_MGQ_PGBNDY_V1_8822B(x) ((x) & (~BITS_MGQ_PGBNDY_V1_8822B))
  8138. #define BIT_GET_MGQ_PGBNDY_V1_8822B(x) \
  8139. (((x) >> BIT_SHIFT_MGQ_PGBNDY_V1_8822B) & BIT_MASK_MGQ_PGBNDY_V1_8822B)
  8140. #define BIT_SET_MGQ_PGBNDY_V1_8822B(x, v) \
  8141. (BIT_CLEAR_MGQ_PGBNDY_V1_8822B(x) | BIT_MGQ_PGBNDY_V1_8822B(v))
  8142. /* 2 REG_TXRPT_CTRL_8822B */
  8143. #define BIT_SHIFT_TRXRPT_TIMER_TH_8822B 24
  8144. #define BIT_MASK_TRXRPT_TIMER_TH_8822B 0xff
  8145. #define BIT_TRXRPT_TIMER_TH_8822B(x) \
  8146. (((x) & BIT_MASK_TRXRPT_TIMER_TH_8822B) \
  8147. << BIT_SHIFT_TRXRPT_TIMER_TH_8822B)
  8148. #define BITS_TRXRPT_TIMER_TH_8822B \
  8149. (BIT_MASK_TRXRPT_TIMER_TH_8822B << BIT_SHIFT_TRXRPT_TIMER_TH_8822B)
  8150. #define BIT_CLEAR_TRXRPT_TIMER_TH_8822B(x) ((x) & (~BITS_TRXRPT_TIMER_TH_8822B))
  8151. #define BIT_GET_TRXRPT_TIMER_TH_8822B(x) \
  8152. (((x) >> BIT_SHIFT_TRXRPT_TIMER_TH_8822B) & \
  8153. BIT_MASK_TRXRPT_TIMER_TH_8822B)
  8154. #define BIT_SET_TRXRPT_TIMER_TH_8822B(x, v) \
  8155. (BIT_CLEAR_TRXRPT_TIMER_TH_8822B(x) | BIT_TRXRPT_TIMER_TH_8822B(v))
  8156. #define BIT_SHIFT_TRXRPT_LEN_TH_8822B 16
  8157. #define BIT_MASK_TRXRPT_LEN_TH_8822B 0xff
  8158. #define BIT_TRXRPT_LEN_TH_8822B(x) \
  8159. (((x) & BIT_MASK_TRXRPT_LEN_TH_8822B) << BIT_SHIFT_TRXRPT_LEN_TH_8822B)
  8160. #define BITS_TRXRPT_LEN_TH_8822B \
  8161. (BIT_MASK_TRXRPT_LEN_TH_8822B << BIT_SHIFT_TRXRPT_LEN_TH_8822B)
  8162. #define BIT_CLEAR_TRXRPT_LEN_TH_8822B(x) ((x) & (~BITS_TRXRPT_LEN_TH_8822B))
  8163. #define BIT_GET_TRXRPT_LEN_TH_8822B(x) \
  8164. (((x) >> BIT_SHIFT_TRXRPT_LEN_TH_8822B) & BIT_MASK_TRXRPT_LEN_TH_8822B)
  8165. #define BIT_SET_TRXRPT_LEN_TH_8822B(x, v) \
  8166. (BIT_CLEAR_TRXRPT_LEN_TH_8822B(x) | BIT_TRXRPT_LEN_TH_8822B(v))
  8167. #define BIT_SHIFT_TRXRPT_READ_PTR_8822B 8
  8168. #define BIT_MASK_TRXRPT_READ_PTR_8822B 0xff
  8169. #define BIT_TRXRPT_READ_PTR_8822B(x) \
  8170. (((x) & BIT_MASK_TRXRPT_READ_PTR_8822B) \
  8171. << BIT_SHIFT_TRXRPT_READ_PTR_8822B)
  8172. #define BITS_TRXRPT_READ_PTR_8822B \
  8173. (BIT_MASK_TRXRPT_READ_PTR_8822B << BIT_SHIFT_TRXRPT_READ_PTR_8822B)
  8174. #define BIT_CLEAR_TRXRPT_READ_PTR_8822B(x) ((x) & (~BITS_TRXRPT_READ_PTR_8822B))
  8175. #define BIT_GET_TRXRPT_READ_PTR_8822B(x) \
  8176. (((x) >> BIT_SHIFT_TRXRPT_READ_PTR_8822B) & \
  8177. BIT_MASK_TRXRPT_READ_PTR_8822B)
  8178. #define BIT_SET_TRXRPT_READ_PTR_8822B(x, v) \
  8179. (BIT_CLEAR_TRXRPT_READ_PTR_8822B(x) | BIT_TRXRPT_READ_PTR_8822B(v))
  8180. #define BIT_SHIFT_TRXRPT_WRITE_PTR_8822B 0
  8181. #define BIT_MASK_TRXRPT_WRITE_PTR_8822B 0xff
  8182. #define BIT_TRXRPT_WRITE_PTR_8822B(x) \
  8183. (((x) & BIT_MASK_TRXRPT_WRITE_PTR_8822B) \
  8184. << BIT_SHIFT_TRXRPT_WRITE_PTR_8822B)
  8185. #define BITS_TRXRPT_WRITE_PTR_8822B \
  8186. (BIT_MASK_TRXRPT_WRITE_PTR_8822B << BIT_SHIFT_TRXRPT_WRITE_PTR_8822B)
  8187. #define BIT_CLEAR_TRXRPT_WRITE_PTR_8822B(x) \
  8188. ((x) & (~BITS_TRXRPT_WRITE_PTR_8822B))
  8189. #define BIT_GET_TRXRPT_WRITE_PTR_8822B(x) \
  8190. (((x) >> BIT_SHIFT_TRXRPT_WRITE_PTR_8822B) & \
  8191. BIT_MASK_TRXRPT_WRITE_PTR_8822B)
  8192. #define BIT_SET_TRXRPT_WRITE_PTR_8822B(x, v) \
  8193. (BIT_CLEAR_TRXRPT_WRITE_PTR_8822B(x) | BIT_TRXRPT_WRITE_PTR_8822B(v))
  8194. /* 2 REG_INIRTS_RATE_SEL_8822B */
  8195. #define BIT_LEAG_RTS_BW_DUP_8822B BIT(5)
  8196. /* 2 REG_BASIC_CFEND_RATE_8822B */
  8197. #define BIT_SHIFT_BASIC_CFEND_RATE_8822B 0
  8198. #define BIT_MASK_BASIC_CFEND_RATE_8822B 0x1f
  8199. #define BIT_BASIC_CFEND_RATE_8822B(x) \
  8200. (((x) & BIT_MASK_BASIC_CFEND_RATE_8822B) \
  8201. << BIT_SHIFT_BASIC_CFEND_RATE_8822B)
  8202. #define BITS_BASIC_CFEND_RATE_8822B \
  8203. (BIT_MASK_BASIC_CFEND_RATE_8822B << BIT_SHIFT_BASIC_CFEND_RATE_8822B)
  8204. #define BIT_CLEAR_BASIC_CFEND_RATE_8822B(x) \
  8205. ((x) & (~BITS_BASIC_CFEND_RATE_8822B))
  8206. #define BIT_GET_BASIC_CFEND_RATE_8822B(x) \
  8207. (((x) >> BIT_SHIFT_BASIC_CFEND_RATE_8822B) & \
  8208. BIT_MASK_BASIC_CFEND_RATE_8822B)
  8209. #define BIT_SET_BASIC_CFEND_RATE_8822B(x, v) \
  8210. (BIT_CLEAR_BASIC_CFEND_RATE_8822B(x) | BIT_BASIC_CFEND_RATE_8822B(v))
  8211. /* 2 REG_STBC_CFEND_RATE_8822B */
  8212. #define BIT_SHIFT_STBC_CFEND_RATE_8822B 0
  8213. #define BIT_MASK_STBC_CFEND_RATE_8822B 0x1f
  8214. #define BIT_STBC_CFEND_RATE_8822B(x) \
  8215. (((x) & BIT_MASK_STBC_CFEND_RATE_8822B) \
  8216. << BIT_SHIFT_STBC_CFEND_RATE_8822B)
  8217. #define BITS_STBC_CFEND_RATE_8822B \
  8218. (BIT_MASK_STBC_CFEND_RATE_8822B << BIT_SHIFT_STBC_CFEND_RATE_8822B)
  8219. #define BIT_CLEAR_STBC_CFEND_RATE_8822B(x) ((x) & (~BITS_STBC_CFEND_RATE_8822B))
  8220. #define BIT_GET_STBC_CFEND_RATE_8822B(x) \
  8221. (((x) >> BIT_SHIFT_STBC_CFEND_RATE_8822B) & \
  8222. BIT_MASK_STBC_CFEND_RATE_8822B)
  8223. #define BIT_SET_STBC_CFEND_RATE_8822B(x, v) \
  8224. (BIT_CLEAR_STBC_CFEND_RATE_8822B(x) | BIT_STBC_CFEND_RATE_8822B(v))
  8225. /* 2 REG_DATA_SC_8822B */
  8226. #define BIT_SHIFT_TXSC_40M_8822B 4
  8227. #define BIT_MASK_TXSC_40M_8822B 0xf
  8228. #define BIT_TXSC_40M_8822B(x) \
  8229. (((x) & BIT_MASK_TXSC_40M_8822B) << BIT_SHIFT_TXSC_40M_8822B)
  8230. #define BITS_TXSC_40M_8822B \
  8231. (BIT_MASK_TXSC_40M_8822B << BIT_SHIFT_TXSC_40M_8822B)
  8232. #define BIT_CLEAR_TXSC_40M_8822B(x) ((x) & (~BITS_TXSC_40M_8822B))
  8233. #define BIT_GET_TXSC_40M_8822B(x) \
  8234. (((x) >> BIT_SHIFT_TXSC_40M_8822B) & BIT_MASK_TXSC_40M_8822B)
  8235. #define BIT_SET_TXSC_40M_8822B(x, v) \
  8236. (BIT_CLEAR_TXSC_40M_8822B(x) | BIT_TXSC_40M_8822B(v))
  8237. #define BIT_SHIFT_TXSC_20M_8822B 0
  8238. #define BIT_MASK_TXSC_20M_8822B 0xf
  8239. #define BIT_TXSC_20M_8822B(x) \
  8240. (((x) & BIT_MASK_TXSC_20M_8822B) << BIT_SHIFT_TXSC_20M_8822B)
  8241. #define BITS_TXSC_20M_8822B \
  8242. (BIT_MASK_TXSC_20M_8822B << BIT_SHIFT_TXSC_20M_8822B)
  8243. #define BIT_CLEAR_TXSC_20M_8822B(x) ((x) & (~BITS_TXSC_20M_8822B))
  8244. #define BIT_GET_TXSC_20M_8822B(x) \
  8245. (((x) >> BIT_SHIFT_TXSC_20M_8822B) & BIT_MASK_TXSC_20M_8822B)
  8246. #define BIT_SET_TXSC_20M_8822B(x, v) \
  8247. (BIT_CLEAR_TXSC_20M_8822B(x) | BIT_TXSC_20M_8822B(v))
  8248. /* 2 REG_MACID_SLEEP3_8822B */
  8249. #define BIT_SHIFT_MACID127_96_PKTSLEEP_8822B 0
  8250. #define BIT_MASK_MACID127_96_PKTSLEEP_8822B 0xffffffffL
  8251. #define BIT_MACID127_96_PKTSLEEP_8822B(x) \
  8252. (((x) & BIT_MASK_MACID127_96_PKTSLEEP_8822B) \
  8253. << BIT_SHIFT_MACID127_96_PKTSLEEP_8822B)
  8254. #define BITS_MACID127_96_PKTSLEEP_8822B \
  8255. (BIT_MASK_MACID127_96_PKTSLEEP_8822B \
  8256. << BIT_SHIFT_MACID127_96_PKTSLEEP_8822B)
  8257. #define BIT_CLEAR_MACID127_96_PKTSLEEP_8822B(x) \
  8258. ((x) & (~BITS_MACID127_96_PKTSLEEP_8822B))
  8259. #define BIT_GET_MACID127_96_PKTSLEEP_8822B(x) \
  8260. (((x) >> BIT_SHIFT_MACID127_96_PKTSLEEP_8822B) & \
  8261. BIT_MASK_MACID127_96_PKTSLEEP_8822B)
  8262. #define BIT_SET_MACID127_96_PKTSLEEP_8822B(x, v) \
  8263. (BIT_CLEAR_MACID127_96_PKTSLEEP_8822B(x) | \
  8264. BIT_MACID127_96_PKTSLEEP_8822B(v))
  8265. /* 2 REG_MACID_SLEEP1_8822B */
  8266. #define BIT_SHIFT_MACID63_32_PKTSLEEP_8822B 0
  8267. #define BIT_MASK_MACID63_32_PKTSLEEP_8822B 0xffffffffL
  8268. #define BIT_MACID63_32_PKTSLEEP_8822B(x) \
  8269. (((x) & BIT_MASK_MACID63_32_PKTSLEEP_8822B) \
  8270. << BIT_SHIFT_MACID63_32_PKTSLEEP_8822B)
  8271. #define BITS_MACID63_32_PKTSLEEP_8822B \
  8272. (BIT_MASK_MACID63_32_PKTSLEEP_8822B \
  8273. << BIT_SHIFT_MACID63_32_PKTSLEEP_8822B)
  8274. #define BIT_CLEAR_MACID63_32_PKTSLEEP_8822B(x) \
  8275. ((x) & (~BITS_MACID63_32_PKTSLEEP_8822B))
  8276. #define BIT_GET_MACID63_32_PKTSLEEP_8822B(x) \
  8277. (((x) >> BIT_SHIFT_MACID63_32_PKTSLEEP_8822B) & \
  8278. BIT_MASK_MACID63_32_PKTSLEEP_8822B)
  8279. #define BIT_SET_MACID63_32_PKTSLEEP_8822B(x, v) \
  8280. (BIT_CLEAR_MACID63_32_PKTSLEEP_8822B(x) | \
  8281. BIT_MACID63_32_PKTSLEEP_8822B(v))
  8282. /* 2 REG_ARFR2_V1_8822B */
  8283. #define BIT_SHIFT_ARFR2_V1_8822B 0
  8284. #define BIT_MASK_ARFR2_V1_8822B 0xffffffffffffffffL
  8285. #define BIT_ARFR2_V1_8822B(x) \
  8286. (((x) & BIT_MASK_ARFR2_V1_8822B) << BIT_SHIFT_ARFR2_V1_8822B)
  8287. #define BITS_ARFR2_V1_8822B \
  8288. (BIT_MASK_ARFR2_V1_8822B << BIT_SHIFT_ARFR2_V1_8822B)
  8289. #define BIT_CLEAR_ARFR2_V1_8822B(x) ((x) & (~BITS_ARFR2_V1_8822B))
  8290. #define BIT_GET_ARFR2_V1_8822B(x) \
  8291. (((x) >> BIT_SHIFT_ARFR2_V1_8822B) & BIT_MASK_ARFR2_V1_8822B)
  8292. #define BIT_SET_ARFR2_V1_8822B(x, v) \
  8293. (BIT_CLEAR_ARFR2_V1_8822B(x) | BIT_ARFR2_V1_8822B(v))
  8294. /* 2 REG_ARFR3_V1_8822B */
  8295. #define BIT_SHIFT_ARFR3_V1_8822B 0
  8296. #define BIT_MASK_ARFR3_V1_8822B 0xffffffffffffffffL
  8297. #define BIT_ARFR3_V1_8822B(x) \
  8298. (((x) & BIT_MASK_ARFR3_V1_8822B) << BIT_SHIFT_ARFR3_V1_8822B)
  8299. #define BITS_ARFR3_V1_8822B \
  8300. (BIT_MASK_ARFR3_V1_8822B << BIT_SHIFT_ARFR3_V1_8822B)
  8301. #define BIT_CLEAR_ARFR3_V1_8822B(x) ((x) & (~BITS_ARFR3_V1_8822B))
  8302. #define BIT_GET_ARFR3_V1_8822B(x) \
  8303. (((x) >> BIT_SHIFT_ARFR3_V1_8822B) & BIT_MASK_ARFR3_V1_8822B)
  8304. #define BIT_SET_ARFR3_V1_8822B(x, v) \
  8305. (BIT_CLEAR_ARFR3_V1_8822B(x) | BIT_ARFR3_V1_8822B(v))
  8306. /* 2 REG_ARFR4_8822B */
  8307. #define BIT_SHIFT_ARFR4_8822B 0
  8308. #define BIT_MASK_ARFR4_8822B 0xffffffffffffffffL
  8309. #define BIT_ARFR4_8822B(x) \
  8310. (((x) & BIT_MASK_ARFR4_8822B) << BIT_SHIFT_ARFR4_8822B)
  8311. #define BITS_ARFR4_8822B (BIT_MASK_ARFR4_8822B << BIT_SHIFT_ARFR4_8822B)
  8312. #define BIT_CLEAR_ARFR4_8822B(x) ((x) & (~BITS_ARFR4_8822B))
  8313. #define BIT_GET_ARFR4_8822B(x) \
  8314. (((x) >> BIT_SHIFT_ARFR4_8822B) & BIT_MASK_ARFR4_8822B)
  8315. #define BIT_SET_ARFR4_8822B(x, v) \
  8316. (BIT_CLEAR_ARFR4_8822B(x) | BIT_ARFR4_8822B(v))
  8317. /* 2 REG_ARFR5_8822B */
  8318. #define BIT_SHIFT_ARFR5_8822B 0
  8319. #define BIT_MASK_ARFR5_8822B 0xffffffffffffffffL
  8320. #define BIT_ARFR5_8822B(x) \
  8321. (((x) & BIT_MASK_ARFR5_8822B) << BIT_SHIFT_ARFR5_8822B)
  8322. #define BITS_ARFR5_8822B (BIT_MASK_ARFR5_8822B << BIT_SHIFT_ARFR5_8822B)
  8323. #define BIT_CLEAR_ARFR5_8822B(x) ((x) & (~BITS_ARFR5_8822B))
  8324. #define BIT_GET_ARFR5_8822B(x) \
  8325. (((x) >> BIT_SHIFT_ARFR5_8822B) & BIT_MASK_ARFR5_8822B)
  8326. #define BIT_SET_ARFR5_8822B(x, v) \
  8327. (BIT_CLEAR_ARFR5_8822B(x) | BIT_ARFR5_8822B(v))
  8328. /* 2 REG_TXRPT_START_OFFSET_8822B */
  8329. #define BIT_SHIFT_MACID_MURATE_OFFSET_8822B 24
  8330. #define BIT_MASK_MACID_MURATE_OFFSET_8822B 0xff
  8331. #define BIT_MACID_MURATE_OFFSET_8822B(x) \
  8332. (((x) & BIT_MASK_MACID_MURATE_OFFSET_8822B) \
  8333. << BIT_SHIFT_MACID_MURATE_OFFSET_8822B)
  8334. #define BITS_MACID_MURATE_OFFSET_8822B \
  8335. (BIT_MASK_MACID_MURATE_OFFSET_8822B \
  8336. << BIT_SHIFT_MACID_MURATE_OFFSET_8822B)
  8337. #define BIT_CLEAR_MACID_MURATE_OFFSET_8822B(x) \
  8338. ((x) & (~BITS_MACID_MURATE_OFFSET_8822B))
  8339. #define BIT_GET_MACID_MURATE_OFFSET_8822B(x) \
  8340. (((x) >> BIT_SHIFT_MACID_MURATE_OFFSET_8822B) & \
  8341. BIT_MASK_MACID_MURATE_OFFSET_8822B)
  8342. #define BIT_SET_MACID_MURATE_OFFSET_8822B(x, v) \
  8343. (BIT_CLEAR_MACID_MURATE_OFFSET_8822B(x) | \
  8344. BIT_MACID_MURATE_OFFSET_8822B(v))
  8345. #define BIT_RPTFIFO_SIZE_OPT_8822B BIT(16)
  8346. #define BIT_SHIFT_MACID_CTRL_OFFSET_8822B 8
  8347. #define BIT_MASK_MACID_CTRL_OFFSET_8822B 0xff
  8348. #define BIT_MACID_CTRL_OFFSET_8822B(x) \
  8349. (((x) & BIT_MASK_MACID_CTRL_OFFSET_8822B) \
  8350. << BIT_SHIFT_MACID_CTRL_OFFSET_8822B)
  8351. #define BITS_MACID_CTRL_OFFSET_8822B \
  8352. (BIT_MASK_MACID_CTRL_OFFSET_8822B << BIT_SHIFT_MACID_CTRL_OFFSET_8822B)
  8353. #define BIT_CLEAR_MACID_CTRL_OFFSET_8822B(x) \
  8354. ((x) & (~BITS_MACID_CTRL_OFFSET_8822B))
  8355. #define BIT_GET_MACID_CTRL_OFFSET_8822B(x) \
  8356. (((x) >> BIT_SHIFT_MACID_CTRL_OFFSET_8822B) & \
  8357. BIT_MASK_MACID_CTRL_OFFSET_8822B)
  8358. #define BIT_SET_MACID_CTRL_OFFSET_8822B(x, v) \
  8359. (BIT_CLEAR_MACID_CTRL_OFFSET_8822B(x) | BIT_MACID_CTRL_OFFSET_8822B(v))
  8360. #define BIT_SHIFT_AMPDU_TXRPT_OFFSET_8822B 0
  8361. #define BIT_MASK_AMPDU_TXRPT_OFFSET_8822B 0xff
  8362. #define BIT_AMPDU_TXRPT_OFFSET_8822B(x) \
  8363. (((x) & BIT_MASK_AMPDU_TXRPT_OFFSET_8822B) \
  8364. << BIT_SHIFT_AMPDU_TXRPT_OFFSET_8822B)
  8365. #define BITS_AMPDU_TXRPT_OFFSET_8822B \
  8366. (BIT_MASK_AMPDU_TXRPT_OFFSET_8822B \
  8367. << BIT_SHIFT_AMPDU_TXRPT_OFFSET_8822B)
  8368. #define BIT_CLEAR_AMPDU_TXRPT_OFFSET_8822B(x) \
  8369. ((x) & (~BITS_AMPDU_TXRPT_OFFSET_8822B))
  8370. #define BIT_GET_AMPDU_TXRPT_OFFSET_8822B(x) \
  8371. (((x) >> BIT_SHIFT_AMPDU_TXRPT_OFFSET_8822B) & \
  8372. BIT_MASK_AMPDU_TXRPT_OFFSET_8822B)
  8373. #define BIT_SET_AMPDU_TXRPT_OFFSET_8822B(x, v) \
  8374. (BIT_CLEAR_AMPDU_TXRPT_OFFSET_8822B(x) | \
  8375. BIT_AMPDU_TXRPT_OFFSET_8822B(v))
  8376. /* 2 REG_POWER_STAGE1_8822B */
  8377. #define BIT_PTA_WL_PRI_MASK_CPU_MGQ_8822B BIT(31)
  8378. #define BIT_PTA_WL_PRI_MASK_BCNQ_8822B BIT(30)
  8379. #define BIT_PTA_WL_PRI_MASK_HIQ_8822B BIT(29)
  8380. #define BIT_PTA_WL_PRI_MASK_MGQ_8822B BIT(28)
  8381. #define BIT_PTA_WL_PRI_MASK_BK_8822B BIT(27)
  8382. #define BIT_PTA_WL_PRI_MASK_BE_8822B BIT(26)
  8383. #define BIT_PTA_WL_PRI_MASK_VI_8822B BIT(25)
  8384. #define BIT_PTA_WL_PRI_MASK_VO_8822B BIT(24)
  8385. #define BIT_SHIFT_POWER_STAGE1_8822B 0
  8386. #define BIT_MASK_POWER_STAGE1_8822B 0xffffff
  8387. #define BIT_POWER_STAGE1_8822B(x) \
  8388. (((x) & BIT_MASK_POWER_STAGE1_8822B) << BIT_SHIFT_POWER_STAGE1_8822B)
  8389. #define BITS_POWER_STAGE1_8822B \
  8390. (BIT_MASK_POWER_STAGE1_8822B << BIT_SHIFT_POWER_STAGE1_8822B)
  8391. #define BIT_CLEAR_POWER_STAGE1_8822B(x) ((x) & (~BITS_POWER_STAGE1_8822B))
  8392. #define BIT_GET_POWER_STAGE1_8822B(x) \
  8393. (((x) >> BIT_SHIFT_POWER_STAGE1_8822B) & BIT_MASK_POWER_STAGE1_8822B)
  8394. #define BIT_SET_POWER_STAGE1_8822B(x, v) \
  8395. (BIT_CLEAR_POWER_STAGE1_8822B(x) | BIT_POWER_STAGE1_8822B(v))
  8396. /* 2 REG_POWER_STAGE2_8822B */
  8397. #define BIT__R_CTRL_PKT_POW_ADJ_8822B BIT(24)
  8398. #define BIT_SHIFT_POWER_STAGE2_8822B 0
  8399. #define BIT_MASK_POWER_STAGE2_8822B 0xffffff
  8400. #define BIT_POWER_STAGE2_8822B(x) \
  8401. (((x) & BIT_MASK_POWER_STAGE2_8822B) << BIT_SHIFT_POWER_STAGE2_8822B)
  8402. #define BITS_POWER_STAGE2_8822B \
  8403. (BIT_MASK_POWER_STAGE2_8822B << BIT_SHIFT_POWER_STAGE2_8822B)
  8404. #define BIT_CLEAR_POWER_STAGE2_8822B(x) ((x) & (~BITS_POWER_STAGE2_8822B))
  8405. #define BIT_GET_POWER_STAGE2_8822B(x) \
  8406. (((x) >> BIT_SHIFT_POWER_STAGE2_8822B) & BIT_MASK_POWER_STAGE2_8822B)
  8407. #define BIT_SET_POWER_STAGE2_8822B(x, v) \
  8408. (BIT_CLEAR_POWER_STAGE2_8822B(x) | BIT_POWER_STAGE2_8822B(v))
  8409. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL_8822B */
  8410. #define BIT_SHIFT_PAD_NUM_THRES_8822B 24
  8411. #define BIT_MASK_PAD_NUM_THRES_8822B 0x3f
  8412. #define BIT_PAD_NUM_THRES_8822B(x) \
  8413. (((x) & BIT_MASK_PAD_NUM_THRES_8822B) << BIT_SHIFT_PAD_NUM_THRES_8822B)
  8414. #define BITS_PAD_NUM_THRES_8822B \
  8415. (BIT_MASK_PAD_NUM_THRES_8822B << BIT_SHIFT_PAD_NUM_THRES_8822B)
  8416. #define BIT_CLEAR_PAD_NUM_THRES_8822B(x) ((x) & (~BITS_PAD_NUM_THRES_8822B))
  8417. #define BIT_GET_PAD_NUM_THRES_8822B(x) \
  8418. (((x) >> BIT_SHIFT_PAD_NUM_THRES_8822B) & BIT_MASK_PAD_NUM_THRES_8822B)
  8419. #define BIT_SET_PAD_NUM_THRES_8822B(x, v) \
  8420. (BIT_CLEAR_PAD_NUM_THRES_8822B(x) | BIT_PAD_NUM_THRES_8822B(v))
  8421. #define BIT_R_DMA_THIS_QUEUE_BK_8822B BIT(23)
  8422. #define BIT_R_DMA_THIS_QUEUE_BE_8822B BIT(22)
  8423. #define BIT_R_DMA_THIS_QUEUE_VI_8822B BIT(21)
  8424. #define BIT_R_DMA_THIS_QUEUE_VO_8822B BIT(20)
  8425. #define BIT_SHIFT_R_TOTAL_LEN_TH_8822B 8
  8426. #define BIT_MASK_R_TOTAL_LEN_TH_8822B 0xfff
  8427. #define BIT_R_TOTAL_LEN_TH_8822B(x) \
  8428. (((x) & BIT_MASK_R_TOTAL_LEN_TH_8822B) \
  8429. << BIT_SHIFT_R_TOTAL_LEN_TH_8822B)
  8430. #define BITS_R_TOTAL_LEN_TH_8822B \
  8431. (BIT_MASK_R_TOTAL_LEN_TH_8822B << BIT_SHIFT_R_TOTAL_LEN_TH_8822B)
  8432. #define BIT_CLEAR_R_TOTAL_LEN_TH_8822B(x) ((x) & (~BITS_R_TOTAL_LEN_TH_8822B))
  8433. #define BIT_GET_R_TOTAL_LEN_TH_8822B(x) \
  8434. (((x) >> BIT_SHIFT_R_TOTAL_LEN_TH_8822B) & \
  8435. BIT_MASK_R_TOTAL_LEN_TH_8822B)
  8436. #define BIT_SET_R_TOTAL_LEN_TH_8822B(x, v) \
  8437. (BIT_CLEAR_R_TOTAL_LEN_TH_8822B(x) | BIT_R_TOTAL_LEN_TH_8822B(v))
  8438. #define BIT_EN_NEW_EARLY_8822B BIT(7)
  8439. #define BIT_PRE_TX_CMD_8822B BIT(6)
  8440. #define BIT_SHIFT_NUM_SCL_EN_8822B 4
  8441. #define BIT_MASK_NUM_SCL_EN_8822B 0x3
  8442. #define BIT_NUM_SCL_EN_8822B(x) \
  8443. (((x) & BIT_MASK_NUM_SCL_EN_8822B) << BIT_SHIFT_NUM_SCL_EN_8822B)
  8444. #define BITS_NUM_SCL_EN_8822B \
  8445. (BIT_MASK_NUM_SCL_EN_8822B << BIT_SHIFT_NUM_SCL_EN_8822B)
  8446. #define BIT_CLEAR_NUM_SCL_EN_8822B(x) ((x) & (~BITS_NUM_SCL_EN_8822B))
  8447. #define BIT_GET_NUM_SCL_EN_8822B(x) \
  8448. (((x) >> BIT_SHIFT_NUM_SCL_EN_8822B) & BIT_MASK_NUM_SCL_EN_8822B)
  8449. #define BIT_SET_NUM_SCL_EN_8822B(x, v) \
  8450. (BIT_CLEAR_NUM_SCL_EN_8822B(x) | BIT_NUM_SCL_EN_8822B(v))
  8451. #define BIT_BK_EN_8822B BIT(3)
  8452. #define BIT_BE_EN_8822B BIT(2)
  8453. #define BIT_VI_EN_8822B BIT(1)
  8454. #define BIT_VO_EN_8822B BIT(0)
  8455. /* 2 REG_PKT_LIFE_TIME_8822B */
  8456. #define BIT_SHIFT_PKT_LIFTIME_BEBK_8822B 16
  8457. #define BIT_MASK_PKT_LIFTIME_BEBK_8822B 0xffff
  8458. #define BIT_PKT_LIFTIME_BEBK_8822B(x) \
  8459. (((x) & BIT_MASK_PKT_LIFTIME_BEBK_8822B) \
  8460. << BIT_SHIFT_PKT_LIFTIME_BEBK_8822B)
  8461. #define BITS_PKT_LIFTIME_BEBK_8822B \
  8462. (BIT_MASK_PKT_LIFTIME_BEBK_8822B << BIT_SHIFT_PKT_LIFTIME_BEBK_8822B)
  8463. #define BIT_CLEAR_PKT_LIFTIME_BEBK_8822B(x) \
  8464. ((x) & (~BITS_PKT_LIFTIME_BEBK_8822B))
  8465. #define BIT_GET_PKT_LIFTIME_BEBK_8822B(x) \
  8466. (((x) >> BIT_SHIFT_PKT_LIFTIME_BEBK_8822B) & \
  8467. BIT_MASK_PKT_LIFTIME_BEBK_8822B)
  8468. #define BIT_SET_PKT_LIFTIME_BEBK_8822B(x, v) \
  8469. (BIT_CLEAR_PKT_LIFTIME_BEBK_8822B(x) | BIT_PKT_LIFTIME_BEBK_8822B(v))
  8470. #define BIT_SHIFT_PKT_LIFTIME_VOVI_8822B 0
  8471. #define BIT_MASK_PKT_LIFTIME_VOVI_8822B 0xffff
  8472. #define BIT_PKT_LIFTIME_VOVI_8822B(x) \
  8473. (((x) & BIT_MASK_PKT_LIFTIME_VOVI_8822B) \
  8474. << BIT_SHIFT_PKT_LIFTIME_VOVI_8822B)
  8475. #define BITS_PKT_LIFTIME_VOVI_8822B \
  8476. (BIT_MASK_PKT_LIFTIME_VOVI_8822B << BIT_SHIFT_PKT_LIFTIME_VOVI_8822B)
  8477. #define BIT_CLEAR_PKT_LIFTIME_VOVI_8822B(x) \
  8478. ((x) & (~BITS_PKT_LIFTIME_VOVI_8822B))
  8479. #define BIT_GET_PKT_LIFTIME_VOVI_8822B(x) \
  8480. (((x) >> BIT_SHIFT_PKT_LIFTIME_VOVI_8822B) & \
  8481. BIT_MASK_PKT_LIFTIME_VOVI_8822B)
  8482. #define BIT_SET_PKT_LIFTIME_VOVI_8822B(x, v) \
  8483. (BIT_CLEAR_PKT_LIFTIME_VOVI_8822B(x) | BIT_PKT_LIFTIME_VOVI_8822B(v))
  8484. /* 2 REG_STBC_SETTING_8822B */
  8485. #define BIT_SHIFT_CDEND_TXTIME_L_8822B 4
  8486. #define BIT_MASK_CDEND_TXTIME_L_8822B 0xf
  8487. #define BIT_CDEND_TXTIME_L_8822B(x) \
  8488. (((x) & BIT_MASK_CDEND_TXTIME_L_8822B) \
  8489. << BIT_SHIFT_CDEND_TXTIME_L_8822B)
  8490. #define BITS_CDEND_TXTIME_L_8822B \
  8491. (BIT_MASK_CDEND_TXTIME_L_8822B << BIT_SHIFT_CDEND_TXTIME_L_8822B)
  8492. #define BIT_CLEAR_CDEND_TXTIME_L_8822B(x) ((x) & (~BITS_CDEND_TXTIME_L_8822B))
  8493. #define BIT_GET_CDEND_TXTIME_L_8822B(x) \
  8494. (((x) >> BIT_SHIFT_CDEND_TXTIME_L_8822B) & \
  8495. BIT_MASK_CDEND_TXTIME_L_8822B)
  8496. #define BIT_SET_CDEND_TXTIME_L_8822B(x, v) \
  8497. (BIT_CLEAR_CDEND_TXTIME_L_8822B(x) | BIT_CDEND_TXTIME_L_8822B(v))
  8498. #define BIT_SHIFT_NESS_8822B 2
  8499. #define BIT_MASK_NESS_8822B 0x3
  8500. #define BIT_NESS_8822B(x) (((x) & BIT_MASK_NESS_8822B) << BIT_SHIFT_NESS_8822B)
  8501. #define BITS_NESS_8822B (BIT_MASK_NESS_8822B << BIT_SHIFT_NESS_8822B)
  8502. #define BIT_CLEAR_NESS_8822B(x) ((x) & (~BITS_NESS_8822B))
  8503. #define BIT_GET_NESS_8822B(x) \
  8504. (((x) >> BIT_SHIFT_NESS_8822B) & BIT_MASK_NESS_8822B)
  8505. #define BIT_SET_NESS_8822B(x, v) (BIT_CLEAR_NESS_8822B(x) | BIT_NESS_8822B(v))
  8506. #define BIT_SHIFT_STBC_CFEND_8822B 0
  8507. #define BIT_MASK_STBC_CFEND_8822B 0x3
  8508. #define BIT_STBC_CFEND_8822B(x) \
  8509. (((x) & BIT_MASK_STBC_CFEND_8822B) << BIT_SHIFT_STBC_CFEND_8822B)
  8510. #define BITS_STBC_CFEND_8822B \
  8511. (BIT_MASK_STBC_CFEND_8822B << BIT_SHIFT_STBC_CFEND_8822B)
  8512. #define BIT_CLEAR_STBC_CFEND_8822B(x) ((x) & (~BITS_STBC_CFEND_8822B))
  8513. #define BIT_GET_STBC_CFEND_8822B(x) \
  8514. (((x) >> BIT_SHIFT_STBC_CFEND_8822B) & BIT_MASK_STBC_CFEND_8822B)
  8515. #define BIT_SET_STBC_CFEND_8822B(x, v) \
  8516. (BIT_CLEAR_STBC_CFEND_8822B(x) | BIT_STBC_CFEND_8822B(v))
  8517. /* 2 REG_STBC_SETTING2_8822B */
  8518. #define BIT_SHIFT_CDEND_TXTIME_H_8822B 0
  8519. #define BIT_MASK_CDEND_TXTIME_H_8822B 0x1f
  8520. #define BIT_CDEND_TXTIME_H_8822B(x) \
  8521. (((x) & BIT_MASK_CDEND_TXTIME_H_8822B) \
  8522. << BIT_SHIFT_CDEND_TXTIME_H_8822B)
  8523. #define BITS_CDEND_TXTIME_H_8822B \
  8524. (BIT_MASK_CDEND_TXTIME_H_8822B << BIT_SHIFT_CDEND_TXTIME_H_8822B)
  8525. #define BIT_CLEAR_CDEND_TXTIME_H_8822B(x) ((x) & (~BITS_CDEND_TXTIME_H_8822B))
  8526. #define BIT_GET_CDEND_TXTIME_H_8822B(x) \
  8527. (((x) >> BIT_SHIFT_CDEND_TXTIME_H_8822B) & \
  8528. BIT_MASK_CDEND_TXTIME_H_8822B)
  8529. #define BIT_SET_CDEND_TXTIME_H_8822B(x, v) \
  8530. (BIT_CLEAR_CDEND_TXTIME_H_8822B(x) | BIT_CDEND_TXTIME_H_8822B(v))
  8531. /* 2 REG_QUEUE_CTRL_8822B */
  8532. #define BIT_PTA_EDCCA_EN_8822B BIT(5)
  8533. #define BIT_PTA_WL_TX_EN_8822B BIT(4)
  8534. #define BIT_R_USE_DATA_BW_8822B BIT(3)
  8535. #define BIT_TRI_PKT_INT_MODE1_8822B BIT(2)
  8536. #define BIT_TRI_PKT_INT_MODE0_8822B BIT(1)
  8537. #define BIT_ACQ_MODE_SEL_8822B BIT(0)
  8538. /* 2 REG_SINGLE_AMPDU_CTRL_8822B */
  8539. #define BIT_EN_SINGLE_APMDU_8822B BIT(7)
  8540. /* 2 REG_PROT_MODE_CTRL_8822B */
  8541. #define BIT_SHIFT_RTS_MAX_AGG_NUM_8822B 24
  8542. #define BIT_MASK_RTS_MAX_AGG_NUM_8822B 0x3f
  8543. #define BIT_RTS_MAX_AGG_NUM_8822B(x) \
  8544. (((x) & BIT_MASK_RTS_MAX_AGG_NUM_8822B) \
  8545. << BIT_SHIFT_RTS_MAX_AGG_NUM_8822B)
  8546. #define BITS_RTS_MAX_AGG_NUM_8822B \
  8547. (BIT_MASK_RTS_MAX_AGG_NUM_8822B << BIT_SHIFT_RTS_MAX_AGG_NUM_8822B)
  8548. #define BIT_CLEAR_RTS_MAX_AGG_NUM_8822B(x) ((x) & (~BITS_RTS_MAX_AGG_NUM_8822B))
  8549. #define BIT_GET_RTS_MAX_AGG_NUM_8822B(x) \
  8550. (((x) >> BIT_SHIFT_RTS_MAX_AGG_NUM_8822B) & \
  8551. BIT_MASK_RTS_MAX_AGG_NUM_8822B)
  8552. #define BIT_SET_RTS_MAX_AGG_NUM_8822B(x, v) \
  8553. (BIT_CLEAR_RTS_MAX_AGG_NUM_8822B(x) | BIT_RTS_MAX_AGG_NUM_8822B(v))
  8554. #define BIT_SHIFT_MAX_AGG_NUM_8822B 16
  8555. #define BIT_MASK_MAX_AGG_NUM_8822B 0x3f
  8556. #define BIT_MAX_AGG_NUM_8822B(x) \
  8557. (((x) & BIT_MASK_MAX_AGG_NUM_8822B) << BIT_SHIFT_MAX_AGG_NUM_8822B)
  8558. #define BITS_MAX_AGG_NUM_8822B \
  8559. (BIT_MASK_MAX_AGG_NUM_8822B << BIT_SHIFT_MAX_AGG_NUM_8822B)
  8560. #define BIT_CLEAR_MAX_AGG_NUM_8822B(x) ((x) & (~BITS_MAX_AGG_NUM_8822B))
  8561. #define BIT_GET_MAX_AGG_NUM_8822B(x) \
  8562. (((x) >> BIT_SHIFT_MAX_AGG_NUM_8822B) & BIT_MASK_MAX_AGG_NUM_8822B)
  8563. #define BIT_SET_MAX_AGG_NUM_8822B(x, v) \
  8564. (BIT_CLEAR_MAX_AGG_NUM_8822B(x) | BIT_MAX_AGG_NUM_8822B(v))
  8565. #define BIT_SHIFT_RTS_TXTIME_TH_8822B 8
  8566. #define BIT_MASK_RTS_TXTIME_TH_8822B 0xff
  8567. #define BIT_RTS_TXTIME_TH_8822B(x) \
  8568. (((x) & BIT_MASK_RTS_TXTIME_TH_8822B) << BIT_SHIFT_RTS_TXTIME_TH_8822B)
  8569. #define BITS_RTS_TXTIME_TH_8822B \
  8570. (BIT_MASK_RTS_TXTIME_TH_8822B << BIT_SHIFT_RTS_TXTIME_TH_8822B)
  8571. #define BIT_CLEAR_RTS_TXTIME_TH_8822B(x) ((x) & (~BITS_RTS_TXTIME_TH_8822B))
  8572. #define BIT_GET_RTS_TXTIME_TH_8822B(x) \
  8573. (((x) >> BIT_SHIFT_RTS_TXTIME_TH_8822B) & BIT_MASK_RTS_TXTIME_TH_8822B)
  8574. #define BIT_SET_RTS_TXTIME_TH_8822B(x, v) \
  8575. (BIT_CLEAR_RTS_TXTIME_TH_8822B(x) | BIT_RTS_TXTIME_TH_8822B(v))
  8576. #define BIT_SHIFT_RTS_LEN_TH_8822B 0
  8577. #define BIT_MASK_RTS_LEN_TH_8822B 0xff
  8578. #define BIT_RTS_LEN_TH_8822B(x) \
  8579. (((x) & BIT_MASK_RTS_LEN_TH_8822B) << BIT_SHIFT_RTS_LEN_TH_8822B)
  8580. #define BITS_RTS_LEN_TH_8822B \
  8581. (BIT_MASK_RTS_LEN_TH_8822B << BIT_SHIFT_RTS_LEN_TH_8822B)
  8582. #define BIT_CLEAR_RTS_LEN_TH_8822B(x) ((x) & (~BITS_RTS_LEN_TH_8822B))
  8583. #define BIT_GET_RTS_LEN_TH_8822B(x) \
  8584. (((x) >> BIT_SHIFT_RTS_LEN_TH_8822B) & BIT_MASK_RTS_LEN_TH_8822B)
  8585. #define BIT_SET_RTS_LEN_TH_8822B(x, v) \
  8586. (BIT_CLEAR_RTS_LEN_TH_8822B(x) | BIT_RTS_LEN_TH_8822B(v))
  8587. /* 2 REG_BAR_MODE_CTRL_8822B */
  8588. #define BIT_SHIFT_BAR_RTY_LMT_8822B 16
  8589. #define BIT_MASK_BAR_RTY_LMT_8822B 0x3
  8590. #define BIT_BAR_RTY_LMT_8822B(x) \
  8591. (((x) & BIT_MASK_BAR_RTY_LMT_8822B) << BIT_SHIFT_BAR_RTY_LMT_8822B)
  8592. #define BITS_BAR_RTY_LMT_8822B \
  8593. (BIT_MASK_BAR_RTY_LMT_8822B << BIT_SHIFT_BAR_RTY_LMT_8822B)
  8594. #define BIT_CLEAR_BAR_RTY_LMT_8822B(x) ((x) & (~BITS_BAR_RTY_LMT_8822B))
  8595. #define BIT_GET_BAR_RTY_LMT_8822B(x) \
  8596. (((x) >> BIT_SHIFT_BAR_RTY_LMT_8822B) & BIT_MASK_BAR_RTY_LMT_8822B)
  8597. #define BIT_SET_BAR_RTY_LMT_8822B(x, v) \
  8598. (BIT_CLEAR_BAR_RTY_LMT_8822B(x) | BIT_BAR_RTY_LMT_8822B(v))
  8599. #define BIT_SHIFT_BAR_PKT_TXTIME_TH_8822B 8
  8600. #define BIT_MASK_BAR_PKT_TXTIME_TH_8822B 0xff
  8601. #define BIT_BAR_PKT_TXTIME_TH_8822B(x) \
  8602. (((x) & BIT_MASK_BAR_PKT_TXTIME_TH_8822B) \
  8603. << BIT_SHIFT_BAR_PKT_TXTIME_TH_8822B)
  8604. #define BITS_BAR_PKT_TXTIME_TH_8822B \
  8605. (BIT_MASK_BAR_PKT_TXTIME_TH_8822B << BIT_SHIFT_BAR_PKT_TXTIME_TH_8822B)
  8606. #define BIT_CLEAR_BAR_PKT_TXTIME_TH_8822B(x) \
  8607. ((x) & (~BITS_BAR_PKT_TXTIME_TH_8822B))
  8608. #define BIT_GET_BAR_PKT_TXTIME_TH_8822B(x) \
  8609. (((x) >> BIT_SHIFT_BAR_PKT_TXTIME_TH_8822B) & \
  8610. BIT_MASK_BAR_PKT_TXTIME_TH_8822B)
  8611. #define BIT_SET_BAR_PKT_TXTIME_TH_8822B(x, v) \
  8612. (BIT_CLEAR_BAR_PKT_TXTIME_TH_8822B(x) | BIT_BAR_PKT_TXTIME_TH_8822B(v))
  8613. #define BIT_BAR_EN_V1_8822B BIT(6)
  8614. #define BIT_SHIFT_BAR_PKTNUM_TH_V1_8822B 0
  8615. #define BIT_MASK_BAR_PKTNUM_TH_V1_8822B 0x3f
  8616. #define BIT_BAR_PKTNUM_TH_V1_8822B(x) \
  8617. (((x) & BIT_MASK_BAR_PKTNUM_TH_V1_8822B) \
  8618. << BIT_SHIFT_BAR_PKTNUM_TH_V1_8822B)
  8619. #define BITS_BAR_PKTNUM_TH_V1_8822B \
  8620. (BIT_MASK_BAR_PKTNUM_TH_V1_8822B << BIT_SHIFT_BAR_PKTNUM_TH_V1_8822B)
  8621. #define BIT_CLEAR_BAR_PKTNUM_TH_V1_8822B(x) \
  8622. ((x) & (~BITS_BAR_PKTNUM_TH_V1_8822B))
  8623. #define BIT_GET_BAR_PKTNUM_TH_V1_8822B(x) \
  8624. (((x) >> BIT_SHIFT_BAR_PKTNUM_TH_V1_8822B) & \
  8625. BIT_MASK_BAR_PKTNUM_TH_V1_8822B)
  8626. #define BIT_SET_BAR_PKTNUM_TH_V1_8822B(x, v) \
  8627. (BIT_CLEAR_BAR_PKTNUM_TH_V1_8822B(x) | BIT_BAR_PKTNUM_TH_V1_8822B(v))
  8628. /* 2 REG_RA_TRY_RATE_AGG_LMT_8822B */
  8629. #define BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1_8822B 0
  8630. #define BIT_MASK_RA_TRY_RATE_AGG_LMT_V1_8822B 0x3f
  8631. #define BIT_RA_TRY_RATE_AGG_LMT_V1_8822B(x) \
  8632. (((x) & BIT_MASK_RA_TRY_RATE_AGG_LMT_V1_8822B) \
  8633. << BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1_8822B)
  8634. #define BITS_RA_TRY_RATE_AGG_LMT_V1_8822B \
  8635. (BIT_MASK_RA_TRY_RATE_AGG_LMT_V1_8822B \
  8636. << BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1_8822B)
  8637. #define BIT_CLEAR_RA_TRY_RATE_AGG_LMT_V1_8822B(x) \
  8638. ((x) & (~BITS_RA_TRY_RATE_AGG_LMT_V1_8822B))
  8639. #define BIT_GET_RA_TRY_RATE_AGG_LMT_V1_8822B(x) \
  8640. (((x) >> BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1_8822B) & \
  8641. BIT_MASK_RA_TRY_RATE_AGG_LMT_V1_8822B)
  8642. #define BIT_SET_RA_TRY_RATE_AGG_LMT_V1_8822B(x, v) \
  8643. (BIT_CLEAR_RA_TRY_RATE_AGG_LMT_V1_8822B(x) | \
  8644. BIT_RA_TRY_RATE_AGG_LMT_V1_8822B(v))
  8645. /* 2 REG_MACID_SLEEP2_8822B */
  8646. #define BIT_SHIFT_MACID95_64PKTSLEEP_8822B 0
  8647. #define BIT_MASK_MACID95_64PKTSLEEP_8822B 0xffffffffL
  8648. #define BIT_MACID95_64PKTSLEEP_8822B(x) \
  8649. (((x) & BIT_MASK_MACID95_64PKTSLEEP_8822B) \
  8650. << BIT_SHIFT_MACID95_64PKTSLEEP_8822B)
  8651. #define BITS_MACID95_64PKTSLEEP_8822B \
  8652. (BIT_MASK_MACID95_64PKTSLEEP_8822B \
  8653. << BIT_SHIFT_MACID95_64PKTSLEEP_8822B)
  8654. #define BIT_CLEAR_MACID95_64PKTSLEEP_8822B(x) \
  8655. ((x) & (~BITS_MACID95_64PKTSLEEP_8822B))
  8656. #define BIT_GET_MACID95_64PKTSLEEP_8822B(x) \
  8657. (((x) >> BIT_SHIFT_MACID95_64PKTSLEEP_8822B) & \
  8658. BIT_MASK_MACID95_64PKTSLEEP_8822B)
  8659. #define BIT_SET_MACID95_64PKTSLEEP_8822B(x, v) \
  8660. (BIT_CLEAR_MACID95_64PKTSLEEP_8822B(x) | \
  8661. BIT_MACID95_64PKTSLEEP_8822B(v))
  8662. /* 2 REG_MACID_SLEEP_8822B */
  8663. #define BIT_SHIFT_MACID31_0_PKTSLEEP_8822B 0
  8664. #define BIT_MASK_MACID31_0_PKTSLEEP_8822B 0xffffffffL
  8665. #define BIT_MACID31_0_PKTSLEEP_8822B(x) \
  8666. (((x) & BIT_MASK_MACID31_0_PKTSLEEP_8822B) \
  8667. << BIT_SHIFT_MACID31_0_PKTSLEEP_8822B)
  8668. #define BITS_MACID31_0_PKTSLEEP_8822B \
  8669. (BIT_MASK_MACID31_0_PKTSLEEP_8822B \
  8670. << BIT_SHIFT_MACID31_0_PKTSLEEP_8822B)
  8671. #define BIT_CLEAR_MACID31_0_PKTSLEEP_8822B(x) \
  8672. ((x) & (~BITS_MACID31_0_PKTSLEEP_8822B))
  8673. #define BIT_GET_MACID31_0_PKTSLEEP_8822B(x) \
  8674. (((x) >> BIT_SHIFT_MACID31_0_PKTSLEEP_8822B) & \
  8675. BIT_MASK_MACID31_0_PKTSLEEP_8822B)
  8676. #define BIT_SET_MACID31_0_PKTSLEEP_8822B(x, v) \
  8677. (BIT_CLEAR_MACID31_0_PKTSLEEP_8822B(x) | \
  8678. BIT_MACID31_0_PKTSLEEP_8822B(v))
  8679. /* 2 REG_HW_SEQ0_8822B */
  8680. #define BIT_SHIFT_HW_SSN_SEQ0_8822B 0
  8681. #define BIT_MASK_HW_SSN_SEQ0_8822B 0xfff
  8682. #define BIT_HW_SSN_SEQ0_8822B(x) \
  8683. (((x) & BIT_MASK_HW_SSN_SEQ0_8822B) << BIT_SHIFT_HW_SSN_SEQ0_8822B)
  8684. #define BITS_HW_SSN_SEQ0_8822B \
  8685. (BIT_MASK_HW_SSN_SEQ0_8822B << BIT_SHIFT_HW_SSN_SEQ0_8822B)
  8686. #define BIT_CLEAR_HW_SSN_SEQ0_8822B(x) ((x) & (~BITS_HW_SSN_SEQ0_8822B))
  8687. #define BIT_GET_HW_SSN_SEQ0_8822B(x) \
  8688. (((x) >> BIT_SHIFT_HW_SSN_SEQ0_8822B) & BIT_MASK_HW_SSN_SEQ0_8822B)
  8689. #define BIT_SET_HW_SSN_SEQ0_8822B(x, v) \
  8690. (BIT_CLEAR_HW_SSN_SEQ0_8822B(x) | BIT_HW_SSN_SEQ0_8822B(v))
  8691. /* 2 REG_HW_SEQ1_8822B */
  8692. #define BIT_SHIFT_HW_SSN_SEQ1_8822B 0
  8693. #define BIT_MASK_HW_SSN_SEQ1_8822B 0xfff
  8694. #define BIT_HW_SSN_SEQ1_8822B(x) \
  8695. (((x) & BIT_MASK_HW_SSN_SEQ1_8822B) << BIT_SHIFT_HW_SSN_SEQ1_8822B)
  8696. #define BITS_HW_SSN_SEQ1_8822B \
  8697. (BIT_MASK_HW_SSN_SEQ1_8822B << BIT_SHIFT_HW_SSN_SEQ1_8822B)
  8698. #define BIT_CLEAR_HW_SSN_SEQ1_8822B(x) ((x) & (~BITS_HW_SSN_SEQ1_8822B))
  8699. #define BIT_GET_HW_SSN_SEQ1_8822B(x) \
  8700. (((x) >> BIT_SHIFT_HW_SSN_SEQ1_8822B) & BIT_MASK_HW_SSN_SEQ1_8822B)
  8701. #define BIT_SET_HW_SSN_SEQ1_8822B(x, v) \
  8702. (BIT_CLEAR_HW_SSN_SEQ1_8822B(x) | BIT_HW_SSN_SEQ1_8822B(v))
  8703. /* 2 REG_HW_SEQ2_8822B */
  8704. #define BIT_SHIFT_HW_SSN_SEQ2_8822B 0
  8705. #define BIT_MASK_HW_SSN_SEQ2_8822B 0xfff
  8706. #define BIT_HW_SSN_SEQ2_8822B(x) \
  8707. (((x) & BIT_MASK_HW_SSN_SEQ2_8822B) << BIT_SHIFT_HW_SSN_SEQ2_8822B)
  8708. #define BITS_HW_SSN_SEQ2_8822B \
  8709. (BIT_MASK_HW_SSN_SEQ2_8822B << BIT_SHIFT_HW_SSN_SEQ2_8822B)
  8710. #define BIT_CLEAR_HW_SSN_SEQ2_8822B(x) ((x) & (~BITS_HW_SSN_SEQ2_8822B))
  8711. #define BIT_GET_HW_SSN_SEQ2_8822B(x) \
  8712. (((x) >> BIT_SHIFT_HW_SSN_SEQ2_8822B) & BIT_MASK_HW_SSN_SEQ2_8822B)
  8713. #define BIT_SET_HW_SSN_SEQ2_8822B(x, v) \
  8714. (BIT_CLEAR_HW_SSN_SEQ2_8822B(x) | BIT_HW_SSN_SEQ2_8822B(v))
  8715. /* 2 REG_HW_SEQ3_8822B */
  8716. #define BIT_SHIFT_HW_SSN_SEQ3_8822B 0
  8717. #define BIT_MASK_HW_SSN_SEQ3_8822B 0xfff
  8718. #define BIT_HW_SSN_SEQ3_8822B(x) \
  8719. (((x) & BIT_MASK_HW_SSN_SEQ3_8822B) << BIT_SHIFT_HW_SSN_SEQ3_8822B)
  8720. #define BITS_HW_SSN_SEQ3_8822B \
  8721. (BIT_MASK_HW_SSN_SEQ3_8822B << BIT_SHIFT_HW_SSN_SEQ3_8822B)
  8722. #define BIT_CLEAR_HW_SSN_SEQ3_8822B(x) ((x) & (~BITS_HW_SSN_SEQ3_8822B))
  8723. #define BIT_GET_HW_SSN_SEQ3_8822B(x) \
  8724. (((x) >> BIT_SHIFT_HW_SSN_SEQ3_8822B) & BIT_MASK_HW_SSN_SEQ3_8822B)
  8725. #define BIT_SET_HW_SSN_SEQ3_8822B(x, v) \
  8726. (BIT_CLEAR_HW_SSN_SEQ3_8822B(x) | BIT_HW_SSN_SEQ3_8822B(v))
  8727. /* 2 REG_NULL_PKT_STATUS_V1_8822B */
  8728. #define BIT_SHIFT_PTCL_TOTAL_PG_V2_8822B 2
  8729. #define BIT_MASK_PTCL_TOTAL_PG_V2_8822B 0x3fff
  8730. #define BIT_PTCL_TOTAL_PG_V2_8822B(x) \
  8731. (((x) & BIT_MASK_PTCL_TOTAL_PG_V2_8822B) \
  8732. << BIT_SHIFT_PTCL_TOTAL_PG_V2_8822B)
  8733. #define BITS_PTCL_TOTAL_PG_V2_8822B \
  8734. (BIT_MASK_PTCL_TOTAL_PG_V2_8822B << BIT_SHIFT_PTCL_TOTAL_PG_V2_8822B)
  8735. #define BIT_CLEAR_PTCL_TOTAL_PG_V2_8822B(x) \
  8736. ((x) & (~BITS_PTCL_TOTAL_PG_V2_8822B))
  8737. #define BIT_GET_PTCL_TOTAL_PG_V2_8822B(x) \
  8738. (((x) >> BIT_SHIFT_PTCL_TOTAL_PG_V2_8822B) & \
  8739. BIT_MASK_PTCL_TOTAL_PG_V2_8822B)
  8740. #define BIT_SET_PTCL_TOTAL_PG_V2_8822B(x, v) \
  8741. (BIT_CLEAR_PTCL_TOTAL_PG_V2_8822B(x) | BIT_PTCL_TOTAL_PG_V2_8822B(v))
  8742. #define BIT_TX_NULL_1_8822B BIT(1)
  8743. #define BIT_TX_NULL_0_8822B BIT(0)
  8744. /* 2 REG_PTCL_ERR_STATUS_8822B */
  8745. #define BIT_PTCL_RATE_TABLE_INVALID_8822B BIT(7)
  8746. #define BIT_FTM_T2R_ERROR_8822B BIT(6)
  8747. #define BIT_PTCL_ERR0_8822B BIT(5)
  8748. #define BIT_PTCL_ERR1_8822B BIT(4)
  8749. #define BIT_PTCL_ERR2_8822B BIT(3)
  8750. #define BIT_PTCL_ERR3_8822B BIT(2)
  8751. #define BIT_PTCL_ERR4_8822B BIT(1)
  8752. #define BIT_PTCL_ERR5_8822B BIT(0)
  8753. /* 2 REG_NULL_PKT_STATUS_EXTEND_8822B */
  8754. #define BIT_CLI3_TX_NULL_1_8822B BIT(7)
  8755. #define BIT_CLI3_TX_NULL_0_8822B BIT(6)
  8756. #define BIT_CLI2_TX_NULL_1_8822B BIT(5)
  8757. #define BIT_CLI2_TX_NULL_0_8822B BIT(4)
  8758. #define BIT_CLI1_TX_NULL_1_8822B BIT(3)
  8759. #define BIT_CLI1_TX_NULL_0_8822B BIT(2)
  8760. #define BIT_CLI0_TX_NULL_1_8822B BIT(1)
  8761. #define BIT_CLI0_TX_NULL_0_8822B BIT(0)
  8762. /* 2 REG_VIDEO_ENHANCEMENT_FUN_8822B */
  8763. #define BIT_VIDEO_JUST_DROP_8822B BIT(1)
  8764. #define BIT_VIDEO_ENHANCEMENT_FUN_EN_8822B BIT(0)
  8765. /* 2 REG_BT_POLLUTE_PKT_CNT_8822B */
  8766. #define BIT_SHIFT_BT_POLLUTE_PKT_CNT_8822B 0
  8767. #define BIT_MASK_BT_POLLUTE_PKT_CNT_8822B 0xffff
  8768. #define BIT_BT_POLLUTE_PKT_CNT_8822B(x) \
  8769. (((x) & BIT_MASK_BT_POLLUTE_PKT_CNT_8822B) \
  8770. << BIT_SHIFT_BT_POLLUTE_PKT_CNT_8822B)
  8771. #define BITS_BT_POLLUTE_PKT_CNT_8822B \
  8772. (BIT_MASK_BT_POLLUTE_PKT_CNT_8822B \
  8773. << BIT_SHIFT_BT_POLLUTE_PKT_CNT_8822B)
  8774. #define BIT_CLEAR_BT_POLLUTE_PKT_CNT_8822B(x) \
  8775. ((x) & (~BITS_BT_POLLUTE_PKT_CNT_8822B))
  8776. #define BIT_GET_BT_POLLUTE_PKT_CNT_8822B(x) \
  8777. (((x) >> BIT_SHIFT_BT_POLLUTE_PKT_CNT_8822B) & \
  8778. BIT_MASK_BT_POLLUTE_PKT_CNT_8822B)
  8779. #define BIT_SET_BT_POLLUTE_PKT_CNT_8822B(x, v) \
  8780. (BIT_CLEAR_BT_POLLUTE_PKT_CNT_8822B(x) | \
  8781. BIT_BT_POLLUTE_PKT_CNT_8822B(v))
  8782. /* 2 REG_NOT_VALID_8822B */
  8783. /* 2 REG_PTCL_DBG_8822B */
  8784. #define BIT_SHIFT_PTCL_DBG_8822B 0
  8785. #define BIT_MASK_PTCL_DBG_8822B 0xffffffffL
  8786. #define BIT_PTCL_DBG_8822B(x) \
  8787. (((x) & BIT_MASK_PTCL_DBG_8822B) << BIT_SHIFT_PTCL_DBG_8822B)
  8788. #define BITS_PTCL_DBG_8822B \
  8789. (BIT_MASK_PTCL_DBG_8822B << BIT_SHIFT_PTCL_DBG_8822B)
  8790. #define BIT_CLEAR_PTCL_DBG_8822B(x) ((x) & (~BITS_PTCL_DBG_8822B))
  8791. #define BIT_GET_PTCL_DBG_8822B(x) \
  8792. (((x) >> BIT_SHIFT_PTCL_DBG_8822B) & BIT_MASK_PTCL_DBG_8822B)
  8793. #define BIT_SET_PTCL_DBG_8822B(x, v) \
  8794. (BIT_CLEAR_PTCL_DBG_8822B(x) | BIT_PTCL_DBG_8822B(v))
  8795. /* 2 REG_NOT_VALID_8822B */
  8796. /* 2 REG_CPUMGQ_TIMER_CTRL2_8822B */
  8797. #define BIT_SHIFT_TRI_HEAD_ADDR_8822B 16
  8798. #define BIT_MASK_TRI_HEAD_ADDR_8822B 0xfff
  8799. #define BIT_TRI_HEAD_ADDR_8822B(x) \
  8800. (((x) & BIT_MASK_TRI_HEAD_ADDR_8822B) << BIT_SHIFT_TRI_HEAD_ADDR_8822B)
  8801. #define BITS_TRI_HEAD_ADDR_8822B \
  8802. (BIT_MASK_TRI_HEAD_ADDR_8822B << BIT_SHIFT_TRI_HEAD_ADDR_8822B)
  8803. #define BIT_CLEAR_TRI_HEAD_ADDR_8822B(x) ((x) & (~BITS_TRI_HEAD_ADDR_8822B))
  8804. #define BIT_GET_TRI_HEAD_ADDR_8822B(x) \
  8805. (((x) >> BIT_SHIFT_TRI_HEAD_ADDR_8822B) & BIT_MASK_TRI_HEAD_ADDR_8822B)
  8806. #define BIT_SET_TRI_HEAD_ADDR_8822B(x, v) \
  8807. (BIT_CLEAR_TRI_HEAD_ADDR_8822B(x) | BIT_TRI_HEAD_ADDR_8822B(v))
  8808. #define BIT_DROP_TH_EN_8822B BIT(8)
  8809. #define BIT_SHIFT_DROP_TH_8822B 0
  8810. #define BIT_MASK_DROP_TH_8822B 0xff
  8811. #define BIT_DROP_TH_8822B(x) \
  8812. (((x) & BIT_MASK_DROP_TH_8822B) << BIT_SHIFT_DROP_TH_8822B)
  8813. #define BITS_DROP_TH_8822B (BIT_MASK_DROP_TH_8822B << BIT_SHIFT_DROP_TH_8822B)
  8814. #define BIT_CLEAR_DROP_TH_8822B(x) ((x) & (~BITS_DROP_TH_8822B))
  8815. #define BIT_GET_DROP_TH_8822B(x) \
  8816. (((x) >> BIT_SHIFT_DROP_TH_8822B) & BIT_MASK_DROP_TH_8822B)
  8817. #define BIT_SET_DROP_TH_8822B(x, v) \
  8818. (BIT_CLEAR_DROP_TH_8822B(x) | BIT_DROP_TH_8822B(v))
  8819. /* 2 REG_NOT_VALID_8822B */
  8820. /* 2 REG_DUMMY_PAGE4_V1_8822B */
  8821. #define BIT_BCN_EN_EXTHWSEQ_8822B BIT(1)
  8822. #define BIT_BCN_EN_HWSEQ_8822B BIT(0)
  8823. /* 2 REG_MOREDATA_8822B */
  8824. #define BIT_MOREDATA_CTRL2_EN_V1_8822B BIT(3)
  8825. #define BIT_MOREDATA_CTRL1_EN_V1_8822B BIT(2)
  8826. #define BIT_PKTIN_MOREDATA_REPLACE_ENABLE_V1_8822B BIT(0)
  8827. /* 2 REG_NOT_VALID_8822B */
  8828. /* 2 REG_Q0_Q1_INFO_8822B */
  8829. #define BIT_QUEUE_MACID_AC_NOT_THE_SAME_8822B BIT(31)
  8830. #define BIT_SHIFT_GTAB_ID_8822B 28
  8831. #define BIT_MASK_GTAB_ID_8822B 0x7
  8832. #define BIT_GTAB_ID_8822B(x) \
  8833. (((x) & BIT_MASK_GTAB_ID_8822B) << BIT_SHIFT_GTAB_ID_8822B)
  8834. #define BITS_GTAB_ID_8822B (BIT_MASK_GTAB_ID_8822B << BIT_SHIFT_GTAB_ID_8822B)
  8835. #define BIT_CLEAR_GTAB_ID_8822B(x) ((x) & (~BITS_GTAB_ID_8822B))
  8836. #define BIT_GET_GTAB_ID_8822B(x) \
  8837. (((x) >> BIT_SHIFT_GTAB_ID_8822B) & BIT_MASK_GTAB_ID_8822B)
  8838. #define BIT_SET_GTAB_ID_8822B(x, v) \
  8839. (BIT_CLEAR_GTAB_ID_8822B(x) | BIT_GTAB_ID_8822B(v))
  8840. #define BIT_SHIFT_AC1_PKT_INFO_8822B 16
  8841. #define BIT_MASK_AC1_PKT_INFO_8822B 0xfff
  8842. #define BIT_AC1_PKT_INFO_8822B(x) \
  8843. (((x) & BIT_MASK_AC1_PKT_INFO_8822B) << BIT_SHIFT_AC1_PKT_INFO_8822B)
  8844. #define BITS_AC1_PKT_INFO_8822B \
  8845. (BIT_MASK_AC1_PKT_INFO_8822B << BIT_SHIFT_AC1_PKT_INFO_8822B)
  8846. #define BIT_CLEAR_AC1_PKT_INFO_8822B(x) ((x) & (~BITS_AC1_PKT_INFO_8822B))
  8847. #define BIT_GET_AC1_PKT_INFO_8822B(x) \
  8848. (((x) >> BIT_SHIFT_AC1_PKT_INFO_8822B) & BIT_MASK_AC1_PKT_INFO_8822B)
  8849. #define BIT_SET_AC1_PKT_INFO_8822B(x, v) \
  8850. (BIT_CLEAR_AC1_PKT_INFO_8822B(x) | BIT_AC1_PKT_INFO_8822B(v))
  8851. #define BIT_QUEUE_MACID_AC_NOT_THE_SAME_V1_8822B BIT(15)
  8852. #define BIT_SHIFT_GTAB_ID_V1_8822B 12
  8853. #define BIT_MASK_GTAB_ID_V1_8822B 0x7
  8854. #define BIT_GTAB_ID_V1_8822B(x) \
  8855. (((x) & BIT_MASK_GTAB_ID_V1_8822B) << BIT_SHIFT_GTAB_ID_V1_8822B)
  8856. #define BITS_GTAB_ID_V1_8822B \
  8857. (BIT_MASK_GTAB_ID_V1_8822B << BIT_SHIFT_GTAB_ID_V1_8822B)
  8858. #define BIT_CLEAR_GTAB_ID_V1_8822B(x) ((x) & (~BITS_GTAB_ID_V1_8822B))
  8859. #define BIT_GET_GTAB_ID_V1_8822B(x) \
  8860. (((x) >> BIT_SHIFT_GTAB_ID_V1_8822B) & BIT_MASK_GTAB_ID_V1_8822B)
  8861. #define BIT_SET_GTAB_ID_V1_8822B(x, v) \
  8862. (BIT_CLEAR_GTAB_ID_V1_8822B(x) | BIT_GTAB_ID_V1_8822B(v))
  8863. #define BIT_SHIFT_AC0_PKT_INFO_8822B 0
  8864. #define BIT_MASK_AC0_PKT_INFO_8822B 0xfff
  8865. #define BIT_AC0_PKT_INFO_8822B(x) \
  8866. (((x) & BIT_MASK_AC0_PKT_INFO_8822B) << BIT_SHIFT_AC0_PKT_INFO_8822B)
  8867. #define BITS_AC0_PKT_INFO_8822B \
  8868. (BIT_MASK_AC0_PKT_INFO_8822B << BIT_SHIFT_AC0_PKT_INFO_8822B)
  8869. #define BIT_CLEAR_AC0_PKT_INFO_8822B(x) ((x) & (~BITS_AC0_PKT_INFO_8822B))
  8870. #define BIT_GET_AC0_PKT_INFO_8822B(x) \
  8871. (((x) >> BIT_SHIFT_AC0_PKT_INFO_8822B) & BIT_MASK_AC0_PKT_INFO_8822B)
  8872. #define BIT_SET_AC0_PKT_INFO_8822B(x, v) \
  8873. (BIT_CLEAR_AC0_PKT_INFO_8822B(x) | BIT_AC0_PKT_INFO_8822B(v))
  8874. /* 2 REG_Q2_Q3_INFO_8822B */
  8875. #define BIT_QUEUE_MACID_AC_NOT_THE_SAME_8822B BIT(31)
  8876. #define BIT_SHIFT_GTAB_ID_8822B 28
  8877. #define BIT_MASK_GTAB_ID_8822B 0x7
  8878. #define BIT_GTAB_ID_8822B(x) \
  8879. (((x) & BIT_MASK_GTAB_ID_8822B) << BIT_SHIFT_GTAB_ID_8822B)
  8880. #define BITS_GTAB_ID_8822B (BIT_MASK_GTAB_ID_8822B << BIT_SHIFT_GTAB_ID_8822B)
  8881. #define BIT_CLEAR_GTAB_ID_8822B(x) ((x) & (~BITS_GTAB_ID_8822B))
  8882. #define BIT_GET_GTAB_ID_8822B(x) \
  8883. (((x) >> BIT_SHIFT_GTAB_ID_8822B) & BIT_MASK_GTAB_ID_8822B)
  8884. #define BIT_SET_GTAB_ID_8822B(x, v) \
  8885. (BIT_CLEAR_GTAB_ID_8822B(x) | BIT_GTAB_ID_8822B(v))
  8886. #define BIT_SHIFT_AC3_PKT_INFO_8822B 16
  8887. #define BIT_MASK_AC3_PKT_INFO_8822B 0xfff
  8888. #define BIT_AC3_PKT_INFO_8822B(x) \
  8889. (((x) & BIT_MASK_AC3_PKT_INFO_8822B) << BIT_SHIFT_AC3_PKT_INFO_8822B)
  8890. #define BITS_AC3_PKT_INFO_8822B \
  8891. (BIT_MASK_AC3_PKT_INFO_8822B << BIT_SHIFT_AC3_PKT_INFO_8822B)
  8892. #define BIT_CLEAR_AC3_PKT_INFO_8822B(x) ((x) & (~BITS_AC3_PKT_INFO_8822B))
  8893. #define BIT_GET_AC3_PKT_INFO_8822B(x) \
  8894. (((x) >> BIT_SHIFT_AC3_PKT_INFO_8822B) & BIT_MASK_AC3_PKT_INFO_8822B)
  8895. #define BIT_SET_AC3_PKT_INFO_8822B(x, v) \
  8896. (BIT_CLEAR_AC3_PKT_INFO_8822B(x) | BIT_AC3_PKT_INFO_8822B(v))
  8897. #define BIT_QUEUE_MACID_AC_NOT_THE_SAME_V1_8822B BIT(15)
  8898. #define BIT_SHIFT_GTAB_ID_V1_8822B 12
  8899. #define BIT_MASK_GTAB_ID_V1_8822B 0x7
  8900. #define BIT_GTAB_ID_V1_8822B(x) \
  8901. (((x) & BIT_MASK_GTAB_ID_V1_8822B) << BIT_SHIFT_GTAB_ID_V1_8822B)
  8902. #define BITS_GTAB_ID_V1_8822B \
  8903. (BIT_MASK_GTAB_ID_V1_8822B << BIT_SHIFT_GTAB_ID_V1_8822B)
  8904. #define BIT_CLEAR_GTAB_ID_V1_8822B(x) ((x) & (~BITS_GTAB_ID_V1_8822B))
  8905. #define BIT_GET_GTAB_ID_V1_8822B(x) \
  8906. (((x) >> BIT_SHIFT_GTAB_ID_V1_8822B) & BIT_MASK_GTAB_ID_V1_8822B)
  8907. #define BIT_SET_GTAB_ID_V1_8822B(x, v) \
  8908. (BIT_CLEAR_GTAB_ID_V1_8822B(x) | BIT_GTAB_ID_V1_8822B(v))
  8909. #define BIT_SHIFT_AC2_PKT_INFO_8822B 0
  8910. #define BIT_MASK_AC2_PKT_INFO_8822B 0xfff
  8911. #define BIT_AC2_PKT_INFO_8822B(x) \
  8912. (((x) & BIT_MASK_AC2_PKT_INFO_8822B) << BIT_SHIFT_AC2_PKT_INFO_8822B)
  8913. #define BITS_AC2_PKT_INFO_8822B \
  8914. (BIT_MASK_AC2_PKT_INFO_8822B << BIT_SHIFT_AC2_PKT_INFO_8822B)
  8915. #define BIT_CLEAR_AC2_PKT_INFO_8822B(x) ((x) & (~BITS_AC2_PKT_INFO_8822B))
  8916. #define BIT_GET_AC2_PKT_INFO_8822B(x) \
  8917. (((x) >> BIT_SHIFT_AC2_PKT_INFO_8822B) & BIT_MASK_AC2_PKT_INFO_8822B)
  8918. #define BIT_SET_AC2_PKT_INFO_8822B(x, v) \
  8919. (BIT_CLEAR_AC2_PKT_INFO_8822B(x) | BIT_AC2_PKT_INFO_8822B(v))
  8920. /* 2 REG_Q4_Q5_INFO_8822B */
  8921. #define BIT_QUEUE_MACID_AC_NOT_THE_SAME_8822B BIT(31)
  8922. #define BIT_SHIFT_GTAB_ID_8822B 28
  8923. #define BIT_MASK_GTAB_ID_8822B 0x7
  8924. #define BIT_GTAB_ID_8822B(x) \
  8925. (((x) & BIT_MASK_GTAB_ID_8822B) << BIT_SHIFT_GTAB_ID_8822B)
  8926. #define BITS_GTAB_ID_8822B (BIT_MASK_GTAB_ID_8822B << BIT_SHIFT_GTAB_ID_8822B)
  8927. #define BIT_CLEAR_GTAB_ID_8822B(x) ((x) & (~BITS_GTAB_ID_8822B))
  8928. #define BIT_GET_GTAB_ID_8822B(x) \
  8929. (((x) >> BIT_SHIFT_GTAB_ID_8822B) & BIT_MASK_GTAB_ID_8822B)
  8930. #define BIT_SET_GTAB_ID_8822B(x, v) \
  8931. (BIT_CLEAR_GTAB_ID_8822B(x) | BIT_GTAB_ID_8822B(v))
  8932. #define BIT_SHIFT_AC5_PKT_INFO_8822B 16
  8933. #define BIT_MASK_AC5_PKT_INFO_8822B 0xfff
  8934. #define BIT_AC5_PKT_INFO_8822B(x) \
  8935. (((x) & BIT_MASK_AC5_PKT_INFO_8822B) << BIT_SHIFT_AC5_PKT_INFO_8822B)
  8936. #define BITS_AC5_PKT_INFO_8822B \
  8937. (BIT_MASK_AC5_PKT_INFO_8822B << BIT_SHIFT_AC5_PKT_INFO_8822B)
  8938. #define BIT_CLEAR_AC5_PKT_INFO_8822B(x) ((x) & (~BITS_AC5_PKT_INFO_8822B))
  8939. #define BIT_GET_AC5_PKT_INFO_8822B(x) \
  8940. (((x) >> BIT_SHIFT_AC5_PKT_INFO_8822B) & BIT_MASK_AC5_PKT_INFO_8822B)
  8941. #define BIT_SET_AC5_PKT_INFO_8822B(x, v) \
  8942. (BIT_CLEAR_AC5_PKT_INFO_8822B(x) | BIT_AC5_PKT_INFO_8822B(v))
  8943. #define BIT_QUEUE_MACID_AC_NOT_THE_SAME_V1_8822B BIT(15)
  8944. #define BIT_SHIFT_GTAB_ID_V1_8822B 12
  8945. #define BIT_MASK_GTAB_ID_V1_8822B 0x7
  8946. #define BIT_GTAB_ID_V1_8822B(x) \
  8947. (((x) & BIT_MASK_GTAB_ID_V1_8822B) << BIT_SHIFT_GTAB_ID_V1_8822B)
  8948. #define BITS_GTAB_ID_V1_8822B \
  8949. (BIT_MASK_GTAB_ID_V1_8822B << BIT_SHIFT_GTAB_ID_V1_8822B)
  8950. #define BIT_CLEAR_GTAB_ID_V1_8822B(x) ((x) & (~BITS_GTAB_ID_V1_8822B))
  8951. #define BIT_GET_GTAB_ID_V1_8822B(x) \
  8952. (((x) >> BIT_SHIFT_GTAB_ID_V1_8822B) & BIT_MASK_GTAB_ID_V1_8822B)
  8953. #define BIT_SET_GTAB_ID_V1_8822B(x, v) \
  8954. (BIT_CLEAR_GTAB_ID_V1_8822B(x) | BIT_GTAB_ID_V1_8822B(v))
  8955. #define BIT_SHIFT_AC4_PKT_INFO_8822B 0
  8956. #define BIT_MASK_AC4_PKT_INFO_8822B 0xfff
  8957. #define BIT_AC4_PKT_INFO_8822B(x) \
  8958. (((x) & BIT_MASK_AC4_PKT_INFO_8822B) << BIT_SHIFT_AC4_PKT_INFO_8822B)
  8959. #define BITS_AC4_PKT_INFO_8822B \
  8960. (BIT_MASK_AC4_PKT_INFO_8822B << BIT_SHIFT_AC4_PKT_INFO_8822B)
  8961. #define BIT_CLEAR_AC4_PKT_INFO_8822B(x) ((x) & (~BITS_AC4_PKT_INFO_8822B))
  8962. #define BIT_GET_AC4_PKT_INFO_8822B(x) \
  8963. (((x) >> BIT_SHIFT_AC4_PKT_INFO_8822B) & BIT_MASK_AC4_PKT_INFO_8822B)
  8964. #define BIT_SET_AC4_PKT_INFO_8822B(x, v) \
  8965. (BIT_CLEAR_AC4_PKT_INFO_8822B(x) | BIT_AC4_PKT_INFO_8822B(v))
  8966. /* 2 REG_Q6_Q7_INFO_8822B */
  8967. #define BIT_QUEUE_MACID_AC_NOT_THE_SAME_8822B BIT(31)
  8968. #define BIT_SHIFT_GTAB_ID_8822B 28
  8969. #define BIT_MASK_GTAB_ID_8822B 0x7
  8970. #define BIT_GTAB_ID_8822B(x) \
  8971. (((x) & BIT_MASK_GTAB_ID_8822B) << BIT_SHIFT_GTAB_ID_8822B)
  8972. #define BITS_GTAB_ID_8822B (BIT_MASK_GTAB_ID_8822B << BIT_SHIFT_GTAB_ID_8822B)
  8973. #define BIT_CLEAR_GTAB_ID_8822B(x) ((x) & (~BITS_GTAB_ID_8822B))
  8974. #define BIT_GET_GTAB_ID_8822B(x) \
  8975. (((x) >> BIT_SHIFT_GTAB_ID_8822B) & BIT_MASK_GTAB_ID_8822B)
  8976. #define BIT_SET_GTAB_ID_8822B(x, v) \
  8977. (BIT_CLEAR_GTAB_ID_8822B(x) | BIT_GTAB_ID_8822B(v))
  8978. #define BIT_SHIFT_AC7_PKT_INFO_8822B 16
  8979. #define BIT_MASK_AC7_PKT_INFO_8822B 0xfff
  8980. #define BIT_AC7_PKT_INFO_8822B(x) \
  8981. (((x) & BIT_MASK_AC7_PKT_INFO_8822B) << BIT_SHIFT_AC7_PKT_INFO_8822B)
  8982. #define BITS_AC7_PKT_INFO_8822B \
  8983. (BIT_MASK_AC7_PKT_INFO_8822B << BIT_SHIFT_AC7_PKT_INFO_8822B)
  8984. #define BIT_CLEAR_AC7_PKT_INFO_8822B(x) ((x) & (~BITS_AC7_PKT_INFO_8822B))
  8985. #define BIT_GET_AC7_PKT_INFO_8822B(x) \
  8986. (((x) >> BIT_SHIFT_AC7_PKT_INFO_8822B) & BIT_MASK_AC7_PKT_INFO_8822B)
  8987. #define BIT_SET_AC7_PKT_INFO_8822B(x, v) \
  8988. (BIT_CLEAR_AC7_PKT_INFO_8822B(x) | BIT_AC7_PKT_INFO_8822B(v))
  8989. #define BIT_QUEUE_MACID_AC_NOT_THE_SAME_V1_8822B BIT(15)
  8990. #define BIT_SHIFT_GTAB_ID_V1_8822B 12
  8991. #define BIT_MASK_GTAB_ID_V1_8822B 0x7
  8992. #define BIT_GTAB_ID_V1_8822B(x) \
  8993. (((x) & BIT_MASK_GTAB_ID_V1_8822B) << BIT_SHIFT_GTAB_ID_V1_8822B)
  8994. #define BITS_GTAB_ID_V1_8822B \
  8995. (BIT_MASK_GTAB_ID_V1_8822B << BIT_SHIFT_GTAB_ID_V1_8822B)
  8996. #define BIT_CLEAR_GTAB_ID_V1_8822B(x) ((x) & (~BITS_GTAB_ID_V1_8822B))
  8997. #define BIT_GET_GTAB_ID_V1_8822B(x) \
  8998. (((x) >> BIT_SHIFT_GTAB_ID_V1_8822B) & BIT_MASK_GTAB_ID_V1_8822B)
  8999. #define BIT_SET_GTAB_ID_V1_8822B(x, v) \
  9000. (BIT_CLEAR_GTAB_ID_V1_8822B(x) | BIT_GTAB_ID_V1_8822B(v))
  9001. #define BIT_SHIFT_AC6_PKT_INFO_8822B 0
  9002. #define BIT_MASK_AC6_PKT_INFO_8822B 0xfff
  9003. #define BIT_AC6_PKT_INFO_8822B(x) \
  9004. (((x) & BIT_MASK_AC6_PKT_INFO_8822B) << BIT_SHIFT_AC6_PKT_INFO_8822B)
  9005. #define BITS_AC6_PKT_INFO_8822B \
  9006. (BIT_MASK_AC6_PKT_INFO_8822B << BIT_SHIFT_AC6_PKT_INFO_8822B)
  9007. #define BIT_CLEAR_AC6_PKT_INFO_8822B(x) ((x) & (~BITS_AC6_PKT_INFO_8822B))
  9008. #define BIT_GET_AC6_PKT_INFO_8822B(x) \
  9009. (((x) >> BIT_SHIFT_AC6_PKT_INFO_8822B) & BIT_MASK_AC6_PKT_INFO_8822B)
  9010. #define BIT_SET_AC6_PKT_INFO_8822B(x, v) \
  9011. (BIT_CLEAR_AC6_PKT_INFO_8822B(x) | BIT_AC6_PKT_INFO_8822B(v))
  9012. /* 2 REG_MGQ_HIQ_INFO_8822B */
  9013. #define BIT_SHIFT_HIQ_PKT_INFO_8822B 16
  9014. #define BIT_MASK_HIQ_PKT_INFO_8822B 0xfff
  9015. #define BIT_HIQ_PKT_INFO_8822B(x) \
  9016. (((x) & BIT_MASK_HIQ_PKT_INFO_8822B) << BIT_SHIFT_HIQ_PKT_INFO_8822B)
  9017. #define BITS_HIQ_PKT_INFO_8822B \
  9018. (BIT_MASK_HIQ_PKT_INFO_8822B << BIT_SHIFT_HIQ_PKT_INFO_8822B)
  9019. #define BIT_CLEAR_HIQ_PKT_INFO_8822B(x) ((x) & (~BITS_HIQ_PKT_INFO_8822B))
  9020. #define BIT_GET_HIQ_PKT_INFO_8822B(x) \
  9021. (((x) >> BIT_SHIFT_HIQ_PKT_INFO_8822B) & BIT_MASK_HIQ_PKT_INFO_8822B)
  9022. #define BIT_SET_HIQ_PKT_INFO_8822B(x, v) \
  9023. (BIT_CLEAR_HIQ_PKT_INFO_8822B(x) | BIT_HIQ_PKT_INFO_8822B(v))
  9024. #define BIT_SHIFT_MGQ_PKT_INFO_8822B 0
  9025. #define BIT_MASK_MGQ_PKT_INFO_8822B 0xfff
  9026. #define BIT_MGQ_PKT_INFO_8822B(x) \
  9027. (((x) & BIT_MASK_MGQ_PKT_INFO_8822B) << BIT_SHIFT_MGQ_PKT_INFO_8822B)
  9028. #define BITS_MGQ_PKT_INFO_8822B \
  9029. (BIT_MASK_MGQ_PKT_INFO_8822B << BIT_SHIFT_MGQ_PKT_INFO_8822B)
  9030. #define BIT_CLEAR_MGQ_PKT_INFO_8822B(x) ((x) & (~BITS_MGQ_PKT_INFO_8822B))
  9031. #define BIT_GET_MGQ_PKT_INFO_8822B(x) \
  9032. (((x) >> BIT_SHIFT_MGQ_PKT_INFO_8822B) & BIT_MASK_MGQ_PKT_INFO_8822B)
  9033. #define BIT_SET_MGQ_PKT_INFO_8822B(x, v) \
  9034. (BIT_CLEAR_MGQ_PKT_INFO_8822B(x) | BIT_MGQ_PKT_INFO_8822B(v))
  9035. /* 2 REG_CMDQ_BCNQ_INFO_8822B */
  9036. #define BIT_SHIFT_CMDQ_PKT_INFO_8822B 16
  9037. #define BIT_MASK_CMDQ_PKT_INFO_8822B 0xfff
  9038. #define BIT_CMDQ_PKT_INFO_8822B(x) \
  9039. (((x) & BIT_MASK_CMDQ_PKT_INFO_8822B) << BIT_SHIFT_CMDQ_PKT_INFO_8822B)
  9040. #define BITS_CMDQ_PKT_INFO_8822B \
  9041. (BIT_MASK_CMDQ_PKT_INFO_8822B << BIT_SHIFT_CMDQ_PKT_INFO_8822B)
  9042. #define BIT_CLEAR_CMDQ_PKT_INFO_8822B(x) ((x) & (~BITS_CMDQ_PKT_INFO_8822B))
  9043. #define BIT_GET_CMDQ_PKT_INFO_8822B(x) \
  9044. (((x) >> BIT_SHIFT_CMDQ_PKT_INFO_8822B) & BIT_MASK_CMDQ_PKT_INFO_8822B)
  9045. #define BIT_SET_CMDQ_PKT_INFO_8822B(x, v) \
  9046. (BIT_CLEAR_CMDQ_PKT_INFO_8822B(x) | BIT_CMDQ_PKT_INFO_8822B(v))
  9047. #define BIT_SHIFT_BCNQ_PKT_INFO_8822B 0
  9048. #define BIT_MASK_BCNQ_PKT_INFO_8822B 0xfff
  9049. #define BIT_BCNQ_PKT_INFO_8822B(x) \
  9050. (((x) & BIT_MASK_BCNQ_PKT_INFO_8822B) << BIT_SHIFT_BCNQ_PKT_INFO_8822B)
  9051. #define BITS_BCNQ_PKT_INFO_8822B \
  9052. (BIT_MASK_BCNQ_PKT_INFO_8822B << BIT_SHIFT_BCNQ_PKT_INFO_8822B)
  9053. #define BIT_CLEAR_BCNQ_PKT_INFO_8822B(x) ((x) & (~BITS_BCNQ_PKT_INFO_8822B))
  9054. #define BIT_GET_BCNQ_PKT_INFO_8822B(x) \
  9055. (((x) >> BIT_SHIFT_BCNQ_PKT_INFO_8822B) & BIT_MASK_BCNQ_PKT_INFO_8822B)
  9056. #define BIT_SET_BCNQ_PKT_INFO_8822B(x, v) \
  9057. (BIT_CLEAR_BCNQ_PKT_INFO_8822B(x) | BIT_BCNQ_PKT_INFO_8822B(v))
  9058. /* 2 REG_USEREG_SETTING_8822B */
  9059. #define BIT_NDPA_USEREG_8822B BIT(21)
  9060. #define BIT_SHIFT_RETRY_USEREG_8822B 19
  9061. #define BIT_MASK_RETRY_USEREG_8822B 0x3
  9062. #define BIT_RETRY_USEREG_8822B(x) \
  9063. (((x) & BIT_MASK_RETRY_USEREG_8822B) << BIT_SHIFT_RETRY_USEREG_8822B)
  9064. #define BITS_RETRY_USEREG_8822B \
  9065. (BIT_MASK_RETRY_USEREG_8822B << BIT_SHIFT_RETRY_USEREG_8822B)
  9066. #define BIT_CLEAR_RETRY_USEREG_8822B(x) ((x) & (~BITS_RETRY_USEREG_8822B))
  9067. #define BIT_GET_RETRY_USEREG_8822B(x) \
  9068. (((x) >> BIT_SHIFT_RETRY_USEREG_8822B) & BIT_MASK_RETRY_USEREG_8822B)
  9069. #define BIT_SET_RETRY_USEREG_8822B(x, v) \
  9070. (BIT_CLEAR_RETRY_USEREG_8822B(x) | BIT_RETRY_USEREG_8822B(v))
  9071. #define BIT_SHIFT_TRYPKT_USEREG_8822B 17
  9072. #define BIT_MASK_TRYPKT_USEREG_8822B 0x3
  9073. #define BIT_TRYPKT_USEREG_8822B(x) \
  9074. (((x) & BIT_MASK_TRYPKT_USEREG_8822B) << BIT_SHIFT_TRYPKT_USEREG_8822B)
  9075. #define BITS_TRYPKT_USEREG_8822B \
  9076. (BIT_MASK_TRYPKT_USEREG_8822B << BIT_SHIFT_TRYPKT_USEREG_8822B)
  9077. #define BIT_CLEAR_TRYPKT_USEREG_8822B(x) ((x) & (~BITS_TRYPKT_USEREG_8822B))
  9078. #define BIT_GET_TRYPKT_USEREG_8822B(x) \
  9079. (((x) >> BIT_SHIFT_TRYPKT_USEREG_8822B) & BIT_MASK_TRYPKT_USEREG_8822B)
  9080. #define BIT_SET_TRYPKT_USEREG_8822B(x, v) \
  9081. (BIT_CLEAR_TRYPKT_USEREG_8822B(x) | BIT_TRYPKT_USEREG_8822B(v))
  9082. #define BIT_CTLPKT_USEREG_8822B BIT(16)
  9083. /* 2 REG_AESIV_SETTING_8822B */
  9084. #define BIT_SHIFT_AESIV_OFFSET_8822B 0
  9085. #define BIT_MASK_AESIV_OFFSET_8822B 0xfff
  9086. #define BIT_AESIV_OFFSET_8822B(x) \
  9087. (((x) & BIT_MASK_AESIV_OFFSET_8822B) << BIT_SHIFT_AESIV_OFFSET_8822B)
  9088. #define BITS_AESIV_OFFSET_8822B \
  9089. (BIT_MASK_AESIV_OFFSET_8822B << BIT_SHIFT_AESIV_OFFSET_8822B)
  9090. #define BIT_CLEAR_AESIV_OFFSET_8822B(x) ((x) & (~BITS_AESIV_OFFSET_8822B))
  9091. #define BIT_GET_AESIV_OFFSET_8822B(x) \
  9092. (((x) >> BIT_SHIFT_AESIV_OFFSET_8822B) & BIT_MASK_AESIV_OFFSET_8822B)
  9093. #define BIT_SET_AESIV_OFFSET_8822B(x, v) \
  9094. (BIT_CLEAR_AESIV_OFFSET_8822B(x) | BIT_AESIV_OFFSET_8822B(v))
  9095. /* 2 REG_BF0_TIME_SETTING_8822B */
  9096. #define BIT_BF0_TIMER_SET_8822B BIT(31)
  9097. #define BIT_BF0_TIMER_CLR_8822B BIT(30)
  9098. #define BIT_BF0_UPDATE_EN_8822B BIT(29)
  9099. #define BIT_BF0_TIMER_EN_8822B BIT(28)
  9100. #define BIT_SHIFT_BF0_PRETIME_OVER_8822B 16
  9101. #define BIT_MASK_BF0_PRETIME_OVER_8822B 0xfff
  9102. #define BIT_BF0_PRETIME_OVER_8822B(x) \
  9103. (((x) & BIT_MASK_BF0_PRETIME_OVER_8822B) \
  9104. << BIT_SHIFT_BF0_PRETIME_OVER_8822B)
  9105. #define BITS_BF0_PRETIME_OVER_8822B \
  9106. (BIT_MASK_BF0_PRETIME_OVER_8822B << BIT_SHIFT_BF0_PRETIME_OVER_8822B)
  9107. #define BIT_CLEAR_BF0_PRETIME_OVER_8822B(x) \
  9108. ((x) & (~BITS_BF0_PRETIME_OVER_8822B))
  9109. #define BIT_GET_BF0_PRETIME_OVER_8822B(x) \
  9110. (((x) >> BIT_SHIFT_BF0_PRETIME_OVER_8822B) & \
  9111. BIT_MASK_BF0_PRETIME_OVER_8822B)
  9112. #define BIT_SET_BF0_PRETIME_OVER_8822B(x, v) \
  9113. (BIT_CLEAR_BF0_PRETIME_OVER_8822B(x) | BIT_BF0_PRETIME_OVER_8822B(v))
  9114. #define BIT_SHIFT_BF0_LIFETIME_8822B 0
  9115. #define BIT_MASK_BF0_LIFETIME_8822B 0xffff
  9116. #define BIT_BF0_LIFETIME_8822B(x) \
  9117. (((x) & BIT_MASK_BF0_LIFETIME_8822B) << BIT_SHIFT_BF0_LIFETIME_8822B)
  9118. #define BITS_BF0_LIFETIME_8822B \
  9119. (BIT_MASK_BF0_LIFETIME_8822B << BIT_SHIFT_BF0_LIFETIME_8822B)
  9120. #define BIT_CLEAR_BF0_LIFETIME_8822B(x) ((x) & (~BITS_BF0_LIFETIME_8822B))
  9121. #define BIT_GET_BF0_LIFETIME_8822B(x) \
  9122. (((x) >> BIT_SHIFT_BF0_LIFETIME_8822B) & BIT_MASK_BF0_LIFETIME_8822B)
  9123. #define BIT_SET_BF0_LIFETIME_8822B(x, v) \
  9124. (BIT_CLEAR_BF0_LIFETIME_8822B(x) | BIT_BF0_LIFETIME_8822B(v))
  9125. /* 2 REG_BF1_TIME_SETTING_8822B */
  9126. #define BIT_BF1_TIMER_SET_8822B BIT(31)
  9127. #define BIT_BF1_TIMER_CLR_8822B BIT(30)
  9128. #define BIT_BF1_UPDATE_EN_8822B BIT(29)
  9129. #define BIT_BF1_TIMER_EN_8822B BIT(28)
  9130. #define BIT_SHIFT_BF1_PRETIME_OVER_8822B 16
  9131. #define BIT_MASK_BF1_PRETIME_OVER_8822B 0xfff
  9132. #define BIT_BF1_PRETIME_OVER_8822B(x) \
  9133. (((x) & BIT_MASK_BF1_PRETIME_OVER_8822B) \
  9134. << BIT_SHIFT_BF1_PRETIME_OVER_8822B)
  9135. #define BITS_BF1_PRETIME_OVER_8822B \
  9136. (BIT_MASK_BF1_PRETIME_OVER_8822B << BIT_SHIFT_BF1_PRETIME_OVER_8822B)
  9137. #define BIT_CLEAR_BF1_PRETIME_OVER_8822B(x) \
  9138. ((x) & (~BITS_BF1_PRETIME_OVER_8822B))
  9139. #define BIT_GET_BF1_PRETIME_OVER_8822B(x) \
  9140. (((x) >> BIT_SHIFT_BF1_PRETIME_OVER_8822B) & \
  9141. BIT_MASK_BF1_PRETIME_OVER_8822B)
  9142. #define BIT_SET_BF1_PRETIME_OVER_8822B(x, v) \
  9143. (BIT_CLEAR_BF1_PRETIME_OVER_8822B(x) | BIT_BF1_PRETIME_OVER_8822B(v))
  9144. #define BIT_SHIFT_BF1_LIFETIME_8822B 0
  9145. #define BIT_MASK_BF1_LIFETIME_8822B 0xffff
  9146. #define BIT_BF1_LIFETIME_8822B(x) \
  9147. (((x) & BIT_MASK_BF1_LIFETIME_8822B) << BIT_SHIFT_BF1_LIFETIME_8822B)
  9148. #define BITS_BF1_LIFETIME_8822B \
  9149. (BIT_MASK_BF1_LIFETIME_8822B << BIT_SHIFT_BF1_LIFETIME_8822B)
  9150. #define BIT_CLEAR_BF1_LIFETIME_8822B(x) ((x) & (~BITS_BF1_LIFETIME_8822B))
  9151. #define BIT_GET_BF1_LIFETIME_8822B(x) \
  9152. (((x) >> BIT_SHIFT_BF1_LIFETIME_8822B) & BIT_MASK_BF1_LIFETIME_8822B)
  9153. #define BIT_SET_BF1_LIFETIME_8822B(x, v) \
  9154. (BIT_CLEAR_BF1_LIFETIME_8822B(x) | BIT_BF1_LIFETIME_8822B(v))
  9155. /* 2 REG_BF_TIMEOUT_EN_8822B */
  9156. #define BIT_EN_VHT_LDPC_8822B BIT(9)
  9157. #define BIT_EN_HT_LDPC_8822B BIT(8)
  9158. #define BIT_BF1_TIMEOUT_EN_8822B BIT(1)
  9159. #define BIT_BF0_TIMEOUT_EN_8822B BIT(0)
  9160. /* 2 REG_MACID_RELEASE0_8822B */
  9161. #define BIT_SHIFT_MACID31_0_RELEASE_8822B 0
  9162. #define BIT_MASK_MACID31_0_RELEASE_8822B 0xffffffffL
  9163. #define BIT_MACID31_0_RELEASE_8822B(x) \
  9164. (((x) & BIT_MASK_MACID31_0_RELEASE_8822B) \
  9165. << BIT_SHIFT_MACID31_0_RELEASE_8822B)
  9166. #define BITS_MACID31_0_RELEASE_8822B \
  9167. (BIT_MASK_MACID31_0_RELEASE_8822B << BIT_SHIFT_MACID31_0_RELEASE_8822B)
  9168. #define BIT_CLEAR_MACID31_0_RELEASE_8822B(x) \
  9169. ((x) & (~BITS_MACID31_0_RELEASE_8822B))
  9170. #define BIT_GET_MACID31_0_RELEASE_8822B(x) \
  9171. (((x) >> BIT_SHIFT_MACID31_0_RELEASE_8822B) & \
  9172. BIT_MASK_MACID31_0_RELEASE_8822B)
  9173. #define BIT_SET_MACID31_0_RELEASE_8822B(x, v) \
  9174. (BIT_CLEAR_MACID31_0_RELEASE_8822B(x) | BIT_MACID31_0_RELEASE_8822B(v))
  9175. /* 2 REG_MACID_RELEASE1_8822B */
  9176. #define BIT_SHIFT_MACID63_32_RELEASE_8822B 0
  9177. #define BIT_MASK_MACID63_32_RELEASE_8822B 0xffffffffL
  9178. #define BIT_MACID63_32_RELEASE_8822B(x) \
  9179. (((x) & BIT_MASK_MACID63_32_RELEASE_8822B) \
  9180. << BIT_SHIFT_MACID63_32_RELEASE_8822B)
  9181. #define BITS_MACID63_32_RELEASE_8822B \
  9182. (BIT_MASK_MACID63_32_RELEASE_8822B \
  9183. << BIT_SHIFT_MACID63_32_RELEASE_8822B)
  9184. #define BIT_CLEAR_MACID63_32_RELEASE_8822B(x) \
  9185. ((x) & (~BITS_MACID63_32_RELEASE_8822B))
  9186. #define BIT_GET_MACID63_32_RELEASE_8822B(x) \
  9187. (((x) >> BIT_SHIFT_MACID63_32_RELEASE_8822B) & \
  9188. BIT_MASK_MACID63_32_RELEASE_8822B)
  9189. #define BIT_SET_MACID63_32_RELEASE_8822B(x, v) \
  9190. (BIT_CLEAR_MACID63_32_RELEASE_8822B(x) | \
  9191. BIT_MACID63_32_RELEASE_8822B(v))
  9192. /* 2 REG_MACID_RELEASE2_8822B */
  9193. #define BIT_SHIFT_MACID95_64_RELEASE_8822B 0
  9194. #define BIT_MASK_MACID95_64_RELEASE_8822B 0xffffffffL
  9195. #define BIT_MACID95_64_RELEASE_8822B(x) \
  9196. (((x) & BIT_MASK_MACID95_64_RELEASE_8822B) \
  9197. << BIT_SHIFT_MACID95_64_RELEASE_8822B)
  9198. #define BITS_MACID95_64_RELEASE_8822B \
  9199. (BIT_MASK_MACID95_64_RELEASE_8822B \
  9200. << BIT_SHIFT_MACID95_64_RELEASE_8822B)
  9201. #define BIT_CLEAR_MACID95_64_RELEASE_8822B(x) \
  9202. ((x) & (~BITS_MACID95_64_RELEASE_8822B))
  9203. #define BIT_GET_MACID95_64_RELEASE_8822B(x) \
  9204. (((x) >> BIT_SHIFT_MACID95_64_RELEASE_8822B) & \
  9205. BIT_MASK_MACID95_64_RELEASE_8822B)
  9206. #define BIT_SET_MACID95_64_RELEASE_8822B(x, v) \
  9207. (BIT_CLEAR_MACID95_64_RELEASE_8822B(x) | \
  9208. BIT_MACID95_64_RELEASE_8822B(v))
  9209. /* 2 REG_MACID_RELEASE3_8822B */
  9210. #define BIT_SHIFT_MACID127_96_RELEASE_8822B 0
  9211. #define BIT_MASK_MACID127_96_RELEASE_8822B 0xffffffffL
  9212. #define BIT_MACID127_96_RELEASE_8822B(x) \
  9213. (((x) & BIT_MASK_MACID127_96_RELEASE_8822B) \
  9214. << BIT_SHIFT_MACID127_96_RELEASE_8822B)
  9215. #define BITS_MACID127_96_RELEASE_8822B \
  9216. (BIT_MASK_MACID127_96_RELEASE_8822B \
  9217. << BIT_SHIFT_MACID127_96_RELEASE_8822B)
  9218. #define BIT_CLEAR_MACID127_96_RELEASE_8822B(x) \
  9219. ((x) & (~BITS_MACID127_96_RELEASE_8822B))
  9220. #define BIT_GET_MACID127_96_RELEASE_8822B(x) \
  9221. (((x) >> BIT_SHIFT_MACID127_96_RELEASE_8822B) & \
  9222. BIT_MASK_MACID127_96_RELEASE_8822B)
  9223. #define BIT_SET_MACID127_96_RELEASE_8822B(x, v) \
  9224. (BIT_CLEAR_MACID127_96_RELEASE_8822B(x) | \
  9225. BIT_MACID127_96_RELEASE_8822B(v))
  9226. /* 2 REG_MACID_RELEASE_SETTING_8822B */
  9227. #define BIT_MACID_VALUE_8822B BIT(7)
  9228. #define BIT_SHIFT_MACID_OFFSET_8822B 0
  9229. #define BIT_MASK_MACID_OFFSET_8822B 0x7f
  9230. #define BIT_MACID_OFFSET_8822B(x) \
  9231. (((x) & BIT_MASK_MACID_OFFSET_8822B) << BIT_SHIFT_MACID_OFFSET_8822B)
  9232. #define BITS_MACID_OFFSET_8822B \
  9233. (BIT_MASK_MACID_OFFSET_8822B << BIT_SHIFT_MACID_OFFSET_8822B)
  9234. #define BIT_CLEAR_MACID_OFFSET_8822B(x) ((x) & (~BITS_MACID_OFFSET_8822B))
  9235. #define BIT_GET_MACID_OFFSET_8822B(x) \
  9236. (((x) >> BIT_SHIFT_MACID_OFFSET_8822B) & BIT_MASK_MACID_OFFSET_8822B)
  9237. #define BIT_SET_MACID_OFFSET_8822B(x, v) \
  9238. (BIT_CLEAR_MACID_OFFSET_8822B(x) | BIT_MACID_OFFSET_8822B(v))
  9239. /* 2 REG_FAST_EDCA_VOVI_SETTING_8822B */
  9240. #define BIT_SHIFT_VI_FAST_EDCA_TO_8822B 24
  9241. #define BIT_MASK_VI_FAST_EDCA_TO_8822B 0xff
  9242. #define BIT_VI_FAST_EDCA_TO_8822B(x) \
  9243. (((x) & BIT_MASK_VI_FAST_EDCA_TO_8822B) \
  9244. << BIT_SHIFT_VI_FAST_EDCA_TO_8822B)
  9245. #define BITS_VI_FAST_EDCA_TO_8822B \
  9246. (BIT_MASK_VI_FAST_EDCA_TO_8822B << BIT_SHIFT_VI_FAST_EDCA_TO_8822B)
  9247. #define BIT_CLEAR_VI_FAST_EDCA_TO_8822B(x) ((x) & (~BITS_VI_FAST_EDCA_TO_8822B))
  9248. #define BIT_GET_VI_FAST_EDCA_TO_8822B(x) \
  9249. (((x) >> BIT_SHIFT_VI_FAST_EDCA_TO_8822B) & \
  9250. BIT_MASK_VI_FAST_EDCA_TO_8822B)
  9251. #define BIT_SET_VI_FAST_EDCA_TO_8822B(x, v) \
  9252. (BIT_CLEAR_VI_FAST_EDCA_TO_8822B(x) | BIT_VI_FAST_EDCA_TO_8822B(v))
  9253. #define BIT_VI_THRESHOLD_SEL_8822B BIT(23)
  9254. #define BIT_SHIFT_VI_FAST_EDCA_PKT_TH_8822B 16
  9255. #define BIT_MASK_VI_FAST_EDCA_PKT_TH_8822B 0x7f
  9256. #define BIT_VI_FAST_EDCA_PKT_TH_8822B(x) \
  9257. (((x) & BIT_MASK_VI_FAST_EDCA_PKT_TH_8822B) \
  9258. << BIT_SHIFT_VI_FAST_EDCA_PKT_TH_8822B)
  9259. #define BITS_VI_FAST_EDCA_PKT_TH_8822B \
  9260. (BIT_MASK_VI_FAST_EDCA_PKT_TH_8822B \
  9261. << BIT_SHIFT_VI_FAST_EDCA_PKT_TH_8822B)
  9262. #define BIT_CLEAR_VI_FAST_EDCA_PKT_TH_8822B(x) \
  9263. ((x) & (~BITS_VI_FAST_EDCA_PKT_TH_8822B))
  9264. #define BIT_GET_VI_FAST_EDCA_PKT_TH_8822B(x) \
  9265. (((x) >> BIT_SHIFT_VI_FAST_EDCA_PKT_TH_8822B) & \
  9266. BIT_MASK_VI_FAST_EDCA_PKT_TH_8822B)
  9267. #define BIT_SET_VI_FAST_EDCA_PKT_TH_8822B(x, v) \
  9268. (BIT_CLEAR_VI_FAST_EDCA_PKT_TH_8822B(x) | \
  9269. BIT_VI_FAST_EDCA_PKT_TH_8822B(v))
  9270. #define BIT_SHIFT_VO_FAST_EDCA_TO_8822B 8
  9271. #define BIT_MASK_VO_FAST_EDCA_TO_8822B 0xff
  9272. #define BIT_VO_FAST_EDCA_TO_8822B(x) \
  9273. (((x) & BIT_MASK_VO_FAST_EDCA_TO_8822B) \
  9274. << BIT_SHIFT_VO_FAST_EDCA_TO_8822B)
  9275. #define BITS_VO_FAST_EDCA_TO_8822B \
  9276. (BIT_MASK_VO_FAST_EDCA_TO_8822B << BIT_SHIFT_VO_FAST_EDCA_TO_8822B)
  9277. #define BIT_CLEAR_VO_FAST_EDCA_TO_8822B(x) ((x) & (~BITS_VO_FAST_EDCA_TO_8822B))
  9278. #define BIT_GET_VO_FAST_EDCA_TO_8822B(x) \
  9279. (((x) >> BIT_SHIFT_VO_FAST_EDCA_TO_8822B) & \
  9280. BIT_MASK_VO_FAST_EDCA_TO_8822B)
  9281. #define BIT_SET_VO_FAST_EDCA_TO_8822B(x, v) \
  9282. (BIT_CLEAR_VO_FAST_EDCA_TO_8822B(x) | BIT_VO_FAST_EDCA_TO_8822B(v))
  9283. #define BIT_VO_THRESHOLD_SEL_8822B BIT(7)
  9284. #define BIT_SHIFT_VO_FAST_EDCA_PKT_TH_8822B 0
  9285. #define BIT_MASK_VO_FAST_EDCA_PKT_TH_8822B 0x7f
  9286. #define BIT_VO_FAST_EDCA_PKT_TH_8822B(x) \
  9287. (((x) & BIT_MASK_VO_FAST_EDCA_PKT_TH_8822B) \
  9288. << BIT_SHIFT_VO_FAST_EDCA_PKT_TH_8822B)
  9289. #define BITS_VO_FAST_EDCA_PKT_TH_8822B \
  9290. (BIT_MASK_VO_FAST_EDCA_PKT_TH_8822B \
  9291. << BIT_SHIFT_VO_FAST_EDCA_PKT_TH_8822B)
  9292. #define BIT_CLEAR_VO_FAST_EDCA_PKT_TH_8822B(x) \
  9293. ((x) & (~BITS_VO_FAST_EDCA_PKT_TH_8822B))
  9294. #define BIT_GET_VO_FAST_EDCA_PKT_TH_8822B(x) \
  9295. (((x) >> BIT_SHIFT_VO_FAST_EDCA_PKT_TH_8822B) & \
  9296. BIT_MASK_VO_FAST_EDCA_PKT_TH_8822B)
  9297. #define BIT_SET_VO_FAST_EDCA_PKT_TH_8822B(x, v) \
  9298. (BIT_CLEAR_VO_FAST_EDCA_PKT_TH_8822B(x) | \
  9299. BIT_VO_FAST_EDCA_PKT_TH_8822B(v))
  9300. /* 2 REG_FAST_EDCA_BEBK_SETTING_8822B */
  9301. #define BIT_SHIFT_BK_FAST_EDCA_TO_8822B 24
  9302. #define BIT_MASK_BK_FAST_EDCA_TO_8822B 0xff
  9303. #define BIT_BK_FAST_EDCA_TO_8822B(x) \
  9304. (((x) & BIT_MASK_BK_FAST_EDCA_TO_8822B) \
  9305. << BIT_SHIFT_BK_FAST_EDCA_TO_8822B)
  9306. #define BITS_BK_FAST_EDCA_TO_8822B \
  9307. (BIT_MASK_BK_FAST_EDCA_TO_8822B << BIT_SHIFT_BK_FAST_EDCA_TO_8822B)
  9308. #define BIT_CLEAR_BK_FAST_EDCA_TO_8822B(x) ((x) & (~BITS_BK_FAST_EDCA_TO_8822B))
  9309. #define BIT_GET_BK_FAST_EDCA_TO_8822B(x) \
  9310. (((x) >> BIT_SHIFT_BK_FAST_EDCA_TO_8822B) & \
  9311. BIT_MASK_BK_FAST_EDCA_TO_8822B)
  9312. #define BIT_SET_BK_FAST_EDCA_TO_8822B(x, v) \
  9313. (BIT_CLEAR_BK_FAST_EDCA_TO_8822B(x) | BIT_BK_FAST_EDCA_TO_8822B(v))
  9314. #define BIT_BK_THRESHOLD_SEL_8822B BIT(23)
  9315. #define BIT_SHIFT_BK_FAST_EDCA_PKT_TH_8822B 16
  9316. #define BIT_MASK_BK_FAST_EDCA_PKT_TH_8822B 0x7f
  9317. #define BIT_BK_FAST_EDCA_PKT_TH_8822B(x) \
  9318. (((x) & BIT_MASK_BK_FAST_EDCA_PKT_TH_8822B) \
  9319. << BIT_SHIFT_BK_FAST_EDCA_PKT_TH_8822B)
  9320. #define BITS_BK_FAST_EDCA_PKT_TH_8822B \
  9321. (BIT_MASK_BK_FAST_EDCA_PKT_TH_8822B \
  9322. << BIT_SHIFT_BK_FAST_EDCA_PKT_TH_8822B)
  9323. #define BIT_CLEAR_BK_FAST_EDCA_PKT_TH_8822B(x) \
  9324. ((x) & (~BITS_BK_FAST_EDCA_PKT_TH_8822B))
  9325. #define BIT_GET_BK_FAST_EDCA_PKT_TH_8822B(x) \
  9326. (((x) >> BIT_SHIFT_BK_FAST_EDCA_PKT_TH_8822B) & \
  9327. BIT_MASK_BK_FAST_EDCA_PKT_TH_8822B)
  9328. #define BIT_SET_BK_FAST_EDCA_PKT_TH_8822B(x, v) \
  9329. (BIT_CLEAR_BK_FAST_EDCA_PKT_TH_8822B(x) | \
  9330. BIT_BK_FAST_EDCA_PKT_TH_8822B(v))
  9331. #define BIT_SHIFT_BE_FAST_EDCA_TO_8822B 8
  9332. #define BIT_MASK_BE_FAST_EDCA_TO_8822B 0xff
  9333. #define BIT_BE_FAST_EDCA_TO_8822B(x) \
  9334. (((x) & BIT_MASK_BE_FAST_EDCA_TO_8822B) \
  9335. << BIT_SHIFT_BE_FAST_EDCA_TO_8822B)
  9336. #define BITS_BE_FAST_EDCA_TO_8822B \
  9337. (BIT_MASK_BE_FAST_EDCA_TO_8822B << BIT_SHIFT_BE_FAST_EDCA_TO_8822B)
  9338. #define BIT_CLEAR_BE_FAST_EDCA_TO_8822B(x) ((x) & (~BITS_BE_FAST_EDCA_TO_8822B))
  9339. #define BIT_GET_BE_FAST_EDCA_TO_8822B(x) \
  9340. (((x) >> BIT_SHIFT_BE_FAST_EDCA_TO_8822B) & \
  9341. BIT_MASK_BE_FAST_EDCA_TO_8822B)
  9342. #define BIT_SET_BE_FAST_EDCA_TO_8822B(x, v) \
  9343. (BIT_CLEAR_BE_FAST_EDCA_TO_8822B(x) | BIT_BE_FAST_EDCA_TO_8822B(v))
  9344. #define BIT_BE_THRESHOLD_SEL_8822B BIT(7)
  9345. #define BIT_SHIFT_BE_FAST_EDCA_PKT_TH_8822B 0
  9346. #define BIT_MASK_BE_FAST_EDCA_PKT_TH_8822B 0x7f
  9347. #define BIT_BE_FAST_EDCA_PKT_TH_8822B(x) \
  9348. (((x) & BIT_MASK_BE_FAST_EDCA_PKT_TH_8822B) \
  9349. << BIT_SHIFT_BE_FAST_EDCA_PKT_TH_8822B)
  9350. #define BITS_BE_FAST_EDCA_PKT_TH_8822B \
  9351. (BIT_MASK_BE_FAST_EDCA_PKT_TH_8822B \
  9352. << BIT_SHIFT_BE_FAST_EDCA_PKT_TH_8822B)
  9353. #define BIT_CLEAR_BE_FAST_EDCA_PKT_TH_8822B(x) \
  9354. ((x) & (~BITS_BE_FAST_EDCA_PKT_TH_8822B))
  9355. #define BIT_GET_BE_FAST_EDCA_PKT_TH_8822B(x) \
  9356. (((x) >> BIT_SHIFT_BE_FAST_EDCA_PKT_TH_8822B) & \
  9357. BIT_MASK_BE_FAST_EDCA_PKT_TH_8822B)
  9358. #define BIT_SET_BE_FAST_EDCA_PKT_TH_8822B(x, v) \
  9359. (BIT_CLEAR_BE_FAST_EDCA_PKT_TH_8822B(x) | \
  9360. BIT_BE_FAST_EDCA_PKT_TH_8822B(v))
  9361. /* 2 REG_MACID_DROP0_8822B */
  9362. #define BIT_SHIFT_MACID31_0_DROP_8822B 0
  9363. #define BIT_MASK_MACID31_0_DROP_8822B 0xffffffffL
  9364. #define BIT_MACID31_0_DROP_8822B(x) \
  9365. (((x) & BIT_MASK_MACID31_0_DROP_8822B) \
  9366. << BIT_SHIFT_MACID31_0_DROP_8822B)
  9367. #define BITS_MACID31_0_DROP_8822B \
  9368. (BIT_MASK_MACID31_0_DROP_8822B << BIT_SHIFT_MACID31_0_DROP_8822B)
  9369. #define BIT_CLEAR_MACID31_0_DROP_8822B(x) ((x) & (~BITS_MACID31_0_DROP_8822B))
  9370. #define BIT_GET_MACID31_0_DROP_8822B(x) \
  9371. (((x) >> BIT_SHIFT_MACID31_0_DROP_8822B) & \
  9372. BIT_MASK_MACID31_0_DROP_8822B)
  9373. #define BIT_SET_MACID31_0_DROP_8822B(x, v) \
  9374. (BIT_CLEAR_MACID31_0_DROP_8822B(x) | BIT_MACID31_0_DROP_8822B(v))
  9375. /* 2 REG_MACID_DROP1_8822B */
  9376. #define BIT_SHIFT_MACID63_32_DROP_8822B 0
  9377. #define BIT_MASK_MACID63_32_DROP_8822B 0xffffffffL
  9378. #define BIT_MACID63_32_DROP_8822B(x) \
  9379. (((x) & BIT_MASK_MACID63_32_DROP_8822B) \
  9380. << BIT_SHIFT_MACID63_32_DROP_8822B)
  9381. #define BITS_MACID63_32_DROP_8822B \
  9382. (BIT_MASK_MACID63_32_DROP_8822B << BIT_SHIFT_MACID63_32_DROP_8822B)
  9383. #define BIT_CLEAR_MACID63_32_DROP_8822B(x) ((x) & (~BITS_MACID63_32_DROP_8822B))
  9384. #define BIT_GET_MACID63_32_DROP_8822B(x) \
  9385. (((x) >> BIT_SHIFT_MACID63_32_DROP_8822B) & \
  9386. BIT_MASK_MACID63_32_DROP_8822B)
  9387. #define BIT_SET_MACID63_32_DROP_8822B(x, v) \
  9388. (BIT_CLEAR_MACID63_32_DROP_8822B(x) | BIT_MACID63_32_DROP_8822B(v))
  9389. /* 2 REG_MACID_DROP2_8822B */
  9390. #define BIT_SHIFT_MACID95_64_DROP_8822B 0
  9391. #define BIT_MASK_MACID95_64_DROP_8822B 0xffffffffL
  9392. #define BIT_MACID95_64_DROP_8822B(x) \
  9393. (((x) & BIT_MASK_MACID95_64_DROP_8822B) \
  9394. << BIT_SHIFT_MACID95_64_DROP_8822B)
  9395. #define BITS_MACID95_64_DROP_8822B \
  9396. (BIT_MASK_MACID95_64_DROP_8822B << BIT_SHIFT_MACID95_64_DROP_8822B)
  9397. #define BIT_CLEAR_MACID95_64_DROP_8822B(x) ((x) & (~BITS_MACID95_64_DROP_8822B))
  9398. #define BIT_GET_MACID95_64_DROP_8822B(x) \
  9399. (((x) >> BIT_SHIFT_MACID95_64_DROP_8822B) & \
  9400. BIT_MASK_MACID95_64_DROP_8822B)
  9401. #define BIT_SET_MACID95_64_DROP_8822B(x, v) \
  9402. (BIT_CLEAR_MACID95_64_DROP_8822B(x) | BIT_MACID95_64_DROP_8822B(v))
  9403. /* 2 REG_MACID_DROP3_8822B */
  9404. #define BIT_SHIFT_MACID127_96_DROP_8822B 0
  9405. #define BIT_MASK_MACID127_96_DROP_8822B 0xffffffffL
  9406. #define BIT_MACID127_96_DROP_8822B(x) \
  9407. (((x) & BIT_MASK_MACID127_96_DROP_8822B) \
  9408. << BIT_SHIFT_MACID127_96_DROP_8822B)
  9409. #define BITS_MACID127_96_DROP_8822B \
  9410. (BIT_MASK_MACID127_96_DROP_8822B << BIT_SHIFT_MACID127_96_DROP_8822B)
  9411. #define BIT_CLEAR_MACID127_96_DROP_8822B(x) \
  9412. ((x) & (~BITS_MACID127_96_DROP_8822B))
  9413. #define BIT_GET_MACID127_96_DROP_8822B(x) \
  9414. (((x) >> BIT_SHIFT_MACID127_96_DROP_8822B) & \
  9415. BIT_MASK_MACID127_96_DROP_8822B)
  9416. #define BIT_SET_MACID127_96_DROP_8822B(x, v) \
  9417. (BIT_CLEAR_MACID127_96_DROP_8822B(x) | BIT_MACID127_96_DROP_8822B(v))
  9418. /* 2 REG_R_MACID_RELEASE_SUCCESS_0_8822B */
  9419. #define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0_8822B 0
  9420. #define BIT_MASK_R_MACID_RELEASE_SUCCESS_0_8822B 0xffffffffL
  9421. #define BIT_R_MACID_RELEASE_SUCCESS_0_8822B(x) \
  9422. (((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_0_8822B) \
  9423. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0_8822B)
  9424. #define BITS_R_MACID_RELEASE_SUCCESS_0_8822B \
  9425. (BIT_MASK_R_MACID_RELEASE_SUCCESS_0_8822B \
  9426. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0_8822B)
  9427. #define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_0_8822B(x) \
  9428. ((x) & (~BITS_R_MACID_RELEASE_SUCCESS_0_8822B))
  9429. #define BIT_GET_R_MACID_RELEASE_SUCCESS_0_8822B(x) \
  9430. (((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0_8822B) & \
  9431. BIT_MASK_R_MACID_RELEASE_SUCCESS_0_8822B)
  9432. #define BIT_SET_R_MACID_RELEASE_SUCCESS_0_8822B(x, v) \
  9433. (BIT_CLEAR_R_MACID_RELEASE_SUCCESS_0_8822B(x) | \
  9434. BIT_R_MACID_RELEASE_SUCCESS_0_8822B(v))
  9435. /* 2 REG_R_MACID_RELEASE_SUCCESS_1_8822B */
  9436. #define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1_8822B 0
  9437. #define BIT_MASK_R_MACID_RELEASE_SUCCESS_1_8822B 0xffffffffL
  9438. #define BIT_R_MACID_RELEASE_SUCCESS_1_8822B(x) \
  9439. (((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_1_8822B) \
  9440. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1_8822B)
  9441. #define BITS_R_MACID_RELEASE_SUCCESS_1_8822B \
  9442. (BIT_MASK_R_MACID_RELEASE_SUCCESS_1_8822B \
  9443. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1_8822B)
  9444. #define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_1_8822B(x) \
  9445. ((x) & (~BITS_R_MACID_RELEASE_SUCCESS_1_8822B))
  9446. #define BIT_GET_R_MACID_RELEASE_SUCCESS_1_8822B(x) \
  9447. (((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1_8822B) & \
  9448. BIT_MASK_R_MACID_RELEASE_SUCCESS_1_8822B)
  9449. #define BIT_SET_R_MACID_RELEASE_SUCCESS_1_8822B(x, v) \
  9450. (BIT_CLEAR_R_MACID_RELEASE_SUCCESS_1_8822B(x) | \
  9451. BIT_R_MACID_RELEASE_SUCCESS_1_8822B(v))
  9452. /* 2 REG_R_MACID_RELEASE_SUCCESS_2_8822B */
  9453. #define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2_8822B 0
  9454. #define BIT_MASK_R_MACID_RELEASE_SUCCESS_2_8822B 0xffffffffL
  9455. #define BIT_R_MACID_RELEASE_SUCCESS_2_8822B(x) \
  9456. (((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_2_8822B) \
  9457. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2_8822B)
  9458. #define BITS_R_MACID_RELEASE_SUCCESS_2_8822B \
  9459. (BIT_MASK_R_MACID_RELEASE_SUCCESS_2_8822B \
  9460. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2_8822B)
  9461. #define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_2_8822B(x) \
  9462. ((x) & (~BITS_R_MACID_RELEASE_SUCCESS_2_8822B))
  9463. #define BIT_GET_R_MACID_RELEASE_SUCCESS_2_8822B(x) \
  9464. (((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2_8822B) & \
  9465. BIT_MASK_R_MACID_RELEASE_SUCCESS_2_8822B)
  9466. #define BIT_SET_R_MACID_RELEASE_SUCCESS_2_8822B(x, v) \
  9467. (BIT_CLEAR_R_MACID_RELEASE_SUCCESS_2_8822B(x) | \
  9468. BIT_R_MACID_RELEASE_SUCCESS_2_8822B(v))
  9469. /* 2 REG_R_MACID_RELEASE_SUCCESS_3_8822B */
  9470. #define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3_8822B 0
  9471. #define BIT_MASK_R_MACID_RELEASE_SUCCESS_3_8822B 0xffffffffL
  9472. #define BIT_R_MACID_RELEASE_SUCCESS_3_8822B(x) \
  9473. (((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_3_8822B) \
  9474. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3_8822B)
  9475. #define BITS_R_MACID_RELEASE_SUCCESS_3_8822B \
  9476. (BIT_MASK_R_MACID_RELEASE_SUCCESS_3_8822B \
  9477. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3_8822B)
  9478. #define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_3_8822B(x) \
  9479. ((x) & (~BITS_R_MACID_RELEASE_SUCCESS_3_8822B))
  9480. #define BIT_GET_R_MACID_RELEASE_SUCCESS_3_8822B(x) \
  9481. (((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3_8822B) & \
  9482. BIT_MASK_R_MACID_RELEASE_SUCCESS_3_8822B)
  9483. #define BIT_SET_R_MACID_RELEASE_SUCCESS_3_8822B(x, v) \
  9484. (BIT_CLEAR_R_MACID_RELEASE_SUCCESS_3_8822B(x) | \
  9485. BIT_R_MACID_RELEASE_SUCCESS_3_8822B(v))
  9486. /* 2 REG_MGG_FIFO_CRTL_8822B */
  9487. #define BIT_R_MGG_FIFO_EN_8822B BIT(31)
  9488. #define BIT_SHIFT_R_MGG_FIFO_PG_SIZE_8822B 28
  9489. #define BIT_MASK_R_MGG_FIFO_PG_SIZE_8822B 0x7
  9490. #define BIT_R_MGG_FIFO_PG_SIZE_8822B(x) \
  9491. (((x) & BIT_MASK_R_MGG_FIFO_PG_SIZE_8822B) \
  9492. << BIT_SHIFT_R_MGG_FIFO_PG_SIZE_8822B)
  9493. #define BITS_R_MGG_FIFO_PG_SIZE_8822B \
  9494. (BIT_MASK_R_MGG_FIFO_PG_SIZE_8822B \
  9495. << BIT_SHIFT_R_MGG_FIFO_PG_SIZE_8822B)
  9496. #define BIT_CLEAR_R_MGG_FIFO_PG_SIZE_8822B(x) \
  9497. ((x) & (~BITS_R_MGG_FIFO_PG_SIZE_8822B))
  9498. #define BIT_GET_R_MGG_FIFO_PG_SIZE_8822B(x) \
  9499. (((x) >> BIT_SHIFT_R_MGG_FIFO_PG_SIZE_8822B) & \
  9500. BIT_MASK_R_MGG_FIFO_PG_SIZE_8822B)
  9501. #define BIT_SET_R_MGG_FIFO_PG_SIZE_8822B(x, v) \
  9502. (BIT_CLEAR_R_MGG_FIFO_PG_SIZE_8822B(x) | \
  9503. BIT_R_MGG_FIFO_PG_SIZE_8822B(v))
  9504. #define BIT_SHIFT_R_MGG_FIFO_START_PG_8822B 16
  9505. #define BIT_MASK_R_MGG_FIFO_START_PG_8822B 0xfff
  9506. #define BIT_R_MGG_FIFO_START_PG_8822B(x) \
  9507. (((x) & BIT_MASK_R_MGG_FIFO_START_PG_8822B) \
  9508. << BIT_SHIFT_R_MGG_FIFO_START_PG_8822B)
  9509. #define BITS_R_MGG_FIFO_START_PG_8822B \
  9510. (BIT_MASK_R_MGG_FIFO_START_PG_8822B \
  9511. << BIT_SHIFT_R_MGG_FIFO_START_PG_8822B)
  9512. #define BIT_CLEAR_R_MGG_FIFO_START_PG_8822B(x) \
  9513. ((x) & (~BITS_R_MGG_FIFO_START_PG_8822B))
  9514. #define BIT_GET_R_MGG_FIFO_START_PG_8822B(x) \
  9515. (((x) >> BIT_SHIFT_R_MGG_FIFO_START_PG_8822B) & \
  9516. BIT_MASK_R_MGG_FIFO_START_PG_8822B)
  9517. #define BIT_SET_R_MGG_FIFO_START_PG_8822B(x, v) \
  9518. (BIT_CLEAR_R_MGG_FIFO_START_PG_8822B(x) | \
  9519. BIT_R_MGG_FIFO_START_PG_8822B(v))
  9520. #define BIT_SHIFT_R_MGG_FIFO_SIZE_8822B 14
  9521. #define BIT_MASK_R_MGG_FIFO_SIZE_8822B 0x3
  9522. #define BIT_R_MGG_FIFO_SIZE_8822B(x) \
  9523. (((x) & BIT_MASK_R_MGG_FIFO_SIZE_8822B) \
  9524. << BIT_SHIFT_R_MGG_FIFO_SIZE_8822B)
  9525. #define BITS_R_MGG_FIFO_SIZE_8822B \
  9526. (BIT_MASK_R_MGG_FIFO_SIZE_8822B << BIT_SHIFT_R_MGG_FIFO_SIZE_8822B)
  9527. #define BIT_CLEAR_R_MGG_FIFO_SIZE_8822B(x) ((x) & (~BITS_R_MGG_FIFO_SIZE_8822B))
  9528. #define BIT_GET_R_MGG_FIFO_SIZE_8822B(x) \
  9529. (((x) >> BIT_SHIFT_R_MGG_FIFO_SIZE_8822B) & \
  9530. BIT_MASK_R_MGG_FIFO_SIZE_8822B)
  9531. #define BIT_SET_R_MGG_FIFO_SIZE_8822B(x, v) \
  9532. (BIT_CLEAR_R_MGG_FIFO_SIZE_8822B(x) | BIT_R_MGG_FIFO_SIZE_8822B(v))
  9533. #define BIT_R_MGG_FIFO_PAUSE_8822B BIT(13)
  9534. #define BIT_SHIFT_R_MGG_FIFO_RPTR_8822B 8
  9535. #define BIT_MASK_R_MGG_FIFO_RPTR_8822B 0x1f
  9536. #define BIT_R_MGG_FIFO_RPTR_8822B(x) \
  9537. (((x) & BIT_MASK_R_MGG_FIFO_RPTR_8822B) \
  9538. << BIT_SHIFT_R_MGG_FIFO_RPTR_8822B)
  9539. #define BITS_R_MGG_FIFO_RPTR_8822B \
  9540. (BIT_MASK_R_MGG_FIFO_RPTR_8822B << BIT_SHIFT_R_MGG_FIFO_RPTR_8822B)
  9541. #define BIT_CLEAR_R_MGG_FIFO_RPTR_8822B(x) ((x) & (~BITS_R_MGG_FIFO_RPTR_8822B))
  9542. #define BIT_GET_R_MGG_FIFO_RPTR_8822B(x) \
  9543. (((x) >> BIT_SHIFT_R_MGG_FIFO_RPTR_8822B) & \
  9544. BIT_MASK_R_MGG_FIFO_RPTR_8822B)
  9545. #define BIT_SET_R_MGG_FIFO_RPTR_8822B(x, v) \
  9546. (BIT_CLEAR_R_MGG_FIFO_RPTR_8822B(x) | BIT_R_MGG_FIFO_RPTR_8822B(v))
  9547. #define BIT_R_MGG_FIFO_OV_8822B BIT(7)
  9548. #define BIT_R_MGG_FIFO_WPTR_ERROR_8822B BIT(6)
  9549. #define BIT_R_EN_CPU_LIFETIME_8822B BIT(5)
  9550. #define BIT_SHIFT_R_MGG_FIFO_WPTR_8822B 0
  9551. #define BIT_MASK_R_MGG_FIFO_WPTR_8822B 0x1f
  9552. #define BIT_R_MGG_FIFO_WPTR_8822B(x) \
  9553. (((x) & BIT_MASK_R_MGG_FIFO_WPTR_8822B) \
  9554. << BIT_SHIFT_R_MGG_FIFO_WPTR_8822B)
  9555. #define BITS_R_MGG_FIFO_WPTR_8822B \
  9556. (BIT_MASK_R_MGG_FIFO_WPTR_8822B << BIT_SHIFT_R_MGG_FIFO_WPTR_8822B)
  9557. #define BIT_CLEAR_R_MGG_FIFO_WPTR_8822B(x) ((x) & (~BITS_R_MGG_FIFO_WPTR_8822B))
  9558. #define BIT_GET_R_MGG_FIFO_WPTR_8822B(x) \
  9559. (((x) >> BIT_SHIFT_R_MGG_FIFO_WPTR_8822B) & \
  9560. BIT_MASK_R_MGG_FIFO_WPTR_8822B)
  9561. #define BIT_SET_R_MGG_FIFO_WPTR_8822B(x, v) \
  9562. (BIT_CLEAR_R_MGG_FIFO_WPTR_8822B(x) | BIT_R_MGG_FIFO_WPTR_8822B(v))
  9563. /* 2 REG_MGG_FIFO_INT_8822B */
  9564. #define BIT_SHIFT_R_MGG_FIFO_INT_FLAG_8822B 16
  9565. #define BIT_MASK_R_MGG_FIFO_INT_FLAG_8822B 0xffff
  9566. #define BIT_R_MGG_FIFO_INT_FLAG_8822B(x) \
  9567. (((x) & BIT_MASK_R_MGG_FIFO_INT_FLAG_8822B) \
  9568. << BIT_SHIFT_R_MGG_FIFO_INT_FLAG_8822B)
  9569. #define BITS_R_MGG_FIFO_INT_FLAG_8822B \
  9570. (BIT_MASK_R_MGG_FIFO_INT_FLAG_8822B \
  9571. << BIT_SHIFT_R_MGG_FIFO_INT_FLAG_8822B)
  9572. #define BIT_CLEAR_R_MGG_FIFO_INT_FLAG_8822B(x) \
  9573. ((x) & (~BITS_R_MGG_FIFO_INT_FLAG_8822B))
  9574. #define BIT_GET_R_MGG_FIFO_INT_FLAG_8822B(x) \
  9575. (((x) >> BIT_SHIFT_R_MGG_FIFO_INT_FLAG_8822B) & \
  9576. BIT_MASK_R_MGG_FIFO_INT_FLAG_8822B)
  9577. #define BIT_SET_R_MGG_FIFO_INT_FLAG_8822B(x, v) \
  9578. (BIT_CLEAR_R_MGG_FIFO_INT_FLAG_8822B(x) | \
  9579. BIT_R_MGG_FIFO_INT_FLAG_8822B(v))
  9580. #define BIT_SHIFT_R_MGG_FIFO_INT_MASK_8822B 0
  9581. #define BIT_MASK_R_MGG_FIFO_INT_MASK_8822B 0xffff
  9582. #define BIT_R_MGG_FIFO_INT_MASK_8822B(x) \
  9583. (((x) & BIT_MASK_R_MGG_FIFO_INT_MASK_8822B) \
  9584. << BIT_SHIFT_R_MGG_FIFO_INT_MASK_8822B)
  9585. #define BITS_R_MGG_FIFO_INT_MASK_8822B \
  9586. (BIT_MASK_R_MGG_FIFO_INT_MASK_8822B \
  9587. << BIT_SHIFT_R_MGG_FIFO_INT_MASK_8822B)
  9588. #define BIT_CLEAR_R_MGG_FIFO_INT_MASK_8822B(x) \
  9589. ((x) & (~BITS_R_MGG_FIFO_INT_MASK_8822B))
  9590. #define BIT_GET_R_MGG_FIFO_INT_MASK_8822B(x) \
  9591. (((x) >> BIT_SHIFT_R_MGG_FIFO_INT_MASK_8822B) & \
  9592. BIT_MASK_R_MGG_FIFO_INT_MASK_8822B)
  9593. #define BIT_SET_R_MGG_FIFO_INT_MASK_8822B(x, v) \
  9594. (BIT_CLEAR_R_MGG_FIFO_INT_MASK_8822B(x) | \
  9595. BIT_R_MGG_FIFO_INT_MASK_8822B(v))
  9596. /* 2 REG_MGG_FIFO_LIFETIME_8822B */
  9597. #define BIT_SHIFT_R_MGG_FIFO_LIFETIME_8822B 16
  9598. #define BIT_MASK_R_MGG_FIFO_LIFETIME_8822B 0xffff
  9599. #define BIT_R_MGG_FIFO_LIFETIME_8822B(x) \
  9600. (((x) & BIT_MASK_R_MGG_FIFO_LIFETIME_8822B) \
  9601. << BIT_SHIFT_R_MGG_FIFO_LIFETIME_8822B)
  9602. #define BITS_R_MGG_FIFO_LIFETIME_8822B \
  9603. (BIT_MASK_R_MGG_FIFO_LIFETIME_8822B \
  9604. << BIT_SHIFT_R_MGG_FIFO_LIFETIME_8822B)
  9605. #define BIT_CLEAR_R_MGG_FIFO_LIFETIME_8822B(x) \
  9606. ((x) & (~BITS_R_MGG_FIFO_LIFETIME_8822B))
  9607. #define BIT_GET_R_MGG_FIFO_LIFETIME_8822B(x) \
  9608. (((x) >> BIT_SHIFT_R_MGG_FIFO_LIFETIME_8822B) & \
  9609. BIT_MASK_R_MGG_FIFO_LIFETIME_8822B)
  9610. #define BIT_SET_R_MGG_FIFO_LIFETIME_8822B(x, v) \
  9611. (BIT_CLEAR_R_MGG_FIFO_LIFETIME_8822B(x) | \
  9612. BIT_R_MGG_FIFO_LIFETIME_8822B(v))
  9613. #define BIT_SHIFT_R_MGG_FIFO_VALID_MAP_8822B 0
  9614. #define BIT_MASK_R_MGG_FIFO_VALID_MAP_8822B 0xffff
  9615. #define BIT_R_MGG_FIFO_VALID_MAP_8822B(x) \
  9616. (((x) & BIT_MASK_R_MGG_FIFO_VALID_MAP_8822B) \
  9617. << BIT_SHIFT_R_MGG_FIFO_VALID_MAP_8822B)
  9618. #define BITS_R_MGG_FIFO_VALID_MAP_8822B \
  9619. (BIT_MASK_R_MGG_FIFO_VALID_MAP_8822B \
  9620. << BIT_SHIFT_R_MGG_FIFO_VALID_MAP_8822B)
  9621. #define BIT_CLEAR_R_MGG_FIFO_VALID_MAP_8822B(x) \
  9622. ((x) & (~BITS_R_MGG_FIFO_VALID_MAP_8822B))
  9623. #define BIT_GET_R_MGG_FIFO_VALID_MAP_8822B(x) \
  9624. (((x) >> BIT_SHIFT_R_MGG_FIFO_VALID_MAP_8822B) & \
  9625. BIT_MASK_R_MGG_FIFO_VALID_MAP_8822B)
  9626. #define BIT_SET_R_MGG_FIFO_VALID_MAP_8822B(x, v) \
  9627. (BIT_CLEAR_R_MGG_FIFO_VALID_MAP_8822B(x) | \
  9628. BIT_R_MGG_FIFO_VALID_MAP_8822B(v))
  9629. /* 2 REG_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B */
  9630. #define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B 0
  9631. #define BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B 0x7f
  9632. #define BIT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B(x) \
  9633. (((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B) \
  9634. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B)
  9635. #define BITS_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B \
  9636. (BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B \
  9637. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B)
  9638. #define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B(x) \
  9639. ((x) & (~BITS_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B))
  9640. #define BIT_GET_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B(x) \
  9641. (((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B) & \
  9642. BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B)
  9643. #define BIT_SET_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B(x, v) \
  9644. (BIT_CLEAR_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B(x) | \
  9645. BIT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B(v))
  9646. /* 2 REG_SHCUT_SETTING_8822B */
  9647. /* 2 REG_NOT_VALID_8822B */
  9648. /* 2 REG_NOT_VALID_8822B */
  9649. /* 2 REG_NOT_VALID_8822B */
  9650. /* 2 REG_NOT_VALID_8822B */
  9651. /* 2 REG_NOT_VALID_8822B */
  9652. /* 2 REG_NOT_VALID_8822B */
  9653. /* 2 REG_SHCUT_LLC_ETH_TYPE0_8822B */
  9654. /* 2 REG_NOT_VALID_8822B */
  9655. /* 2 REG_NOT_VALID_8822B */
  9656. /* 2 REG_SHCUT_LLC_ETH_TYPE1_8822B */
  9657. /* 2 REG_NOT_VALID_8822B */
  9658. /* 2 REG_NOT_VALID_8822B */
  9659. /* 2 REG_SHCUT_LLC_OUI0_8822B */
  9660. /* 2 REG_NOT_VALID_8822B */
  9661. /* 2 REG_NOT_VALID_8822B */
  9662. /* 2 REG_NOT_VALID_8822B */
  9663. /* 2 REG_SHCUT_LLC_OUI1_8822B */
  9664. /* 2 REG_NOT_VALID_8822B */
  9665. /* 2 REG_NOT_VALID_8822B */
  9666. /* 2 REG_NOT_VALID_8822B */
  9667. /* 2 REG_SHCUT_LLC_OUI2_8822B */
  9668. /* 2 REG_NOT_VALID_8822B */
  9669. /* 2 REG_NOT_VALID_8822B */
  9670. /* 2 REG_NOT_VALID_8822B */
  9671. /* 2 REG_SHCUT_LLC_OUI3_8822B */
  9672. /* 2 REG_NOT_VALID_8822B */
  9673. /* 2 REG_NOT_VALID_8822B */
  9674. /* 2 REG_NOT_VALID_8822B */
  9675. /* 2 REG_MU_TX_CTL_8822B */
  9676. #define BIT_R_EN_REVERS_GTAB_8822B BIT(6)
  9677. #define BIT_SHIFT_R_MU_TABLE_VALID_8822B 0
  9678. #define BIT_MASK_R_MU_TABLE_VALID_8822B 0x3f
  9679. #define BIT_R_MU_TABLE_VALID_8822B(x) \
  9680. (((x) & BIT_MASK_R_MU_TABLE_VALID_8822B) \
  9681. << BIT_SHIFT_R_MU_TABLE_VALID_8822B)
  9682. #define BITS_R_MU_TABLE_VALID_8822B \
  9683. (BIT_MASK_R_MU_TABLE_VALID_8822B << BIT_SHIFT_R_MU_TABLE_VALID_8822B)
  9684. #define BIT_CLEAR_R_MU_TABLE_VALID_8822B(x) \
  9685. ((x) & (~BITS_R_MU_TABLE_VALID_8822B))
  9686. #define BIT_GET_R_MU_TABLE_VALID_8822B(x) \
  9687. (((x) >> BIT_SHIFT_R_MU_TABLE_VALID_8822B) & \
  9688. BIT_MASK_R_MU_TABLE_VALID_8822B)
  9689. #define BIT_SET_R_MU_TABLE_VALID_8822B(x, v) \
  9690. (BIT_CLEAR_R_MU_TABLE_VALID_8822B(x) | BIT_R_MU_TABLE_VALID_8822B(v))
  9691. /* 2 REG_MU_STA_GID_VLD_8822B */
  9692. /* 2 REG_NOT_VALID_8822B */
  9693. #define BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B 0
  9694. #define BIT_MASK_R_MU_STA_GTAB_VALID_8822B 0xffffffffL
  9695. #define BIT_R_MU_STA_GTAB_VALID_8822B(x) \
  9696. (((x) & BIT_MASK_R_MU_STA_GTAB_VALID_8822B) \
  9697. << BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B)
  9698. #define BITS_R_MU_STA_GTAB_VALID_8822B \
  9699. (BIT_MASK_R_MU_STA_GTAB_VALID_8822B \
  9700. << BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B)
  9701. #define BIT_CLEAR_R_MU_STA_GTAB_VALID_8822B(x) \
  9702. ((x) & (~BITS_R_MU_STA_GTAB_VALID_8822B))
  9703. #define BIT_GET_R_MU_STA_GTAB_VALID_8822B(x) \
  9704. (((x) >> BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B) & \
  9705. BIT_MASK_R_MU_STA_GTAB_VALID_8822B)
  9706. #define BIT_SET_R_MU_STA_GTAB_VALID_8822B(x, v) \
  9707. (BIT_CLEAR_R_MU_STA_GTAB_VALID_8822B(x) | \
  9708. BIT_R_MU_STA_GTAB_VALID_8822B(v))
  9709. #define BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B 0
  9710. #define BIT_MASK_R_MU_STA_GTAB_VALID_8822B 0xffffffffL
  9711. #define BIT_R_MU_STA_GTAB_VALID_8822B(x) \
  9712. (((x) & BIT_MASK_R_MU_STA_GTAB_VALID_8822B) \
  9713. << BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B)
  9714. #define BITS_R_MU_STA_GTAB_VALID_8822B \
  9715. (BIT_MASK_R_MU_STA_GTAB_VALID_8822B \
  9716. << BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B)
  9717. #define BIT_CLEAR_R_MU_STA_GTAB_VALID_8822B(x) \
  9718. ((x) & (~BITS_R_MU_STA_GTAB_VALID_8822B))
  9719. #define BIT_GET_R_MU_STA_GTAB_VALID_8822B(x) \
  9720. (((x) >> BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B) & \
  9721. BIT_MASK_R_MU_STA_GTAB_VALID_8822B)
  9722. #define BIT_SET_R_MU_STA_GTAB_VALID_8822B(x, v) \
  9723. (BIT_CLEAR_R_MU_STA_GTAB_VALID_8822B(x) | \
  9724. BIT_R_MU_STA_GTAB_VALID_8822B(v))
  9725. /* 2 REG_MU_STA_USER_POS_INFO_8822B */
  9726. /* 2 REG_NOT_VALID_8822B */
  9727. #define BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B 0
  9728. #define BIT_MASK_R_MU_STA_GTAB_POSITION_8822B 0xffffffffffffffffL
  9729. #define BIT_R_MU_STA_GTAB_POSITION_8822B(x) \
  9730. (((x) & BIT_MASK_R_MU_STA_GTAB_POSITION_8822B) \
  9731. << BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B)
  9732. #define BITS_R_MU_STA_GTAB_POSITION_8822B \
  9733. (BIT_MASK_R_MU_STA_GTAB_POSITION_8822B \
  9734. << BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B)
  9735. #define BIT_CLEAR_R_MU_STA_GTAB_POSITION_8822B(x) \
  9736. ((x) & (~BITS_R_MU_STA_GTAB_POSITION_8822B))
  9737. #define BIT_GET_R_MU_STA_GTAB_POSITION_8822B(x) \
  9738. (((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B) & \
  9739. BIT_MASK_R_MU_STA_GTAB_POSITION_8822B)
  9740. #define BIT_SET_R_MU_STA_GTAB_POSITION_8822B(x, v) \
  9741. (BIT_CLEAR_R_MU_STA_GTAB_POSITION_8822B(x) | \
  9742. BIT_R_MU_STA_GTAB_POSITION_8822B(v))
  9743. #define BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B 0
  9744. #define BIT_MASK_R_MU_STA_GTAB_POSITION_8822B 0xffffffffffffffffL
  9745. #define BIT_R_MU_STA_GTAB_POSITION_8822B(x) \
  9746. (((x) & BIT_MASK_R_MU_STA_GTAB_POSITION_8822B) \
  9747. << BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B)
  9748. #define BITS_R_MU_STA_GTAB_POSITION_8822B \
  9749. (BIT_MASK_R_MU_STA_GTAB_POSITION_8822B \
  9750. << BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B)
  9751. #define BIT_CLEAR_R_MU_STA_GTAB_POSITION_8822B(x) \
  9752. ((x) & (~BITS_R_MU_STA_GTAB_POSITION_8822B))
  9753. #define BIT_GET_R_MU_STA_GTAB_POSITION_8822B(x) \
  9754. (((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B) & \
  9755. BIT_MASK_R_MU_STA_GTAB_POSITION_8822B)
  9756. #define BIT_SET_R_MU_STA_GTAB_POSITION_8822B(x, v) \
  9757. (BIT_CLEAR_R_MU_STA_GTAB_POSITION_8822B(x) | \
  9758. BIT_R_MU_STA_GTAB_POSITION_8822B(v))
  9759. /* 2 REG_MU_TRX_DBG_CNT_8822B */
  9760. #define BIT_MU_DNGCNT_RST_8822B BIT(20)
  9761. #define BIT_SHIFT_MU_DBGCNT_SEL_8822B 16
  9762. #define BIT_MASK_MU_DBGCNT_SEL_8822B 0xf
  9763. #define BIT_MU_DBGCNT_SEL_8822B(x) \
  9764. (((x) & BIT_MASK_MU_DBGCNT_SEL_8822B) << BIT_SHIFT_MU_DBGCNT_SEL_8822B)
  9765. #define BITS_MU_DBGCNT_SEL_8822B \
  9766. (BIT_MASK_MU_DBGCNT_SEL_8822B << BIT_SHIFT_MU_DBGCNT_SEL_8822B)
  9767. #define BIT_CLEAR_MU_DBGCNT_SEL_8822B(x) ((x) & (~BITS_MU_DBGCNT_SEL_8822B))
  9768. #define BIT_GET_MU_DBGCNT_SEL_8822B(x) \
  9769. (((x) >> BIT_SHIFT_MU_DBGCNT_SEL_8822B) & BIT_MASK_MU_DBGCNT_SEL_8822B)
  9770. #define BIT_SET_MU_DBGCNT_SEL_8822B(x, v) \
  9771. (BIT_CLEAR_MU_DBGCNT_SEL_8822B(x) | BIT_MU_DBGCNT_SEL_8822B(v))
  9772. #define BIT_SHIFT_MU_DNGCNT_8822B 0
  9773. #define BIT_MASK_MU_DNGCNT_8822B 0xffff
  9774. #define BIT_MU_DNGCNT_8822B(x) \
  9775. (((x) & BIT_MASK_MU_DNGCNT_8822B) << BIT_SHIFT_MU_DNGCNT_8822B)
  9776. #define BITS_MU_DNGCNT_8822B \
  9777. (BIT_MASK_MU_DNGCNT_8822B << BIT_SHIFT_MU_DNGCNT_8822B)
  9778. #define BIT_CLEAR_MU_DNGCNT_8822B(x) ((x) & (~BITS_MU_DNGCNT_8822B))
  9779. #define BIT_GET_MU_DNGCNT_8822B(x) \
  9780. (((x) >> BIT_SHIFT_MU_DNGCNT_8822B) & BIT_MASK_MU_DNGCNT_8822B)
  9781. #define BIT_SET_MU_DNGCNT_8822B(x, v) \
  9782. (BIT_CLEAR_MU_DNGCNT_8822B(x) | BIT_MU_DNGCNT_8822B(v))
  9783. /* 2 REG_MU_TX_CTL_8822B */
  9784. #define BIT_R_EN_REVERS_GTAB_8822B BIT(6)
  9785. #define BIT_SHIFT_R_MU_TABLE_VALID_8822B 0
  9786. #define BIT_MASK_R_MU_TABLE_VALID_8822B 0x3f
  9787. #define BIT_R_MU_TABLE_VALID_8822B(x) \
  9788. (((x) & BIT_MASK_R_MU_TABLE_VALID_8822B) \
  9789. << BIT_SHIFT_R_MU_TABLE_VALID_8822B)
  9790. #define BITS_R_MU_TABLE_VALID_8822B \
  9791. (BIT_MASK_R_MU_TABLE_VALID_8822B << BIT_SHIFT_R_MU_TABLE_VALID_8822B)
  9792. #define BIT_CLEAR_R_MU_TABLE_VALID_8822B(x) \
  9793. ((x) & (~BITS_R_MU_TABLE_VALID_8822B))
  9794. #define BIT_GET_R_MU_TABLE_VALID_8822B(x) \
  9795. (((x) >> BIT_SHIFT_R_MU_TABLE_VALID_8822B) & \
  9796. BIT_MASK_R_MU_TABLE_VALID_8822B)
  9797. #define BIT_SET_R_MU_TABLE_VALID_8822B(x, v) \
  9798. (BIT_CLEAR_R_MU_TABLE_VALID_8822B(x) | BIT_R_MU_TABLE_VALID_8822B(v))
  9799. /* 2 REG_MU_STA_GID_VLD_8822B */
  9800. /* 2 REG_NOT_VALID_8822B */
  9801. #define BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B 0
  9802. #define BIT_MASK_R_MU_STA_GTAB_VALID_8822B 0xffffffffL
  9803. #define BIT_R_MU_STA_GTAB_VALID_8822B(x) \
  9804. (((x) & BIT_MASK_R_MU_STA_GTAB_VALID_8822B) \
  9805. << BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B)
  9806. #define BITS_R_MU_STA_GTAB_VALID_8822B \
  9807. (BIT_MASK_R_MU_STA_GTAB_VALID_8822B \
  9808. << BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B)
  9809. #define BIT_CLEAR_R_MU_STA_GTAB_VALID_8822B(x) \
  9810. ((x) & (~BITS_R_MU_STA_GTAB_VALID_8822B))
  9811. #define BIT_GET_R_MU_STA_GTAB_VALID_8822B(x) \
  9812. (((x) >> BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B) & \
  9813. BIT_MASK_R_MU_STA_GTAB_VALID_8822B)
  9814. #define BIT_SET_R_MU_STA_GTAB_VALID_8822B(x, v) \
  9815. (BIT_CLEAR_R_MU_STA_GTAB_VALID_8822B(x) | \
  9816. BIT_R_MU_STA_GTAB_VALID_8822B(v))
  9817. #define BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B 0
  9818. #define BIT_MASK_R_MU_STA_GTAB_VALID_8822B 0xffffffffL
  9819. #define BIT_R_MU_STA_GTAB_VALID_8822B(x) \
  9820. (((x) & BIT_MASK_R_MU_STA_GTAB_VALID_8822B) \
  9821. << BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B)
  9822. #define BITS_R_MU_STA_GTAB_VALID_8822B \
  9823. (BIT_MASK_R_MU_STA_GTAB_VALID_8822B \
  9824. << BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B)
  9825. #define BIT_CLEAR_R_MU_STA_GTAB_VALID_8822B(x) \
  9826. ((x) & (~BITS_R_MU_STA_GTAB_VALID_8822B))
  9827. #define BIT_GET_R_MU_STA_GTAB_VALID_8822B(x) \
  9828. (((x) >> BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B) & \
  9829. BIT_MASK_R_MU_STA_GTAB_VALID_8822B)
  9830. #define BIT_SET_R_MU_STA_GTAB_VALID_8822B(x, v) \
  9831. (BIT_CLEAR_R_MU_STA_GTAB_VALID_8822B(x) | \
  9832. BIT_R_MU_STA_GTAB_VALID_8822B(v))
  9833. /* 2 REG_MU_STA_USER_POS_INFO_8822B */
  9834. /* 2 REG_NOT_VALID_8822B */
  9835. #define BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B 0
  9836. #define BIT_MASK_R_MU_STA_GTAB_POSITION_8822B 0xffffffffffffffffL
  9837. #define BIT_R_MU_STA_GTAB_POSITION_8822B(x) \
  9838. (((x) & BIT_MASK_R_MU_STA_GTAB_POSITION_8822B) \
  9839. << BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B)
  9840. #define BITS_R_MU_STA_GTAB_POSITION_8822B \
  9841. (BIT_MASK_R_MU_STA_GTAB_POSITION_8822B \
  9842. << BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B)
  9843. #define BIT_CLEAR_R_MU_STA_GTAB_POSITION_8822B(x) \
  9844. ((x) & (~BITS_R_MU_STA_GTAB_POSITION_8822B))
  9845. #define BIT_GET_R_MU_STA_GTAB_POSITION_8822B(x) \
  9846. (((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B) & \
  9847. BIT_MASK_R_MU_STA_GTAB_POSITION_8822B)
  9848. #define BIT_SET_R_MU_STA_GTAB_POSITION_8822B(x, v) \
  9849. (BIT_CLEAR_R_MU_STA_GTAB_POSITION_8822B(x) | \
  9850. BIT_R_MU_STA_GTAB_POSITION_8822B(v))
  9851. #define BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B 0
  9852. #define BIT_MASK_R_MU_STA_GTAB_POSITION_8822B 0xffffffffffffffffL
  9853. #define BIT_R_MU_STA_GTAB_POSITION_8822B(x) \
  9854. (((x) & BIT_MASK_R_MU_STA_GTAB_POSITION_8822B) \
  9855. << BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B)
  9856. #define BITS_R_MU_STA_GTAB_POSITION_8822B \
  9857. (BIT_MASK_R_MU_STA_GTAB_POSITION_8822B \
  9858. << BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B)
  9859. #define BIT_CLEAR_R_MU_STA_GTAB_POSITION_8822B(x) \
  9860. ((x) & (~BITS_R_MU_STA_GTAB_POSITION_8822B))
  9861. #define BIT_GET_R_MU_STA_GTAB_POSITION_8822B(x) \
  9862. (((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B) & \
  9863. BIT_MASK_R_MU_STA_GTAB_POSITION_8822B)
  9864. #define BIT_SET_R_MU_STA_GTAB_POSITION_8822B(x, v) \
  9865. (BIT_CLEAR_R_MU_STA_GTAB_POSITION_8822B(x) | \
  9866. BIT_R_MU_STA_GTAB_POSITION_8822B(v))
  9867. /* 2 REG_MU_TRX_DBG_CNT_8822B */
  9868. #define BIT_MU_DNGCNT_RST_8822B BIT(20)
  9869. #define BIT_SHIFT_MU_DBGCNT_SEL_8822B 16
  9870. #define BIT_MASK_MU_DBGCNT_SEL_8822B 0xf
  9871. #define BIT_MU_DBGCNT_SEL_8822B(x) \
  9872. (((x) & BIT_MASK_MU_DBGCNT_SEL_8822B) << BIT_SHIFT_MU_DBGCNT_SEL_8822B)
  9873. #define BITS_MU_DBGCNT_SEL_8822B \
  9874. (BIT_MASK_MU_DBGCNT_SEL_8822B << BIT_SHIFT_MU_DBGCNT_SEL_8822B)
  9875. #define BIT_CLEAR_MU_DBGCNT_SEL_8822B(x) ((x) & (~BITS_MU_DBGCNT_SEL_8822B))
  9876. #define BIT_GET_MU_DBGCNT_SEL_8822B(x) \
  9877. (((x) >> BIT_SHIFT_MU_DBGCNT_SEL_8822B) & BIT_MASK_MU_DBGCNT_SEL_8822B)
  9878. #define BIT_SET_MU_DBGCNT_SEL_8822B(x, v) \
  9879. (BIT_CLEAR_MU_DBGCNT_SEL_8822B(x) | BIT_MU_DBGCNT_SEL_8822B(v))
  9880. #define BIT_SHIFT_MU_DNGCNT_8822B 0
  9881. #define BIT_MASK_MU_DNGCNT_8822B 0xffff
  9882. #define BIT_MU_DNGCNT_8822B(x) \
  9883. (((x) & BIT_MASK_MU_DNGCNT_8822B) << BIT_SHIFT_MU_DNGCNT_8822B)
  9884. #define BITS_MU_DNGCNT_8822B \
  9885. (BIT_MASK_MU_DNGCNT_8822B << BIT_SHIFT_MU_DNGCNT_8822B)
  9886. #define BIT_CLEAR_MU_DNGCNT_8822B(x) ((x) & (~BITS_MU_DNGCNT_8822B))
  9887. #define BIT_GET_MU_DNGCNT_8822B(x) \
  9888. (((x) >> BIT_SHIFT_MU_DNGCNT_8822B) & BIT_MASK_MU_DNGCNT_8822B)
  9889. #define BIT_SET_MU_DNGCNT_8822B(x, v) \
  9890. (BIT_CLEAR_MU_DNGCNT_8822B(x) | BIT_MU_DNGCNT_8822B(v))
  9891. /* 2 REG_NOT_VALID_8822B */
  9892. /* 2 REG_EDCA_VO_PARAM_8822B */
  9893. #define BIT_SHIFT_TXOPLIMIT_8822B 16
  9894. #define BIT_MASK_TXOPLIMIT_8822B 0x7ff
  9895. #define BIT_TXOPLIMIT_8822B(x) \
  9896. (((x) & BIT_MASK_TXOPLIMIT_8822B) << BIT_SHIFT_TXOPLIMIT_8822B)
  9897. #define BITS_TXOPLIMIT_8822B \
  9898. (BIT_MASK_TXOPLIMIT_8822B << BIT_SHIFT_TXOPLIMIT_8822B)
  9899. #define BIT_CLEAR_TXOPLIMIT_8822B(x) ((x) & (~BITS_TXOPLIMIT_8822B))
  9900. #define BIT_GET_TXOPLIMIT_8822B(x) \
  9901. (((x) >> BIT_SHIFT_TXOPLIMIT_8822B) & BIT_MASK_TXOPLIMIT_8822B)
  9902. #define BIT_SET_TXOPLIMIT_8822B(x, v) \
  9903. (BIT_CLEAR_TXOPLIMIT_8822B(x) | BIT_TXOPLIMIT_8822B(v))
  9904. #define BIT_SHIFT_CW_8822B 8
  9905. #define BIT_MASK_CW_8822B 0xff
  9906. #define BIT_CW_8822B(x) (((x) & BIT_MASK_CW_8822B) << BIT_SHIFT_CW_8822B)
  9907. #define BITS_CW_8822B (BIT_MASK_CW_8822B << BIT_SHIFT_CW_8822B)
  9908. #define BIT_CLEAR_CW_8822B(x) ((x) & (~BITS_CW_8822B))
  9909. #define BIT_GET_CW_8822B(x) (((x) >> BIT_SHIFT_CW_8822B) & BIT_MASK_CW_8822B)
  9910. #define BIT_SET_CW_8822B(x, v) (BIT_CLEAR_CW_8822B(x) | BIT_CW_8822B(v))
  9911. #define BIT_SHIFT_AIFS_8822B 0
  9912. #define BIT_MASK_AIFS_8822B 0xff
  9913. #define BIT_AIFS_8822B(x) (((x) & BIT_MASK_AIFS_8822B) << BIT_SHIFT_AIFS_8822B)
  9914. #define BITS_AIFS_8822B (BIT_MASK_AIFS_8822B << BIT_SHIFT_AIFS_8822B)
  9915. #define BIT_CLEAR_AIFS_8822B(x) ((x) & (~BITS_AIFS_8822B))
  9916. #define BIT_GET_AIFS_8822B(x) \
  9917. (((x) >> BIT_SHIFT_AIFS_8822B) & BIT_MASK_AIFS_8822B)
  9918. #define BIT_SET_AIFS_8822B(x, v) (BIT_CLEAR_AIFS_8822B(x) | BIT_AIFS_8822B(v))
  9919. /* 2 REG_EDCA_VI_PARAM_8822B */
  9920. /* 2 REG_NOT_VALID_8822B */
  9921. #define BIT_SHIFT_TXOPLIMIT_8822B 16
  9922. #define BIT_MASK_TXOPLIMIT_8822B 0x7ff
  9923. #define BIT_TXOPLIMIT_8822B(x) \
  9924. (((x) & BIT_MASK_TXOPLIMIT_8822B) << BIT_SHIFT_TXOPLIMIT_8822B)
  9925. #define BITS_TXOPLIMIT_8822B \
  9926. (BIT_MASK_TXOPLIMIT_8822B << BIT_SHIFT_TXOPLIMIT_8822B)
  9927. #define BIT_CLEAR_TXOPLIMIT_8822B(x) ((x) & (~BITS_TXOPLIMIT_8822B))
  9928. #define BIT_GET_TXOPLIMIT_8822B(x) \
  9929. (((x) >> BIT_SHIFT_TXOPLIMIT_8822B) & BIT_MASK_TXOPLIMIT_8822B)
  9930. #define BIT_SET_TXOPLIMIT_8822B(x, v) \
  9931. (BIT_CLEAR_TXOPLIMIT_8822B(x) | BIT_TXOPLIMIT_8822B(v))
  9932. #define BIT_SHIFT_CW_8822B 8
  9933. #define BIT_MASK_CW_8822B 0xff
  9934. #define BIT_CW_8822B(x) (((x) & BIT_MASK_CW_8822B) << BIT_SHIFT_CW_8822B)
  9935. #define BITS_CW_8822B (BIT_MASK_CW_8822B << BIT_SHIFT_CW_8822B)
  9936. #define BIT_CLEAR_CW_8822B(x) ((x) & (~BITS_CW_8822B))
  9937. #define BIT_GET_CW_8822B(x) (((x) >> BIT_SHIFT_CW_8822B) & BIT_MASK_CW_8822B)
  9938. #define BIT_SET_CW_8822B(x, v) (BIT_CLEAR_CW_8822B(x) | BIT_CW_8822B(v))
  9939. #define BIT_SHIFT_AIFS_8822B 0
  9940. #define BIT_MASK_AIFS_8822B 0xff
  9941. #define BIT_AIFS_8822B(x) (((x) & BIT_MASK_AIFS_8822B) << BIT_SHIFT_AIFS_8822B)
  9942. #define BITS_AIFS_8822B (BIT_MASK_AIFS_8822B << BIT_SHIFT_AIFS_8822B)
  9943. #define BIT_CLEAR_AIFS_8822B(x) ((x) & (~BITS_AIFS_8822B))
  9944. #define BIT_GET_AIFS_8822B(x) \
  9945. (((x) >> BIT_SHIFT_AIFS_8822B) & BIT_MASK_AIFS_8822B)
  9946. #define BIT_SET_AIFS_8822B(x, v) (BIT_CLEAR_AIFS_8822B(x) | BIT_AIFS_8822B(v))
  9947. /* 2 REG_EDCA_BE_PARAM_8822B */
  9948. /* 2 REG_NOT_VALID_8822B */
  9949. #define BIT_SHIFT_TXOPLIMIT_8822B 16
  9950. #define BIT_MASK_TXOPLIMIT_8822B 0x7ff
  9951. #define BIT_TXOPLIMIT_8822B(x) \
  9952. (((x) & BIT_MASK_TXOPLIMIT_8822B) << BIT_SHIFT_TXOPLIMIT_8822B)
  9953. #define BITS_TXOPLIMIT_8822B \
  9954. (BIT_MASK_TXOPLIMIT_8822B << BIT_SHIFT_TXOPLIMIT_8822B)
  9955. #define BIT_CLEAR_TXOPLIMIT_8822B(x) ((x) & (~BITS_TXOPLIMIT_8822B))
  9956. #define BIT_GET_TXOPLIMIT_8822B(x) \
  9957. (((x) >> BIT_SHIFT_TXOPLIMIT_8822B) & BIT_MASK_TXOPLIMIT_8822B)
  9958. #define BIT_SET_TXOPLIMIT_8822B(x, v) \
  9959. (BIT_CLEAR_TXOPLIMIT_8822B(x) | BIT_TXOPLIMIT_8822B(v))
  9960. #define BIT_SHIFT_CW_8822B 8
  9961. #define BIT_MASK_CW_8822B 0xff
  9962. #define BIT_CW_8822B(x) (((x) & BIT_MASK_CW_8822B) << BIT_SHIFT_CW_8822B)
  9963. #define BITS_CW_8822B (BIT_MASK_CW_8822B << BIT_SHIFT_CW_8822B)
  9964. #define BIT_CLEAR_CW_8822B(x) ((x) & (~BITS_CW_8822B))
  9965. #define BIT_GET_CW_8822B(x) (((x) >> BIT_SHIFT_CW_8822B) & BIT_MASK_CW_8822B)
  9966. #define BIT_SET_CW_8822B(x, v) (BIT_CLEAR_CW_8822B(x) | BIT_CW_8822B(v))
  9967. #define BIT_SHIFT_AIFS_8822B 0
  9968. #define BIT_MASK_AIFS_8822B 0xff
  9969. #define BIT_AIFS_8822B(x) (((x) & BIT_MASK_AIFS_8822B) << BIT_SHIFT_AIFS_8822B)
  9970. #define BITS_AIFS_8822B (BIT_MASK_AIFS_8822B << BIT_SHIFT_AIFS_8822B)
  9971. #define BIT_CLEAR_AIFS_8822B(x) ((x) & (~BITS_AIFS_8822B))
  9972. #define BIT_GET_AIFS_8822B(x) \
  9973. (((x) >> BIT_SHIFT_AIFS_8822B) & BIT_MASK_AIFS_8822B)
  9974. #define BIT_SET_AIFS_8822B(x, v) (BIT_CLEAR_AIFS_8822B(x) | BIT_AIFS_8822B(v))
  9975. /* 2 REG_EDCA_BK_PARAM_8822B */
  9976. /* 2 REG_NOT_VALID_8822B */
  9977. #define BIT_SHIFT_TXOPLIMIT_8822B 16
  9978. #define BIT_MASK_TXOPLIMIT_8822B 0x7ff
  9979. #define BIT_TXOPLIMIT_8822B(x) \
  9980. (((x) & BIT_MASK_TXOPLIMIT_8822B) << BIT_SHIFT_TXOPLIMIT_8822B)
  9981. #define BITS_TXOPLIMIT_8822B \
  9982. (BIT_MASK_TXOPLIMIT_8822B << BIT_SHIFT_TXOPLIMIT_8822B)
  9983. #define BIT_CLEAR_TXOPLIMIT_8822B(x) ((x) & (~BITS_TXOPLIMIT_8822B))
  9984. #define BIT_GET_TXOPLIMIT_8822B(x) \
  9985. (((x) >> BIT_SHIFT_TXOPLIMIT_8822B) & BIT_MASK_TXOPLIMIT_8822B)
  9986. #define BIT_SET_TXOPLIMIT_8822B(x, v) \
  9987. (BIT_CLEAR_TXOPLIMIT_8822B(x) | BIT_TXOPLIMIT_8822B(v))
  9988. #define BIT_SHIFT_CW_8822B 8
  9989. #define BIT_MASK_CW_8822B 0xff
  9990. #define BIT_CW_8822B(x) (((x) & BIT_MASK_CW_8822B) << BIT_SHIFT_CW_8822B)
  9991. #define BITS_CW_8822B (BIT_MASK_CW_8822B << BIT_SHIFT_CW_8822B)
  9992. #define BIT_CLEAR_CW_8822B(x) ((x) & (~BITS_CW_8822B))
  9993. #define BIT_GET_CW_8822B(x) (((x) >> BIT_SHIFT_CW_8822B) & BIT_MASK_CW_8822B)
  9994. #define BIT_SET_CW_8822B(x, v) (BIT_CLEAR_CW_8822B(x) | BIT_CW_8822B(v))
  9995. #define BIT_SHIFT_AIFS_8822B 0
  9996. #define BIT_MASK_AIFS_8822B 0xff
  9997. #define BIT_AIFS_8822B(x) (((x) & BIT_MASK_AIFS_8822B) << BIT_SHIFT_AIFS_8822B)
  9998. #define BITS_AIFS_8822B (BIT_MASK_AIFS_8822B << BIT_SHIFT_AIFS_8822B)
  9999. #define BIT_CLEAR_AIFS_8822B(x) ((x) & (~BITS_AIFS_8822B))
  10000. #define BIT_GET_AIFS_8822B(x) \
  10001. (((x) >> BIT_SHIFT_AIFS_8822B) & BIT_MASK_AIFS_8822B)
  10002. #define BIT_SET_AIFS_8822B(x, v) (BIT_CLEAR_AIFS_8822B(x) | BIT_AIFS_8822B(v))
  10003. /* 2 REG_BCNTCFG_8822B */
  10004. #define BIT_SHIFT_BCNCW_MAX_8822B 12
  10005. #define BIT_MASK_BCNCW_MAX_8822B 0xf
  10006. #define BIT_BCNCW_MAX_8822B(x) \
  10007. (((x) & BIT_MASK_BCNCW_MAX_8822B) << BIT_SHIFT_BCNCW_MAX_8822B)
  10008. #define BITS_BCNCW_MAX_8822B \
  10009. (BIT_MASK_BCNCW_MAX_8822B << BIT_SHIFT_BCNCW_MAX_8822B)
  10010. #define BIT_CLEAR_BCNCW_MAX_8822B(x) ((x) & (~BITS_BCNCW_MAX_8822B))
  10011. #define BIT_GET_BCNCW_MAX_8822B(x) \
  10012. (((x) >> BIT_SHIFT_BCNCW_MAX_8822B) & BIT_MASK_BCNCW_MAX_8822B)
  10013. #define BIT_SET_BCNCW_MAX_8822B(x, v) \
  10014. (BIT_CLEAR_BCNCW_MAX_8822B(x) | BIT_BCNCW_MAX_8822B(v))
  10015. #define BIT_SHIFT_BCNCW_MIN_8822B 8
  10016. #define BIT_MASK_BCNCW_MIN_8822B 0xf
  10017. #define BIT_BCNCW_MIN_8822B(x) \
  10018. (((x) & BIT_MASK_BCNCW_MIN_8822B) << BIT_SHIFT_BCNCW_MIN_8822B)
  10019. #define BITS_BCNCW_MIN_8822B \
  10020. (BIT_MASK_BCNCW_MIN_8822B << BIT_SHIFT_BCNCW_MIN_8822B)
  10021. #define BIT_CLEAR_BCNCW_MIN_8822B(x) ((x) & (~BITS_BCNCW_MIN_8822B))
  10022. #define BIT_GET_BCNCW_MIN_8822B(x) \
  10023. (((x) >> BIT_SHIFT_BCNCW_MIN_8822B) & BIT_MASK_BCNCW_MIN_8822B)
  10024. #define BIT_SET_BCNCW_MIN_8822B(x, v) \
  10025. (BIT_CLEAR_BCNCW_MIN_8822B(x) | BIT_BCNCW_MIN_8822B(v))
  10026. #define BIT_SHIFT_BCNIFS_8822B 0
  10027. #define BIT_MASK_BCNIFS_8822B 0xff
  10028. #define BIT_BCNIFS_8822B(x) \
  10029. (((x) & BIT_MASK_BCNIFS_8822B) << BIT_SHIFT_BCNIFS_8822B)
  10030. #define BITS_BCNIFS_8822B (BIT_MASK_BCNIFS_8822B << BIT_SHIFT_BCNIFS_8822B)
  10031. #define BIT_CLEAR_BCNIFS_8822B(x) ((x) & (~BITS_BCNIFS_8822B))
  10032. #define BIT_GET_BCNIFS_8822B(x) \
  10033. (((x) >> BIT_SHIFT_BCNIFS_8822B) & BIT_MASK_BCNIFS_8822B)
  10034. #define BIT_SET_BCNIFS_8822B(x, v) \
  10035. (BIT_CLEAR_BCNIFS_8822B(x) | BIT_BCNIFS_8822B(v))
  10036. /* 2 REG_PIFS_8822B */
  10037. #define BIT_SHIFT_PIFS_8822B 0
  10038. #define BIT_MASK_PIFS_8822B 0xff
  10039. #define BIT_PIFS_8822B(x) (((x) & BIT_MASK_PIFS_8822B) << BIT_SHIFT_PIFS_8822B)
  10040. #define BITS_PIFS_8822B (BIT_MASK_PIFS_8822B << BIT_SHIFT_PIFS_8822B)
  10041. #define BIT_CLEAR_PIFS_8822B(x) ((x) & (~BITS_PIFS_8822B))
  10042. #define BIT_GET_PIFS_8822B(x) \
  10043. (((x) >> BIT_SHIFT_PIFS_8822B) & BIT_MASK_PIFS_8822B)
  10044. #define BIT_SET_PIFS_8822B(x, v) (BIT_CLEAR_PIFS_8822B(x) | BIT_PIFS_8822B(v))
  10045. /* 2 REG_RDG_PIFS_8822B */
  10046. #define BIT_SHIFT_RDG_PIFS_8822B 0
  10047. #define BIT_MASK_RDG_PIFS_8822B 0xff
  10048. #define BIT_RDG_PIFS_8822B(x) \
  10049. (((x) & BIT_MASK_RDG_PIFS_8822B) << BIT_SHIFT_RDG_PIFS_8822B)
  10050. #define BITS_RDG_PIFS_8822B \
  10051. (BIT_MASK_RDG_PIFS_8822B << BIT_SHIFT_RDG_PIFS_8822B)
  10052. #define BIT_CLEAR_RDG_PIFS_8822B(x) ((x) & (~BITS_RDG_PIFS_8822B))
  10053. #define BIT_GET_RDG_PIFS_8822B(x) \
  10054. (((x) >> BIT_SHIFT_RDG_PIFS_8822B) & BIT_MASK_RDG_PIFS_8822B)
  10055. #define BIT_SET_RDG_PIFS_8822B(x, v) \
  10056. (BIT_CLEAR_RDG_PIFS_8822B(x) | BIT_RDG_PIFS_8822B(v))
  10057. /* 2 REG_SIFS_8822B */
  10058. #define BIT_SHIFT_SIFS_OFDM_TRX_8822B 24
  10059. #define BIT_MASK_SIFS_OFDM_TRX_8822B 0xff
  10060. #define BIT_SIFS_OFDM_TRX_8822B(x) \
  10061. (((x) & BIT_MASK_SIFS_OFDM_TRX_8822B) << BIT_SHIFT_SIFS_OFDM_TRX_8822B)
  10062. #define BITS_SIFS_OFDM_TRX_8822B \
  10063. (BIT_MASK_SIFS_OFDM_TRX_8822B << BIT_SHIFT_SIFS_OFDM_TRX_8822B)
  10064. #define BIT_CLEAR_SIFS_OFDM_TRX_8822B(x) ((x) & (~BITS_SIFS_OFDM_TRX_8822B))
  10065. #define BIT_GET_SIFS_OFDM_TRX_8822B(x) \
  10066. (((x) >> BIT_SHIFT_SIFS_OFDM_TRX_8822B) & BIT_MASK_SIFS_OFDM_TRX_8822B)
  10067. #define BIT_SET_SIFS_OFDM_TRX_8822B(x, v) \
  10068. (BIT_CLEAR_SIFS_OFDM_TRX_8822B(x) | BIT_SIFS_OFDM_TRX_8822B(v))
  10069. #define BIT_SHIFT_SIFS_CCK_TRX_8822B 16
  10070. #define BIT_MASK_SIFS_CCK_TRX_8822B 0xff
  10071. #define BIT_SIFS_CCK_TRX_8822B(x) \
  10072. (((x) & BIT_MASK_SIFS_CCK_TRX_8822B) << BIT_SHIFT_SIFS_CCK_TRX_8822B)
  10073. #define BITS_SIFS_CCK_TRX_8822B \
  10074. (BIT_MASK_SIFS_CCK_TRX_8822B << BIT_SHIFT_SIFS_CCK_TRX_8822B)
  10075. #define BIT_CLEAR_SIFS_CCK_TRX_8822B(x) ((x) & (~BITS_SIFS_CCK_TRX_8822B))
  10076. #define BIT_GET_SIFS_CCK_TRX_8822B(x) \
  10077. (((x) >> BIT_SHIFT_SIFS_CCK_TRX_8822B) & BIT_MASK_SIFS_CCK_TRX_8822B)
  10078. #define BIT_SET_SIFS_CCK_TRX_8822B(x, v) \
  10079. (BIT_CLEAR_SIFS_CCK_TRX_8822B(x) | BIT_SIFS_CCK_TRX_8822B(v))
  10080. #define BIT_SHIFT_SIFS_OFDM_CTX_8822B 8
  10081. #define BIT_MASK_SIFS_OFDM_CTX_8822B 0xff
  10082. #define BIT_SIFS_OFDM_CTX_8822B(x) \
  10083. (((x) & BIT_MASK_SIFS_OFDM_CTX_8822B) << BIT_SHIFT_SIFS_OFDM_CTX_8822B)
  10084. #define BITS_SIFS_OFDM_CTX_8822B \
  10085. (BIT_MASK_SIFS_OFDM_CTX_8822B << BIT_SHIFT_SIFS_OFDM_CTX_8822B)
  10086. #define BIT_CLEAR_SIFS_OFDM_CTX_8822B(x) ((x) & (~BITS_SIFS_OFDM_CTX_8822B))
  10087. #define BIT_GET_SIFS_OFDM_CTX_8822B(x) \
  10088. (((x) >> BIT_SHIFT_SIFS_OFDM_CTX_8822B) & BIT_MASK_SIFS_OFDM_CTX_8822B)
  10089. #define BIT_SET_SIFS_OFDM_CTX_8822B(x, v) \
  10090. (BIT_CLEAR_SIFS_OFDM_CTX_8822B(x) | BIT_SIFS_OFDM_CTX_8822B(v))
  10091. #define BIT_SHIFT_SIFS_CCK_CTX_8822B 0
  10092. #define BIT_MASK_SIFS_CCK_CTX_8822B 0xff
  10093. #define BIT_SIFS_CCK_CTX_8822B(x) \
  10094. (((x) & BIT_MASK_SIFS_CCK_CTX_8822B) << BIT_SHIFT_SIFS_CCK_CTX_8822B)
  10095. #define BITS_SIFS_CCK_CTX_8822B \
  10096. (BIT_MASK_SIFS_CCK_CTX_8822B << BIT_SHIFT_SIFS_CCK_CTX_8822B)
  10097. #define BIT_CLEAR_SIFS_CCK_CTX_8822B(x) ((x) & (~BITS_SIFS_CCK_CTX_8822B))
  10098. #define BIT_GET_SIFS_CCK_CTX_8822B(x) \
  10099. (((x) >> BIT_SHIFT_SIFS_CCK_CTX_8822B) & BIT_MASK_SIFS_CCK_CTX_8822B)
  10100. #define BIT_SET_SIFS_CCK_CTX_8822B(x, v) \
  10101. (BIT_CLEAR_SIFS_CCK_CTX_8822B(x) | BIT_SIFS_CCK_CTX_8822B(v))
  10102. /* 2 REG_TSFTR_SYN_OFFSET_8822B */
  10103. #define BIT_SHIFT_TSFTR_SNC_OFFSET_8822B 0
  10104. #define BIT_MASK_TSFTR_SNC_OFFSET_8822B 0xffff
  10105. #define BIT_TSFTR_SNC_OFFSET_8822B(x) \
  10106. (((x) & BIT_MASK_TSFTR_SNC_OFFSET_8822B) \
  10107. << BIT_SHIFT_TSFTR_SNC_OFFSET_8822B)
  10108. #define BITS_TSFTR_SNC_OFFSET_8822B \
  10109. (BIT_MASK_TSFTR_SNC_OFFSET_8822B << BIT_SHIFT_TSFTR_SNC_OFFSET_8822B)
  10110. #define BIT_CLEAR_TSFTR_SNC_OFFSET_8822B(x) \
  10111. ((x) & (~BITS_TSFTR_SNC_OFFSET_8822B))
  10112. #define BIT_GET_TSFTR_SNC_OFFSET_8822B(x) \
  10113. (((x) >> BIT_SHIFT_TSFTR_SNC_OFFSET_8822B) & \
  10114. BIT_MASK_TSFTR_SNC_OFFSET_8822B)
  10115. #define BIT_SET_TSFTR_SNC_OFFSET_8822B(x, v) \
  10116. (BIT_CLEAR_TSFTR_SNC_OFFSET_8822B(x) | BIT_TSFTR_SNC_OFFSET_8822B(v))
  10117. /* 2 REG_AGGR_BREAK_TIME_8822B */
  10118. #define BIT_SHIFT_AGGR_BK_TIME_8822B 0
  10119. #define BIT_MASK_AGGR_BK_TIME_8822B 0xff
  10120. #define BIT_AGGR_BK_TIME_8822B(x) \
  10121. (((x) & BIT_MASK_AGGR_BK_TIME_8822B) << BIT_SHIFT_AGGR_BK_TIME_8822B)
  10122. #define BITS_AGGR_BK_TIME_8822B \
  10123. (BIT_MASK_AGGR_BK_TIME_8822B << BIT_SHIFT_AGGR_BK_TIME_8822B)
  10124. #define BIT_CLEAR_AGGR_BK_TIME_8822B(x) ((x) & (~BITS_AGGR_BK_TIME_8822B))
  10125. #define BIT_GET_AGGR_BK_TIME_8822B(x) \
  10126. (((x) >> BIT_SHIFT_AGGR_BK_TIME_8822B) & BIT_MASK_AGGR_BK_TIME_8822B)
  10127. #define BIT_SET_AGGR_BK_TIME_8822B(x, v) \
  10128. (BIT_CLEAR_AGGR_BK_TIME_8822B(x) | BIT_AGGR_BK_TIME_8822B(v))
  10129. /* 2 REG_SLOT_8822B */
  10130. #define BIT_SHIFT_SLOT_8822B 0
  10131. #define BIT_MASK_SLOT_8822B 0xff
  10132. #define BIT_SLOT_8822B(x) (((x) & BIT_MASK_SLOT_8822B) << BIT_SHIFT_SLOT_8822B)
  10133. #define BITS_SLOT_8822B (BIT_MASK_SLOT_8822B << BIT_SHIFT_SLOT_8822B)
  10134. #define BIT_CLEAR_SLOT_8822B(x) ((x) & (~BITS_SLOT_8822B))
  10135. #define BIT_GET_SLOT_8822B(x) \
  10136. (((x) >> BIT_SHIFT_SLOT_8822B) & BIT_MASK_SLOT_8822B)
  10137. #define BIT_SET_SLOT_8822B(x, v) (BIT_CLEAR_SLOT_8822B(x) | BIT_SLOT_8822B(v))
  10138. /* 2 REG_TX_PTCL_CTRL_8822B */
  10139. #define BIT_DIS_EDCCA_8822B BIT(15)
  10140. #define BIT_DIS_CCA_8822B BIT(14)
  10141. #define BIT_LSIG_TXOP_TXCMD_NAV_8822B BIT(13)
  10142. #define BIT_SIFS_BK_EN_8822B BIT(12)
  10143. #define BIT_SHIFT_TXQ_NAV_MSK_8822B 8
  10144. #define BIT_MASK_TXQ_NAV_MSK_8822B 0xf
  10145. #define BIT_TXQ_NAV_MSK_8822B(x) \
  10146. (((x) & BIT_MASK_TXQ_NAV_MSK_8822B) << BIT_SHIFT_TXQ_NAV_MSK_8822B)
  10147. #define BITS_TXQ_NAV_MSK_8822B \
  10148. (BIT_MASK_TXQ_NAV_MSK_8822B << BIT_SHIFT_TXQ_NAV_MSK_8822B)
  10149. #define BIT_CLEAR_TXQ_NAV_MSK_8822B(x) ((x) & (~BITS_TXQ_NAV_MSK_8822B))
  10150. #define BIT_GET_TXQ_NAV_MSK_8822B(x) \
  10151. (((x) >> BIT_SHIFT_TXQ_NAV_MSK_8822B) & BIT_MASK_TXQ_NAV_MSK_8822B)
  10152. #define BIT_SET_TXQ_NAV_MSK_8822B(x, v) \
  10153. (BIT_CLEAR_TXQ_NAV_MSK_8822B(x) | BIT_TXQ_NAV_MSK_8822B(v))
  10154. #define BIT_DIS_CW_8822B BIT(7)
  10155. #define BIT_NAV_END_TXOP_8822B BIT(6)
  10156. #define BIT_RDG_END_TXOP_8822B BIT(5)
  10157. #define BIT_AC_INBCN_HOLD_8822B BIT(4)
  10158. #define BIT_MGTQ_TXOP_EN_8822B BIT(3)
  10159. #define BIT_MGTQ_RTSMF_EN_8822B BIT(2)
  10160. #define BIT_HIQ_RTSMF_EN_8822B BIT(1)
  10161. #define BIT_BCN_RTSMF_EN_8822B BIT(0)
  10162. /* 2 REG_TXPAUSE_8822B */
  10163. #define BIT_STOP_BCN_HI_MGT_8822B BIT(7)
  10164. #define BIT_MAC_STOPBCNQ_8822B BIT(6)
  10165. #define BIT_MAC_STOPHIQ_8822B BIT(5)
  10166. #define BIT_MAC_STOPMGQ_8822B BIT(4)
  10167. #define BIT_MAC_STOPBK_8822B BIT(3)
  10168. #define BIT_MAC_STOPBE_8822B BIT(2)
  10169. #define BIT_MAC_STOPVI_8822B BIT(1)
  10170. #define BIT_MAC_STOPVO_8822B BIT(0)
  10171. /* 2 REG_DIS_TXREQ_CLR_8822B */
  10172. #define BIT_DIS_BT_CCA_8822B BIT(7)
  10173. #define BIT_DIS_TXREQ_CLR_HI_8822B BIT(5)
  10174. #define BIT_DIS_TXREQ_CLR_MGQ_8822B BIT(4)
  10175. #define BIT_DIS_TXREQ_CLR_VO_8822B BIT(3)
  10176. #define BIT_DIS_TXREQ_CLR_VI_8822B BIT(2)
  10177. #define BIT_DIS_TXREQ_CLR_BE_8822B BIT(1)
  10178. #define BIT_DIS_TXREQ_CLR_BK_8822B BIT(0)
  10179. /* 2 REG_RD_CTRL_8822B */
  10180. #define BIT_EN_CLR_TXREQ_INCCA_8822B BIT(15)
  10181. #define BIT_DIS_TX_OVER_BCNQ_8822B BIT(14)
  10182. #define BIT_EN_BCNERR_INCCCA_8822B BIT(13)
  10183. #define BIT_EDCCA_MSK_CNTDOWN_EN_8822B BIT(11)
  10184. #define BIT_DIS_TXOP_CFE_8822B BIT(10)
  10185. #define BIT_DIS_LSIG_CFE_8822B BIT(9)
  10186. #define BIT_DIS_STBC_CFE_8822B BIT(8)
  10187. #define BIT_BKQ_RD_INIT_EN_8822B BIT(7)
  10188. #define BIT_BEQ_RD_INIT_EN_8822B BIT(6)
  10189. #define BIT_VIQ_RD_INIT_EN_8822B BIT(5)
  10190. #define BIT_VOQ_RD_INIT_EN_8822B BIT(4)
  10191. #define BIT_BKQ_RD_RESP_EN_8822B BIT(3)
  10192. #define BIT_BEQ_RD_RESP_EN_8822B BIT(2)
  10193. #define BIT_VIQ_RD_RESP_EN_8822B BIT(1)
  10194. #define BIT_VOQ_RD_RESP_EN_8822B BIT(0)
  10195. /* 2 REG_MBSSID_CTRL_8822B */
  10196. #define BIT_MBID_BCNQ7_EN_8822B BIT(7)
  10197. #define BIT_MBID_BCNQ6_EN_8822B BIT(6)
  10198. #define BIT_MBID_BCNQ5_EN_8822B BIT(5)
  10199. #define BIT_MBID_BCNQ4_EN_8822B BIT(4)
  10200. #define BIT_MBID_BCNQ3_EN_8822B BIT(3)
  10201. #define BIT_MBID_BCNQ2_EN_8822B BIT(2)
  10202. #define BIT_MBID_BCNQ1_EN_8822B BIT(1)
  10203. #define BIT_MBID_BCNQ0_EN_8822B BIT(0)
  10204. /* 2 REG_P2PPS_CTRL_8822B */
  10205. #define BIT_P2P_CTW_ALLSTASLEEP_8822B BIT(7)
  10206. #define BIT_P2P_OFF_DISTX_EN_8822B BIT(6)
  10207. #define BIT_PWR_MGT_EN_8822B BIT(5)
  10208. #define BIT_P2P_NOA1_EN_8822B BIT(2)
  10209. #define BIT_P2P_NOA0_EN_8822B BIT(1)
  10210. /* 2 REG_PKT_LIFETIME_CTRL_8822B */
  10211. #define BIT_EN_P2P_CTWND1_8822B BIT(23)
  10212. #define BIT_EN_BKF_CLR_TXREQ_8822B BIT(22)
  10213. #define BIT_EN_TSFBIT32_RST_P2P_8822B BIT(21)
  10214. #define BIT_EN_BCN_TX_BTCCA_8822B BIT(20)
  10215. #define BIT_DIS_PKT_TX_ATIM_8822B BIT(19)
  10216. #define BIT_DIS_BCN_DIS_CTN_8822B BIT(18)
  10217. #define BIT_EN_NAVEND_RST_TXOP_8822B BIT(17)
  10218. #define BIT_EN_FILTER_CCA_8822B BIT(16)
  10219. #define BIT_SHIFT_CCA_FILTER_THRS_8822B 8
  10220. #define BIT_MASK_CCA_FILTER_THRS_8822B 0xff
  10221. #define BIT_CCA_FILTER_THRS_8822B(x) \
  10222. (((x) & BIT_MASK_CCA_FILTER_THRS_8822B) \
  10223. << BIT_SHIFT_CCA_FILTER_THRS_8822B)
  10224. #define BITS_CCA_FILTER_THRS_8822B \
  10225. (BIT_MASK_CCA_FILTER_THRS_8822B << BIT_SHIFT_CCA_FILTER_THRS_8822B)
  10226. #define BIT_CLEAR_CCA_FILTER_THRS_8822B(x) ((x) & (~BITS_CCA_FILTER_THRS_8822B))
  10227. #define BIT_GET_CCA_FILTER_THRS_8822B(x) \
  10228. (((x) >> BIT_SHIFT_CCA_FILTER_THRS_8822B) & \
  10229. BIT_MASK_CCA_FILTER_THRS_8822B)
  10230. #define BIT_SET_CCA_FILTER_THRS_8822B(x, v) \
  10231. (BIT_CLEAR_CCA_FILTER_THRS_8822B(x) | BIT_CCA_FILTER_THRS_8822B(v))
  10232. #define BIT_SHIFT_EDCCA_THRS_8822B 0
  10233. #define BIT_MASK_EDCCA_THRS_8822B 0xff
  10234. #define BIT_EDCCA_THRS_8822B(x) \
  10235. (((x) & BIT_MASK_EDCCA_THRS_8822B) << BIT_SHIFT_EDCCA_THRS_8822B)
  10236. #define BITS_EDCCA_THRS_8822B \
  10237. (BIT_MASK_EDCCA_THRS_8822B << BIT_SHIFT_EDCCA_THRS_8822B)
  10238. #define BIT_CLEAR_EDCCA_THRS_8822B(x) ((x) & (~BITS_EDCCA_THRS_8822B))
  10239. #define BIT_GET_EDCCA_THRS_8822B(x) \
  10240. (((x) >> BIT_SHIFT_EDCCA_THRS_8822B) & BIT_MASK_EDCCA_THRS_8822B)
  10241. #define BIT_SET_EDCCA_THRS_8822B(x, v) \
  10242. (BIT_CLEAR_EDCCA_THRS_8822B(x) | BIT_EDCCA_THRS_8822B(v))
  10243. /* 2 REG_P2PPS_SPEC_STATE_8822B */
  10244. #define BIT_SPEC_POWER_STATE_8822B BIT(7)
  10245. #define BIT_SPEC_CTWINDOW_ON_8822B BIT(6)
  10246. #define BIT_SPEC_BEACON_AREA_ON_8822B BIT(5)
  10247. #define BIT_SPEC_CTWIN_EARLY_DISTX_8822B BIT(4)
  10248. #define BIT_SPEC_NOA1_OFF_PERIOD_8822B BIT(3)
  10249. #define BIT_SPEC_FORCE_DOZE1_8822B BIT(2)
  10250. #define BIT_SPEC_NOA0_OFF_PERIOD_8822B BIT(1)
  10251. #define BIT_SPEC_FORCE_DOZE0_8822B BIT(0)
  10252. /* 2 REG_TXOP_LIMIT_CTRL_8822B */
  10253. #define BIT_SHIFT_TXOP_TBTT_CNT_8822B 24
  10254. #define BIT_MASK_TXOP_TBTT_CNT_8822B 0xff
  10255. #define BIT_TXOP_TBTT_CNT_8822B(x) \
  10256. (((x) & BIT_MASK_TXOP_TBTT_CNT_8822B) << BIT_SHIFT_TXOP_TBTT_CNT_8822B)
  10257. #define BITS_TXOP_TBTT_CNT_8822B \
  10258. (BIT_MASK_TXOP_TBTT_CNT_8822B << BIT_SHIFT_TXOP_TBTT_CNT_8822B)
  10259. #define BIT_CLEAR_TXOP_TBTT_CNT_8822B(x) ((x) & (~BITS_TXOP_TBTT_CNT_8822B))
  10260. #define BIT_GET_TXOP_TBTT_CNT_8822B(x) \
  10261. (((x) >> BIT_SHIFT_TXOP_TBTT_CNT_8822B) & BIT_MASK_TXOP_TBTT_CNT_8822B)
  10262. #define BIT_SET_TXOP_TBTT_CNT_8822B(x, v) \
  10263. (BIT_CLEAR_TXOP_TBTT_CNT_8822B(x) | BIT_TXOP_TBTT_CNT_8822B(v))
  10264. #define BIT_SHIFT_TXOP_TBTT_CNT_SEL_8822B 20
  10265. #define BIT_MASK_TXOP_TBTT_CNT_SEL_8822B 0xf
  10266. #define BIT_TXOP_TBTT_CNT_SEL_8822B(x) \
  10267. (((x) & BIT_MASK_TXOP_TBTT_CNT_SEL_8822B) \
  10268. << BIT_SHIFT_TXOP_TBTT_CNT_SEL_8822B)
  10269. #define BITS_TXOP_TBTT_CNT_SEL_8822B \
  10270. (BIT_MASK_TXOP_TBTT_CNT_SEL_8822B << BIT_SHIFT_TXOP_TBTT_CNT_SEL_8822B)
  10271. #define BIT_CLEAR_TXOP_TBTT_CNT_SEL_8822B(x) \
  10272. ((x) & (~BITS_TXOP_TBTT_CNT_SEL_8822B))
  10273. #define BIT_GET_TXOP_TBTT_CNT_SEL_8822B(x) \
  10274. (((x) >> BIT_SHIFT_TXOP_TBTT_CNT_SEL_8822B) & \
  10275. BIT_MASK_TXOP_TBTT_CNT_SEL_8822B)
  10276. #define BIT_SET_TXOP_TBTT_CNT_SEL_8822B(x, v) \
  10277. (BIT_CLEAR_TXOP_TBTT_CNT_SEL_8822B(x) | BIT_TXOP_TBTT_CNT_SEL_8822B(v))
  10278. #define BIT_SHIFT_TXOP_LMT_EN_8822B 16
  10279. #define BIT_MASK_TXOP_LMT_EN_8822B 0xf
  10280. #define BIT_TXOP_LMT_EN_8822B(x) \
  10281. (((x) & BIT_MASK_TXOP_LMT_EN_8822B) << BIT_SHIFT_TXOP_LMT_EN_8822B)
  10282. #define BITS_TXOP_LMT_EN_8822B \
  10283. (BIT_MASK_TXOP_LMT_EN_8822B << BIT_SHIFT_TXOP_LMT_EN_8822B)
  10284. #define BIT_CLEAR_TXOP_LMT_EN_8822B(x) ((x) & (~BITS_TXOP_LMT_EN_8822B))
  10285. #define BIT_GET_TXOP_LMT_EN_8822B(x) \
  10286. (((x) >> BIT_SHIFT_TXOP_LMT_EN_8822B) & BIT_MASK_TXOP_LMT_EN_8822B)
  10287. #define BIT_SET_TXOP_LMT_EN_8822B(x, v) \
  10288. (BIT_CLEAR_TXOP_LMT_EN_8822B(x) | BIT_TXOP_LMT_EN_8822B(v))
  10289. #define BIT_SHIFT_TXOP_LMT_TX_TIME_8822B 8
  10290. #define BIT_MASK_TXOP_LMT_TX_TIME_8822B 0xff
  10291. #define BIT_TXOP_LMT_TX_TIME_8822B(x) \
  10292. (((x) & BIT_MASK_TXOP_LMT_TX_TIME_8822B) \
  10293. << BIT_SHIFT_TXOP_LMT_TX_TIME_8822B)
  10294. #define BITS_TXOP_LMT_TX_TIME_8822B \
  10295. (BIT_MASK_TXOP_LMT_TX_TIME_8822B << BIT_SHIFT_TXOP_LMT_TX_TIME_8822B)
  10296. #define BIT_CLEAR_TXOP_LMT_TX_TIME_8822B(x) \
  10297. ((x) & (~BITS_TXOP_LMT_TX_TIME_8822B))
  10298. #define BIT_GET_TXOP_LMT_TX_TIME_8822B(x) \
  10299. (((x) >> BIT_SHIFT_TXOP_LMT_TX_TIME_8822B) & \
  10300. BIT_MASK_TXOP_LMT_TX_TIME_8822B)
  10301. #define BIT_SET_TXOP_LMT_TX_TIME_8822B(x, v) \
  10302. (BIT_CLEAR_TXOP_LMT_TX_TIME_8822B(x) | BIT_TXOP_LMT_TX_TIME_8822B(v))
  10303. #define BIT_TXOP_CNT_TRIGGER_RESET_8822B BIT(7)
  10304. #define BIT_SHIFT_TXOP_LMT_PKT_NUM_8822B 0
  10305. #define BIT_MASK_TXOP_LMT_PKT_NUM_8822B 0x3f
  10306. #define BIT_TXOP_LMT_PKT_NUM_8822B(x) \
  10307. (((x) & BIT_MASK_TXOP_LMT_PKT_NUM_8822B) \
  10308. << BIT_SHIFT_TXOP_LMT_PKT_NUM_8822B)
  10309. #define BITS_TXOP_LMT_PKT_NUM_8822B \
  10310. (BIT_MASK_TXOP_LMT_PKT_NUM_8822B << BIT_SHIFT_TXOP_LMT_PKT_NUM_8822B)
  10311. #define BIT_CLEAR_TXOP_LMT_PKT_NUM_8822B(x) \
  10312. ((x) & (~BITS_TXOP_LMT_PKT_NUM_8822B))
  10313. #define BIT_GET_TXOP_LMT_PKT_NUM_8822B(x) \
  10314. (((x) >> BIT_SHIFT_TXOP_LMT_PKT_NUM_8822B) & \
  10315. BIT_MASK_TXOP_LMT_PKT_NUM_8822B)
  10316. #define BIT_SET_TXOP_LMT_PKT_NUM_8822B(x, v) \
  10317. (BIT_CLEAR_TXOP_LMT_PKT_NUM_8822B(x) | BIT_TXOP_LMT_PKT_NUM_8822B(v))
  10318. /* 2 REG_BAR_TX_CTRL_8822B */
  10319. /* 2 REG_P2PON_DIS_TXTIME_8822B */
  10320. #define BIT_SHIFT_P2PON_DIS_TXTIME_8822B 0
  10321. #define BIT_MASK_P2PON_DIS_TXTIME_8822B 0xff
  10322. #define BIT_P2PON_DIS_TXTIME_8822B(x) \
  10323. (((x) & BIT_MASK_P2PON_DIS_TXTIME_8822B) \
  10324. << BIT_SHIFT_P2PON_DIS_TXTIME_8822B)
  10325. #define BITS_P2PON_DIS_TXTIME_8822B \
  10326. (BIT_MASK_P2PON_DIS_TXTIME_8822B << BIT_SHIFT_P2PON_DIS_TXTIME_8822B)
  10327. #define BIT_CLEAR_P2PON_DIS_TXTIME_8822B(x) \
  10328. ((x) & (~BITS_P2PON_DIS_TXTIME_8822B))
  10329. #define BIT_GET_P2PON_DIS_TXTIME_8822B(x) \
  10330. (((x) >> BIT_SHIFT_P2PON_DIS_TXTIME_8822B) & \
  10331. BIT_MASK_P2PON_DIS_TXTIME_8822B)
  10332. #define BIT_SET_P2PON_DIS_TXTIME_8822B(x, v) \
  10333. (BIT_CLEAR_P2PON_DIS_TXTIME_8822B(x) | BIT_P2PON_DIS_TXTIME_8822B(v))
  10334. /* 2 REG_QUEUE_INCOL_THR_8822B */
  10335. #define BIT_SHIFT_BK_QUEUE_THR_8822B 24
  10336. #define BIT_MASK_BK_QUEUE_THR_8822B 0xff
  10337. #define BIT_BK_QUEUE_THR_8822B(x) \
  10338. (((x) & BIT_MASK_BK_QUEUE_THR_8822B) << BIT_SHIFT_BK_QUEUE_THR_8822B)
  10339. #define BITS_BK_QUEUE_THR_8822B \
  10340. (BIT_MASK_BK_QUEUE_THR_8822B << BIT_SHIFT_BK_QUEUE_THR_8822B)
  10341. #define BIT_CLEAR_BK_QUEUE_THR_8822B(x) ((x) & (~BITS_BK_QUEUE_THR_8822B))
  10342. #define BIT_GET_BK_QUEUE_THR_8822B(x) \
  10343. (((x) >> BIT_SHIFT_BK_QUEUE_THR_8822B) & BIT_MASK_BK_QUEUE_THR_8822B)
  10344. #define BIT_SET_BK_QUEUE_THR_8822B(x, v) \
  10345. (BIT_CLEAR_BK_QUEUE_THR_8822B(x) | BIT_BK_QUEUE_THR_8822B(v))
  10346. #define BIT_SHIFT_BE_QUEUE_THR_8822B 16
  10347. #define BIT_MASK_BE_QUEUE_THR_8822B 0xff
  10348. #define BIT_BE_QUEUE_THR_8822B(x) \
  10349. (((x) & BIT_MASK_BE_QUEUE_THR_8822B) << BIT_SHIFT_BE_QUEUE_THR_8822B)
  10350. #define BITS_BE_QUEUE_THR_8822B \
  10351. (BIT_MASK_BE_QUEUE_THR_8822B << BIT_SHIFT_BE_QUEUE_THR_8822B)
  10352. #define BIT_CLEAR_BE_QUEUE_THR_8822B(x) ((x) & (~BITS_BE_QUEUE_THR_8822B))
  10353. #define BIT_GET_BE_QUEUE_THR_8822B(x) \
  10354. (((x) >> BIT_SHIFT_BE_QUEUE_THR_8822B) & BIT_MASK_BE_QUEUE_THR_8822B)
  10355. #define BIT_SET_BE_QUEUE_THR_8822B(x, v) \
  10356. (BIT_CLEAR_BE_QUEUE_THR_8822B(x) | BIT_BE_QUEUE_THR_8822B(v))
  10357. #define BIT_SHIFT_VI_QUEUE_THR_8822B 8
  10358. #define BIT_MASK_VI_QUEUE_THR_8822B 0xff
  10359. #define BIT_VI_QUEUE_THR_8822B(x) \
  10360. (((x) & BIT_MASK_VI_QUEUE_THR_8822B) << BIT_SHIFT_VI_QUEUE_THR_8822B)
  10361. #define BITS_VI_QUEUE_THR_8822B \
  10362. (BIT_MASK_VI_QUEUE_THR_8822B << BIT_SHIFT_VI_QUEUE_THR_8822B)
  10363. #define BIT_CLEAR_VI_QUEUE_THR_8822B(x) ((x) & (~BITS_VI_QUEUE_THR_8822B))
  10364. #define BIT_GET_VI_QUEUE_THR_8822B(x) \
  10365. (((x) >> BIT_SHIFT_VI_QUEUE_THR_8822B) & BIT_MASK_VI_QUEUE_THR_8822B)
  10366. #define BIT_SET_VI_QUEUE_THR_8822B(x, v) \
  10367. (BIT_CLEAR_VI_QUEUE_THR_8822B(x) | BIT_VI_QUEUE_THR_8822B(v))
  10368. #define BIT_SHIFT_VO_QUEUE_THR_8822B 0
  10369. #define BIT_MASK_VO_QUEUE_THR_8822B 0xff
  10370. #define BIT_VO_QUEUE_THR_8822B(x) \
  10371. (((x) & BIT_MASK_VO_QUEUE_THR_8822B) << BIT_SHIFT_VO_QUEUE_THR_8822B)
  10372. #define BITS_VO_QUEUE_THR_8822B \
  10373. (BIT_MASK_VO_QUEUE_THR_8822B << BIT_SHIFT_VO_QUEUE_THR_8822B)
  10374. #define BIT_CLEAR_VO_QUEUE_THR_8822B(x) ((x) & (~BITS_VO_QUEUE_THR_8822B))
  10375. #define BIT_GET_VO_QUEUE_THR_8822B(x) \
  10376. (((x) >> BIT_SHIFT_VO_QUEUE_THR_8822B) & BIT_MASK_VO_QUEUE_THR_8822B)
  10377. #define BIT_SET_VO_QUEUE_THR_8822B(x, v) \
  10378. (BIT_CLEAR_VO_QUEUE_THR_8822B(x) | BIT_VO_QUEUE_THR_8822B(v))
  10379. /* 2 REG_QUEUE_INCOL_EN_8822B */
  10380. #define BIT_QUEUE_INCOL_EN_8822B BIT(16)
  10381. #define BIT_SHIFT_BE_TRIGGER_NUM_8822B 12
  10382. #define BIT_MASK_BE_TRIGGER_NUM_8822B 0xf
  10383. #define BIT_BE_TRIGGER_NUM_8822B(x) \
  10384. (((x) & BIT_MASK_BE_TRIGGER_NUM_8822B) \
  10385. << BIT_SHIFT_BE_TRIGGER_NUM_8822B)
  10386. #define BITS_BE_TRIGGER_NUM_8822B \
  10387. (BIT_MASK_BE_TRIGGER_NUM_8822B << BIT_SHIFT_BE_TRIGGER_NUM_8822B)
  10388. #define BIT_CLEAR_BE_TRIGGER_NUM_8822B(x) ((x) & (~BITS_BE_TRIGGER_NUM_8822B))
  10389. #define BIT_GET_BE_TRIGGER_NUM_8822B(x) \
  10390. (((x) >> BIT_SHIFT_BE_TRIGGER_NUM_8822B) & \
  10391. BIT_MASK_BE_TRIGGER_NUM_8822B)
  10392. #define BIT_SET_BE_TRIGGER_NUM_8822B(x, v) \
  10393. (BIT_CLEAR_BE_TRIGGER_NUM_8822B(x) | BIT_BE_TRIGGER_NUM_8822B(v))
  10394. #define BIT_SHIFT_BK_TRIGGER_NUM_8822B 8
  10395. #define BIT_MASK_BK_TRIGGER_NUM_8822B 0xf
  10396. #define BIT_BK_TRIGGER_NUM_8822B(x) \
  10397. (((x) & BIT_MASK_BK_TRIGGER_NUM_8822B) \
  10398. << BIT_SHIFT_BK_TRIGGER_NUM_8822B)
  10399. #define BITS_BK_TRIGGER_NUM_8822B \
  10400. (BIT_MASK_BK_TRIGGER_NUM_8822B << BIT_SHIFT_BK_TRIGGER_NUM_8822B)
  10401. #define BIT_CLEAR_BK_TRIGGER_NUM_8822B(x) ((x) & (~BITS_BK_TRIGGER_NUM_8822B))
  10402. #define BIT_GET_BK_TRIGGER_NUM_8822B(x) \
  10403. (((x) >> BIT_SHIFT_BK_TRIGGER_NUM_8822B) & \
  10404. BIT_MASK_BK_TRIGGER_NUM_8822B)
  10405. #define BIT_SET_BK_TRIGGER_NUM_8822B(x, v) \
  10406. (BIT_CLEAR_BK_TRIGGER_NUM_8822B(x) | BIT_BK_TRIGGER_NUM_8822B(v))
  10407. #define BIT_SHIFT_VI_TRIGGER_NUM_8822B 4
  10408. #define BIT_MASK_VI_TRIGGER_NUM_8822B 0xf
  10409. #define BIT_VI_TRIGGER_NUM_8822B(x) \
  10410. (((x) & BIT_MASK_VI_TRIGGER_NUM_8822B) \
  10411. << BIT_SHIFT_VI_TRIGGER_NUM_8822B)
  10412. #define BITS_VI_TRIGGER_NUM_8822B \
  10413. (BIT_MASK_VI_TRIGGER_NUM_8822B << BIT_SHIFT_VI_TRIGGER_NUM_8822B)
  10414. #define BIT_CLEAR_VI_TRIGGER_NUM_8822B(x) ((x) & (~BITS_VI_TRIGGER_NUM_8822B))
  10415. #define BIT_GET_VI_TRIGGER_NUM_8822B(x) \
  10416. (((x) >> BIT_SHIFT_VI_TRIGGER_NUM_8822B) & \
  10417. BIT_MASK_VI_TRIGGER_NUM_8822B)
  10418. #define BIT_SET_VI_TRIGGER_NUM_8822B(x, v) \
  10419. (BIT_CLEAR_VI_TRIGGER_NUM_8822B(x) | BIT_VI_TRIGGER_NUM_8822B(v))
  10420. #define BIT_SHIFT_VO_TRIGGER_NUM_8822B 0
  10421. #define BIT_MASK_VO_TRIGGER_NUM_8822B 0xf
  10422. #define BIT_VO_TRIGGER_NUM_8822B(x) \
  10423. (((x) & BIT_MASK_VO_TRIGGER_NUM_8822B) \
  10424. << BIT_SHIFT_VO_TRIGGER_NUM_8822B)
  10425. #define BITS_VO_TRIGGER_NUM_8822B \
  10426. (BIT_MASK_VO_TRIGGER_NUM_8822B << BIT_SHIFT_VO_TRIGGER_NUM_8822B)
  10427. #define BIT_CLEAR_VO_TRIGGER_NUM_8822B(x) ((x) & (~BITS_VO_TRIGGER_NUM_8822B))
  10428. #define BIT_GET_VO_TRIGGER_NUM_8822B(x) \
  10429. (((x) >> BIT_SHIFT_VO_TRIGGER_NUM_8822B) & \
  10430. BIT_MASK_VO_TRIGGER_NUM_8822B)
  10431. #define BIT_SET_VO_TRIGGER_NUM_8822B(x, v) \
  10432. (BIT_CLEAR_VO_TRIGGER_NUM_8822B(x) | BIT_VO_TRIGGER_NUM_8822B(v))
  10433. /* 2 REG_TBTT_PROHIBIT_8822B */
  10434. #define BIT_SHIFT_TBTT_HOLD_TIME_AP_8822B 8
  10435. #define BIT_MASK_TBTT_HOLD_TIME_AP_8822B 0xfff
  10436. #define BIT_TBTT_HOLD_TIME_AP_8822B(x) \
  10437. (((x) & BIT_MASK_TBTT_HOLD_TIME_AP_8822B) \
  10438. << BIT_SHIFT_TBTT_HOLD_TIME_AP_8822B)
  10439. #define BITS_TBTT_HOLD_TIME_AP_8822B \
  10440. (BIT_MASK_TBTT_HOLD_TIME_AP_8822B << BIT_SHIFT_TBTT_HOLD_TIME_AP_8822B)
  10441. #define BIT_CLEAR_TBTT_HOLD_TIME_AP_8822B(x) \
  10442. ((x) & (~BITS_TBTT_HOLD_TIME_AP_8822B))
  10443. #define BIT_GET_TBTT_HOLD_TIME_AP_8822B(x) \
  10444. (((x) >> BIT_SHIFT_TBTT_HOLD_TIME_AP_8822B) & \
  10445. BIT_MASK_TBTT_HOLD_TIME_AP_8822B)
  10446. #define BIT_SET_TBTT_HOLD_TIME_AP_8822B(x, v) \
  10447. (BIT_CLEAR_TBTT_HOLD_TIME_AP_8822B(x) | BIT_TBTT_HOLD_TIME_AP_8822B(v))
  10448. #define BIT_SHIFT_TBTT_PROHIBIT_SETUP_8822B 0
  10449. #define BIT_MASK_TBTT_PROHIBIT_SETUP_8822B 0xf
  10450. #define BIT_TBTT_PROHIBIT_SETUP_8822B(x) \
  10451. (((x) & BIT_MASK_TBTT_PROHIBIT_SETUP_8822B) \
  10452. << BIT_SHIFT_TBTT_PROHIBIT_SETUP_8822B)
  10453. #define BITS_TBTT_PROHIBIT_SETUP_8822B \
  10454. (BIT_MASK_TBTT_PROHIBIT_SETUP_8822B \
  10455. << BIT_SHIFT_TBTT_PROHIBIT_SETUP_8822B)
  10456. #define BIT_CLEAR_TBTT_PROHIBIT_SETUP_8822B(x) \
  10457. ((x) & (~BITS_TBTT_PROHIBIT_SETUP_8822B))
  10458. #define BIT_GET_TBTT_PROHIBIT_SETUP_8822B(x) \
  10459. (((x) >> BIT_SHIFT_TBTT_PROHIBIT_SETUP_8822B) & \
  10460. BIT_MASK_TBTT_PROHIBIT_SETUP_8822B)
  10461. #define BIT_SET_TBTT_PROHIBIT_SETUP_8822B(x, v) \
  10462. (BIT_CLEAR_TBTT_PROHIBIT_SETUP_8822B(x) | \
  10463. BIT_TBTT_PROHIBIT_SETUP_8822B(v))
  10464. /* 2 REG_P2PPS_STATE_8822B */
  10465. #define BIT_POWER_STATE_8822B BIT(7)
  10466. #define BIT_CTWINDOW_ON_8822B BIT(6)
  10467. #define BIT_BEACON_AREA_ON_8822B BIT(5)
  10468. #define BIT_CTWIN_EARLY_DISTX_8822B BIT(4)
  10469. #define BIT_NOA1_OFF_PERIOD_8822B BIT(3)
  10470. #define BIT_FORCE_DOZE1_8822B BIT(2)
  10471. #define BIT_NOA0_OFF_PERIOD_8822B BIT(1)
  10472. #define BIT_FORCE_DOZE0_8822B BIT(0)
  10473. /* 2 REG_RD_NAV_NXT_8822B */
  10474. #define BIT_SHIFT_RD_NAV_PROT_NXT_8822B 0
  10475. #define BIT_MASK_RD_NAV_PROT_NXT_8822B 0xffff
  10476. #define BIT_RD_NAV_PROT_NXT_8822B(x) \
  10477. (((x) & BIT_MASK_RD_NAV_PROT_NXT_8822B) \
  10478. << BIT_SHIFT_RD_NAV_PROT_NXT_8822B)
  10479. #define BITS_RD_NAV_PROT_NXT_8822B \
  10480. (BIT_MASK_RD_NAV_PROT_NXT_8822B << BIT_SHIFT_RD_NAV_PROT_NXT_8822B)
  10481. #define BIT_CLEAR_RD_NAV_PROT_NXT_8822B(x) ((x) & (~BITS_RD_NAV_PROT_NXT_8822B))
  10482. #define BIT_GET_RD_NAV_PROT_NXT_8822B(x) \
  10483. (((x) >> BIT_SHIFT_RD_NAV_PROT_NXT_8822B) & \
  10484. BIT_MASK_RD_NAV_PROT_NXT_8822B)
  10485. #define BIT_SET_RD_NAV_PROT_NXT_8822B(x, v) \
  10486. (BIT_CLEAR_RD_NAV_PROT_NXT_8822B(x) | BIT_RD_NAV_PROT_NXT_8822B(v))
  10487. /* 2 REG_NAV_PROT_LEN_8822B */
  10488. #define BIT_SHIFT_NAV_PROT_LEN_8822B 0
  10489. #define BIT_MASK_NAV_PROT_LEN_8822B 0xffff
  10490. #define BIT_NAV_PROT_LEN_8822B(x) \
  10491. (((x) & BIT_MASK_NAV_PROT_LEN_8822B) << BIT_SHIFT_NAV_PROT_LEN_8822B)
  10492. #define BITS_NAV_PROT_LEN_8822B \
  10493. (BIT_MASK_NAV_PROT_LEN_8822B << BIT_SHIFT_NAV_PROT_LEN_8822B)
  10494. #define BIT_CLEAR_NAV_PROT_LEN_8822B(x) ((x) & (~BITS_NAV_PROT_LEN_8822B))
  10495. #define BIT_GET_NAV_PROT_LEN_8822B(x) \
  10496. (((x) >> BIT_SHIFT_NAV_PROT_LEN_8822B) & BIT_MASK_NAV_PROT_LEN_8822B)
  10497. #define BIT_SET_NAV_PROT_LEN_8822B(x, v) \
  10498. (BIT_CLEAR_NAV_PROT_LEN_8822B(x) | BIT_NAV_PROT_LEN_8822B(v))
  10499. /* 2 REG_BCN_CTRL_8822B */
  10500. #define BIT_DIS_RX_BSSID_FIT_8822B BIT(6)
  10501. #define BIT_P0_EN_TXBCN_RPT_8822B BIT(5)
  10502. #define BIT_DIS_TSF_UDT_8822B BIT(4)
  10503. #define BIT_EN_BCN_FUNCTION_8822B BIT(3)
  10504. #define BIT_P0_EN_RXBCN_RPT_8822B BIT(2)
  10505. #define BIT_EN_P2P_CTWINDOW_8822B BIT(1)
  10506. #define BIT_EN_P2P_BCNQ_AREA_8822B BIT(0)
  10507. /* 2 REG_BCN_CTRL_CLINT0_8822B */
  10508. #define BIT_CLI0_DIS_RX_BSSID_FIT_8822B BIT(6)
  10509. #define BIT_CLI0_DIS_TSF_UDT_8822B BIT(4)
  10510. #define BIT_CLI0_EN_BCN_FUNCTION_8822B BIT(3)
  10511. #define BIT_CLI0_EN_RXBCN_RPT_8822B BIT(2)
  10512. #define BIT_CLI0_ENP2P_CTWINDOW_8822B BIT(1)
  10513. #define BIT_CLI0_ENP2P_BCNQ_AREA_8822B BIT(0)
  10514. /* 2 REG_MBID_NUM_8822B */
  10515. #define BIT_EN_PRE_DL_BEACON_8822B BIT(3)
  10516. #define BIT_SHIFT_MBID_BCN_NUM_8822B 0
  10517. #define BIT_MASK_MBID_BCN_NUM_8822B 0x7
  10518. #define BIT_MBID_BCN_NUM_8822B(x) \
  10519. (((x) & BIT_MASK_MBID_BCN_NUM_8822B) << BIT_SHIFT_MBID_BCN_NUM_8822B)
  10520. #define BITS_MBID_BCN_NUM_8822B \
  10521. (BIT_MASK_MBID_BCN_NUM_8822B << BIT_SHIFT_MBID_BCN_NUM_8822B)
  10522. #define BIT_CLEAR_MBID_BCN_NUM_8822B(x) ((x) & (~BITS_MBID_BCN_NUM_8822B))
  10523. #define BIT_GET_MBID_BCN_NUM_8822B(x) \
  10524. (((x) >> BIT_SHIFT_MBID_BCN_NUM_8822B) & BIT_MASK_MBID_BCN_NUM_8822B)
  10525. #define BIT_SET_MBID_BCN_NUM_8822B(x, v) \
  10526. (BIT_CLEAR_MBID_BCN_NUM_8822B(x) | BIT_MBID_BCN_NUM_8822B(v))
  10527. /* 2 REG_DUAL_TSF_RST_8822B */
  10528. #define BIT_FREECNT_RST_8822B BIT(5)
  10529. #define BIT_TSFTR_CLI3_RST_8822B BIT(4)
  10530. #define BIT_TSFTR_CLI2_RST_8822B BIT(3)
  10531. #define BIT_TSFTR_CLI1_RST_8822B BIT(2)
  10532. #define BIT_TSFTR_CLI0_RST_8822B BIT(1)
  10533. #define BIT_TSFTR_RST_8822B BIT(0)
  10534. /* 2 REG_MBSSID_BCN_SPACE_8822B */
  10535. #define BIT_SHIFT_BCN_TIMER_SEL_FWRD_8822B 28
  10536. #define BIT_MASK_BCN_TIMER_SEL_FWRD_8822B 0x7
  10537. #define BIT_BCN_TIMER_SEL_FWRD_8822B(x) \
  10538. (((x) & BIT_MASK_BCN_TIMER_SEL_FWRD_8822B) \
  10539. << BIT_SHIFT_BCN_TIMER_SEL_FWRD_8822B)
  10540. #define BITS_BCN_TIMER_SEL_FWRD_8822B \
  10541. (BIT_MASK_BCN_TIMER_SEL_FWRD_8822B \
  10542. << BIT_SHIFT_BCN_TIMER_SEL_FWRD_8822B)
  10543. #define BIT_CLEAR_BCN_TIMER_SEL_FWRD_8822B(x) \
  10544. ((x) & (~BITS_BCN_TIMER_SEL_FWRD_8822B))
  10545. #define BIT_GET_BCN_TIMER_SEL_FWRD_8822B(x) \
  10546. (((x) >> BIT_SHIFT_BCN_TIMER_SEL_FWRD_8822B) & \
  10547. BIT_MASK_BCN_TIMER_SEL_FWRD_8822B)
  10548. #define BIT_SET_BCN_TIMER_SEL_FWRD_8822B(x, v) \
  10549. (BIT_CLEAR_BCN_TIMER_SEL_FWRD_8822B(x) | \
  10550. BIT_BCN_TIMER_SEL_FWRD_8822B(v))
  10551. #define BIT_SHIFT_BCN_SPACE_CLINT0_8822B 16
  10552. #define BIT_MASK_BCN_SPACE_CLINT0_8822B 0xfff
  10553. #define BIT_BCN_SPACE_CLINT0_8822B(x) \
  10554. (((x) & BIT_MASK_BCN_SPACE_CLINT0_8822B) \
  10555. << BIT_SHIFT_BCN_SPACE_CLINT0_8822B)
  10556. #define BITS_BCN_SPACE_CLINT0_8822B \
  10557. (BIT_MASK_BCN_SPACE_CLINT0_8822B << BIT_SHIFT_BCN_SPACE_CLINT0_8822B)
  10558. #define BIT_CLEAR_BCN_SPACE_CLINT0_8822B(x) \
  10559. ((x) & (~BITS_BCN_SPACE_CLINT0_8822B))
  10560. #define BIT_GET_BCN_SPACE_CLINT0_8822B(x) \
  10561. (((x) >> BIT_SHIFT_BCN_SPACE_CLINT0_8822B) & \
  10562. BIT_MASK_BCN_SPACE_CLINT0_8822B)
  10563. #define BIT_SET_BCN_SPACE_CLINT0_8822B(x, v) \
  10564. (BIT_CLEAR_BCN_SPACE_CLINT0_8822B(x) | BIT_BCN_SPACE_CLINT0_8822B(v))
  10565. #define BIT_SHIFT_BCN_SPACE0_8822B 0
  10566. #define BIT_MASK_BCN_SPACE0_8822B 0xffff
  10567. #define BIT_BCN_SPACE0_8822B(x) \
  10568. (((x) & BIT_MASK_BCN_SPACE0_8822B) << BIT_SHIFT_BCN_SPACE0_8822B)
  10569. #define BITS_BCN_SPACE0_8822B \
  10570. (BIT_MASK_BCN_SPACE0_8822B << BIT_SHIFT_BCN_SPACE0_8822B)
  10571. #define BIT_CLEAR_BCN_SPACE0_8822B(x) ((x) & (~BITS_BCN_SPACE0_8822B))
  10572. #define BIT_GET_BCN_SPACE0_8822B(x) \
  10573. (((x) >> BIT_SHIFT_BCN_SPACE0_8822B) & BIT_MASK_BCN_SPACE0_8822B)
  10574. #define BIT_SET_BCN_SPACE0_8822B(x, v) \
  10575. (BIT_CLEAR_BCN_SPACE0_8822B(x) | BIT_BCN_SPACE0_8822B(v))
  10576. /* 2 REG_DRVERLYINT_8822B */
  10577. #define BIT_SHIFT_DRVERLYITV_8822B 0
  10578. #define BIT_MASK_DRVERLYITV_8822B 0xff
  10579. #define BIT_DRVERLYITV_8822B(x) \
  10580. (((x) & BIT_MASK_DRVERLYITV_8822B) << BIT_SHIFT_DRVERLYITV_8822B)
  10581. #define BITS_DRVERLYITV_8822B \
  10582. (BIT_MASK_DRVERLYITV_8822B << BIT_SHIFT_DRVERLYITV_8822B)
  10583. #define BIT_CLEAR_DRVERLYITV_8822B(x) ((x) & (~BITS_DRVERLYITV_8822B))
  10584. #define BIT_GET_DRVERLYITV_8822B(x) \
  10585. (((x) >> BIT_SHIFT_DRVERLYITV_8822B) & BIT_MASK_DRVERLYITV_8822B)
  10586. #define BIT_SET_DRVERLYITV_8822B(x, v) \
  10587. (BIT_CLEAR_DRVERLYITV_8822B(x) | BIT_DRVERLYITV_8822B(v))
  10588. /* 2 REG_BCNDMATIM_8822B */
  10589. #define BIT_SHIFT_BCNDMATIM_8822B 0
  10590. #define BIT_MASK_BCNDMATIM_8822B 0xff
  10591. #define BIT_BCNDMATIM_8822B(x) \
  10592. (((x) & BIT_MASK_BCNDMATIM_8822B) << BIT_SHIFT_BCNDMATIM_8822B)
  10593. #define BITS_BCNDMATIM_8822B \
  10594. (BIT_MASK_BCNDMATIM_8822B << BIT_SHIFT_BCNDMATIM_8822B)
  10595. #define BIT_CLEAR_BCNDMATIM_8822B(x) ((x) & (~BITS_BCNDMATIM_8822B))
  10596. #define BIT_GET_BCNDMATIM_8822B(x) \
  10597. (((x) >> BIT_SHIFT_BCNDMATIM_8822B) & BIT_MASK_BCNDMATIM_8822B)
  10598. #define BIT_SET_BCNDMATIM_8822B(x, v) \
  10599. (BIT_CLEAR_BCNDMATIM_8822B(x) | BIT_BCNDMATIM_8822B(v))
  10600. /* 2 REG_ATIMWND_8822B */
  10601. #define BIT_SHIFT_ATIMWND0_8822B 0
  10602. #define BIT_MASK_ATIMWND0_8822B 0xffff
  10603. #define BIT_ATIMWND0_8822B(x) \
  10604. (((x) & BIT_MASK_ATIMWND0_8822B) << BIT_SHIFT_ATIMWND0_8822B)
  10605. #define BITS_ATIMWND0_8822B \
  10606. (BIT_MASK_ATIMWND0_8822B << BIT_SHIFT_ATIMWND0_8822B)
  10607. #define BIT_CLEAR_ATIMWND0_8822B(x) ((x) & (~BITS_ATIMWND0_8822B))
  10608. #define BIT_GET_ATIMWND0_8822B(x) \
  10609. (((x) >> BIT_SHIFT_ATIMWND0_8822B) & BIT_MASK_ATIMWND0_8822B)
  10610. #define BIT_SET_ATIMWND0_8822B(x, v) \
  10611. (BIT_CLEAR_ATIMWND0_8822B(x) | BIT_ATIMWND0_8822B(v))
  10612. /* 2 REG_USTIME_TSF_8822B */
  10613. #define BIT_SHIFT_USTIME_TSF_V1_8822B 0
  10614. #define BIT_MASK_USTIME_TSF_V1_8822B 0xff
  10615. #define BIT_USTIME_TSF_V1_8822B(x) \
  10616. (((x) & BIT_MASK_USTIME_TSF_V1_8822B) << BIT_SHIFT_USTIME_TSF_V1_8822B)
  10617. #define BITS_USTIME_TSF_V1_8822B \
  10618. (BIT_MASK_USTIME_TSF_V1_8822B << BIT_SHIFT_USTIME_TSF_V1_8822B)
  10619. #define BIT_CLEAR_USTIME_TSF_V1_8822B(x) ((x) & (~BITS_USTIME_TSF_V1_8822B))
  10620. #define BIT_GET_USTIME_TSF_V1_8822B(x) \
  10621. (((x) >> BIT_SHIFT_USTIME_TSF_V1_8822B) & BIT_MASK_USTIME_TSF_V1_8822B)
  10622. #define BIT_SET_USTIME_TSF_V1_8822B(x, v) \
  10623. (BIT_CLEAR_USTIME_TSF_V1_8822B(x) | BIT_USTIME_TSF_V1_8822B(v))
  10624. /* 2 REG_BCN_MAX_ERR_8822B */
  10625. #define BIT_SHIFT_BCN_MAX_ERR_8822B 0
  10626. #define BIT_MASK_BCN_MAX_ERR_8822B 0xff
  10627. #define BIT_BCN_MAX_ERR_8822B(x) \
  10628. (((x) & BIT_MASK_BCN_MAX_ERR_8822B) << BIT_SHIFT_BCN_MAX_ERR_8822B)
  10629. #define BITS_BCN_MAX_ERR_8822B \
  10630. (BIT_MASK_BCN_MAX_ERR_8822B << BIT_SHIFT_BCN_MAX_ERR_8822B)
  10631. #define BIT_CLEAR_BCN_MAX_ERR_8822B(x) ((x) & (~BITS_BCN_MAX_ERR_8822B))
  10632. #define BIT_GET_BCN_MAX_ERR_8822B(x) \
  10633. (((x) >> BIT_SHIFT_BCN_MAX_ERR_8822B) & BIT_MASK_BCN_MAX_ERR_8822B)
  10634. #define BIT_SET_BCN_MAX_ERR_8822B(x, v) \
  10635. (BIT_CLEAR_BCN_MAX_ERR_8822B(x) | BIT_BCN_MAX_ERR_8822B(v))
  10636. /* 2 REG_RXTSF_OFFSET_CCK_8822B */
  10637. #define BIT_SHIFT_CCK_RXTSF_OFFSET_8822B 0
  10638. #define BIT_MASK_CCK_RXTSF_OFFSET_8822B 0xff
  10639. #define BIT_CCK_RXTSF_OFFSET_8822B(x) \
  10640. (((x) & BIT_MASK_CCK_RXTSF_OFFSET_8822B) \
  10641. << BIT_SHIFT_CCK_RXTSF_OFFSET_8822B)
  10642. #define BITS_CCK_RXTSF_OFFSET_8822B \
  10643. (BIT_MASK_CCK_RXTSF_OFFSET_8822B << BIT_SHIFT_CCK_RXTSF_OFFSET_8822B)
  10644. #define BIT_CLEAR_CCK_RXTSF_OFFSET_8822B(x) \
  10645. ((x) & (~BITS_CCK_RXTSF_OFFSET_8822B))
  10646. #define BIT_GET_CCK_RXTSF_OFFSET_8822B(x) \
  10647. (((x) >> BIT_SHIFT_CCK_RXTSF_OFFSET_8822B) & \
  10648. BIT_MASK_CCK_RXTSF_OFFSET_8822B)
  10649. #define BIT_SET_CCK_RXTSF_OFFSET_8822B(x, v) \
  10650. (BIT_CLEAR_CCK_RXTSF_OFFSET_8822B(x) | BIT_CCK_RXTSF_OFFSET_8822B(v))
  10651. /* 2 REG_RXTSF_OFFSET_OFDM_8822B */
  10652. #define BIT_SHIFT_OFDM_RXTSF_OFFSET_8822B 0
  10653. #define BIT_MASK_OFDM_RXTSF_OFFSET_8822B 0xff
  10654. #define BIT_OFDM_RXTSF_OFFSET_8822B(x) \
  10655. (((x) & BIT_MASK_OFDM_RXTSF_OFFSET_8822B) \
  10656. << BIT_SHIFT_OFDM_RXTSF_OFFSET_8822B)
  10657. #define BITS_OFDM_RXTSF_OFFSET_8822B \
  10658. (BIT_MASK_OFDM_RXTSF_OFFSET_8822B << BIT_SHIFT_OFDM_RXTSF_OFFSET_8822B)
  10659. #define BIT_CLEAR_OFDM_RXTSF_OFFSET_8822B(x) \
  10660. ((x) & (~BITS_OFDM_RXTSF_OFFSET_8822B))
  10661. #define BIT_GET_OFDM_RXTSF_OFFSET_8822B(x) \
  10662. (((x) >> BIT_SHIFT_OFDM_RXTSF_OFFSET_8822B) & \
  10663. BIT_MASK_OFDM_RXTSF_OFFSET_8822B)
  10664. #define BIT_SET_OFDM_RXTSF_OFFSET_8822B(x, v) \
  10665. (BIT_CLEAR_OFDM_RXTSF_OFFSET_8822B(x) | BIT_OFDM_RXTSF_OFFSET_8822B(v))
  10666. /* 2 REG_TSFTR_8822B */
  10667. #define BIT_SHIFT_TSF_TIMER_8822B 0
  10668. #define BIT_MASK_TSF_TIMER_8822B 0xffffffffffffffffL
  10669. #define BIT_TSF_TIMER_8822B(x) \
  10670. (((x) & BIT_MASK_TSF_TIMER_8822B) << BIT_SHIFT_TSF_TIMER_8822B)
  10671. #define BITS_TSF_TIMER_8822B \
  10672. (BIT_MASK_TSF_TIMER_8822B << BIT_SHIFT_TSF_TIMER_8822B)
  10673. #define BIT_CLEAR_TSF_TIMER_8822B(x) ((x) & (~BITS_TSF_TIMER_8822B))
  10674. #define BIT_GET_TSF_TIMER_8822B(x) \
  10675. (((x) >> BIT_SHIFT_TSF_TIMER_8822B) & BIT_MASK_TSF_TIMER_8822B)
  10676. #define BIT_SET_TSF_TIMER_8822B(x, v) \
  10677. (BIT_CLEAR_TSF_TIMER_8822B(x) | BIT_TSF_TIMER_8822B(v))
  10678. /* 2 REG_FREERUN_CNT_8822B */
  10679. #define BIT_SHIFT_FREERUN_CNT_8822B 0
  10680. #define BIT_MASK_FREERUN_CNT_8822B 0xffffffffffffffffL
  10681. #define BIT_FREERUN_CNT_8822B(x) \
  10682. (((x) & BIT_MASK_FREERUN_CNT_8822B) << BIT_SHIFT_FREERUN_CNT_8822B)
  10683. #define BITS_FREERUN_CNT_8822B \
  10684. (BIT_MASK_FREERUN_CNT_8822B << BIT_SHIFT_FREERUN_CNT_8822B)
  10685. #define BIT_CLEAR_FREERUN_CNT_8822B(x) ((x) & (~BITS_FREERUN_CNT_8822B))
  10686. #define BIT_GET_FREERUN_CNT_8822B(x) \
  10687. (((x) >> BIT_SHIFT_FREERUN_CNT_8822B) & BIT_MASK_FREERUN_CNT_8822B)
  10688. #define BIT_SET_FREERUN_CNT_8822B(x, v) \
  10689. (BIT_CLEAR_FREERUN_CNT_8822B(x) | BIT_FREERUN_CNT_8822B(v))
  10690. /* 2 REG_ATIMWND1_V1_8822B */
  10691. #define BIT_SHIFT_ATIMWND1_V1_8822B 0
  10692. #define BIT_MASK_ATIMWND1_V1_8822B 0xff
  10693. #define BIT_ATIMWND1_V1_8822B(x) \
  10694. (((x) & BIT_MASK_ATIMWND1_V1_8822B) << BIT_SHIFT_ATIMWND1_V1_8822B)
  10695. #define BITS_ATIMWND1_V1_8822B \
  10696. (BIT_MASK_ATIMWND1_V1_8822B << BIT_SHIFT_ATIMWND1_V1_8822B)
  10697. #define BIT_CLEAR_ATIMWND1_V1_8822B(x) ((x) & (~BITS_ATIMWND1_V1_8822B))
  10698. #define BIT_GET_ATIMWND1_V1_8822B(x) \
  10699. (((x) >> BIT_SHIFT_ATIMWND1_V1_8822B) & BIT_MASK_ATIMWND1_V1_8822B)
  10700. #define BIT_SET_ATIMWND1_V1_8822B(x, v) \
  10701. (BIT_CLEAR_ATIMWND1_V1_8822B(x) | BIT_ATIMWND1_V1_8822B(v))
  10702. /* 2 REG_TBTT_PROHIBIT_INFRA_8822B */
  10703. #define BIT_SHIFT_TBTT_PROHIBIT_INFRA_8822B 0
  10704. #define BIT_MASK_TBTT_PROHIBIT_INFRA_8822B 0xff
  10705. #define BIT_TBTT_PROHIBIT_INFRA_8822B(x) \
  10706. (((x) & BIT_MASK_TBTT_PROHIBIT_INFRA_8822B) \
  10707. << BIT_SHIFT_TBTT_PROHIBIT_INFRA_8822B)
  10708. #define BITS_TBTT_PROHIBIT_INFRA_8822B \
  10709. (BIT_MASK_TBTT_PROHIBIT_INFRA_8822B \
  10710. << BIT_SHIFT_TBTT_PROHIBIT_INFRA_8822B)
  10711. #define BIT_CLEAR_TBTT_PROHIBIT_INFRA_8822B(x) \
  10712. ((x) & (~BITS_TBTT_PROHIBIT_INFRA_8822B))
  10713. #define BIT_GET_TBTT_PROHIBIT_INFRA_8822B(x) \
  10714. (((x) >> BIT_SHIFT_TBTT_PROHIBIT_INFRA_8822B) & \
  10715. BIT_MASK_TBTT_PROHIBIT_INFRA_8822B)
  10716. #define BIT_SET_TBTT_PROHIBIT_INFRA_8822B(x, v) \
  10717. (BIT_CLEAR_TBTT_PROHIBIT_INFRA_8822B(x) | \
  10718. BIT_TBTT_PROHIBIT_INFRA_8822B(v))
  10719. /* 2 REG_CTWND_8822B */
  10720. #define BIT_SHIFT_CTWND_8822B 0
  10721. #define BIT_MASK_CTWND_8822B 0xff
  10722. #define BIT_CTWND_8822B(x) \
  10723. (((x) & BIT_MASK_CTWND_8822B) << BIT_SHIFT_CTWND_8822B)
  10724. #define BITS_CTWND_8822B (BIT_MASK_CTWND_8822B << BIT_SHIFT_CTWND_8822B)
  10725. #define BIT_CLEAR_CTWND_8822B(x) ((x) & (~BITS_CTWND_8822B))
  10726. #define BIT_GET_CTWND_8822B(x) \
  10727. (((x) >> BIT_SHIFT_CTWND_8822B) & BIT_MASK_CTWND_8822B)
  10728. #define BIT_SET_CTWND_8822B(x, v) \
  10729. (BIT_CLEAR_CTWND_8822B(x) | BIT_CTWND_8822B(v))
  10730. /* 2 REG_BCNIVLCUNT_8822B */
  10731. #define BIT_SHIFT_BCNIVLCUNT_8822B 0
  10732. #define BIT_MASK_BCNIVLCUNT_8822B 0x7f
  10733. #define BIT_BCNIVLCUNT_8822B(x) \
  10734. (((x) & BIT_MASK_BCNIVLCUNT_8822B) << BIT_SHIFT_BCNIVLCUNT_8822B)
  10735. #define BITS_BCNIVLCUNT_8822B \
  10736. (BIT_MASK_BCNIVLCUNT_8822B << BIT_SHIFT_BCNIVLCUNT_8822B)
  10737. #define BIT_CLEAR_BCNIVLCUNT_8822B(x) ((x) & (~BITS_BCNIVLCUNT_8822B))
  10738. #define BIT_GET_BCNIVLCUNT_8822B(x) \
  10739. (((x) >> BIT_SHIFT_BCNIVLCUNT_8822B) & BIT_MASK_BCNIVLCUNT_8822B)
  10740. #define BIT_SET_BCNIVLCUNT_8822B(x, v) \
  10741. (BIT_CLEAR_BCNIVLCUNT_8822B(x) | BIT_BCNIVLCUNT_8822B(v))
  10742. /* 2 REG_BCNDROPCTRL_8822B */
  10743. #define BIT_BEACON_DROP_EN_8822B BIT(7)
  10744. #define BIT_SHIFT_BEACON_DROP_IVL_8822B 0
  10745. #define BIT_MASK_BEACON_DROP_IVL_8822B 0x7f
  10746. #define BIT_BEACON_DROP_IVL_8822B(x) \
  10747. (((x) & BIT_MASK_BEACON_DROP_IVL_8822B) \
  10748. << BIT_SHIFT_BEACON_DROP_IVL_8822B)
  10749. #define BITS_BEACON_DROP_IVL_8822B \
  10750. (BIT_MASK_BEACON_DROP_IVL_8822B << BIT_SHIFT_BEACON_DROP_IVL_8822B)
  10751. #define BIT_CLEAR_BEACON_DROP_IVL_8822B(x) ((x) & (~BITS_BEACON_DROP_IVL_8822B))
  10752. #define BIT_GET_BEACON_DROP_IVL_8822B(x) \
  10753. (((x) >> BIT_SHIFT_BEACON_DROP_IVL_8822B) & \
  10754. BIT_MASK_BEACON_DROP_IVL_8822B)
  10755. #define BIT_SET_BEACON_DROP_IVL_8822B(x, v) \
  10756. (BIT_CLEAR_BEACON_DROP_IVL_8822B(x) | BIT_BEACON_DROP_IVL_8822B(v))
  10757. /* 2 REG_HGQ_TIMEOUT_PERIOD_8822B */
  10758. #define BIT_SHIFT_HGQ_TIMEOUT_PERIOD_8822B 0
  10759. #define BIT_MASK_HGQ_TIMEOUT_PERIOD_8822B 0xff
  10760. #define BIT_HGQ_TIMEOUT_PERIOD_8822B(x) \
  10761. (((x) & BIT_MASK_HGQ_TIMEOUT_PERIOD_8822B) \
  10762. << BIT_SHIFT_HGQ_TIMEOUT_PERIOD_8822B)
  10763. #define BITS_HGQ_TIMEOUT_PERIOD_8822B \
  10764. (BIT_MASK_HGQ_TIMEOUT_PERIOD_8822B \
  10765. << BIT_SHIFT_HGQ_TIMEOUT_PERIOD_8822B)
  10766. #define BIT_CLEAR_HGQ_TIMEOUT_PERIOD_8822B(x) \
  10767. ((x) & (~BITS_HGQ_TIMEOUT_PERIOD_8822B))
  10768. #define BIT_GET_HGQ_TIMEOUT_PERIOD_8822B(x) \
  10769. (((x) >> BIT_SHIFT_HGQ_TIMEOUT_PERIOD_8822B) & \
  10770. BIT_MASK_HGQ_TIMEOUT_PERIOD_8822B)
  10771. #define BIT_SET_HGQ_TIMEOUT_PERIOD_8822B(x, v) \
  10772. (BIT_CLEAR_HGQ_TIMEOUT_PERIOD_8822B(x) | \
  10773. BIT_HGQ_TIMEOUT_PERIOD_8822B(v))
  10774. /* 2 REG_TXCMD_TIMEOUT_PERIOD_8822B */
  10775. #define BIT_SHIFT_TXCMD_TIMEOUT_PERIOD_8822B 0
  10776. #define BIT_MASK_TXCMD_TIMEOUT_PERIOD_8822B 0xff
  10777. #define BIT_TXCMD_TIMEOUT_PERIOD_8822B(x) \
  10778. (((x) & BIT_MASK_TXCMD_TIMEOUT_PERIOD_8822B) \
  10779. << BIT_SHIFT_TXCMD_TIMEOUT_PERIOD_8822B)
  10780. #define BITS_TXCMD_TIMEOUT_PERIOD_8822B \
  10781. (BIT_MASK_TXCMD_TIMEOUT_PERIOD_8822B \
  10782. << BIT_SHIFT_TXCMD_TIMEOUT_PERIOD_8822B)
  10783. #define BIT_CLEAR_TXCMD_TIMEOUT_PERIOD_8822B(x) \
  10784. ((x) & (~BITS_TXCMD_TIMEOUT_PERIOD_8822B))
  10785. #define BIT_GET_TXCMD_TIMEOUT_PERIOD_8822B(x) \
  10786. (((x) >> BIT_SHIFT_TXCMD_TIMEOUT_PERIOD_8822B) & \
  10787. BIT_MASK_TXCMD_TIMEOUT_PERIOD_8822B)
  10788. #define BIT_SET_TXCMD_TIMEOUT_PERIOD_8822B(x, v) \
  10789. (BIT_CLEAR_TXCMD_TIMEOUT_PERIOD_8822B(x) | \
  10790. BIT_TXCMD_TIMEOUT_PERIOD_8822B(v))
  10791. /* 2 REG_MISC_CTRL_8822B */
  10792. #define BIT_AUTO_SYNC_BY_TBTT_8822B BIT(6)
  10793. #define BIT_DIS_TRX_CAL_BCN_8822B BIT(5)
  10794. #define BIT_DIS_TX_CAL_TBTT_8822B BIT(4)
  10795. #define BIT_EN_FREECNT_8822B BIT(3)
  10796. #define BIT_BCN_AGGRESSION_8822B BIT(2)
  10797. #define BIT_SHIFT_DIS_SECONDARY_CCA_8822B 0
  10798. #define BIT_MASK_DIS_SECONDARY_CCA_8822B 0x3
  10799. #define BIT_DIS_SECONDARY_CCA_8822B(x) \
  10800. (((x) & BIT_MASK_DIS_SECONDARY_CCA_8822B) \
  10801. << BIT_SHIFT_DIS_SECONDARY_CCA_8822B)
  10802. #define BITS_DIS_SECONDARY_CCA_8822B \
  10803. (BIT_MASK_DIS_SECONDARY_CCA_8822B << BIT_SHIFT_DIS_SECONDARY_CCA_8822B)
  10804. #define BIT_CLEAR_DIS_SECONDARY_CCA_8822B(x) \
  10805. ((x) & (~BITS_DIS_SECONDARY_CCA_8822B))
  10806. #define BIT_GET_DIS_SECONDARY_CCA_8822B(x) \
  10807. (((x) >> BIT_SHIFT_DIS_SECONDARY_CCA_8822B) & \
  10808. BIT_MASK_DIS_SECONDARY_CCA_8822B)
  10809. #define BIT_SET_DIS_SECONDARY_CCA_8822B(x, v) \
  10810. (BIT_CLEAR_DIS_SECONDARY_CCA_8822B(x) | BIT_DIS_SECONDARY_CCA_8822B(v))
  10811. /* 2 REG_BCN_CTRL_CLINT1_8822B */
  10812. #define BIT_CLI1_DIS_RX_BSSID_FIT_8822B BIT(6)
  10813. #define BIT_CLI1_DIS_TSF_UDT_8822B BIT(4)
  10814. #define BIT_CLI1_EN_BCN_FUNCTION_8822B BIT(3)
  10815. #define BIT_CLI1_EN_RXBCN_RPT_8822B BIT(2)
  10816. #define BIT_CLI1_ENP2P_CTWINDOW_8822B BIT(1)
  10817. #define BIT_CLI1_ENP2P_BCNQ_AREA_8822B BIT(0)
  10818. /* 2 REG_BCN_CTRL_CLINT2_8822B */
  10819. #define BIT_CLI2_DIS_RX_BSSID_FIT_8822B BIT(6)
  10820. #define BIT_CLI2_DIS_TSF_UDT_8822B BIT(4)
  10821. #define BIT_CLI2_EN_BCN_FUNCTION_8822B BIT(3)
  10822. #define BIT_CLI2_EN_RXBCN_RPT_8822B BIT(2)
  10823. #define BIT_CLI2_ENP2P_CTWINDOW_8822B BIT(1)
  10824. #define BIT_CLI2_ENP2P_BCNQ_AREA_8822B BIT(0)
  10825. /* 2 REG_BCN_CTRL_CLINT3_8822B */
  10826. #define BIT_CLI3_DIS_RX_BSSID_FIT_8822B BIT(6)
  10827. #define BIT_CLI3_DIS_TSF_UDT_8822B BIT(4)
  10828. #define BIT_CLI3_EN_BCN_FUNCTION_8822B BIT(3)
  10829. #define BIT_CLI3_EN_RXBCN_RPT_8822B BIT(2)
  10830. #define BIT_CLI3_ENP2P_CTWINDOW_8822B BIT(1)
  10831. #define BIT_CLI3_ENP2P_BCNQ_AREA_8822B BIT(0)
  10832. /* 2 REG_EXTEND_CTRL_8822B */
  10833. #define BIT_EN_TSFBIT32_RST_P2P2_8822B BIT(5)
  10834. #define BIT_EN_TSFBIT32_RST_P2P1_8822B BIT(4)
  10835. #define BIT_SHIFT_PORT_SEL_8822B 0
  10836. #define BIT_MASK_PORT_SEL_8822B 0x7
  10837. #define BIT_PORT_SEL_8822B(x) \
  10838. (((x) & BIT_MASK_PORT_SEL_8822B) << BIT_SHIFT_PORT_SEL_8822B)
  10839. #define BITS_PORT_SEL_8822B \
  10840. (BIT_MASK_PORT_SEL_8822B << BIT_SHIFT_PORT_SEL_8822B)
  10841. #define BIT_CLEAR_PORT_SEL_8822B(x) ((x) & (~BITS_PORT_SEL_8822B))
  10842. #define BIT_GET_PORT_SEL_8822B(x) \
  10843. (((x) >> BIT_SHIFT_PORT_SEL_8822B) & BIT_MASK_PORT_SEL_8822B)
  10844. #define BIT_SET_PORT_SEL_8822B(x, v) \
  10845. (BIT_CLEAR_PORT_SEL_8822B(x) | BIT_PORT_SEL_8822B(v))
  10846. /* 2 REG_P2PPS1_SPEC_STATE_8822B */
  10847. #define BIT_P2P1_SPEC_POWER_STATE_8822B BIT(7)
  10848. #define BIT_P2P1_SPEC_CTWINDOW_ON_8822B BIT(6)
  10849. #define BIT_P2P1_SPEC_BCN_AREA_ON_8822B BIT(5)
  10850. #define BIT_P2P1_SPEC_CTWIN_EARLY_DISTX_8822B BIT(4)
  10851. #define BIT_P2P1_SPEC_NOA1_OFF_PERIOD_8822B BIT(3)
  10852. #define BIT_P2P1_SPEC_FORCE_DOZE1_8822B BIT(2)
  10853. #define BIT_P2P1_SPEC_NOA0_OFF_PERIOD_8822B BIT(1)
  10854. #define BIT_P2P1_SPEC_FORCE_DOZE0_8822B BIT(0)
  10855. /* 2 REG_P2PPS1_STATE_8822B */
  10856. #define BIT_P2P1_POWER_STATE_8822B BIT(7)
  10857. #define BIT_P2P1_CTWINDOW_ON_8822B BIT(6)
  10858. #define BIT_P2P1_BEACON_AREA_ON_8822B BIT(5)
  10859. #define BIT_P2P1_CTWIN_EARLY_DISTX_8822B BIT(4)
  10860. #define BIT_P2P1_NOA1_OFF_PERIOD_8822B BIT(3)
  10861. #define BIT_P2P1_FORCE_DOZE1_8822B BIT(2)
  10862. #define BIT_P2P1_NOA0_OFF_PERIOD_8822B BIT(1)
  10863. #define BIT_P2P1_FORCE_DOZE0_8822B BIT(0)
  10864. /* 2 REG_P2PPS2_SPEC_STATE_8822B */
  10865. #define BIT_P2P2_SPEC_POWER_STATE_8822B BIT(7)
  10866. #define BIT_P2P2_SPEC_CTWINDOW_ON_8822B BIT(6)
  10867. #define BIT_P2P2_SPEC_BCN_AREA_ON_8822B BIT(5)
  10868. #define BIT_P2P2_SPEC_CTWIN_EARLY_DISTX_8822B BIT(4)
  10869. #define BIT_P2P2_SPEC_NOA1_OFF_PERIOD_8822B BIT(3)
  10870. #define BIT_P2P2_SPEC_FORCE_DOZE1_8822B BIT(2)
  10871. #define BIT_P2P2_SPEC_NOA0_OFF_PERIOD_8822B BIT(1)
  10872. #define BIT_P2P2_SPEC_FORCE_DOZE0_8822B BIT(0)
  10873. /* 2 REG_P2PPS2_STATE_8822B */
  10874. #define BIT_P2P2_POWER_STATE_8822B BIT(7)
  10875. #define BIT_P2P2_CTWINDOW_ON_8822B BIT(6)
  10876. #define BIT_P2P2_BEACON_AREA_ON_8822B BIT(5)
  10877. #define BIT_P2P2_CTWIN_EARLY_DISTX_8822B BIT(4)
  10878. #define BIT_P2P2_NOA1_OFF_PERIOD_8822B BIT(3)
  10879. #define BIT_P2P2_FORCE_DOZE1_8822B BIT(2)
  10880. #define BIT_P2P2_NOA0_OFF_PERIOD_8822B BIT(1)
  10881. #define BIT_P2P2_FORCE_DOZE0_8822B BIT(0)
  10882. /* 2 REG_PS_TIMER0_8822B */
  10883. #define BIT_SHIFT_PSTIMER0_INT_8822B 5
  10884. #define BIT_MASK_PSTIMER0_INT_8822B 0x7ffffff
  10885. #define BIT_PSTIMER0_INT_8822B(x) \
  10886. (((x) & BIT_MASK_PSTIMER0_INT_8822B) << BIT_SHIFT_PSTIMER0_INT_8822B)
  10887. #define BITS_PSTIMER0_INT_8822B \
  10888. (BIT_MASK_PSTIMER0_INT_8822B << BIT_SHIFT_PSTIMER0_INT_8822B)
  10889. #define BIT_CLEAR_PSTIMER0_INT_8822B(x) ((x) & (~BITS_PSTIMER0_INT_8822B))
  10890. #define BIT_GET_PSTIMER0_INT_8822B(x) \
  10891. (((x) >> BIT_SHIFT_PSTIMER0_INT_8822B) & BIT_MASK_PSTIMER0_INT_8822B)
  10892. #define BIT_SET_PSTIMER0_INT_8822B(x, v) \
  10893. (BIT_CLEAR_PSTIMER0_INT_8822B(x) | BIT_PSTIMER0_INT_8822B(v))
  10894. /* 2 REG_PS_TIMER1_8822B */
  10895. #define BIT_SHIFT_PSTIMER1_INT_8822B 5
  10896. #define BIT_MASK_PSTIMER1_INT_8822B 0x7ffffff
  10897. #define BIT_PSTIMER1_INT_8822B(x) \
  10898. (((x) & BIT_MASK_PSTIMER1_INT_8822B) << BIT_SHIFT_PSTIMER1_INT_8822B)
  10899. #define BITS_PSTIMER1_INT_8822B \
  10900. (BIT_MASK_PSTIMER1_INT_8822B << BIT_SHIFT_PSTIMER1_INT_8822B)
  10901. #define BIT_CLEAR_PSTIMER1_INT_8822B(x) ((x) & (~BITS_PSTIMER1_INT_8822B))
  10902. #define BIT_GET_PSTIMER1_INT_8822B(x) \
  10903. (((x) >> BIT_SHIFT_PSTIMER1_INT_8822B) & BIT_MASK_PSTIMER1_INT_8822B)
  10904. #define BIT_SET_PSTIMER1_INT_8822B(x, v) \
  10905. (BIT_CLEAR_PSTIMER1_INT_8822B(x) | BIT_PSTIMER1_INT_8822B(v))
  10906. /* 2 REG_PS_TIMER2_8822B */
  10907. #define BIT_SHIFT_PSTIMER2_INT_8822B 5
  10908. #define BIT_MASK_PSTIMER2_INT_8822B 0x7ffffff
  10909. #define BIT_PSTIMER2_INT_8822B(x) \
  10910. (((x) & BIT_MASK_PSTIMER2_INT_8822B) << BIT_SHIFT_PSTIMER2_INT_8822B)
  10911. #define BITS_PSTIMER2_INT_8822B \
  10912. (BIT_MASK_PSTIMER2_INT_8822B << BIT_SHIFT_PSTIMER2_INT_8822B)
  10913. #define BIT_CLEAR_PSTIMER2_INT_8822B(x) ((x) & (~BITS_PSTIMER2_INT_8822B))
  10914. #define BIT_GET_PSTIMER2_INT_8822B(x) \
  10915. (((x) >> BIT_SHIFT_PSTIMER2_INT_8822B) & BIT_MASK_PSTIMER2_INT_8822B)
  10916. #define BIT_SET_PSTIMER2_INT_8822B(x, v) \
  10917. (BIT_CLEAR_PSTIMER2_INT_8822B(x) | BIT_PSTIMER2_INT_8822B(v))
  10918. /* 2 REG_TBTT_CTN_AREA_8822B */
  10919. #define BIT_SHIFT_TBTT_CTN_AREA_8822B 0
  10920. #define BIT_MASK_TBTT_CTN_AREA_8822B 0xff
  10921. #define BIT_TBTT_CTN_AREA_8822B(x) \
  10922. (((x) & BIT_MASK_TBTT_CTN_AREA_8822B) << BIT_SHIFT_TBTT_CTN_AREA_8822B)
  10923. #define BITS_TBTT_CTN_AREA_8822B \
  10924. (BIT_MASK_TBTT_CTN_AREA_8822B << BIT_SHIFT_TBTT_CTN_AREA_8822B)
  10925. #define BIT_CLEAR_TBTT_CTN_AREA_8822B(x) ((x) & (~BITS_TBTT_CTN_AREA_8822B))
  10926. #define BIT_GET_TBTT_CTN_AREA_8822B(x) \
  10927. (((x) >> BIT_SHIFT_TBTT_CTN_AREA_8822B) & BIT_MASK_TBTT_CTN_AREA_8822B)
  10928. #define BIT_SET_TBTT_CTN_AREA_8822B(x, v) \
  10929. (BIT_CLEAR_TBTT_CTN_AREA_8822B(x) | BIT_TBTT_CTN_AREA_8822B(v))
  10930. /* 2 REG_FORCE_BCN_IFS_8822B */
  10931. #define BIT_SHIFT_FORCE_BCN_IFS_8822B 0
  10932. #define BIT_MASK_FORCE_BCN_IFS_8822B 0xff
  10933. #define BIT_FORCE_BCN_IFS_8822B(x) \
  10934. (((x) & BIT_MASK_FORCE_BCN_IFS_8822B) << BIT_SHIFT_FORCE_BCN_IFS_8822B)
  10935. #define BITS_FORCE_BCN_IFS_8822B \
  10936. (BIT_MASK_FORCE_BCN_IFS_8822B << BIT_SHIFT_FORCE_BCN_IFS_8822B)
  10937. #define BIT_CLEAR_FORCE_BCN_IFS_8822B(x) ((x) & (~BITS_FORCE_BCN_IFS_8822B))
  10938. #define BIT_GET_FORCE_BCN_IFS_8822B(x) \
  10939. (((x) >> BIT_SHIFT_FORCE_BCN_IFS_8822B) & BIT_MASK_FORCE_BCN_IFS_8822B)
  10940. #define BIT_SET_FORCE_BCN_IFS_8822B(x, v) \
  10941. (BIT_CLEAR_FORCE_BCN_IFS_8822B(x) | BIT_FORCE_BCN_IFS_8822B(v))
  10942. /* 2 REG_TXOP_MIN_8822B */
  10943. #define BIT_SHIFT_TXOP_MIN_8822B 0
  10944. #define BIT_MASK_TXOP_MIN_8822B 0x3fff
  10945. #define BIT_TXOP_MIN_8822B(x) \
  10946. (((x) & BIT_MASK_TXOP_MIN_8822B) << BIT_SHIFT_TXOP_MIN_8822B)
  10947. #define BITS_TXOP_MIN_8822B \
  10948. (BIT_MASK_TXOP_MIN_8822B << BIT_SHIFT_TXOP_MIN_8822B)
  10949. #define BIT_CLEAR_TXOP_MIN_8822B(x) ((x) & (~BITS_TXOP_MIN_8822B))
  10950. #define BIT_GET_TXOP_MIN_8822B(x) \
  10951. (((x) >> BIT_SHIFT_TXOP_MIN_8822B) & BIT_MASK_TXOP_MIN_8822B)
  10952. #define BIT_SET_TXOP_MIN_8822B(x, v) \
  10953. (BIT_CLEAR_TXOP_MIN_8822B(x) | BIT_TXOP_MIN_8822B(v))
  10954. /* 2 REG_PRE_BKF_TIME_8822B */
  10955. #define BIT_SHIFT_PRE_BKF_TIME_8822B 0
  10956. #define BIT_MASK_PRE_BKF_TIME_8822B 0xff
  10957. #define BIT_PRE_BKF_TIME_8822B(x) \
  10958. (((x) & BIT_MASK_PRE_BKF_TIME_8822B) << BIT_SHIFT_PRE_BKF_TIME_8822B)
  10959. #define BITS_PRE_BKF_TIME_8822B \
  10960. (BIT_MASK_PRE_BKF_TIME_8822B << BIT_SHIFT_PRE_BKF_TIME_8822B)
  10961. #define BIT_CLEAR_PRE_BKF_TIME_8822B(x) ((x) & (~BITS_PRE_BKF_TIME_8822B))
  10962. #define BIT_GET_PRE_BKF_TIME_8822B(x) \
  10963. (((x) >> BIT_SHIFT_PRE_BKF_TIME_8822B) & BIT_MASK_PRE_BKF_TIME_8822B)
  10964. #define BIT_SET_PRE_BKF_TIME_8822B(x, v) \
  10965. (BIT_CLEAR_PRE_BKF_TIME_8822B(x) | BIT_PRE_BKF_TIME_8822B(v))
  10966. /* 2 REG_CROSS_TXOP_CTRL_8822B */
  10967. #define BIT_DTIM_BYPASS_8822B BIT(2)
  10968. #define BIT_RTS_NAV_TXOP_8822B BIT(1)
  10969. #define BIT_NOT_CROSS_TXOP_8822B BIT(0)
  10970. /* 2 REG_ATIMWND2_8822B */
  10971. #define BIT_SHIFT_ATIMWND2_8822B 0
  10972. #define BIT_MASK_ATIMWND2_8822B 0xff
  10973. #define BIT_ATIMWND2_8822B(x) \
  10974. (((x) & BIT_MASK_ATIMWND2_8822B) << BIT_SHIFT_ATIMWND2_8822B)
  10975. #define BITS_ATIMWND2_8822B \
  10976. (BIT_MASK_ATIMWND2_8822B << BIT_SHIFT_ATIMWND2_8822B)
  10977. #define BIT_CLEAR_ATIMWND2_8822B(x) ((x) & (~BITS_ATIMWND2_8822B))
  10978. #define BIT_GET_ATIMWND2_8822B(x) \
  10979. (((x) >> BIT_SHIFT_ATIMWND2_8822B) & BIT_MASK_ATIMWND2_8822B)
  10980. #define BIT_SET_ATIMWND2_8822B(x, v) \
  10981. (BIT_CLEAR_ATIMWND2_8822B(x) | BIT_ATIMWND2_8822B(v))
  10982. /* 2 REG_ATIMWND3_8822B */
  10983. #define BIT_SHIFT_ATIMWND3_8822B 0
  10984. #define BIT_MASK_ATIMWND3_8822B 0xff
  10985. #define BIT_ATIMWND3_8822B(x) \
  10986. (((x) & BIT_MASK_ATIMWND3_8822B) << BIT_SHIFT_ATIMWND3_8822B)
  10987. #define BITS_ATIMWND3_8822B \
  10988. (BIT_MASK_ATIMWND3_8822B << BIT_SHIFT_ATIMWND3_8822B)
  10989. #define BIT_CLEAR_ATIMWND3_8822B(x) ((x) & (~BITS_ATIMWND3_8822B))
  10990. #define BIT_GET_ATIMWND3_8822B(x) \
  10991. (((x) >> BIT_SHIFT_ATIMWND3_8822B) & BIT_MASK_ATIMWND3_8822B)
  10992. #define BIT_SET_ATIMWND3_8822B(x, v) \
  10993. (BIT_CLEAR_ATIMWND3_8822B(x) | BIT_ATIMWND3_8822B(v))
  10994. /* 2 REG_ATIMWND4_8822B */
  10995. #define BIT_SHIFT_ATIMWND4_8822B 0
  10996. #define BIT_MASK_ATIMWND4_8822B 0xff
  10997. #define BIT_ATIMWND4_8822B(x) \
  10998. (((x) & BIT_MASK_ATIMWND4_8822B) << BIT_SHIFT_ATIMWND4_8822B)
  10999. #define BITS_ATIMWND4_8822B \
  11000. (BIT_MASK_ATIMWND4_8822B << BIT_SHIFT_ATIMWND4_8822B)
  11001. #define BIT_CLEAR_ATIMWND4_8822B(x) ((x) & (~BITS_ATIMWND4_8822B))
  11002. #define BIT_GET_ATIMWND4_8822B(x) \
  11003. (((x) >> BIT_SHIFT_ATIMWND4_8822B) & BIT_MASK_ATIMWND4_8822B)
  11004. #define BIT_SET_ATIMWND4_8822B(x, v) \
  11005. (BIT_CLEAR_ATIMWND4_8822B(x) | BIT_ATIMWND4_8822B(v))
  11006. /* 2 REG_ATIMWND5_8822B */
  11007. #define BIT_SHIFT_ATIMWND5_8822B 0
  11008. #define BIT_MASK_ATIMWND5_8822B 0xff
  11009. #define BIT_ATIMWND5_8822B(x) \
  11010. (((x) & BIT_MASK_ATIMWND5_8822B) << BIT_SHIFT_ATIMWND5_8822B)
  11011. #define BITS_ATIMWND5_8822B \
  11012. (BIT_MASK_ATIMWND5_8822B << BIT_SHIFT_ATIMWND5_8822B)
  11013. #define BIT_CLEAR_ATIMWND5_8822B(x) ((x) & (~BITS_ATIMWND5_8822B))
  11014. #define BIT_GET_ATIMWND5_8822B(x) \
  11015. (((x) >> BIT_SHIFT_ATIMWND5_8822B) & BIT_MASK_ATIMWND5_8822B)
  11016. #define BIT_SET_ATIMWND5_8822B(x, v) \
  11017. (BIT_CLEAR_ATIMWND5_8822B(x) | BIT_ATIMWND5_8822B(v))
  11018. /* 2 REG_ATIMWND6_8822B */
  11019. #define BIT_SHIFT_ATIMWND6_8822B 0
  11020. #define BIT_MASK_ATIMWND6_8822B 0xff
  11021. #define BIT_ATIMWND6_8822B(x) \
  11022. (((x) & BIT_MASK_ATIMWND6_8822B) << BIT_SHIFT_ATIMWND6_8822B)
  11023. #define BITS_ATIMWND6_8822B \
  11024. (BIT_MASK_ATIMWND6_8822B << BIT_SHIFT_ATIMWND6_8822B)
  11025. #define BIT_CLEAR_ATIMWND6_8822B(x) ((x) & (~BITS_ATIMWND6_8822B))
  11026. #define BIT_GET_ATIMWND6_8822B(x) \
  11027. (((x) >> BIT_SHIFT_ATIMWND6_8822B) & BIT_MASK_ATIMWND6_8822B)
  11028. #define BIT_SET_ATIMWND6_8822B(x, v) \
  11029. (BIT_CLEAR_ATIMWND6_8822B(x) | BIT_ATIMWND6_8822B(v))
  11030. /* 2 REG_ATIMWND7_8822B */
  11031. #define BIT_SHIFT_ATIMWND7_8822B 0
  11032. #define BIT_MASK_ATIMWND7_8822B 0xff
  11033. #define BIT_ATIMWND7_8822B(x) \
  11034. (((x) & BIT_MASK_ATIMWND7_8822B) << BIT_SHIFT_ATIMWND7_8822B)
  11035. #define BITS_ATIMWND7_8822B \
  11036. (BIT_MASK_ATIMWND7_8822B << BIT_SHIFT_ATIMWND7_8822B)
  11037. #define BIT_CLEAR_ATIMWND7_8822B(x) ((x) & (~BITS_ATIMWND7_8822B))
  11038. #define BIT_GET_ATIMWND7_8822B(x) \
  11039. (((x) >> BIT_SHIFT_ATIMWND7_8822B) & BIT_MASK_ATIMWND7_8822B)
  11040. #define BIT_SET_ATIMWND7_8822B(x, v) \
  11041. (BIT_CLEAR_ATIMWND7_8822B(x) | BIT_ATIMWND7_8822B(v))
  11042. /* 2 REG_ATIMUGT_8822B */
  11043. #define BIT_SHIFT_ATIM_URGENT_8822B 0
  11044. #define BIT_MASK_ATIM_URGENT_8822B 0xff
  11045. #define BIT_ATIM_URGENT_8822B(x) \
  11046. (((x) & BIT_MASK_ATIM_URGENT_8822B) << BIT_SHIFT_ATIM_URGENT_8822B)
  11047. #define BITS_ATIM_URGENT_8822B \
  11048. (BIT_MASK_ATIM_URGENT_8822B << BIT_SHIFT_ATIM_URGENT_8822B)
  11049. #define BIT_CLEAR_ATIM_URGENT_8822B(x) ((x) & (~BITS_ATIM_URGENT_8822B))
  11050. #define BIT_GET_ATIM_URGENT_8822B(x) \
  11051. (((x) >> BIT_SHIFT_ATIM_URGENT_8822B) & BIT_MASK_ATIM_URGENT_8822B)
  11052. #define BIT_SET_ATIM_URGENT_8822B(x, v) \
  11053. (BIT_CLEAR_ATIM_URGENT_8822B(x) | BIT_ATIM_URGENT_8822B(v))
  11054. /* 2 REG_HIQ_NO_LMT_EN_8822B */
  11055. #define BIT_HIQ_NO_LMT_EN_VAP7_8822B BIT(7)
  11056. #define BIT_HIQ_NO_LMT_EN_VAP6_8822B BIT(6)
  11057. #define BIT_HIQ_NO_LMT_EN_VAP5_8822B BIT(5)
  11058. #define BIT_HIQ_NO_LMT_EN_VAP4_8822B BIT(4)
  11059. #define BIT_HIQ_NO_LMT_EN_VAP3_8822B BIT(3)
  11060. #define BIT_HIQ_NO_LMT_EN_VAP2_8822B BIT(2)
  11061. #define BIT_HIQ_NO_LMT_EN_VAP1_8822B BIT(1)
  11062. #define BIT_HIQ_NO_LMT_EN_ROOT_8822B BIT(0)
  11063. /* 2 REG_DTIM_COUNTER_ROOT_8822B */
  11064. #define BIT_SHIFT_DTIM_COUNT_ROOT_8822B 0
  11065. #define BIT_MASK_DTIM_COUNT_ROOT_8822B 0xff
  11066. #define BIT_DTIM_COUNT_ROOT_8822B(x) \
  11067. (((x) & BIT_MASK_DTIM_COUNT_ROOT_8822B) \
  11068. << BIT_SHIFT_DTIM_COUNT_ROOT_8822B)
  11069. #define BITS_DTIM_COUNT_ROOT_8822B \
  11070. (BIT_MASK_DTIM_COUNT_ROOT_8822B << BIT_SHIFT_DTIM_COUNT_ROOT_8822B)
  11071. #define BIT_CLEAR_DTIM_COUNT_ROOT_8822B(x) ((x) & (~BITS_DTIM_COUNT_ROOT_8822B))
  11072. #define BIT_GET_DTIM_COUNT_ROOT_8822B(x) \
  11073. (((x) >> BIT_SHIFT_DTIM_COUNT_ROOT_8822B) & \
  11074. BIT_MASK_DTIM_COUNT_ROOT_8822B)
  11075. #define BIT_SET_DTIM_COUNT_ROOT_8822B(x, v) \
  11076. (BIT_CLEAR_DTIM_COUNT_ROOT_8822B(x) | BIT_DTIM_COUNT_ROOT_8822B(v))
  11077. /* 2 REG_DTIM_COUNTER_VAP1_8822B */
  11078. #define BIT_SHIFT_DTIM_COUNT_VAP1_8822B 0
  11079. #define BIT_MASK_DTIM_COUNT_VAP1_8822B 0xff
  11080. #define BIT_DTIM_COUNT_VAP1_8822B(x) \
  11081. (((x) & BIT_MASK_DTIM_COUNT_VAP1_8822B) \
  11082. << BIT_SHIFT_DTIM_COUNT_VAP1_8822B)
  11083. #define BITS_DTIM_COUNT_VAP1_8822B \
  11084. (BIT_MASK_DTIM_COUNT_VAP1_8822B << BIT_SHIFT_DTIM_COUNT_VAP1_8822B)
  11085. #define BIT_CLEAR_DTIM_COUNT_VAP1_8822B(x) ((x) & (~BITS_DTIM_COUNT_VAP1_8822B))
  11086. #define BIT_GET_DTIM_COUNT_VAP1_8822B(x) \
  11087. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP1_8822B) & \
  11088. BIT_MASK_DTIM_COUNT_VAP1_8822B)
  11089. #define BIT_SET_DTIM_COUNT_VAP1_8822B(x, v) \
  11090. (BIT_CLEAR_DTIM_COUNT_VAP1_8822B(x) | BIT_DTIM_COUNT_VAP1_8822B(v))
  11091. /* 2 REG_DTIM_COUNTER_VAP2_8822B */
  11092. #define BIT_SHIFT_DTIM_COUNT_VAP2_8822B 0
  11093. #define BIT_MASK_DTIM_COUNT_VAP2_8822B 0xff
  11094. #define BIT_DTIM_COUNT_VAP2_8822B(x) \
  11095. (((x) & BIT_MASK_DTIM_COUNT_VAP2_8822B) \
  11096. << BIT_SHIFT_DTIM_COUNT_VAP2_8822B)
  11097. #define BITS_DTIM_COUNT_VAP2_8822B \
  11098. (BIT_MASK_DTIM_COUNT_VAP2_8822B << BIT_SHIFT_DTIM_COUNT_VAP2_8822B)
  11099. #define BIT_CLEAR_DTIM_COUNT_VAP2_8822B(x) ((x) & (~BITS_DTIM_COUNT_VAP2_8822B))
  11100. #define BIT_GET_DTIM_COUNT_VAP2_8822B(x) \
  11101. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP2_8822B) & \
  11102. BIT_MASK_DTIM_COUNT_VAP2_8822B)
  11103. #define BIT_SET_DTIM_COUNT_VAP2_8822B(x, v) \
  11104. (BIT_CLEAR_DTIM_COUNT_VAP2_8822B(x) | BIT_DTIM_COUNT_VAP2_8822B(v))
  11105. /* 2 REG_DTIM_COUNTER_VAP3_8822B */
  11106. #define BIT_SHIFT_DTIM_COUNT_VAP3_8822B 0
  11107. #define BIT_MASK_DTIM_COUNT_VAP3_8822B 0xff
  11108. #define BIT_DTIM_COUNT_VAP3_8822B(x) \
  11109. (((x) & BIT_MASK_DTIM_COUNT_VAP3_8822B) \
  11110. << BIT_SHIFT_DTIM_COUNT_VAP3_8822B)
  11111. #define BITS_DTIM_COUNT_VAP3_8822B \
  11112. (BIT_MASK_DTIM_COUNT_VAP3_8822B << BIT_SHIFT_DTIM_COUNT_VAP3_8822B)
  11113. #define BIT_CLEAR_DTIM_COUNT_VAP3_8822B(x) ((x) & (~BITS_DTIM_COUNT_VAP3_8822B))
  11114. #define BIT_GET_DTIM_COUNT_VAP3_8822B(x) \
  11115. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP3_8822B) & \
  11116. BIT_MASK_DTIM_COUNT_VAP3_8822B)
  11117. #define BIT_SET_DTIM_COUNT_VAP3_8822B(x, v) \
  11118. (BIT_CLEAR_DTIM_COUNT_VAP3_8822B(x) | BIT_DTIM_COUNT_VAP3_8822B(v))
  11119. /* 2 REG_DTIM_COUNTER_VAP4_8822B */
  11120. #define BIT_SHIFT_DTIM_COUNT_VAP4_8822B 0
  11121. #define BIT_MASK_DTIM_COUNT_VAP4_8822B 0xff
  11122. #define BIT_DTIM_COUNT_VAP4_8822B(x) \
  11123. (((x) & BIT_MASK_DTIM_COUNT_VAP4_8822B) \
  11124. << BIT_SHIFT_DTIM_COUNT_VAP4_8822B)
  11125. #define BITS_DTIM_COUNT_VAP4_8822B \
  11126. (BIT_MASK_DTIM_COUNT_VAP4_8822B << BIT_SHIFT_DTIM_COUNT_VAP4_8822B)
  11127. #define BIT_CLEAR_DTIM_COUNT_VAP4_8822B(x) ((x) & (~BITS_DTIM_COUNT_VAP4_8822B))
  11128. #define BIT_GET_DTIM_COUNT_VAP4_8822B(x) \
  11129. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP4_8822B) & \
  11130. BIT_MASK_DTIM_COUNT_VAP4_8822B)
  11131. #define BIT_SET_DTIM_COUNT_VAP4_8822B(x, v) \
  11132. (BIT_CLEAR_DTIM_COUNT_VAP4_8822B(x) | BIT_DTIM_COUNT_VAP4_8822B(v))
  11133. /* 2 REG_DTIM_COUNTER_VAP5_8822B */
  11134. #define BIT_SHIFT_DTIM_COUNT_VAP5_8822B 0
  11135. #define BIT_MASK_DTIM_COUNT_VAP5_8822B 0xff
  11136. #define BIT_DTIM_COUNT_VAP5_8822B(x) \
  11137. (((x) & BIT_MASK_DTIM_COUNT_VAP5_8822B) \
  11138. << BIT_SHIFT_DTIM_COUNT_VAP5_8822B)
  11139. #define BITS_DTIM_COUNT_VAP5_8822B \
  11140. (BIT_MASK_DTIM_COUNT_VAP5_8822B << BIT_SHIFT_DTIM_COUNT_VAP5_8822B)
  11141. #define BIT_CLEAR_DTIM_COUNT_VAP5_8822B(x) ((x) & (~BITS_DTIM_COUNT_VAP5_8822B))
  11142. #define BIT_GET_DTIM_COUNT_VAP5_8822B(x) \
  11143. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP5_8822B) & \
  11144. BIT_MASK_DTIM_COUNT_VAP5_8822B)
  11145. #define BIT_SET_DTIM_COUNT_VAP5_8822B(x, v) \
  11146. (BIT_CLEAR_DTIM_COUNT_VAP5_8822B(x) | BIT_DTIM_COUNT_VAP5_8822B(v))
  11147. /* 2 REG_DTIM_COUNTER_VAP6_8822B */
  11148. #define BIT_SHIFT_DTIM_COUNT_VAP6_8822B 0
  11149. #define BIT_MASK_DTIM_COUNT_VAP6_8822B 0xff
  11150. #define BIT_DTIM_COUNT_VAP6_8822B(x) \
  11151. (((x) & BIT_MASK_DTIM_COUNT_VAP6_8822B) \
  11152. << BIT_SHIFT_DTIM_COUNT_VAP6_8822B)
  11153. #define BITS_DTIM_COUNT_VAP6_8822B \
  11154. (BIT_MASK_DTIM_COUNT_VAP6_8822B << BIT_SHIFT_DTIM_COUNT_VAP6_8822B)
  11155. #define BIT_CLEAR_DTIM_COUNT_VAP6_8822B(x) ((x) & (~BITS_DTIM_COUNT_VAP6_8822B))
  11156. #define BIT_GET_DTIM_COUNT_VAP6_8822B(x) \
  11157. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP6_8822B) & \
  11158. BIT_MASK_DTIM_COUNT_VAP6_8822B)
  11159. #define BIT_SET_DTIM_COUNT_VAP6_8822B(x, v) \
  11160. (BIT_CLEAR_DTIM_COUNT_VAP6_8822B(x) | BIT_DTIM_COUNT_VAP6_8822B(v))
  11161. /* 2 REG_DTIM_COUNTER_VAP7_8822B */
  11162. #define BIT_SHIFT_DTIM_COUNT_VAP7_8822B 0
  11163. #define BIT_MASK_DTIM_COUNT_VAP7_8822B 0xff
  11164. #define BIT_DTIM_COUNT_VAP7_8822B(x) \
  11165. (((x) & BIT_MASK_DTIM_COUNT_VAP7_8822B) \
  11166. << BIT_SHIFT_DTIM_COUNT_VAP7_8822B)
  11167. #define BITS_DTIM_COUNT_VAP7_8822B \
  11168. (BIT_MASK_DTIM_COUNT_VAP7_8822B << BIT_SHIFT_DTIM_COUNT_VAP7_8822B)
  11169. #define BIT_CLEAR_DTIM_COUNT_VAP7_8822B(x) ((x) & (~BITS_DTIM_COUNT_VAP7_8822B))
  11170. #define BIT_GET_DTIM_COUNT_VAP7_8822B(x) \
  11171. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP7_8822B) & \
  11172. BIT_MASK_DTIM_COUNT_VAP7_8822B)
  11173. #define BIT_SET_DTIM_COUNT_VAP7_8822B(x, v) \
  11174. (BIT_CLEAR_DTIM_COUNT_VAP7_8822B(x) | BIT_DTIM_COUNT_VAP7_8822B(v))
  11175. /* 2 REG_DIS_ATIM_8822B */
  11176. #define BIT_DIS_ATIM_VAP7_8822B BIT(7)
  11177. #define BIT_DIS_ATIM_VAP6_8822B BIT(6)
  11178. #define BIT_DIS_ATIM_VAP5_8822B BIT(5)
  11179. #define BIT_DIS_ATIM_VAP4_8822B BIT(4)
  11180. #define BIT_DIS_ATIM_VAP3_8822B BIT(3)
  11181. #define BIT_DIS_ATIM_VAP2_8822B BIT(2)
  11182. #define BIT_DIS_ATIM_VAP1_8822B BIT(1)
  11183. #define BIT_DIS_ATIM_ROOT_8822B BIT(0)
  11184. /* 2 REG_EARLY_128US_8822B */
  11185. #define BIT_SHIFT_TSFT_SEL_TIMER1_8822B 3
  11186. #define BIT_MASK_TSFT_SEL_TIMER1_8822B 0x7
  11187. #define BIT_TSFT_SEL_TIMER1_8822B(x) \
  11188. (((x) & BIT_MASK_TSFT_SEL_TIMER1_8822B) \
  11189. << BIT_SHIFT_TSFT_SEL_TIMER1_8822B)
  11190. #define BITS_TSFT_SEL_TIMER1_8822B \
  11191. (BIT_MASK_TSFT_SEL_TIMER1_8822B << BIT_SHIFT_TSFT_SEL_TIMER1_8822B)
  11192. #define BIT_CLEAR_TSFT_SEL_TIMER1_8822B(x) ((x) & (~BITS_TSFT_SEL_TIMER1_8822B))
  11193. #define BIT_GET_TSFT_SEL_TIMER1_8822B(x) \
  11194. (((x) >> BIT_SHIFT_TSFT_SEL_TIMER1_8822B) & \
  11195. BIT_MASK_TSFT_SEL_TIMER1_8822B)
  11196. #define BIT_SET_TSFT_SEL_TIMER1_8822B(x, v) \
  11197. (BIT_CLEAR_TSFT_SEL_TIMER1_8822B(x) | BIT_TSFT_SEL_TIMER1_8822B(v))
  11198. #define BIT_SHIFT_EARLY_128US_8822B 0
  11199. #define BIT_MASK_EARLY_128US_8822B 0x7
  11200. #define BIT_EARLY_128US_8822B(x) \
  11201. (((x) & BIT_MASK_EARLY_128US_8822B) << BIT_SHIFT_EARLY_128US_8822B)
  11202. #define BITS_EARLY_128US_8822B \
  11203. (BIT_MASK_EARLY_128US_8822B << BIT_SHIFT_EARLY_128US_8822B)
  11204. #define BIT_CLEAR_EARLY_128US_8822B(x) ((x) & (~BITS_EARLY_128US_8822B))
  11205. #define BIT_GET_EARLY_128US_8822B(x) \
  11206. (((x) >> BIT_SHIFT_EARLY_128US_8822B) & BIT_MASK_EARLY_128US_8822B)
  11207. #define BIT_SET_EARLY_128US_8822B(x, v) \
  11208. (BIT_CLEAR_EARLY_128US_8822B(x) | BIT_EARLY_128US_8822B(v))
  11209. /* 2 REG_P2PPS1_CTRL_8822B */
  11210. #define BIT_P2P1_CTW_ALLSTASLEEP_8822B BIT(7)
  11211. #define BIT_P2P1_OFF_DISTX_EN_8822B BIT(6)
  11212. #define BIT_P2P1_PWR_MGT_EN_8822B BIT(5)
  11213. #define BIT_P2P1_NOA1_EN_8822B BIT(2)
  11214. #define BIT_P2P1_NOA0_EN_8822B BIT(1)
  11215. /* 2 REG_P2PPS2_CTRL_8822B */
  11216. #define BIT_P2P2_CTW_ALLSTASLEEP_8822B BIT(7)
  11217. #define BIT_P2P2_OFF_DISTX_EN_8822B BIT(6)
  11218. #define BIT_P2P2_PWR_MGT_EN_8822B BIT(5)
  11219. #define BIT_P2P2_NOA1_EN_8822B BIT(2)
  11220. #define BIT_P2P2_NOA0_EN_8822B BIT(1)
  11221. /* 2 REG_TIMER0_SRC_SEL_8822B */
  11222. #define BIT_SHIFT_SYNC_CLI_SEL_8822B 4
  11223. #define BIT_MASK_SYNC_CLI_SEL_8822B 0x7
  11224. #define BIT_SYNC_CLI_SEL_8822B(x) \
  11225. (((x) & BIT_MASK_SYNC_CLI_SEL_8822B) << BIT_SHIFT_SYNC_CLI_SEL_8822B)
  11226. #define BITS_SYNC_CLI_SEL_8822B \
  11227. (BIT_MASK_SYNC_CLI_SEL_8822B << BIT_SHIFT_SYNC_CLI_SEL_8822B)
  11228. #define BIT_CLEAR_SYNC_CLI_SEL_8822B(x) ((x) & (~BITS_SYNC_CLI_SEL_8822B))
  11229. #define BIT_GET_SYNC_CLI_SEL_8822B(x) \
  11230. (((x) >> BIT_SHIFT_SYNC_CLI_SEL_8822B) & BIT_MASK_SYNC_CLI_SEL_8822B)
  11231. #define BIT_SET_SYNC_CLI_SEL_8822B(x, v) \
  11232. (BIT_CLEAR_SYNC_CLI_SEL_8822B(x) | BIT_SYNC_CLI_SEL_8822B(v))
  11233. #define BIT_SHIFT_TSFT_SEL_TIMER0_8822B 0
  11234. #define BIT_MASK_TSFT_SEL_TIMER0_8822B 0x7
  11235. #define BIT_TSFT_SEL_TIMER0_8822B(x) \
  11236. (((x) & BIT_MASK_TSFT_SEL_TIMER0_8822B) \
  11237. << BIT_SHIFT_TSFT_SEL_TIMER0_8822B)
  11238. #define BITS_TSFT_SEL_TIMER0_8822B \
  11239. (BIT_MASK_TSFT_SEL_TIMER0_8822B << BIT_SHIFT_TSFT_SEL_TIMER0_8822B)
  11240. #define BIT_CLEAR_TSFT_SEL_TIMER0_8822B(x) ((x) & (~BITS_TSFT_SEL_TIMER0_8822B))
  11241. #define BIT_GET_TSFT_SEL_TIMER0_8822B(x) \
  11242. (((x) >> BIT_SHIFT_TSFT_SEL_TIMER0_8822B) & \
  11243. BIT_MASK_TSFT_SEL_TIMER0_8822B)
  11244. #define BIT_SET_TSFT_SEL_TIMER0_8822B(x, v) \
  11245. (BIT_CLEAR_TSFT_SEL_TIMER0_8822B(x) | BIT_TSFT_SEL_TIMER0_8822B(v))
  11246. /* 2 REG_NOA_UNIT_SEL_8822B */
  11247. #define BIT_SHIFT_NOA_UNIT2_SEL_8822B 8
  11248. #define BIT_MASK_NOA_UNIT2_SEL_8822B 0x7
  11249. #define BIT_NOA_UNIT2_SEL_8822B(x) \
  11250. (((x) & BIT_MASK_NOA_UNIT2_SEL_8822B) << BIT_SHIFT_NOA_UNIT2_SEL_8822B)
  11251. #define BITS_NOA_UNIT2_SEL_8822B \
  11252. (BIT_MASK_NOA_UNIT2_SEL_8822B << BIT_SHIFT_NOA_UNIT2_SEL_8822B)
  11253. #define BIT_CLEAR_NOA_UNIT2_SEL_8822B(x) ((x) & (~BITS_NOA_UNIT2_SEL_8822B))
  11254. #define BIT_GET_NOA_UNIT2_SEL_8822B(x) \
  11255. (((x) >> BIT_SHIFT_NOA_UNIT2_SEL_8822B) & BIT_MASK_NOA_UNIT2_SEL_8822B)
  11256. #define BIT_SET_NOA_UNIT2_SEL_8822B(x, v) \
  11257. (BIT_CLEAR_NOA_UNIT2_SEL_8822B(x) | BIT_NOA_UNIT2_SEL_8822B(v))
  11258. #define BIT_SHIFT_NOA_UNIT1_SEL_8822B 4
  11259. #define BIT_MASK_NOA_UNIT1_SEL_8822B 0x7
  11260. #define BIT_NOA_UNIT1_SEL_8822B(x) \
  11261. (((x) & BIT_MASK_NOA_UNIT1_SEL_8822B) << BIT_SHIFT_NOA_UNIT1_SEL_8822B)
  11262. #define BITS_NOA_UNIT1_SEL_8822B \
  11263. (BIT_MASK_NOA_UNIT1_SEL_8822B << BIT_SHIFT_NOA_UNIT1_SEL_8822B)
  11264. #define BIT_CLEAR_NOA_UNIT1_SEL_8822B(x) ((x) & (~BITS_NOA_UNIT1_SEL_8822B))
  11265. #define BIT_GET_NOA_UNIT1_SEL_8822B(x) \
  11266. (((x) >> BIT_SHIFT_NOA_UNIT1_SEL_8822B) & BIT_MASK_NOA_UNIT1_SEL_8822B)
  11267. #define BIT_SET_NOA_UNIT1_SEL_8822B(x, v) \
  11268. (BIT_CLEAR_NOA_UNIT1_SEL_8822B(x) | BIT_NOA_UNIT1_SEL_8822B(v))
  11269. #define BIT_SHIFT_NOA_UNIT0_SEL_8822B 0
  11270. #define BIT_MASK_NOA_UNIT0_SEL_8822B 0x7
  11271. #define BIT_NOA_UNIT0_SEL_8822B(x) \
  11272. (((x) & BIT_MASK_NOA_UNIT0_SEL_8822B) << BIT_SHIFT_NOA_UNIT0_SEL_8822B)
  11273. #define BITS_NOA_UNIT0_SEL_8822B \
  11274. (BIT_MASK_NOA_UNIT0_SEL_8822B << BIT_SHIFT_NOA_UNIT0_SEL_8822B)
  11275. #define BIT_CLEAR_NOA_UNIT0_SEL_8822B(x) ((x) & (~BITS_NOA_UNIT0_SEL_8822B))
  11276. #define BIT_GET_NOA_UNIT0_SEL_8822B(x) \
  11277. (((x) >> BIT_SHIFT_NOA_UNIT0_SEL_8822B) & BIT_MASK_NOA_UNIT0_SEL_8822B)
  11278. #define BIT_SET_NOA_UNIT0_SEL_8822B(x, v) \
  11279. (BIT_CLEAR_NOA_UNIT0_SEL_8822B(x) | BIT_NOA_UNIT0_SEL_8822B(v))
  11280. /* 2 REG_P2POFF_DIS_TXTIME_8822B */
  11281. #define BIT_SHIFT_P2POFF_DIS_TXTIME_8822B 0
  11282. #define BIT_MASK_P2POFF_DIS_TXTIME_8822B 0xff
  11283. #define BIT_P2POFF_DIS_TXTIME_8822B(x) \
  11284. (((x) & BIT_MASK_P2POFF_DIS_TXTIME_8822B) \
  11285. << BIT_SHIFT_P2POFF_DIS_TXTIME_8822B)
  11286. #define BITS_P2POFF_DIS_TXTIME_8822B \
  11287. (BIT_MASK_P2POFF_DIS_TXTIME_8822B << BIT_SHIFT_P2POFF_DIS_TXTIME_8822B)
  11288. #define BIT_CLEAR_P2POFF_DIS_TXTIME_8822B(x) \
  11289. ((x) & (~BITS_P2POFF_DIS_TXTIME_8822B))
  11290. #define BIT_GET_P2POFF_DIS_TXTIME_8822B(x) \
  11291. (((x) >> BIT_SHIFT_P2POFF_DIS_TXTIME_8822B) & \
  11292. BIT_MASK_P2POFF_DIS_TXTIME_8822B)
  11293. #define BIT_SET_P2POFF_DIS_TXTIME_8822B(x, v) \
  11294. (BIT_CLEAR_P2POFF_DIS_TXTIME_8822B(x) | BIT_P2POFF_DIS_TXTIME_8822B(v))
  11295. /* 2 REG_MBSSID_BCN_SPACE2_8822B */
  11296. #define BIT_SHIFT_BCN_SPACE_CLINT2_8822B 16
  11297. #define BIT_MASK_BCN_SPACE_CLINT2_8822B 0xfff
  11298. #define BIT_BCN_SPACE_CLINT2_8822B(x) \
  11299. (((x) & BIT_MASK_BCN_SPACE_CLINT2_8822B) \
  11300. << BIT_SHIFT_BCN_SPACE_CLINT2_8822B)
  11301. #define BITS_BCN_SPACE_CLINT2_8822B \
  11302. (BIT_MASK_BCN_SPACE_CLINT2_8822B << BIT_SHIFT_BCN_SPACE_CLINT2_8822B)
  11303. #define BIT_CLEAR_BCN_SPACE_CLINT2_8822B(x) \
  11304. ((x) & (~BITS_BCN_SPACE_CLINT2_8822B))
  11305. #define BIT_GET_BCN_SPACE_CLINT2_8822B(x) \
  11306. (((x) >> BIT_SHIFT_BCN_SPACE_CLINT2_8822B) & \
  11307. BIT_MASK_BCN_SPACE_CLINT2_8822B)
  11308. #define BIT_SET_BCN_SPACE_CLINT2_8822B(x, v) \
  11309. (BIT_CLEAR_BCN_SPACE_CLINT2_8822B(x) | BIT_BCN_SPACE_CLINT2_8822B(v))
  11310. #define BIT_SHIFT_BCN_SPACE_CLINT1_8822B 0
  11311. #define BIT_MASK_BCN_SPACE_CLINT1_8822B 0xfff
  11312. #define BIT_BCN_SPACE_CLINT1_8822B(x) \
  11313. (((x) & BIT_MASK_BCN_SPACE_CLINT1_8822B) \
  11314. << BIT_SHIFT_BCN_SPACE_CLINT1_8822B)
  11315. #define BITS_BCN_SPACE_CLINT1_8822B \
  11316. (BIT_MASK_BCN_SPACE_CLINT1_8822B << BIT_SHIFT_BCN_SPACE_CLINT1_8822B)
  11317. #define BIT_CLEAR_BCN_SPACE_CLINT1_8822B(x) \
  11318. ((x) & (~BITS_BCN_SPACE_CLINT1_8822B))
  11319. #define BIT_GET_BCN_SPACE_CLINT1_8822B(x) \
  11320. (((x) >> BIT_SHIFT_BCN_SPACE_CLINT1_8822B) & \
  11321. BIT_MASK_BCN_SPACE_CLINT1_8822B)
  11322. #define BIT_SET_BCN_SPACE_CLINT1_8822B(x, v) \
  11323. (BIT_CLEAR_BCN_SPACE_CLINT1_8822B(x) | BIT_BCN_SPACE_CLINT1_8822B(v))
  11324. /* 2 REG_MBSSID_BCN_SPACE3_8822B */
  11325. #define BIT_SHIFT_SUB_BCN_SPACE_8822B 16
  11326. #define BIT_MASK_SUB_BCN_SPACE_8822B 0xff
  11327. #define BIT_SUB_BCN_SPACE_8822B(x) \
  11328. (((x) & BIT_MASK_SUB_BCN_SPACE_8822B) << BIT_SHIFT_SUB_BCN_SPACE_8822B)
  11329. #define BITS_SUB_BCN_SPACE_8822B \
  11330. (BIT_MASK_SUB_BCN_SPACE_8822B << BIT_SHIFT_SUB_BCN_SPACE_8822B)
  11331. #define BIT_CLEAR_SUB_BCN_SPACE_8822B(x) ((x) & (~BITS_SUB_BCN_SPACE_8822B))
  11332. #define BIT_GET_SUB_BCN_SPACE_8822B(x) \
  11333. (((x) >> BIT_SHIFT_SUB_BCN_SPACE_8822B) & BIT_MASK_SUB_BCN_SPACE_8822B)
  11334. #define BIT_SET_SUB_BCN_SPACE_8822B(x, v) \
  11335. (BIT_CLEAR_SUB_BCN_SPACE_8822B(x) | BIT_SUB_BCN_SPACE_8822B(v))
  11336. #define BIT_SHIFT_BCN_SPACE_CLINT3_8822B 0
  11337. #define BIT_MASK_BCN_SPACE_CLINT3_8822B 0xfff
  11338. #define BIT_BCN_SPACE_CLINT3_8822B(x) \
  11339. (((x) & BIT_MASK_BCN_SPACE_CLINT3_8822B) \
  11340. << BIT_SHIFT_BCN_SPACE_CLINT3_8822B)
  11341. #define BITS_BCN_SPACE_CLINT3_8822B \
  11342. (BIT_MASK_BCN_SPACE_CLINT3_8822B << BIT_SHIFT_BCN_SPACE_CLINT3_8822B)
  11343. #define BIT_CLEAR_BCN_SPACE_CLINT3_8822B(x) \
  11344. ((x) & (~BITS_BCN_SPACE_CLINT3_8822B))
  11345. #define BIT_GET_BCN_SPACE_CLINT3_8822B(x) \
  11346. (((x) >> BIT_SHIFT_BCN_SPACE_CLINT3_8822B) & \
  11347. BIT_MASK_BCN_SPACE_CLINT3_8822B)
  11348. #define BIT_SET_BCN_SPACE_CLINT3_8822B(x, v) \
  11349. (BIT_CLEAR_BCN_SPACE_CLINT3_8822B(x) | BIT_BCN_SPACE_CLINT3_8822B(v))
  11350. /* 2 REG_ACMHWCTRL_8822B */
  11351. #define BIT_BEQ_ACM_STATUS_8822B BIT(7)
  11352. #define BIT_VIQ_ACM_STATUS_8822B BIT(6)
  11353. #define BIT_VOQ_ACM_STATUS_8822B BIT(5)
  11354. #define BIT_BEQ_ACM_EN_8822B BIT(3)
  11355. #define BIT_VIQ_ACM_EN_8822B BIT(2)
  11356. #define BIT_VOQ_ACM_EN_8822B BIT(1)
  11357. #define BIT_ACMHWEN_8822B BIT(0)
  11358. /* 2 REG_ACMRSTCTRL_8822B */
  11359. #define BIT_BE_ACM_RESET_USED_TIME_8822B BIT(2)
  11360. #define BIT_VI_ACM_RESET_USED_TIME_8822B BIT(1)
  11361. #define BIT_VO_ACM_RESET_USED_TIME_8822B BIT(0)
  11362. /* 2 REG_ACMAVG_8822B */
  11363. #define BIT_SHIFT_AVGPERIOD_8822B 0
  11364. #define BIT_MASK_AVGPERIOD_8822B 0xffff
  11365. #define BIT_AVGPERIOD_8822B(x) \
  11366. (((x) & BIT_MASK_AVGPERIOD_8822B) << BIT_SHIFT_AVGPERIOD_8822B)
  11367. #define BITS_AVGPERIOD_8822B \
  11368. (BIT_MASK_AVGPERIOD_8822B << BIT_SHIFT_AVGPERIOD_8822B)
  11369. #define BIT_CLEAR_AVGPERIOD_8822B(x) ((x) & (~BITS_AVGPERIOD_8822B))
  11370. #define BIT_GET_AVGPERIOD_8822B(x) \
  11371. (((x) >> BIT_SHIFT_AVGPERIOD_8822B) & BIT_MASK_AVGPERIOD_8822B)
  11372. #define BIT_SET_AVGPERIOD_8822B(x, v) \
  11373. (BIT_CLEAR_AVGPERIOD_8822B(x) | BIT_AVGPERIOD_8822B(v))
  11374. /* 2 REG_VO_ADMTIME_8822B */
  11375. #define BIT_SHIFT_VO_ADMITTED_TIME_8822B 0
  11376. #define BIT_MASK_VO_ADMITTED_TIME_8822B 0xffff
  11377. #define BIT_VO_ADMITTED_TIME_8822B(x) \
  11378. (((x) & BIT_MASK_VO_ADMITTED_TIME_8822B) \
  11379. << BIT_SHIFT_VO_ADMITTED_TIME_8822B)
  11380. #define BITS_VO_ADMITTED_TIME_8822B \
  11381. (BIT_MASK_VO_ADMITTED_TIME_8822B << BIT_SHIFT_VO_ADMITTED_TIME_8822B)
  11382. #define BIT_CLEAR_VO_ADMITTED_TIME_8822B(x) \
  11383. ((x) & (~BITS_VO_ADMITTED_TIME_8822B))
  11384. #define BIT_GET_VO_ADMITTED_TIME_8822B(x) \
  11385. (((x) >> BIT_SHIFT_VO_ADMITTED_TIME_8822B) & \
  11386. BIT_MASK_VO_ADMITTED_TIME_8822B)
  11387. #define BIT_SET_VO_ADMITTED_TIME_8822B(x, v) \
  11388. (BIT_CLEAR_VO_ADMITTED_TIME_8822B(x) | BIT_VO_ADMITTED_TIME_8822B(v))
  11389. /* 2 REG_VI_ADMTIME_8822B */
  11390. #define BIT_SHIFT_VI_ADMITTED_TIME_8822B 0
  11391. #define BIT_MASK_VI_ADMITTED_TIME_8822B 0xffff
  11392. #define BIT_VI_ADMITTED_TIME_8822B(x) \
  11393. (((x) & BIT_MASK_VI_ADMITTED_TIME_8822B) \
  11394. << BIT_SHIFT_VI_ADMITTED_TIME_8822B)
  11395. #define BITS_VI_ADMITTED_TIME_8822B \
  11396. (BIT_MASK_VI_ADMITTED_TIME_8822B << BIT_SHIFT_VI_ADMITTED_TIME_8822B)
  11397. #define BIT_CLEAR_VI_ADMITTED_TIME_8822B(x) \
  11398. ((x) & (~BITS_VI_ADMITTED_TIME_8822B))
  11399. #define BIT_GET_VI_ADMITTED_TIME_8822B(x) \
  11400. (((x) >> BIT_SHIFT_VI_ADMITTED_TIME_8822B) & \
  11401. BIT_MASK_VI_ADMITTED_TIME_8822B)
  11402. #define BIT_SET_VI_ADMITTED_TIME_8822B(x, v) \
  11403. (BIT_CLEAR_VI_ADMITTED_TIME_8822B(x) | BIT_VI_ADMITTED_TIME_8822B(v))
  11404. /* 2 REG_BE_ADMTIME_8822B */
  11405. #define BIT_SHIFT_BE_ADMITTED_TIME_8822B 0
  11406. #define BIT_MASK_BE_ADMITTED_TIME_8822B 0xffff
  11407. #define BIT_BE_ADMITTED_TIME_8822B(x) \
  11408. (((x) & BIT_MASK_BE_ADMITTED_TIME_8822B) \
  11409. << BIT_SHIFT_BE_ADMITTED_TIME_8822B)
  11410. #define BITS_BE_ADMITTED_TIME_8822B \
  11411. (BIT_MASK_BE_ADMITTED_TIME_8822B << BIT_SHIFT_BE_ADMITTED_TIME_8822B)
  11412. #define BIT_CLEAR_BE_ADMITTED_TIME_8822B(x) \
  11413. ((x) & (~BITS_BE_ADMITTED_TIME_8822B))
  11414. #define BIT_GET_BE_ADMITTED_TIME_8822B(x) \
  11415. (((x) >> BIT_SHIFT_BE_ADMITTED_TIME_8822B) & \
  11416. BIT_MASK_BE_ADMITTED_TIME_8822B)
  11417. #define BIT_SET_BE_ADMITTED_TIME_8822B(x, v) \
  11418. (BIT_CLEAR_BE_ADMITTED_TIME_8822B(x) | BIT_BE_ADMITTED_TIME_8822B(v))
  11419. /* 2 REG_EDCA_RANDOM_GEN_8822B */
  11420. #define BIT_SHIFT_RANDOM_GEN_8822B 0
  11421. #define BIT_MASK_RANDOM_GEN_8822B 0xffffff
  11422. #define BIT_RANDOM_GEN_8822B(x) \
  11423. (((x) & BIT_MASK_RANDOM_GEN_8822B) << BIT_SHIFT_RANDOM_GEN_8822B)
  11424. #define BITS_RANDOM_GEN_8822B \
  11425. (BIT_MASK_RANDOM_GEN_8822B << BIT_SHIFT_RANDOM_GEN_8822B)
  11426. #define BIT_CLEAR_RANDOM_GEN_8822B(x) ((x) & (~BITS_RANDOM_GEN_8822B))
  11427. #define BIT_GET_RANDOM_GEN_8822B(x) \
  11428. (((x) >> BIT_SHIFT_RANDOM_GEN_8822B) & BIT_MASK_RANDOM_GEN_8822B)
  11429. #define BIT_SET_RANDOM_GEN_8822B(x, v) \
  11430. (BIT_CLEAR_RANDOM_GEN_8822B(x) | BIT_RANDOM_GEN_8822B(v))
  11431. /* 2 REG_TXCMD_NOA_SEL_8822B */
  11432. #define BIT_SHIFT_NOA_SEL_V2_8822B 4
  11433. #define BIT_MASK_NOA_SEL_V2_8822B 0x7
  11434. #define BIT_NOA_SEL_V2_8822B(x) \
  11435. (((x) & BIT_MASK_NOA_SEL_V2_8822B) << BIT_SHIFT_NOA_SEL_V2_8822B)
  11436. #define BITS_NOA_SEL_V2_8822B \
  11437. (BIT_MASK_NOA_SEL_V2_8822B << BIT_SHIFT_NOA_SEL_V2_8822B)
  11438. #define BIT_CLEAR_NOA_SEL_V2_8822B(x) ((x) & (~BITS_NOA_SEL_V2_8822B))
  11439. #define BIT_GET_NOA_SEL_V2_8822B(x) \
  11440. (((x) >> BIT_SHIFT_NOA_SEL_V2_8822B) & BIT_MASK_NOA_SEL_V2_8822B)
  11441. #define BIT_SET_NOA_SEL_V2_8822B(x, v) \
  11442. (BIT_CLEAR_NOA_SEL_V2_8822B(x) | BIT_NOA_SEL_V2_8822B(v))
  11443. #define BIT_SHIFT_TXCMD_SEG_SEL_8822B 0
  11444. #define BIT_MASK_TXCMD_SEG_SEL_8822B 0xf
  11445. #define BIT_TXCMD_SEG_SEL_8822B(x) \
  11446. (((x) & BIT_MASK_TXCMD_SEG_SEL_8822B) << BIT_SHIFT_TXCMD_SEG_SEL_8822B)
  11447. #define BITS_TXCMD_SEG_SEL_8822B \
  11448. (BIT_MASK_TXCMD_SEG_SEL_8822B << BIT_SHIFT_TXCMD_SEG_SEL_8822B)
  11449. #define BIT_CLEAR_TXCMD_SEG_SEL_8822B(x) ((x) & (~BITS_TXCMD_SEG_SEL_8822B))
  11450. #define BIT_GET_TXCMD_SEG_SEL_8822B(x) \
  11451. (((x) >> BIT_SHIFT_TXCMD_SEG_SEL_8822B) & BIT_MASK_TXCMD_SEG_SEL_8822B)
  11452. #define BIT_SET_TXCMD_SEG_SEL_8822B(x, v) \
  11453. (BIT_CLEAR_TXCMD_SEG_SEL_8822B(x) | BIT_TXCMD_SEG_SEL_8822B(v))
  11454. /* 2 REG_NOA_PARAM_8822B */
  11455. #define BIT_SHIFT_NOA_COUNT_8822B (96 & CPU_OPT_WIDTH)
  11456. #define BIT_MASK_NOA_COUNT_8822B 0xff
  11457. #define BIT_NOA_COUNT_8822B(x) \
  11458. (((x) & BIT_MASK_NOA_COUNT_8822B) << BIT_SHIFT_NOA_COUNT_8822B)
  11459. #define BITS_NOA_COUNT_8822B \
  11460. (BIT_MASK_NOA_COUNT_8822B << BIT_SHIFT_NOA_COUNT_8822B)
  11461. #define BIT_CLEAR_NOA_COUNT_8822B(x) ((x) & (~BITS_NOA_COUNT_8822B))
  11462. #define BIT_GET_NOA_COUNT_8822B(x) \
  11463. (((x) >> BIT_SHIFT_NOA_COUNT_8822B) & BIT_MASK_NOA_COUNT_8822B)
  11464. #define BIT_SET_NOA_COUNT_8822B(x, v) \
  11465. (BIT_CLEAR_NOA_COUNT_8822B(x) | BIT_NOA_COUNT_8822B(v))
  11466. #define BIT_SHIFT_NOA_START_TIME_8822B (64 & CPU_OPT_WIDTH)
  11467. #define BIT_MASK_NOA_START_TIME_8822B 0xffffffffL
  11468. #define BIT_NOA_START_TIME_8822B(x) \
  11469. (((x) & BIT_MASK_NOA_START_TIME_8822B) \
  11470. << BIT_SHIFT_NOA_START_TIME_8822B)
  11471. #define BITS_NOA_START_TIME_8822B \
  11472. (BIT_MASK_NOA_START_TIME_8822B << BIT_SHIFT_NOA_START_TIME_8822B)
  11473. #define BIT_CLEAR_NOA_START_TIME_8822B(x) ((x) & (~BITS_NOA_START_TIME_8822B))
  11474. #define BIT_GET_NOA_START_TIME_8822B(x) \
  11475. (((x) >> BIT_SHIFT_NOA_START_TIME_8822B) & \
  11476. BIT_MASK_NOA_START_TIME_8822B)
  11477. #define BIT_SET_NOA_START_TIME_8822B(x, v) \
  11478. (BIT_CLEAR_NOA_START_TIME_8822B(x) | BIT_NOA_START_TIME_8822B(v))
  11479. #define BIT_SHIFT_NOA_INTERVAL_8822B (32 & CPU_OPT_WIDTH)
  11480. #define BIT_MASK_NOA_INTERVAL_8822B 0xffffffffL
  11481. #define BIT_NOA_INTERVAL_8822B(x) \
  11482. (((x) & BIT_MASK_NOA_INTERVAL_8822B) << BIT_SHIFT_NOA_INTERVAL_8822B)
  11483. #define BITS_NOA_INTERVAL_8822B \
  11484. (BIT_MASK_NOA_INTERVAL_8822B << BIT_SHIFT_NOA_INTERVAL_8822B)
  11485. #define BIT_CLEAR_NOA_INTERVAL_8822B(x) ((x) & (~BITS_NOA_INTERVAL_8822B))
  11486. #define BIT_GET_NOA_INTERVAL_8822B(x) \
  11487. (((x) >> BIT_SHIFT_NOA_INTERVAL_8822B) & BIT_MASK_NOA_INTERVAL_8822B)
  11488. #define BIT_SET_NOA_INTERVAL_8822B(x, v) \
  11489. (BIT_CLEAR_NOA_INTERVAL_8822B(x) | BIT_NOA_INTERVAL_8822B(v))
  11490. #define BIT_SHIFT_NOA_DURATION_8822B 0
  11491. #define BIT_MASK_NOA_DURATION_8822B 0xffffffffL
  11492. #define BIT_NOA_DURATION_8822B(x) \
  11493. (((x) & BIT_MASK_NOA_DURATION_8822B) << BIT_SHIFT_NOA_DURATION_8822B)
  11494. #define BITS_NOA_DURATION_8822B \
  11495. (BIT_MASK_NOA_DURATION_8822B << BIT_SHIFT_NOA_DURATION_8822B)
  11496. #define BIT_CLEAR_NOA_DURATION_8822B(x) ((x) & (~BITS_NOA_DURATION_8822B))
  11497. #define BIT_GET_NOA_DURATION_8822B(x) \
  11498. (((x) >> BIT_SHIFT_NOA_DURATION_8822B) & BIT_MASK_NOA_DURATION_8822B)
  11499. #define BIT_SET_NOA_DURATION_8822B(x, v) \
  11500. (BIT_CLEAR_NOA_DURATION_8822B(x) | BIT_NOA_DURATION_8822B(v))
  11501. /* 2 REG_P2P_RST_8822B */
  11502. #define BIT_P2P2_PWR_RST1_8822B BIT(5)
  11503. #define BIT_P2P2_PWR_RST0_8822B BIT(4)
  11504. #define BIT_P2P1_PWR_RST1_8822B BIT(3)
  11505. #define BIT_P2P1_PWR_RST0_8822B BIT(2)
  11506. #define BIT_P2P_PWR_RST1_V1_8822B BIT(1)
  11507. #define BIT_P2P_PWR_RST0_V1_8822B BIT(0)
  11508. /* 2 REG_SCHEDULER_RST_8822B */
  11509. #define BIT_SYNC_CLI_ONCE_RIGHT_NOW_8822B BIT(2)
  11510. #define BIT_SYNC_CLI_ONCE_BY_TBTT_8822B BIT(1)
  11511. #define BIT_SCHEDULER_RST_V1_8822B BIT(0)
  11512. /* 2 REG_SCH_TXCMD_8822B */
  11513. #define BIT_SHIFT_SCH_TXCMD_8822B 0
  11514. #define BIT_MASK_SCH_TXCMD_8822B 0xffffffffL
  11515. #define BIT_SCH_TXCMD_8822B(x) \
  11516. (((x) & BIT_MASK_SCH_TXCMD_8822B) << BIT_SHIFT_SCH_TXCMD_8822B)
  11517. #define BITS_SCH_TXCMD_8822B \
  11518. (BIT_MASK_SCH_TXCMD_8822B << BIT_SHIFT_SCH_TXCMD_8822B)
  11519. #define BIT_CLEAR_SCH_TXCMD_8822B(x) ((x) & (~BITS_SCH_TXCMD_8822B))
  11520. #define BIT_GET_SCH_TXCMD_8822B(x) \
  11521. (((x) >> BIT_SHIFT_SCH_TXCMD_8822B) & BIT_MASK_SCH_TXCMD_8822B)
  11522. #define BIT_SET_SCH_TXCMD_8822B(x, v) \
  11523. (BIT_CLEAR_SCH_TXCMD_8822B(x) | BIT_SCH_TXCMD_8822B(v))
  11524. /* 2 REG_PAGE5_DUMMY_8822B */
  11525. /* 2 REG_CPUMGQ_TX_TIMER_8822B */
  11526. #define BIT_SHIFT_CPUMGQ_TX_TIMER_V1_8822B 0
  11527. #define BIT_MASK_CPUMGQ_TX_TIMER_V1_8822B 0xffffffffL
  11528. #define BIT_CPUMGQ_TX_TIMER_V1_8822B(x) \
  11529. (((x) & BIT_MASK_CPUMGQ_TX_TIMER_V1_8822B) \
  11530. << BIT_SHIFT_CPUMGQ_TX_TIMER_V1_8822B)
  11531. #define BITS_CPUMGQ_TX_TIMER_V1_8822B \
  11532. (BIT_MASK_CPUMGQ_TX_TIMER_V1_8822B \
  11533. << BIT_SHIFT_CPUMGQ_TX_TIMER_V1_8822B)
  11534. #define BIT_CLEAR_CPUMGQ_TX_TIMER_V1_8822B(x) \
  11535. ((x) & (~BITS_CPUMGQ_TX_TIMER_V1_8822B))
  11536. #define BIT_GET_CPUMGQ_TX_TIMER_V1_8822B(x) \
  11537. (((x) >> BIT_SHIFT_CPUMGQ_TX_TIMER_V1_8822B) & \
  11538. BIT_MASK_CPUMGQ_TX_TIMER_V1_8822B)
  11539. #define BIT_SET_CPUMGQ_TX_TIMER_V1_8822B(x, v) \
  11540. (BIT_CLEAR_CPUMGQ_TX_TIMER_V1_8822B(x) | \
  11541. BIT_CPUMGQ_TX_TIMER_V1_8822B(v))
  11542. /* 2 REG_PS_TIMER_A_8822B */
  11543. #define BIT_SHIFT_PS_TIMER_A_V1_8822B 0
  11544. #define BIT_MASK_PS_TIMER_A_V1_8822B 0xffffffffL
  11545. #define BIT_PS_TIMER_A_V1_8822B(x) \
  11546. (((x) & BIT_MASK_PS_TIMER_A_V1_8822B) << BIT_SHIFT_PS_TIMER_A_V1_8822B)
  11547. #define BITS_PS_TIMER_A_V1_8822B \
  11548. (BIT_MASK_PS_TIMER_A_V1_8822B << BIT_SHIFT_PS_TIMER_A_V1_8822B)
  11549. #define BIT_CLEAR_PS_TIMER_A_V1_8822B(x) ((x) & (~BITS_PS_TIMER_A_V1_8822B))
  11550. #define BIT_GET_PS_TIMER_A_V1_8822B(x) \
  11551. (((x) >> BIT_SHIFT_PS_TIMER_A_V1_8822B) & BIT_MASK_PS_TIMER_A_V1_8822B)
  11552. #define BIT_SET_PS_TIMER_A_V1_8822B(x, v) \
  11553. (BIT_CLEAR_PS_TIMER_A_V1_8822B(x) | BIT_PS_TIMER_A_V1_8822B(v))
  11554. /* 2 REG_PS_TIMER_B_8822B */
  11555. #define BIT_SHIFT_PS_TIMER_B_V1_8822B 0
  11556. #define BIT_MASK_PS_TIMER_B_V1_8822B 0xffffffffL
  11557. #define BIT_PS_TIMER_B_V1_8822B(x) \
  11558. (((x) & BIT_MASK_PS_TIMER_B_V1_8822B) << BIT_SHIFT_PS_TIMER_B_V1_8822B)
  11559. #define BITS_PS_TIMER_B_V1_8822B \
  11560. (BIT_MASK_PS_TIMER_B_V1_8822B << BIT_SHIFT_PS_TIMER_B_V1_8822B)
  11561. #define BIT_CLEAR_PS_TIMER_B_V1_8822B(x) ((x) & (~BITS_PS_TIMER_B_V1_8822B))
  11562. #define BIT_GET_PS_TIMER_B_V1_8822B(x) \
  11563. (((x) >> BIT_SHIFT_PS_TIMER_B_V1_8822B) & BIT_MASK_PS_TIMER_B_V1_8822B)
  11564. #define BIT_SET_PS_TIMER_B_V1_8822B(x, v) \
  11565. (BIT_CLEAR_PS_TIMER_B_V1_8822B(x) | BIT_PS_TIMER_B_V1_8822B(v))
  11566. /* 2 REG_PS_TIMER_C_8822B */
  11567. #define BIT_SHIFT_PS_TIMER_C_V1_8822B 0
  11568. #define BIT_MASK_PS_TIMER_C_V1_8822B 0xffffffffL
  11569. #define BIT_PS_TIMER_C_V1_8822B(x) \
  11570. (((x) & BIT_MASK_PS_TIMER_C_V1_8822B) << BIT_SHIFT_PS_TIMER_C_V1_8822B)
  11571. #define BITS_PS_TIMER_C_V1_8822B \
  11572. (BIT_MASK_PS_TIMER_C_V1_8822B << BIT_SHIFT_PS_TIMER_C_V1_8822B)
  11573. #define BIT_CLEAR_PS_TIMER_C_V1_8822B(x) ((x) & (~BITS_PS_TIMER_C_V1_8822B))
  11574. #define BIT_GET_PS_TIMER_C_V1_8822B(x) \
  11575. (((x) >> BIT_SHIFT_PS_TIMER_C_V1_8822B) & BIT_MASK_PS_TIMER_C_V1_8822B)
  11576. #define BIT_SET_PS_TIMER_C_V1_8822B(x, v) \
  11577. (BIT_CLEAR_PS_TIMER_C_V1_8822B(x) | BIT_PS_TIMER_C_V1_8822B(v))
  11578. /* 2 REG_PS_TIMER_ABC_CPUMGQ_TIMER_CRTL_8822B */
  11579. #define BIT_CPUMGQ_TIMER_EN_8822B BIT(31)
  11580. #define BIT_CPUMGQ_TX_EN_8822B BIT(28)
  11581. #define BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_8822B 24
  11582. #define BIT_MASK_CPUMGQ_TIMER_TSF_SEL_8822B 0x7
  11583. #define BIT_CPUMGQ_TIMER_TSF_SEL_8822B(x) \
  11584. (((x) & BIT_MASK_CPUMGQ_TIMER_TSF_SEL_8822B) \
  11585. << BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_8822B)
  11586. #define BITS_CPUMGQ_TIMER_TSF_SEL_8822B \
  11587. (BIT_MASK_CPUMGQ_TIMER_TSF_SEL_8822B \
  11588. << BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_8822B)
  11589. #define BIT_CLEAR_CPUMGQ_TIMER_TSF_SEL_8822B(x) \
  11590. ((x) & (~BITS_CPUMGQ_TIMER_TSF_SEL_8822B))
  11591. #define BIT_GET_CPUMGQ_TIMER_TSF_SEL_8822B(x) \
  11592. (((x) >> BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_8822B) & \
  11593. BIT_MASK_CPUMGQ_TIMER_TSF_SEL_8822B)
  11594. #define BIT_SET_CPUMGQ_TIMER_TSF_SEL_8822B(x, v) \
  11595. (BIT_CLEAR_CPUMGQ_TIMER_TSF_SEL_8822B(x) | \
  11596. BIT_CPUMGQ_TIMER_TSF_SEL_8822B(v))
  11597. #define BIT_PS_TIMER_C_EN_8822B BIT(23)
  11598. #define BIT_SHIFT_PS_TIMER_C_TSF_SEL_8822B 16
  11599. #define BIT_MASK_PS_TIMER_C_TSF_SEL_8822B 0x7
  11600. #define BIT_PS_TIMER_C_TSF_SEL_8822B(x) \
  11601. (((x) & BIT_MASK_PS_TIMER_C_TSF_SEL_8822B) \
  11602. << BIT_SHIFT_PS_TIMER_C_TSF_SEL_8822B)
  11603. #define BITS_PS_TIMER_C_TSF_SEL_8822B \
  11604. (BIT_MASK_PS_TIMER_C_TSF_SEL_8822B \
  11605. << BIT_SHIFT_PS_TIMER_C_TSF_SEL_8822B)
  11606. #define BIT_CLEAR_PS_TIMER_C_TSF_SEL_8822B(x) \
  11607. ((x) & (~BITS_PS_TIMER_C_TSF_SEL_8822B))
  11608. #define BIT_GET_PS_TIMER_C_TSF_SEL_8822B(x) \
  11609. (((x) >> BIT_SHIFT_PS_TIMER_C_TSF_SEL_8822B) & \
  11610. BIT_MASK_PS_TIMER_C_TSF_SEL_8822B)
  11611. #define BIT_SET_PS_TIMER_C_TSF_SEL_8822B(x, v) \
  11612. (BIT_CLEAR_PS_TIMER_C_TSF_SEL_8822B(x) | \
  11613. BIT_PS_TIMER_C_TSF_SEL_8822B(v))
  11614. #define BIT_PS_TIMER_B_EN_8822B BIT(15)
  11615. #define BIT_SHIFT_PS_TIMER_B_TSF_SEL_8822B 8
  11616. #define BIT_MASK_PS_TIMER_B_TSF_SEL_8822B 0x7
  11617. #define BIT_PS_TIMER_B_TSF_SEL_8822B(x) \
  11618. (((x) & BIT_MASK_PS_TIMER_B_TSF_SEL_8822B) \
  11619. << BIT_SHIFT_PS_TIMER_B_TSF_SEL_8822B)
  11620. #define BITS_PS_TIMER_B_TSF_SEL_8822B \
  11621. (BIT_MASK_PS_TIMER_B_TSF_SEL_8822B \
  11622. << BIT_SHIFT_PS_TIMER_B_TSF_SEL_8822B)
  11623. #define BIT_CLEAR_PS_TIMER_B_TSF_SEL_8822B(x) \
  11624. ((x) & (~BITS_PS_TIMER_B_TSF_SEL_8822B))
  11625. #define BIT_GET_PS_TIMER_B_TSF_SEL_8822B(x) \
  11626. (((x) >> BIT_SHIFT_PS_TIMER_B_TSF_SEL_8822B) & \
  11627. BIT_MASK_PS_TIMER_B_TSF_SEL_8822B)
  11628. #define BIT_SET_PS_TIMER_B_TSF_SEL_8822B(x, v) \
  11629. (BIT_CLEAR_PS_TIMER_B_TSF_SEL_8822B(x) | \
  11630. BIT_PS_TIMER_B_TSF_SEL_8822B(v))
  11631. #define BIT_PS_TIMER_A_EN_8822B BIT(7)
  11632. #define BIT_SHIFT_PS_TIMER_A_TSF_SEL_8822B 0
  11633. #define BIT_MASK_PS_TIMER_A_TSF_SEL_8822B 0x7
  11634. #define BIT_PS_TIMER_A_TSF_SEL_8822B(x) \
  11635. (((x) & BIT_MASK_PS_TIMER_A_TSF_SEL_8822B) \
  11636. << BIT_SHIFT_PS_TIMER_A_TSF_SEL_8822B)
  11637. #define BITS_PS_TIMER_A_TSF_SEL_8822B \
  11638. (BIT_MASK_PS_TIMER_A_TSF_SEL_8822B \
  11639. << BIT_SHIFT_PS_TIMER_A_TSF_SEL_8822B)
  11640. #define BIT_CLEAR_PS_TIMER_A_TSF_SEL_8822B(x) \
  11641. ((x) & (~BITS_PS_TIMER_A_TSF_SEL_8822B))
  11642. #define BIT_GET_PS_TIMER_A_TSF_SEL_8822B(x) \
  11643. (((x) >> BIT_SHIFT_PS_TIMER_A_TSF_SEL_8822B) & \
  11644. BIT_MASK_PS_TIMER_A_TSF_SEL_8822B)
  11645. #define BIT_SET_PS_TIMER_A_TSF_SEL_8822B(x, v) \
  11646. (BIT_CLEAR_PS_TIMER_A_TSF_SEL_8822B(x) | \
  11647. BIT_PS_TIMER_A_TSF_SEL_8822B(v))
  11648. /* 2 REG_CPUMGQ_TX_TIMER_EARLY_8822B */
  11649. #define BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_8822B 0
  11650. #define BIT_MASK_CPUMGQ_TX_TIMER_EARLY_8822B 0xff
  11651. #define BIT_CPUMGQ_TX_TIMER_EARLY_8822B(x) \
  11652. (((x) & BIT_MASK_CPUMGQ_TX_TIMER_EARLY_8822B) \
  11653. << BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_8822B)
  11654. #define BITS_CPUMGQ_TX_TIMER_EARLY_8822B \
  11655. (BIT_MASK_CPUMGQ_TX_TIMER_EARLY_8822B \
  11656. << BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_8822B)
  11657. #define BIT_CLEAR_CPUMGQ_TX_TIMER_EARLY_8822B(x) \
  11658. ((x) & (~BITS_CPUMGQ_TX_TIMER_EARLY_8822B))
  11659. #define BIT_GET_CPUMGQ_TX_TIMER_EARLY_8822B(x) \
  11660. (((x) >> BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_8822B) & \
  11661. BIT_MASK_CPUMGQ_TX_TIMER_EARLY_8822B)
  11662. #define BIT_SET_CPUMGQ_TX_TIMER_EARLY_8822B(x, v) \
  11663. (BIT_CLEAR_CPUMGQ_TX_TIMER_EARLY_8822B(x) | \
  11664. BIT_CPUMGQ_TX_TIMER_EARLY_8822B(v))
  11665. /* 2 REG_PS_TIMER_A_EARLY_8822B */
  11666. #define BIT_SHIFT_PS_TIMER_A_EARLY_8822B 0
  11667. #define BIT_MASK_PS_TIMER_A_EARLY_8822B 0xff
  11668. #define BIT_PS_TIMER_A_EARLY_8822B(x) \
  11669. (((x) & BIT_MASK_PS_TIMER_A_EARLY_8822B) \
  11670. << BIT_SHIFT_PS_TIMER_A_EARLY_8822B)
  11671. #define BITS_PS_TIMER_A_EARLY_8822B \
  11672. (BIT_MASK_PS_TIMER_A_EARLY_8822B << BIT_SHIFT_PS_TIMER_A_EARLY_8822B)
  11673. #define BIT_CLEAR_PS_TIMER_A_EARLY_8822B(x) \
  11674. ((x) & (~BITS_PS_TIMER_A_EARLY_8822B))
  11675. #define BIT_GET_PS_TIMER_A_EARLY_8822B(x) \
  11676. (((x) >> BIT_SHIFT_PS_TIMER_A_EARLY_8822B) & \
  11677. BIT_MASK_PS_TIMER_A_EARLY_8822B)
  11678. #define BIT_SET_PS_TIMER_A_EARLY_8822B(x, v) \
  11679. (BIT_CLEAR_PS_TIMER_A_EARLY_8822B(x) | BIT_PS_TIMER_A_EARLY_8822B(v))
  11680. /* 2 REG_PS_TIMER_B_EARLY_8822B */
  11681. #define BIT_SHIFT_PS_TIMER_B_EARLY_8822B 0
  11682. #define BIT_MASK_PS_TIMER_B_EARLY_8822B 0xff
  11683. #define BIT_PS_TIMER_B_EARLY_8822B(x) \
  11684. (((x) & BIT_MASK_PS_TIMER_B_EARLY_8822B) \
  11685. << BIT_SHIFT_PS_TIMER_B_EARLY_8822B)
  11686. #define BITS_PS_TIMER_B_EARLY_8822B \
  11687. (BIT_MASK_PS_TIMER_B_EARLY_8822B << BIT_SHIFT_PS_TIMER_B_EARLY_8822B)
  11688. #define BIT_CLEAR_PS_TIMER_B_EARLY_8822B(x) \
  11689. ((x) & (~BITS_PS_TIMER_B_EARLY_8822B))
  11690. #define BIT_GET_PS_TIMER_B_EARLY_8822B(x) \
  11691. (((x) >> BIT_SHIFT_PS_TIMER_B_EARLY_8822B) & \
  11692. BIT_MASK_PS_TIMER_B_EARLY_8822B)
  11693. #define BIT_SET_PS_TIMER_B_EARLY_8822B(x, v) \
  11694. (BIT_CLEAR_PS_TIMER_B_EARLY_8822B(x) | BIT_PS_TIMER_B_EARLY_8822B(v))
  11695. /* 2 REG_PS_TIMER_C_EARLY_8822B */
  11696. #define BIT_SHIFT_PS_TIMER_C_EARLY_8822B 0
  11697. #define BIT_MASK_PS_TIMER_C_EARLY_8822B 0xff
  11698. #define BIT_PS_TIMER_C_EARLY_8822B(x) \
  11699. (((x) & BIT_MASK_PS_TIMER_C_EARLY_8822B) \
  11700. << BIT_SHIFT_PS_TIMER_C_EARLY_8822B)
  11701. #define BITS_PS_TIMER_C_EARLY_8822B \
  11702. (BIT_MASK_PS_TIMER_C_EARLY_8822B << BIT_SHIFT_PS_TIMER_C_EARLY_8822B)
  11703. #define BIT_CLEAR_PS_TIMER_C_EARLY_8822B(x) \
  11704. ((x) & (~BITS_PS_TIMER_C_EARLY_8822B))
  11705. #define BIT_GET_PS_TIMER_C_EARLY_8822B(x) \
  11706. (((x) >> BIT_SHIFT_PS_TIMER_C_EARLY_8822B) & \
  11707. BIT_MASK_PS_TIMER_C_EARLY_8822B)
  11708. #define BIT_SET_PS_TIMER_C_EARLY_8822B(x, v) \
  11709. (BIT_CLEAR_PS_TIMER_C_EARLY_8822B(x) | BIT_PS_TIMER_C_EARLY_8822B(v))
  11710. /* 2 REG_CPUMGQ_PARAMETER_8822B */
  11711. /* 2 REG_NOT_VALID_8822B */
  11712. #define BIT_MAC_STOP_CPUMGQ_8822B BIT(16)
  11713. #define BIT_SHIFT_CW_8822B 8
  11714. #define BIT_MASK_CW_8822B 0xff
  11715. #define BIT_CW_8822B(x) (((x) & BIT_MASK_CW_8822B) << BIT_SHIFT_CW_8822B)
  11716. #define BITS_CW_8822B (BIT_MASK_CW_8822B << BIT_SHIFT_CW_8822B)
  11717. #define BIT_CLEAR_CW_8822B(x) ((x) & (~BITS_CW_8822B))
  11718. #define BIT_GET_CW_8822B(x) (((x) >> BIT_SHIFT_CW_8822B) & BIT_MASK_CW_8822B)
  11719. #define BIT_SET_CW_8822B(x, v) (BIT_CLEAR_CW_8822B(x) | BIT_CW_8822B(v))
  11720. #define BIT_SHIFT_AIFS_8822B 0
  11721. #define BIT_MASK_AIFS_8822B 0xff
  11722. #define BIT_AIFS_8822B(x) (((x) & BIT_MASK_AIFS_8822B) << BIT_SHIFT_AIFS_8822B)
  11723. #define BITS_AIFS_8822B (BIT_MASK_AIFS_8822B << BIT_SHIFT_AIFS_8822B)
  11724. #define BIT_CLEAR_AIFS_8822B(x) ((x) & (~BITS_AIFS_8822B))
  11725. #define BIT_GET_AIFS_8822B(x) \
  11726. (((x) >> BIT_SHIFT_AIFS_8822B) & BIT_MASK_AIFS_8822B)
  11727. #define BIT_SET_AIFS_8822B(x, v) (BIT_CLEAR_AIFS_8822B(x) | BIT_AIFS_8822B(v))
  11728. /* 2 REG_NOT_VALID_8822B */
  11729. /* 2 REG_BWOPMODE_8822B (BW OPERATION MODE REGISTER) */
  11730. /* 2 REG_WMAC_FWPKT_CR_8822B */
  11731. #define BIT_FWEN_8822B BIT(7)
  11732. #define BIT_PHYSTS_PKT_CTRL_8822B BIT(6)
  11733. #define BIT_APPHDR_MIDSRCH_FAIL_8822B BIT(4)
  11734. #define BIT_FWPARSING_EN_8822B BIT(3)
  11735. #define BIT_SHIFT_APPEND_MHDR_LEN_8822B 0
  11736. #define BIT_MASK_APPEND_MHDR_LEN_8822B 0x7
  11737. #define BIT_APPEND_MHDR_LEN_8822B(x) \
  11738. (((x) & BIT_MASK_APPEND_MHDR_LEN_8822B) \
  11739. << BIT_SHIFT_APPEND_MHDR_LEN_8822B)
  11740. #define BITS_APPEND_MHDR_LEN_8822B \
  11741. (BIT_MASK_APPEND_MHDR_LEN_8822B << BIT_SHIFT_APPEND_MHDR_LEN_8822B)
  11742. #define BIT_CLEAR_APPEND_MHDR_LEN_8822B(x) ((x) & (~BITS_APPEND_MHDR_LEN_8822B))
  11743. #define BIT_GET_APPEND_MHDR_LEN_8822B(x) \
  11744. (((x) >> BIT_SHIFT_APPEND_MHDR_LEN_8822B) & \
  11745. BIT_MASK_APPEND_MHDR_LEN_8822B)
  11746. #define BIT_SET_APPEND_MHDR_LEN_8822B(x, v) \
  11747. (BIT_CLEAR_APPEND_MHDR_LEN_8822B(x) | BIT_APPEND_MHDR_LEN_8822B(v))
  11748. /* 2 REG_WMAC_CR_8822B (WMAC CR AND APSD CONTROL REGISTER) */
  11749. #define BIT_IC_MACPHY_M_8822B BIT(0)
  11750. /* 2 REG_TCR_8822B (TRANSMISSION CONFIGURATION REGISTER) */
  11751. #define BIT_WMAC_EN_RTS_ADDR_8822B BIT(31)
  11752. #define BIT_WMAC_DISABLE_CCK_8822B BIT(30)
  11753. #define BIT_WMAC_RAW_LEN_8822B BIT(29)
  11754. #define BIT_WMAC_NOTX_IN_RXNDP_8822B BIT(28)
  11755. #define BIT_WMAC_EN_EOF_8822B BIT(27)
  11756. #define BIT_WMAC_BF_SEL_8822B BIT(26)
  11757. #define BIT_WMAC_ANTMODE_SEL_8822B BIT(25)
  11758. #define BIT_WMAC_TCRPWRMGT_HWCTL_8822B BIT(24)
  11759. #define BIT_WMAC_SMOOTH_VAL_8822B BIT(23)
  11760. #define BIT_FETCH_MPDU_AFTER_WSEC_RDY_8822B BIT(20)
  11761. #define BIT_WMAC_TCR_EN_20MST_8822B BIT(19)
  11762. #define BIT_WMAC_DIS_SIGTA_8822B BIT(18)
  11763. #define BIT_WMAC_DIS_A2B0_8822B BIT(17)
  11764. #define BIT_WMAC_MSK_SIGBCRC_8822B BIT(16)
  11765. #define BIT_WMAC_TCR_ERRSTEN_3_8822B BIT(15)
  11766. #define BIT_WMAC_TCR_ERRSTEN_2_8822B BIT(14)
  11767. #define BIT_WMAC_TCR_ERRSTEN_1_8822B BIT(13)
  11768. #define BIT_WMAC_TCR_ERRSTEN_0_8822B BIT(12)
  11769. #define BIT_WMAC_TCR_TXSK_PERPKT_8822B BIT(11)
  11770. #define BIT_ICV_8822B BIT(10)
  11771. #define BIT_CFEND_FORMAT_8822B BIT(9)
  11772. #define BIT_CRC_8822B BIT(8)
  11773. #define BIT_PWRBIT_OW_EN_8822B BIT(7)
  11774. #define BIT_PWR_ST_8822B BIT(6)
  11775. #define BIT_WMAC_TCR_UPD_TIMIE_8822B BIT(5)
  11776. #define BIT_WMAC_TCR_UPD_HGQMD_8822B BIT(4)
  11777. #define BIT_VHTSIGA1_TXPS_8822B BIT(3)
  11778. #define BIT_PAD_SEL_8822B BIT(2)
  11779. #define BIT_DIS_GCLK_8822B BIT(1)
  11780. /* 2 REG_RCR_8822B (RECEIVE CONFIGURATION REGISTER) */
  11781. #define BIT_APP_FCS_8822B BIT(31)
  11782. #define BIT_APP_MIC_8822B BIT(30)
  11783. #define BIT_APP_ICV_8822B BIT(29)
  11784. #define BIT_APP_PHYSTS_8822B BIT(28)
  11785. #define BIT_APP_BASSN_8822B BIT(27)
  11786. #define BIT_VHT_DACK_8822B BIT(26)
  11787. #define BIT_TCPOFLD_EN_8822B BIT(25)
  11788. #define BIT_ENMBID_8822B BIT(24)
  11789. #define BIT_LSIGEN_8822B BIT(23)
  11790. #define BIT_MFBEN_8822B BIT(22)
  11791. #define BIT_DISCHKPPDLLEN_8822B BIT(21)
  11792. #define BIT_PKTCTL_DLEN_8822B BIT(20)
  11793. #define BIT_TIM_PARSER_EN_8822B BIT(18)
  11794. #define BIT_BC_MD_EN_8822B BIT(17)
  11795. #define BIT_UC_MD_EN_8822B BIT(16)
  11796. #define BIT_RXSK_PERPKT_8822B BIT(15)
  11797. #define BIT_HTC_LOC_CTRL_8822B BIT(14)
  11798. #define BIT_RPFM_CAM_ENABLE_8822B BIT(12)
  11799. #define BIT_TA_BCN_8822B BIT(11)
  11800. #define BIT_DISDECMYPKT_8822B BIT(10)
  11801. #define BIT_AICV_8822B BIT(9)
  11802. #define BIT_ACRC32_8822B BIT(8)
  11803. #define BIT_CBSSID_BCN_8822B BIT(7)
  11804. #define BIT_CBSSID_DATA_8822B BIT(6)
  11805. #define BIT_APWRMGT_8822B BIT(5)
  11806. #define BIT_ADD3_8822B BIT(4)
  11807. #define BIT_AB_8822B BIT(3)
  11808. #define BIT_AM_8822B BIT(2)
  11809. #define BIT_APM_8822B BIT(1)
  11810. #define BIT_AAP_8822B BIT(0)
  11811. /* 2 REG_RX_DRVINFO_SZ_8822B (RX DRIVER INFO SIZE REGISTER) */
  11812. #define BIT_PHYSTS_PER_PKT_MODE_8822B BIT(7)
  11813. #define BIT_SHIFT_DRVINFO_SZ_V1_8822B 0
  11814. #define BIT_MASK_DRVINFO_SZ_V1_8822B 0xf
  11815. #define BIT_DRVINFO_SZ_V1_8822B(x) \
  11816. (((x) & BIT_MASK_DRVINFO_SZ_V1_8822B) << BIT_SHIFT_DRVINFO_SZ_V1_8822B)
  11817. #define BITS_DRVINFO_SZ_V1_8822B \
  11818. (BIT_MASK_DRVINFO_SZ_V1_8822B << BIT_SHIFT_DRVINFO_SZ_V1_8822B)
  11819. #define BIT_CLEAR_DRVINFO_SZ_V1_8822B(x) ((x) & (~BITS_DRVINFO_SZ_V1_8822B))
  11820. #define BIT_GET_DRVINFO_SZ_V1_8822B(x) \
  11821. (((x) >> BIT_SHIFT_DRVINFO_SZ_V1_8822B) & BIT_MASK_DRVINFO_SZ_V1_8822B)
  11822. #define BIT_SET_DRVINFO_SZ_V1_8822B(x, v) \
  11823. (BIT_CLEAR_DRVINFO_SZ_V1_8822B(x) | BIT_DRVINFO_SZ_V1_8822B(v))
  11824. /* 2 REG_RX_DLK_TIME_8822B (RX DEADLOCK TIME REGISTER) */
  11825. #define BIT_SHIFT_RX_DLK_TIME_8822B 0
  11826. #define BIT_MASK_RX_DLK_TIME_8822B 0xff
  11827. #define BIT_RX_DLK_TIME_8822B(x) \
  11828. (((x) & BIT_MASK_RX_DLK_TIME_8822B) << BIT_SHIFT_RX_DLK_TIME_8822B)
  11829. #define BITS_RX_DLK_TIME_8822B \
  11830. (BIT_MASK_RX_DLK_TIME_8822B << BIT_SHIFT_RX_DLK_TIME_8822B)
  11831. #define BIT_CLEAR_RX_DLK_TIME_8822B(x) ((x) & (~BITS_RX_DLK_TIME_8822B))
  11832. #define BIT_GET_RX_DLK_TIME_8822B(x) \
  11833. (((x) >> BIT_SHIFT_RX_DLK_TIME_8822B) & BIT_MASK_RX_DLK_TIME_8822B)
  11834. #define BIT_SET_RX_DLK_TIME_8822B(x, v) \
  11835. (BIT_CLEAR_RX_DLK_TIME_8822B(x) | BIT_RX_DLK_TIME_8822B(v))
  11836. /* 2 REG_RX_PKT_LIMIT_8822B (RX PACKET LENGTH LIMIT REGISTER) */
  11837. #define BIT_SHIFT_RXPKTLMT_8822B 0
  11838. #define BIT_MASK_RXPKTLMT_8822B 0x3f
  11839. #define BIT_RXPKTLMT_8822B(x) \
  11840. (((x) & BIT_MASK_RXPKTLMT_8822B) << BIT_SHIFT_RXPKTLMT_8822B)
  11841. #define BITS_RXPKTLMT_8822B \
  11842. (BIT_MASK_RXPKTLMT_8822B << BIT_SHIFT_RXPKTLMT_8822B)
  11843. #define BIT_CLEAR_RXPKTLMT_8822B(x) ((x) & (~BITS_RXPKTLMT_8822B))
  11844. #define BIT_GET_RXPKTLMT_8822B(x) \
  11845. (((x) >> BIT_SHIFT_RXPKTLMT_8822B) & BIT_MASK_RXPKTLMT_8822B)
  11846. #define BIT_SET_RXPKTLMT_8822B(x, v) \
  11847. (BIT_CLEAR_RXPKTLMT_8822B(x) | BIT_RXPKTLMT_8822B(v))
  11848. /* 2 REG_MACID_8822B (MAC ID REGISTER) */
  11849. #define BIT_SHIFT_MACID_8822B 0
  11850. #define BIT_MASK_MACID_8822B 0xffffffffffffL
  11851. #define BIT_MACID_8822B(x) \
  11852. (((x) & BIT_MASK_MACID_8822B) << BIT_SHIFT_MACID_8822B)
  11853. #define BITS_MACID_8822B (BIT_MASK_MACID_8822B << BIT_SHIFT_MACID_8822B)
  11854. #define BIT_CLEAR_MACID_8822B(x) ((x) & (~BITS_MACID_8822B))
  11855. #define BIT_GET_MACID_8822B(x) \
  11856. (((x) >> BIT_SHIFT_MACID_8822B) & BIT_MASK_MACID_8822B)
  11857. #define BIT_SET_MACID_8822B(x, v) \
  11858. (BIT_CLEAR_MACID_8822B(x) | BIT_MACID_8822B(v))
  11859. /* 2 REG_BSSID_8822B (BSSID REGISTER) */
  11860. #define BIT_SHIFT_BSSID_8822B 0
  11861. #define BIT_MASK_BSSID_8822B 0xffffffffffffL
  11862. #define BIT_BSSID_8822B(x) \
  11863. (((x) & BIT_MASK_BSSID_8822B) << BIT_SHIFT_BSSID_8822B)
  11864. #define BITS_BSSID_8822B (BIT_MASK_BSSID_8822B << BIT_SHIFT_BSSID_8822B)
  11865. #define BIT_CLEAR_BSSID_8822B(x) ((x) & (~BITS_BSSID_8822B))
  11866. #define BIT_GET_BSSID_8822B(x) \
  11867. (((x) >> BIT_SHIFT_BSSID_8822B) & BIT_MASK_BSSID_8822B)
  11868. #define BIT_SET_BSSID_8822B(x, v) \
  11869. (BIT_CLEAR_BSSID_8822B(x) | BIT_BSSID_8822B(v))
  11870. /* 2 REG_MAR_8822B (MULTICAST ADDRESS REGISTER) */
  11871. #define BIT_SHIFT_MAR_8822B 0
  11872. #define BIT_MASK_MAR_8822B 0xffffffffffffffffL
  11873. #define BIT_MAR_8822B(x) (((x) & BIT_MASK_MAR_8822B) << BIT_SHIFT_MAR_8822B)
  11874. #define BITS_MAR_8822B (BIT_MASK_MAR_8822B << BIT_SHIFT_MAR_8822B)
  11875. #define BIT_CLEAR_MAR_8822B(x) ((x) & (~BITS_MAR_8822B))
  11876. #define BIT_GET_MAR_8822B(x) (((x) >> BIT_SHIFT_MAR_8822B) & BIT_MASK_MAR_8822B)
  11877. #define BIT_SET_MAR_8822B(x, v) (BIT_CLEAR_MAR_8822B(x) | BIT_MAR_8822B(v))
  11878. /* 2 REG_MBIDCAMCFG_1_8822B (MBSSID CAM CONFIGURATION REGISTER) */
  11879. #define BIT_SHIFT_MBIDCAM_RWDATA_L_8822B 0
  11880. #define BIT_MASK_MBIDCAM_RWDATA_L_8822B 0xffffffffL
  11881. #define BIT_MBIDCAM_RWDATA_L_8822B(x) \
  11882. (((x) & BIT_MASK_MBIDCAM_RWDATA_L_8822B) \
  11883. << BIT_SHIFT_MBIDCAM_RWDATA_L_8822B)
  11884. #define BITS_MBIDCAM_RWDATA_L_8822B \
  11885. (BIT_MASK_MBIDCAM_RWDATA_L_8822B << BIT_SHIFT_MBIDCAM_RWDATA_L_8822B)
  11886. #define BIT_CLEAR_MBIDCAM_RWDATA_L_8822B(x) \
  11887. ((x) & (~BITS_MBIDCAM_RWDATA_L_8822B))
  11888. #define BIT_GET_MBIDCAM_RWDATA_L_8822B(x) \
  11889. (((x) >> BIT_SHIFT_MBIDCAM_RWDATA_L_8822B) & \
  11890. BIT_MASK_MBIDCAM_RWDATA_L_8822B)
  11891. #define BIT_SET_MBIDCAM_RWDATA_L_8822B(x, v) \
  11892. (BIT_CLEAR_MBIDCAM_RWDATA_L_8822B(x) | BIT_MBIDCAM_RWDATA_L_8822B(v))
  11893. /* 2 REG_MBIDCAMCFG_2_8822B (MBSSID CAM CONFIGURATION REGISTER) */
  11894. #define BIT_MBIDCAM_POLL_8822B BIT(31)
  11895. #define BIT_MBIDCAM_WT_EN_8822B BIT(30)
  11896. #define BIT_SHIFT_MBIDCAM_ADDR_8822B 24
  11897. #define BIT_MASK_MBIDCAM_ADDR_8822B 0x1f
  11898. #define BIT_MBIDCAM_ADDR_8822B(x) \
  11899. (((x) & BIT_MASK_MBIDCAM_ADDR_8822B) << BIT_SHIFT_MBIDCAM_ADDR_8822B)
  11900. #define BITS_MBIDCAM_ADDR_8822B \
  11901. (BIT_MASK_MBIDCAM_ADDR_8822B << BIT_SHIFT_MBIDCAM_ADDR_8822B)
  11902. #define BIT_CLEAR_MBIDCAM_ADDR_8822B(x) ((x) & (~BITS_MBIDCAM_ADDR_8822B))
  11903. #define BIT_GET_MBIDCAM_ADDR_8822B(x) \
  11904. (((x) >> BIT_SHIFT_MBIDCAM_ADDR_8822B) & BIT_MASK_MBIDCAM_ADDR_8822B)
  11905. #define BIT_SET_MBIDCAM_ADDR_8822B(x, v) \
  11906. (BIT_CLEAR_MBIDCAM_ADDR_8822B(x) | BIT_MBIDCAM_ADDR_8822B(v))
  11907. #define BIT_MBIDCAM_VALID_8822B BIT(23)
  11908. #define BIT_LSIC_TXOP_EN_8822B BIT(17)
  11909. #define BIT_CTS_EN_8822B BIT(16)
  11910. #define BIT_SHIFT_MBIDCAM_RWDATA_H_8822B 0
  11911. #define BIT_MASK_MBIDCAM_RWDATA_H_8822B 0xffff
  11912. #define BIT_MBIDCAM_RWDATA_H_8822B(x) \
  11913. (((x) & BIT_MASK_MBIDCAM_RWDATA_H_8822B) \
  11914. << BIT_SHIFT_MBIDCAM_RWDATA_H_8822B)
  11915. #define BITS_MBIDCAM_RWDATA_H_8822B \
  11916. (BIT_MASK_MBIDCAM_RWDATA_H_8822B << BIT_SHIFT_MBIDCAM_RWDATA_H_8822B)
  11917. #define BIT_CLEAR_MBIDCAM_RWDATA_H_8822B(x) \
  11918. ((x) & (~BITS_MBIDCAM_RWDATA_H_8822B))
  11919. #define BIT_GET_MBIDCAM_RWDATA_H_8822B(x) \
  11920. (((x) >> BIT_SHIFT_MBIDCAM_RWDATA_H_8822B) & \
  11921. BIT_MASK_MBIDCAM_RWDATA_H_8822B)
  11922. #define BIT_SET_MBIDCAM_RWDATA_H_8822B(x, v) \
  11923. (BIT_CLEAR_MBIDCAM_RWDATA_H_8822B(x) | BIT_MBIDCAM_RWDATA_H_8822B(v))
  11924. /* 2 REG_ZLD_NUM_8822B */
  11925. #define BIT_SHIFT_ZLD_NUM_8822B 0
  11926. #define BIT_MASK_ZLD_NUM_8822B 0xff
  11927. #define BIT_ZLD_NUM_8822B(x) \
  11928. (((x) & BIT_MASK_ZLD_NUM_8822B) << BIT_SHIFT_ZLD_NUM_8822B)
  11929. #define BITS_ZLD_NUM_8822B (BIT_MASK_ZLD_NUM_8822B << BIT_SHIFT_ZLD_NUM_8822B)
  11930. #define BIT_CLEAR_ZLD_NUM_8822B(x) ((x) & (~BITS_ZLD_NUM_8822B))
  11931. #define BIT_GET_ZLD_NUM_8822B(x) \
  11932. (((x) >> BIT_SHIFT_ZLD_NUM_8822B) & BIT_MASK_ZLD_NUM_8822B)
  11933. #define BIT_SET_ZLD_NUM_8822B(x, v) \
  11934. (BIT_CLEAR_ZLD_NUM_8822B(x) | BIT_ZLD_NUM_8822B(v))
  11935. /* 2 REG_UDF_THSD_8822B */
  11936. #define BIT_SHIFT_UDF_THSD_8822B 0
  11937. #define BIT_MASK_UDF_THSD_8822B 0xff
  11938. #define BIT_UDF_THSD_8822B(x) \
  11939. (((x) & BIT_MASK_UDF_THSD_8822B) << BIT_SHIFT_UDF_THSD_8822B)
  11940. #define BITS_UDF_THSD_8822B \
  11941. (BIT_MASK_UDF_THSD_8822B << BIT_SHIFT_UDF_THSD_8822B)
  11942. #define BIT_CLEAR_UDF_THSD_8822B(x) ((x) & (~BITS_UDF_THSD_8822B))
  11943. #define BIT_GET_UDF_THSD_8822B(x) \
  11944. (((x) >> BIT_SHIFT_UDF_THSD_8822B) & BIT_MASK_UDF_THSD_8822B)
  11945. #define BIT_SET_UDF_THSD_8822B(x, v) \
  11946. (BIT_CLEAR_UDF_THSD_8822B(x) | BIT_UDF_THSD_8822B(v))
  11947. /* 2 REG_WMAC_TCR_TSFT_OFS_8822B */
  11948. #define BIT_SHIFT_WMAC_TCR_TSFT_OFS_8822B 0
  11949. #define BIT_MASK_WMAC_TCR_TSFT_OFS_8822B 0xffff
  11950. #define BIT_WMAC_TCR_TSFT_OFS_8822B(x) \
  11951. (((x) & BIT_MASK_WMAC_TCR_TSFT_OFS_8822B) \
  11952. << BIT_SHIFT_WMAC_TCR_TSFT_OFS_8822B)
  11953. #define BITS_WMAC_TCR_TSFT_OFS_8822B \
  11954. (BIT_MASK_WMAC_TCR_TSFT_OFS_8822B << BIT_SHIFT_WMAC_TCR_TSFT_OFS_8822B)
  11955. #define BIT_CLEAR_WMAC_TCR_TSFT_OFS_8822B(x) \
  11956. ((x) & (~BITS_WMAC_TCR_TSFT_OFS_8822B))
  11957. #define BIT_GET_WMAC_TCR_TSFT_OFS_8822B(x) \
  11958. (((x) >> BIT_SHIFT_WMAC_TCR_TSFT_OFS_8822B) & \
  11959. BIT_MASK_WMAC_TCR_TSFT_OFS_8822B)
  11960. #define BIT_SET_WMAC_TCR_TSFT_OFS_8822B(x, v) \
  11961. (BIT_CLEAR_WMAC_TCR_TSFT_OFS_8822B(x) | BIT_WMAC_TCR_TSFT_OFS_8822B(v))
  11962. /* 2 REG_MCU_TEST_2_V1_8822B */
  11963. #define BIT_SHIFT_MCU_RSVD_2_V1_8822B 0
  11964. #define BIT_MASK_MCU_RSVD_2_V1_8822B 0xffff
  11965. #define BIT_MCU_RSVD_2_V1_8822B(x) \
  11966. (((x) & BIT_MASK_MCU_RSVD_2_V1_8822B) << BIT_SHIFT_MCU_RSVD_2_V1_8822B)
  11967. #define BITS_MCU_RSVD_2_V1_8822B \
  11968. (BIT_MASK_MCU_RSVD_2_V1_8822B << BIT_SHIFT_MCU_RSVD_2_V1_8822B)
  11969. #define BIT_CLEAR_MCU_RSVD_2_V1_8822B(x) ((x) & (~BITS_MCU_RSVD_2_V1_8822B))
  11970. #define BIT_GET_MCU_RSVD_2_V1_8822B(x) \
  11971. (((x) >> BIT_SHIFT_MCU_RSVD_2_V1_8822B) & BIT_MASK_MCU_RSVD_2_V1_8822B)
  11972. #define BIT_SET_MCU_RSVD_2_V1_8822B(x, v) \
  11973. (BIT_CLEAR_MCU_RSVD_2_V1_8822B(x) | BIT_MCU_RSVD_2_V1_8822B(v))
  11974. /* 2 REG_WMAC_TXTIMEOUT_8822B */
  11975. #define BIT_SHIFT_WMAC_TXTIMEOUT_8822B 0
  11976. #define BIT_MASK_WMAC_TXTIMEOUT_8822B 0xff
  11977. #define BIT_WMAC_TXTIMEOUT_8822B(x) \
  11978. (((x) & BIT_MASK_WMAC_TXTIMEOUT_8822B) \
  11979. << BIT_SHIFT_WMAC_TXTIMEOUT_8822B)
  11980. #define BITS_WMAC_TXTIMEOUT_8822B \
  11981. (BIT_MASK_WMAC_TXTIMEOUT_8822B << BIT_SHIFT_WMAC_TXTIMEOUT_8822B)
  11982. #define BIT_CLEAR_WMAC_TXTIMEOUT_8822B(x) ((x) & (~BITS_WMAC_TXTIMEOUT_8822B))
  11983. #define BIT_GET_WMAC_TXTIMEOUT_8822B(x) \
  11984. (((x) >> BIT_SHIFT_WMAC_TXTIMEOUT_8822B) & \
  11985. BIT_MASK_WMAC_TXTIMEOUT_8822B)
  11986. #define BIT_SET_WMAC_TXTIMEOUT_8822B(x, v) \
  11987. (BIT_CLEAR_WMAC_TXTIMEOUT_8822B(x) | BIT_WMAC_TXTIMEOUT_8822B(v))
  11988. /* 2 REG_STMP_THSD_8822B */
  11989. #define BIT_SHIFT_STMP_THSD_8822B 0
  11990. #define BIT_MASK_STMP_THSD_8822B 0xff
  11991. #define BIT_STMP_THSD_8822B(x) \
  11992. (((x) & BIT_MASK_STMP_THSD_8822B) << BIT_SHIFT_STMP_THSD_8822B)
  11993. #define BITS_STMP_THSD_8822B \
  11994. (BIT_MASK_STMP_THSD_8822B << BIT_SHIFT_STMP_THSD_8822B)
  11995. #define BIT_CLEAR_STMP_THSD_8822B(x) ((x) & (~BITS_STMP_THSD_8822B))
  11996. #define BIT_GET_STMP_THSD_8822B(x) \
  11997. (((x) >> BIT_SHIFT_STMP_THSD_8822B) & BIT_MASK_STMP_THSD_8822B)
  11998. #define BIT_SET_STMP_THSD_8822B(x, v) \
  11999. (BIT_CLEAR_STMP_THSD_8822B(x) | BIT_STMP_THSD_8822B(v))
  12000. /* 2 REG_MAC_SPEC_SIFS_8822B (SPECIFICATION SIFS REGISTER) */
  12001. #define BIT_SHIFT_SPEC_SIFS_OFDM_8822B 8
  12002. #define BIT_MASK_SPEC_SIFS_OFDM_8822B 0xff
  12003. #define BIT_SPEC_SIFS_OFDM_8822B(x) \
  12004. (((x) & BIT_MASK_SPEC_SIFS_OFDM_8822B) \
  12005. << BIT_SHIFT_SPEC_SIFS_OFDM_8822B)
  12006. #define BITS_SPEC_SIFS_OFDM_8822B \
  12007. (BIT_MASK_SPEC_SIFS_OFDM_8822B << BIT_SHIFT_SPEC_SIFS_OFDM_8822B)
  12008. #define BIT_CLEAR_SPEC_SIFS_OFDM_8822B(x) ((x) & (~BITS_SPEC_SIFS_OFDM_8822B))
  12009. #define BIT_GET_SPEC_SIFS_OFDM_8822B(x) \
  12010. (((x) >> BIT_SHIFT_SPEC_SIFS_OFDM_8822B) & \
  12011. BIT_MASK_SPEC_SIFS_OFDM_8822B)
  12012. #define BIT_SET_SPEC_SIFS_OFDM_8822B(x, v) \
  12013. (BIT_CLEAR_SPEC_SIFS_OFDM_8822B(x) | BIT_SPEC_SIFS_OFDM_8822B(v))
  12014. #define BIT_SHIFT_SPEC_SIFS_CCK_8822B 0
  12015. #define BIT_MASK_SPEC_SIFS_CCK_8822B 0xff
  12016. #define BIT_SPEC_SIFS_CCK_8822B(x) \
  12017. (((x) & BIT_MASK_SPEC_SIFS_CCK_8822B) << BIT_SHIFT_SPEC_SIFS_CCK_8822B)
  12018. #define BITS_SPEC_SIFS_CCK_8822B \
  12019. (BIT_MASK_SPEC_SIFS_CCK_8822B << BIT_SHIFT_SPEC_SIFS_CCK_8822B)
  12020. #define BIT_CLEAR_SPEC_SIFS_CCK_8822B(x) ((x) & (~BITS_SPEC_SIFS_CCK_8822B))
  12021. #define BIT_GET_SPEC_SIFS_CCK_8822B(x) \
  12022. (((x) >> BIT_SHIFT_SPEC_SIFS_CCK_8822B) & BIT_MASK_SPEC_SIFS_CCK_8822B)
  12023. #define BIT_SET_SPEC_SIFS_CCK_8822B(x, v) \
  12024. (BIT_CLEAR_SPEC_SIFS_CCK_8822B(x) | BIT_SPEC_SIFS_CCK_8822B(v))
  12025. /* 2 REG_USTIME_EDCA_8822B (US TIME TUNING FOR EDCA REGISTER) */
  12026. #define BIT_SHIFT_USTIME_EDCA_V1_8822B 0
  12027. #define BIT_MASK_USTIME_EDCA_V1_8822B 0x1ff
  12028. #define BIT_USTIME_EDCA_V1_8822B(x) \
  12029. (((x) & BIT_MASK_USTIME_EDCA_V1_8822B) \
  12030. << BIT_SHIFT_USTIME_EDCA_V1_8822B)
  12031. #define BITS_USTIME_EDCA_V1_8822B \
  12032. (BIT_MASK_USTIME_EDCA_V1_8822B << BIT_SHIFT_USTIME_EDCA_V1_8822B)
  12033. #define BIT_CLEAR_USTIME_EDCA_V1_8822B(x) ((x) & (~BITS_USTIME_EDCA_V1_8822B))
  12034. #define BIT_GET_USTIME_EDCA_V1_8822B(x) \
  12035. (((x) >> BIT_SHIFT_USTIME_EDCA_V1_8822B) & \
  12036. BIT_MASK_USTIME_EDCA_V1_8822B)
  12037. #define BIT_SET_USTIME_EDCA_V1_8822B(x, v) \
  12038. (BIT_CLEAR_USTIME_EDCA_V1_8822B(x) | BIT_USTIME_EDCA_V1_8822B(v))
  12039. /* 2 REG_RESP_SIFS_OFDM_8822B (RESPONSE SIFS FOR OFDM REGISTER) */
  12040. #define BIT_SHIFT_SIFS_R2T_OFDM_8822B 8
  12041. #define BIT_MASK_SIFS_R2T_OFDM_8822B 0xff
  12042. #define BIT_SIFS_R2T_OFDM_8822B(x) \
  12043. (((x) & BIT_MASK_SIFS_R2T_OFDM_8822B) << BIT_SHIFT_SIFS_R2T_OFDM_8822B)
  12044. #define BITS_SIFS_R2T_OFDM_8822B \
  12045. (BIT_MASK_SIFS_R2T_OFDM_8822B << BIT_SHIFT_SIFS_R2T_OFDM_8822B)
  12046. #define BIT_CLEAR_SIFS_R2T_OFDM_8822B(x) ((x) & (~BITS_SIFS_R2T_OFDM_8822B))
  12047. #define BIT_GET_SIFS_R2T_OFDM_8822B(x) \
  12048. (((x) >> BIT_SHIFT_SIFS_R2T_OFDM_8822B) & BIT_MASK_SIFS_R2T_OFDM_8822B)
  12049. #define BIT_SET_SIFS_R2T_OFDM_8822B(x, v) \
  12050. (BIT_CLEAR_SIFS_R2T_OFDM_8822B(x) | BIT_SIFS_R2T_OFDM_8822B(v))
  12051. #define BIT_SHIFT_SIFS_T2T_OFDM_8822B 0
  12052. #define BIT_MASK_SIFS_T2T_OFDM_8822B 0xff
  12053. #define BIT_SIFS_T2T_OFDM_8822B(x) \
  12054. (((x) & BIT_MASK_SIFS_T2T_OFDM_8822B) << BIT_SHIFT_SIFS_T2T_OFDM_8822B)
  12055. #define BITS_SIFS_T2T_OFDM_8822B \
  12056. (BIT_MASK_SIFS_T2T_OFDM_8822B << BIT_SHIFT_SIFS_T2T_OFDM_8822B)
  12057. #define BIT_CLEAR_SIFS_T2T_OFDM_8822B(x) ((x) & (~BITS_SIFS_T2T_OFDM_8822B))
  12058. #define BIT_GET_SIFS_T2T_OFDM_8822B(x) \
  12059. (((x) >> BIT_SHIFT_SIFS_T2T_OFDM_8822B) & BIT_MASK_SIFS_T2T_OFDM_8822B)
  12060. #define BIT_SET_SIFS_T2T_OFDM_8822B(x, v) \
  12061. (BIT_CLEAR_SIFS_T2T_OFDM_8822B(x) | BIT_SIFS_T2T_OFDM_8822B(v))
  12062. /* 2 REG_RESP_SIFS_CCK_8822B (RESPONSE SIFS FOR CCK REGISTER) */
  12063. #define BIT_SHIFT_SIFS_R2T_CCK_8822B 8
  12064. #define BIT_MASK_SIFS_R2T_CCK_8822B 0xff
  12065. #define BIT_SIFS_R2T_CCK_8822B(x) \
  12066. (((x) & BIT_MASK_SIFS_R2T_CCK_8822B) << BIT_SHIFT_SIFS_R2T_CCK_8822B)
  12067. #define BITS_SIFS_R2T_CCK_8822B \
  12068. (BIT_MASK_SIFS_R2T_CCK_8822B << BIT_SHIFT_SIFS_R2T_CCK_8822B)
  12069. #define BIT_CLEAR_SIFS_R2T_CCK_8822B(x) ((x) & (~BITS_SIFS_R2T_CCK_8822B))
  12070. #define BIT_GET_SIFS_R2T_CCK_8822B(x) \
  12071. (((x) >> BIT_SHIFT_SIFS_R2T_CCK_8822B) & BIT_MASK_SIFS_R2T_CCK_8822B)
  12072. #define BIT_SET_SIFS_R2T_CCK_8822B(x, v) \
  12073. (BIT_CLEAR_SIFS_R2T_CCK_8822B(x) | BIT_SIFS_R2T_CCK_8822B(v))
  12074. #define BIT_SHIFT_SIFS_T2T_CCK_8822B 0
  12075. #define BIT_MASK_SIFS_T2T_CCK_8822B 0xff
  12076. #define BIT_SIFS_T2T_CCK_8822B(x) \
  12077. (((x) & BIT_MASK_SIFS_T2T_CCK_8822B) << BIT_SHIFT_SIFS_T2T_CCK_8822B)
  12078. #define BITS_SIFS_T2T_CCK_8822B \
  12079. (BIT_MASK_SIFS_T2T_CCK_8822B << BIT_SHIFT_SIFS_T2T_CCK_8822B)
  12080. #define BIT_CLEAR_SIFS_T2T_CCK_8822B(x) ((x) & (~BITS_SIFS_T2T_CCK_8822B))
  12081. #define BIT_GET_SIFS_T2T_CCK_8822B(x) \
  12082. (((x) >> BIT_SHIFT_SIFS_T2T_CCK_8822B) & BIT_MASK_SIFS_T2T_CCK_8822B)
  12083. #define BIT_SET_SIFS_T2T_CCK_8822B(x, v) \
  12084. (BIT_CLEAR_SIFS_T2T_CCK_8822B(x) | BIT_SIFS_T2T_CCK_8822B(v))
  12085. /* 2 REG_EIFS_8822B (EIFS REGISTER) */
  12086. #define BIT_SHIFT_EIFS_8822B 0
  12087. #define BIT_MASK_EIFS_8822B 0xffff
  12088. #define BIT_EIFS_8822B(x) (((x) & BIT_MASK_EIFS_8822B) << BIT_SHIFT_EIFS_8822B)
  12089. #define BITS_EIFS_8822B (BIT_MASK_EIFS_8822B << BIT_SHIFT_EIFS_8822B)
  12090. #define BIT_CLEAR_EIFS_8822B(x) ((x) & (~BITS_EIFS_8822B))
  12091. #define BIT_GET_EIFS_8822B(x) \
  12092. (((x) >> BIT_SHIFT_EIFS_8822B) & BIT_MASK_EIFS_8822B)
  12093. #define BIT_SET_EIFS_8822B(x, v) (BIT_CLEAR_EIFS_8822B(x) | BIT_EIFS_8822B(v))
  12094. /* 2 REG_CTS2TO_8822B (CTS2 TIMEOUT REGISTER) */
  12095. #define BIT_SHIFT_CTS2TO_8822B 0
  12096. #define BIT_MASK_CTS2TO_8822B 0xff
  12097. #define BIT_CTS2TO_8822B(x) \
  12098. (((x) & BIT_MASK_CTS2TO_8822B) << BIT_SHIFT_CTS2TO_8822B)
  12099. #define BITS_CTS2TO_8822B (BIT_MASK_CTS2TO_8822B << BIT_SHIFT_CTS2TO_8822B)
  12100. #define BIT_CLEAR_CTS2TO_8822B(x) ((x) & (~BITS_CTS2TO_8822B))
  12101. #define BIT_GET_CTS2TO_8822B(x) \
  12102. (((x) >> BIT_SHIFT_CTS2TO_8822B) & BIT_MASK_CTS2TO_8822B)
  12103. #define BIT_SET_CTS2TO_8822B(x, v) \
  12104. (BIT_CLEAR_CTS2TO_8822B(x) | BIT_CTS2TO_8822B(v))
  12105. /* 2 REG_ACKTO_8822B (ACK TIMEOUT REGISTER) */
  12106. #define BIT_SHIFT_ACKTO_8822B 0
  12107. #define BIT_MASK_ACKTO_8822B 0xff
  12108. #define BIT_ACKTO_8822B(x) \
  12109. (((x) & BIT_MASK_ACKTO_8822B) << BIT_SHIFT_ACKTO_8822B)
  12110. #define BITS_ACKTO_8822B (BIT_MASK_ACKTO_8822B << BIT_SHIFT_ACKTO_8822B)
  12111. #define BIT_CLEAR_ACKTO_8822B(x) ((x) & (~BITS_ACKTO_8822B))
  12112. #define BIT_GET_ACKTO_8822B(x) \
  12113. (((x) >> BIT_SHIFT_ACKTO_8822B) & BIT_MASK_ACKTO_8822B)
  12114. #define BIT_SET_ACKTO_8822B(x, v) \
  12115. (BIT_CLEAR_ACKTO_8822B(x) | BIT_ACKTO_8822B(v))
  12116. /* 2 REG_NAV_CTRL_8822B (NAV CONTROL REGISTER) */
  12117. #define BIT_SHIFT_NAV_UPPER_8822B 16
  12118. #define BIT_MASK_NAV_UPPER_8822B 0xff
  12119. #define BIT_NAV_UPPER_8822B(x) \
  12120. (((x) & BIT_MASK_NAV_UPPER_8822B) << BIT_SHIFT_NAV_UPPER_8822B)
  12121. #define BITS_NAV_UPPER_8822B \
  12122. (BIT_MASK_NAV_UPPER_8822B << BIT_SHIFT_NAV_UPPER_8822B)
  12123. #define BIT_CLEAR_NAV_UPPER_8822B(x) ((x) & (~BITS_NAV_UPPER_8822B))
  12124. #define BIT_GET_NAV_UPPER_8822B(x) \
  12125. (((x) >> BIT_SHIFT_NAV_UPPER_8822B) & BIT_MASK_NAV_UPPER_8822B)
  12126. #define BIT_SET_NAV_UPPER_8822B(x, v) \
  12127. (BIT_CLEAR_NAV_UPPER_8822B(x) | BIT_NAV_UPPER_8822B(v))
  12128. #define BIT_SHIFT_RXMYRTS_NAV_8822B 8
  12129. #define BIT_MASK_RXMYRTS_NAV_8822B 0xf
  12130. #define BIT_RXMYRTS_NAV_8822B(x) \
  12131. (((x) & BIT_MASK_RXMYRTS_NAV_8822B) << BIT_SHIFT_RXMYRTS_NAV_8822B)
  12132. #define BITS_RXMYRTS_NAV_8822B \
  12133. (BIT_MASK_RXMYRTS_NAV_8822B << BIT_SHIFT_RXMYRTS_NAV_8822B)
  12134. #define BIT_CLEAR_RXMYRTS_NAV_8822B(x) ((x) & (~BITS_RXMYRTS_NAV_8822B))
  12135. #define BIT_GET_RXMYRTS_NAV_8822B(x) \
  12136. (((x) >> BIT_SHIFT_RXMYRTS_NAV_8822B) & BIT_MASK_RXMYRTS_NAV_8822B)
  12137. #define BIT_SET_RXMYRTS_NAV_8822B(x, v) \
  12138. (BIT_CLEAR_RXMYRTS_NAV_8822B(x) | BIT_RXMYRTS_NAV_8822B(v))
  12139. #define BIT_SHIFT_RTSRST_8822B 0
  12140. #define BIT_MASK_RTSRST_8822B 0xff
  12141. #define BIT_RTSRST_8822B(x) \
  12142. (((x) & BIT_MASK_RTSRST_8822B) << BIT_SHIFT_RTSRST_8822B)
  12143. #define BITS_RTSRST_8822B (BIT_MASK_RTSRST_8822B << BIT_SHIFT_RTSRST_8822B)
  12144. #define BIT_CLEAR_RTSRST_8822B(x) ((x) & (~BITS_RTSRST_8822B))
  12145. #define BIT_GET_RTSRST_8822B(x) \
  12146. (((x) >> BIT_SHIFT_RTSRST_8822B) & BIT_MASK_RTSRST_8822B)
  12147. #define BIT_SET_RTSRST_8822B(x, v) \
  12148. (BIT_CLEAR_RTSRST_8822B(x) | BIT_RTSRST_8822B(v))
  12149. /* 2 REG_BACAMCMD_8822B (BLOCK ACK CAM COMMAND REGISTER) */
  12150. #define BIT_BACAM_POLL_8822B BIT(31)
  12151. #define BIT_BACAM_RST_8822B BIT(17)
  12152. #define BIT_BACAM_RW_8822B BIT(16)
  12153. #define BIT_SHIFT_TXSBM_8822B 14
  12154. #define BIT_MASK_TXSBM_8822B 0x3
  12155. #define BIT_TXSBM_8822B(x) \
  12156. (((x) & BIT_MASK_TXSBM_8822B) << BIT_SHIFT_TXSBM_8822B)
  12157. #define BITS_TXSBM_8822B (BIT_MASK_TXSBM_8822B << BIT_SHIFT_TXSBM_8822B)
  12158. #define BIT_CLEAR_TXSBM_8822B(x) ((x) & (~BITS_TXSBM_8822B))
  12159. #define BIT_GET_TXSBM_8822B(x) \
  12160. (((x) >> BIT_SHIFT_TXSBM_8822B) & BIT_MASK_TXSBM_8822B)
  12161. #define BIT_SET_TXSBM_8822B(x, v) \
  12162. (BIT_CLEAR_TXSBM_8822B(x) | BIT_TXSBM_8822B(v))
  12163. #define BIT_SHIFT_BACAM_ADDR_8822B 0
  12164. #define BIT_MASK_BACAM_ADDR_8822B 0x3f
  12165. #define BIT_BACAM_ADDR_8822B(x) \
  12166. (((x) & BIT_MASK_BACAM_ADDR_8822B) << BIT_SHIFT_BACAM_ADDR_8822B)
  12167. #define BITS_BACAM_ADDR_8822B \
  12168. (BIT_MASK_BACAM_ADDR_8822B << BIT_SHIFT_BACAM_ADDR_8822B)
  12169. #define BIT_CLEAR_BACAM_ADDR_8822B(x) ((x) & (~BITS_BACAM_ADDR_8822B))
  12170. #define BIT_GET_BACAM_ADDR_8822B(x) \
  12171. (((x) >> BIT_SHIFT_BACAM_ADDR_8822B) & BIT_MASK_BACAM_ADDR_8822B)
  12172. #define BIT_SET_BACAM_ADDR_8822B(x, v) \
  12173. (BIT_CLEAR_BACAM_ADDR_8822B(x) | BIT_BACAM_ADDR_8822B(v))
  12174. /* 2 REG_BACAMCONTENT_8822B (BLOCK ACK CAM CONTENT REGISTER) */
  12175. #define BIT_SHIFT_BA_CONTENT_H_8822B (32 & CPU_OPT_WIDTH)
  12176. #define BIT_MASK_BA_CONTENT_H_8822B 0xffffffffL
  12177. #define BIT_BA_CONTENT_H_8822B(x) \
  12178. (((x) & BIT_MASK_BA_CONTENT_H_8822B) << BIT_SHIFT_BA_CONTENT_H_8822B)
  12179. #define BITS_BA_CONTENT_H_8822B \
  12180. (BIT_MASK_BA_CONTENT_H_8822B << BIT_SHIFT_BA_CONTENT_H_8822B)
  12181. #define BIT_CLEAR_BA_CONTENT_H_8822B(x) ((x) & (~BITS_BA_CONTENT_H_8822B))
  12182. #define BIT_GET_BA_CONTENT_H_8822B(x) \
  12183. (((x) >> BIT_SHIFT_BA_CONTENT_H_8822B) & BIT_MASK_BA_CONTENT_H_8822B)
  12184. #define BIT_SET_BA_CONTENT_H_8822B(x, v) \
  12185. (BIT_CLEAR_BA_CONTENT_H_8822B(x) | BIT_BA_CONTENT_H_8822B(v))
  12186. #define BIT_SHIFT_BA_CONTENT_L_8822B 0
  12187. #define BIT_MASK_BA_CONTENT_L_8822B 0xffffffffL
  12188. #define BIT_BA_CONTENT_L_8822B(x) \
  12189. (((x) & BIT_MASK_BA_CONTENT_L_8822B) << BIT_SHIFT_BA_CONTENT_L_8822B)
  12190. #define BITS_BA_CONTENT_L_8822B \
  12191. (BIT_MASK_BA_CONTENT_L_8822B << BIT_SHIFT_BA_CONTENT_L_8822B)
  12192. #define BIT_CLEAR_BA_CONTENT_L_8822B(x) ((x) & (~BITS_BA_CONTENT_L_8822B))
  12193. #define BIT_GET_BA_CONTENT_L_8822B(x) \
  12194. (((x) >> BIT_SHIFT_BA_CONTENT_L_8822B) & BIT_MASK_BA_CONTENT_L_8822B)
  12195. #define BIT_SET_BA_CONTENT_L_8822B(x, v) \
  12196. (BIT_CLEAR_BA_CONTENT_L_8822B(x) | BIT_BA_CONTENT_L_8822B(v))
  12197. /* 2 REG_WMAC_BITMAP_CTL_8822B */
  12198. #define BIT_BITMAP_VO_8822B BIT(7)
  12199. #define BIT_BITMAP_VI_8822B BIT(6)
  12200. #define BIT_BITMAP_BE_8822B BIT(5)
  12201. #define BIT_BITMAP_BK_8822B BIT(4)
  12202. #define BIT_SHIFT_BITMAP_CONDITION_8822B 2
  12203. #define BIT_MASK_BITMAP_CONDITION_8822B 0x3
  12204. #define BIT_BITMAP_CONDITION_8822B(x) \
  12205. (((x) & BIT_MASK_BITMAP_CONDITION_8822B) \
  12206. << BIT_SHIFT_BITMAP_CONDITION_8822B)
  12207. #define BITS_BITMAP_CONDITION_8822B \
  12208. (BIT_MASK_BITMAP_CONDITION_8822B << BIT_SHIFT_BITMAP_CONDITION_8822B)
  12209. #define BIT_CLEAR_BITMAP_CONDITION_8822B(x) \
  12210. ((x) & (~BITS_BITMAP_CONDITION_8822B))
  12211. #define BIT_GET_BITMAP_CONDITION_8822B(x) \
  12212. (((x) >> BIT_SHIFT_BITMAP_CONDITION_8822B) & \
  12213. BIT_MASK_BITMAP_CONDITION_8822B)
  12214. #define BIT_SET_BITMAP_CONDITION_8822B(x, v) \
  12215. (BIT_CLEAR_BITMAP_CONDITION_8822B(x) | BIT_BITMAP_CONDITION_8822B(v))
  12216. #define BIT_BITMAP_SSNBK_COUNTER_CLR_8822B BIT(1)
  12217. #define BIT_BITMAP_FORCE_8822B BIT(0)
  12218. /* 2 REG_TX_RX_8822B STATUS */
  12219. #define BIT_SHIFT_RXPKT_TYPE_8822B 2
  12220. #define BIT_MASK_RXPKT_TYPE_8822B 0x3f
  12221. #define BIT_RXPKT_TYPE_8822B(x) \
  12222. (((x) & BIT_MASK_RXPKT_TYPE_8822B) << BIT_SHIFT_RXPKT_TYPE_8822B)
  12223. #define BITS_RXPKT_TYPE_8822B \
  12224. (BIT_MASK_RXPKT_TYPE_8822B << BIT_SHIFT_RXPKT_TYPE_8822B)
  12225. #define BIT_CLEAR_RXPKT_TYPE_8822B(x) ((x) & (~BITS_RXPKT_TYPE_8822B))
  12226. #define BIT_GET_RXPKT_TYPE_8822B(x) \
  12227. (((x) >> BIT_SHIFT_RXPKT_TYPE_8822B) & BIT_MASK_RXPKT_TYPE_8822B)
  12228. #define BIT_SET_RXPKT_TYPE_8822B(x, v) \
  12229. (BIT_CLEAR_RXPKT_TYPE_8822B(x) | BIT_RXPKT_TYPE_8822B(v))
  12230. #define BIT_TXACT_IND_8822B BIT(1)
  12231. #define BIT_RXACT_IND_8822B BIT(0)
  12232. /* 2 REG_WMAC_BACAM_RPMEN_8822B */
  12233. #define BIT_SHIFT_BITMAP_SSNBK_COUNTER_8822B 2
  12234. #define BIT_MASK_BITMAP_SSNBK_COUNTER_8822B 0x3f
  12235. #define BIT_BITMAP_SSNBK_COUNTER_8822B(x) \
  12236. (((x) & BIT_MASK_BITMAP_SSNBK_COUNTER_8822B) \
  12237. << BIT_SHIFT_BITMAP_SSNBK_COUNTER_8822B)
  12238. #define BITS_BITMAP_SSNBK_COUNTER_8822B \
  12239. (BIT_MASK_BITMAP_SSNBK_COUNTER_8822B \
  12240. << BIT_SHIFT_BITMAP_SSNBK_COUNTER_8822B)
  12241. #define BIT_CLEAR_BITMAP_SSNBK_COUNTER_8822B(x) \
  12242. ((x) & (~BITS_BITMAP_SSNBK_COUNTER_8822B))
  12243. #define BIT_GET_BITMAP_SSNBK_COUNTER_8822B(x) \
  12244. (((x) >> BIT_SHIFT_BITMAP_SSNBK_COUNTER_8822B) & \
  12245. BIT_MASK_BITMAP_SSNBK_COUNTER_8822B)
  12246. #define BIT_SET_BITMAP_SSNBK_COUNTER_8822B(x, v) \
  12247. (BIT_CLEAR_BITMAP_SSNBK_COUNTER_8822B(x) | \
  12248. BIT_BITMAP_SSNBK_COUNTER_8822B(v))
  12249. #define BIT_BITMAP_EN_8822B BIT(1)
  12250. #define BIT_WMAC_BACAM_RPMEN_8822B BIT(0)
  12251. /* 2 REG_LBDLY_8822B (LOOPBACK DELAY REGISTER) */
  12252. #define BIT_SHIFT_LBDLY_8822B 0
  12253. #define BIT_MASK_LBDLY_8822B 0x1f
  12254. #define BIT_LBDLY_8822B(x) \
  12255. (((x) & BIT_MASK_LBDLY_8822B) << BIT_SHIFT_LBDLY_8822B)
  12256. #define BITS_LBDLY_8822B (BIT_MASK_LBDLY_8822B << BIT_SHIFT_LBDLY_8822B)
  12257. #define BIT_CLEAR_LBDLY_8822B(x) ((x) & (~BITS_LBDLY_8822B))
  12258. #define BIT_GET_LBDLY_8822B(x) \
  12259. (((x) >> BIT_SHIFT_LBDLY_8822B) & BIT_MASK_LBDLY_8822B)
  12260. #define BIT_SET_LBDLY_8822B(x, v) \
  12261. (BIT_CLEAR_LBDLY_8822B(x) | BIT_LBDLY_8822B(v))
  12262. /* 2 REG_RXERR_RPT_8822B (RX ERROR REPORT REGISTER) */
  12263. #define BIT_SHIFT_RXERR_RPT_SEL_V1_3_0_8822B 28
  12264. #define BIT_MASK_RXERR_RPT_SEL_V1_3_0_8822B 0xf
  12265. #define BIT_RXERR_RPT_SEL_V1_3_0_8822B(x) \
  12266. (((x) & BIT_MASK_RXERR_RPT_SEL_V1_3_0_8822B) \
  12267. << BIT_SHIFT_RXERR_RPT_SEL_V1_3_0_8822B)
  12268. #define BITS_RXERR_RPT_SEL_V1_3_0_8822B \
  12269. (BIT_MASK_RXERR_RPT_SEL_V1_3_0_8822B \
  12270. << BIT_SHIFT_RXERR_RPT_SEL_V1_3_0_8822B)
  12271. #define BIT_CLEAR_RXERR_RPT_SEL_V1_3_0_8822B(x) \
  12272. ((x) & (~BITS_RXERR_RPT_SEL_V1_3_0_8822B))
  12273. #define BIT_GET_RXERR_RPT_SEL_V1_3_0_8822B(x) \
  12274. (((x) >> BIT_SHIFT_RXERR_RPT_SEL_V1_3_0_8822B) & \
  12275. BIT_MASK_RXERR_RPT_SEL_V1_3_0_8822B)
  12276. #define BIT_SET_RXERR_RPT_SEL_V1_3_0_8822B(x, v) \
  12277. (BIT_CLEAR_RXERR_RPT_SEL_V1_3_0_8822B(x) | \
  12278. BIT_RXERR_RPT_SEL_V1_3_0_8822B(v))
  12279. #define BIT_RXERR_RPT_RST_8822B BIT(27)
  12280. #define BIT_RXERR_RPT_SEL_V1_4_8822B BIT(26)
  12281. #define BIT_W1S_8822B BIT(23)
  12282. #define BIT_UD_SELECT_BSSID_8822B BIT(22)
  12283. #define BIT_SHIFT_UD_SUB_TYPE_8822B 18
  12284. #define BIT_MASK_UD_SUB_TYPE_8822B 0xf
  12285. #define BIT_UD_SUB_TYPE_8822B(x) \
  12286. (((x) & BIT_MASK_UD_SUB_TYPE_8822B) << BIT_SHIFT_UD_SUB_TYPE_8822B)
  12287. #define BITS_UD_SUB_TYPE_8822B \
  12288. (BIT_MASK_UD_SUB_TYPE_8822B << BIT_SHIFT_UD_SUB_TYPE_8822B)
  12289. #define BIT_CLEAR_UD_SUB_TYPE_8822B(x) ((x) & (~BITS_UD_SUB_TYPE_8822B))
  12290. #define BIT_GET_UD_SUB_TYPE_8822B(x) \
  12291. (((x) >> BIT_SHIFT_UD_SUB_TYPE_8822B) & BIT_MASK_UD_SUB_TYPE_8822B)
  12292. #define BIT_SET_UD_SUB_TYPE_8822B(x, v) \
  12293. (BIT_CLEAR_UD_SUB_TYPE_8822B(x) | BIT_UD_SUB_TYPE_8822B(v))
  12294. #define BIT_SHIFT_UD_TYPE_8822B 16
  12295. #define BIT_MASK_UD_TYPE_8822B 0x3
  12296. #define BIT_UD_TYPE_8822B(x) \
  12297. (((x) & BIT_MASK_UD_TYPE_8822B) << BIT_SHIFT_UD_TYPE_8822B)
  12298. #define BITS_UD_TYPE_8822B (BIT_MASK_UD_TYPE_8822B << BIT_SHIFT_UD_TYPE_8822B)
  12299. #define BIT_CLEAR_UD_TYPE_8822B(x) ((x) & (~BITS_UD_TYPE_8822B))
  12300. #define BIT_GET_UD_TYPE_8822B(x) \
  12301. (((x) >> BIT_SHIFT_UD_TYPE_8822B) & BIT_MASK_UD_TYPE_8822B)
  12302. #define BIT_SET_UD_TYPE_8822B(x, v) \
  12303. (BIT_CLEAR_UD_TYPE_8822B(x) | BIT_UD_TYPE_8822B(v))
  12304. #define BIT_SHIFT_RPT_COUNTER_8822B 0
  12305. #define BIT_MASK_RPT_COUNTER_8822B 0xffff
  12306. #define BIT_RPT_COUNTER_8822B(x) \
  12307. (((x) & BIT_MASK_RPT_COUNTER_8822B) << BIT_SHIFT_RPT_COUNTER_8822B)
  12308. #define BITS_RPT_COUNTER_8822B \
  12309. (BIT_MASK_RPT_COUNTER_8822B << BIT_SHIFT_RPT_COUNTER_8822B)
  12310. #define BIT_CLEAR_RPT_COUNTER_8822B(x) ((x) & (~BITS_RPT_COUNTER_8822B))
  12311. #define BIT_GET_RPT_COUNTER_8822B(x) \
  12312. (((x) >> BIT_SHIFT_RPT_COUNTER_8822B) & BIT_MASK_RPT_COUNTER_8822B)
  12313. #define BIT_SET_RPT_COUNTER_8822B(x, v) \
  12314. (BIT_CLEAR_RPT_COUNTER_8822B(x) | BIT_RPT_COUNTER_8822B(v))
  12315. /* 2 REG_WMAC_TRXPTCL_CTL_8822B (WMAC TX/RX PROTOCOL CONTROL REGISTER) */
  12316. #define BIT_SHIFT_ACKBA_TYPSEL_8822B (60 & CPU_OPT_WIDTH)
  12317. #define BIT_MASK_ACKBA_TYPSEL_8822B 0xf
  12318. #define BIT_ACKBA_TYPSEL_8822B(x) \
  12319. (((x) & BIT_MASK_ACKBA_TYPSEL_8822B) << BIT_SHIFT_ACKBA_TYPSEL_8822B)
  12320. #define BITS_ACKBA_TYPSEL_8822B \
  12321. (BIT_MASK_ACKBA_TYPSEL_8822B << BIT_SHIFT_ACKBA_TYPSEL_8822B)
  12322. #define BIT_CLEAR_ACKBA_TYPSEL_8822B(x) ((x) & (~BITS_ACKBA_TYPSEL_8822B))
  12323. #define BIT_GET_ACKBA_TYPSEL_8822B(x) \
  12324. (((x) >> BIT_SHIFT_ACKBA_TYPSEL_8822B) & BIT_MASK_ACKBA_TYPSEL_8822B)
  12325. #define BIT_SET_ACKBA_TYPSEL_8822B(x, v) \
  12326. (BIT_CLEAR_ACKBA_TYPSEL_8822B(x) | BIT_ACKBA_TYPSEL_8822B(v))
  12327. #define BIT_SHIFT_ACKBA_ACKPCHK_8822B (56 & CPU_OPT_WIDTH)
  12328. #define BIT_MASK_ACKBA_ACKPCHK_8822B 0xf
  12329. #define BIT_ACKBA_ACKPCHK_8822B(x) \
  12330. (((x) & BIT_MASK_ACKBA_ACKPCHK_8822B) << BIT_SHIFT_ACKBA_ACKPCHK_8822B)
  12331. #define BITS_ACKBA_ACKPCHK_8822B \
  12332. (BIT_MASK_ACKBA_ACKPCHK_8822B << BIT_SHIFT_ACKBA_ACKPCHK_8822B)
  12333. #define BIT_CLEAR_ACKBA_ACKPCHK_8822B(x) ((x) & (~BITS_ACKBA_ACKPCHK_8822B))
  12334. #define BIT_GET_ACKBA_ACKPCHK_8822B(x) \
  12335. (((x) >> BIT_SHIFT_ACKBA_ACKPCHK_8822B) & BIT_MASK_ACKBA_ACKPCHK_8822B)
  12336. #define BIT_SET_ACKBA_ACKPCHK_8822B(x, v) \
  12337. (BIT_CLEAR_ACKBA_ACKPCHK_8822B(x) | BIT_ACKBA_ACKPCHK_8822B(v))
  12338. #define BIT_SHIFT_ACKBAR_TYPESEL_8822B (48 & CPU_OPT_WIDTH)
  12339. #define BIT_MASK_ACKBAR_TYPESEL_8822B 0xff
  12340. #define BIT_ACKBAR_TYPESEL_8822B(x) \
  12341. (((x) & BIT_MASK_ACKBAR_TYPESEL_8822B) \
  12342. << BIT_SHIFT_ACKBAR_TYPESEL_8822B)
  12343. #define BITS_ACKBAR_TYPESEL_8822B \
  12344. (BIT_MASK_ACKBAR_TYPESEL_8822B << BIT_SHIFT_ACKBAR_TYPESEL_8822B)
  12345. #define BIT_CLEAR_ACKBAR_TYPESEL_8822B(x) ((x) & (~BITS_ACKBAR_TYPESEL_8822B))
  12346. #define BIT_GET_ACKBAR_TYPESEL_8822B(x) \
  12347. (((x) >> BIT_SHIFT_ACKBAR_TYPESEL_8822B) & \
  12348. BIT_MASK_ACKBAR_TYPESEL_8822B)
  12349. #define BIT_SET_ACKBAR_TYPESEL_8822B(x, v) \
  12350. (BIT_CLEAR_ACKBAR_TYPESEL_8822B(x) | BIT_ACKBAR_TYPESEL_8822B(v))
  12351. #define BIT_SHIFT_ACKBAR_ACKPCHK_8822B (44 & CPU_OPT_WIDTH)
  12352. #define BIT_MASK_ACKBAR_ACKPCHK_8822B 0xf
  12353. #define BIT_ACKBAR_ACKPCHK_8822B(x) \
  12354. (((x) & BIT_MASK_ACKBAR_ACKPCHK_8822B) \
  12355. << BIT_SHIFT_ACKBAR_ACKPCHK_8822B)
  12356. #define BITS_ACKBAR_ACKPCHK_8822B \
  12357. (BIT_MASK_ACKBAR_ACKPCHK_8822B << BIT_SHIFT_ACKBAR_ACKPCHK_8822B)
  12358. #define BIT_CLEAR_ACKBAR_ACKPCHK_8822B(x) ((x) & (~BITS_ACKBAR_ACKPCHK_8822B))
  12359. #define BIT_GET_ACKBAR_ACKPCHK_8822B(x) \
  12360. (((x) >> BIT_SHIFT_ACKBAR_ACKPCHK_8822B) & \
  12361. BIT_MASK_ACKBAR_ACKPCHK_8822B)
  12362. #define BIT_SET_ACKBAR_ACKPCHK_8822B(x, v) \
  12363. (BIT_CLEAR_ACKBAR_ACKPCHK_8822B(x) | BIT_ACKBAR_ACKPCHK_8822B(v))
  12364. #define BIT_RXBA_IGNOREA2_8822B BIT(42)
  12365. #define BIT_EN_SAVE_ALL_TXOPADDR_8822B BIT(41)
  12366. #define BIT_EN_TXCTS_TO_TXOPOWNER_INRXNAV_8822B BIT(40)
  12367. #define BIT_DIS_TXBA_AMPDUFCSERR_8822B BIT(39)
  12368. #define BIT_DIS_TXBA_RXBARINFULL_8822B BIT(38)
  12369. #define BIT_DIS_TXCFE_INFULL_8822B BIT(37)
  12370. #define BIT_DIS_TXCTS_INFULL_8822B BIT(36)
  12371. #define BIT_EN_TXACKBA_IN_TX_RDG_8822B BIT(35)
  12372. #define BIT_EN_TXACKBA_IN_TXOP_8822B BIT(34)
  12373. #define BIT_EN_TXCTS_IN_RXNAV_8822B BIT(33)
  12374. #define BIT_EN_TXCTS_INTXOP_8822B BIT(32)
  12375. #define BIT_BLK_EDCA_BBSLP_8822B BIT(31)
  12376. #define BIT_BLK_EDCA_BBSBY_8822B BIT(30)
  12377. #define BIT_ACKTO_BLOCK_SCH_EN_8822B BIT(27)
  12378. #define BIT_EIFS_BLOCK_SCH_EN_8822B BIT(26)
  12379. #define BIT_PLCPCHK_RST_EIFS_8822B BIT(25)
  12380. #define BIT_CCA_RST_EIFS_8822B BIT(24)
  12381. #define BIT_DIS_UPD_MYRXPKTNAV_8822B BIT(23)
  12382. #define BIT_EARLY_TXBA_8822B BIT(22)
  12383. #define BIT_SHIFT_RESP_CHNBUSY_8822B 20
  12384. #define BIT_MASK_RESP_CHNBUSY_8822B 0x3
  12385. #define BIT_RESP_CHNBUSY_8822B(x) \
  12386. (((x) & BIT_MASK_RESP_CHNBUSY_8822B) << BIT_SHIFT_RESP_CHNBUSY_8822B)
  12387. #define BITS_RESP_CHNBUSY_8822B \
  12388. (BIT_MASK_RESP_CHNBUSY_8822B << BIT_SHIFT_RESP_CHNBUSY_8822B)
  12389. #define BIT_CLEAR_RESP_CHNBUSY_8822B(x) ((x) & (~BITS_RESP_CHNBUSY_8822B))
  12390. #define BIT_GET_RESP_CHNBUSY_8822B(x) \
  12391. (((x) >> BIT_SHIFT_RESP_CHNBUSY_8822B) & BIT_MASK_RESP_CHNBUSY_8822B)
  12392. #define BIT_SET_RESP_CHNBUSY_8822B(x, v) \
  12393. (BIT_CLEAR_RESP_CHNBUSY_8822B(x) | BIT_RESP_CHNBUSY_8822B(v))
  12394. #define BIT_RESP_DCTS_EN_8822B BIT(19)
  12395. #define BIT_RESP_DCFE_EN_8822B BIT(18)
  12396. #define BIT_RESP_SPLCPEN_8822B BIT(17)
  12397. #define BIT_RESP_SGIEN_8822B BIT(16)
  12398. #define BIT_RESP_LDPC_EN_8822B BIT(15)
  12399. #define BIT_DIS_RESP_ACKINCCA_8822B BIT(14)
  12400. #define BIT_DIS_RESP_CTSINCCA_8822B BIT(13)
  12401. #define BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER_8822B 10
  12402. #define BIT_MASK_R_WMAC_SECOND_CCA_TIMER_8822B 0x7
  12403. #define BIT_R_WMAC_SECOND_CCA_TIMER_8822B(x) \
  12404. (((x) & BIT_MASK_R_WMAC_SECOND_CCA_TIMER_8822B) \
  12405. << BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER_8822B)
  12406. #define BITS_R_WMAC_SECOND_CCA_TIMER_8822B \
  12407. (BIT_MASK_R_WMAC_SECOND_CCA_TIMER_8822B \
  12408. << BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER_8822B)
  12409. #define BIT_CLEAR_R_WMAC_SECOND_CCA_TIMER_8822B(x) \
  12410. ((x) & (~BITS_R_WMAC_SECOND_CCA_TIMER_8822B))
  12411. #define BIT_GET_R_WMAC_SECOND_CCA_TIMER_8822B(x) \
  12412. (((x) >> BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER_8822B) & \
  12413. BIT_MASK_R_WMAC_SECOND_CCA_TIMER_8822B)
  12414. #define BIT_SET_R_WMAC_SECOND_CCA_TIMER_8822B(x, v) \
  12415. (BIT_CLEAR_R_WMAC_SECOND_CCA_TIMER_8822B(x) | \
  12416. BIT_R_WMAC_SECOND_CCA_TIMER_8822B(v))
  12417. #define BIT_SHIFT_RFMOD_8822B 7
  12418. #define BIT_MASK_RFMOD_8822B 0x3
  12419. #define BIT_RFMOD_8822B(x) \
  12420. (((x) & BIT_MASK_RFMOD_8822B) << BIT_SHIFT_RFMOD_8822B)
  12421. #define BITS_RFMOD_8822B (BIT_MASK_RFMOD_8822B << BIT_SHIFT_RFMOD_8822B)
  12422. #define BIT_CLEAR_RFMOD_8822B(x) ((x) & (~BITS_RFMOD_8822B))
  12423. #define BIT_GET_RFMOD_8822B(x) \
  12424. (((x) >> BIT_SHIFT_RFMOD_8822B) & BIT_MASK_RFMOD_8822B)
  12425. #define BIT_SET_RFMOD_8822B(x, v) \
  12426. (BIT_CLEAR_RFMOD_8822B(x) | BIT_RFMOD_8822B(v))
  12427. #define BIT_SHIFT_RESP_CTS_DYNBW_SEL_8822B 5
  12428. #define BIT_MASK_RESP_CTS_DYNBW_SEL_8822B 0x3
  12429. #define BIT_RESP_CTS_DYNBW_SEL_8822B(x) \
  12430. (((x) & BIT_MASK_RESP_CTS_DYNBW_SEL_8822B) \
  12431. << BIT_SHIFT_RESP_CTS_DYNBW_SEL_8822B)
  12432. #define BITS_RESP_CTS_DYNBW_SEL_8822B \
  12433. (BIT_MASK_RESP_CTS_DYNBW_SEL_8822B \
  12434. << BIT_SHIFT_RESP_CTS_DYNBW_SEL_8822B)
  12435. #define BIT_CLEAR_RESP_CTS_DYNBW_SEL_8822B(x) \
  12436. ((x) & (~BITS_RESP_CTS_DYNBW_SEL_8822B))
  12437. #define BIT_GET_RESP_CTS_DYNBW_SEL_8822B(x) \
  12438. (((x) >> BIT_SHIFT_RESP_CTS_DYNBW_SEL_8822B) & \
  12439. BIT_MASK_RESP_CTS_DYNBW_SEL_8822B)
  12440. #define BIT_SET_RESP_CTS_DYNBW_SEL_8822B(x, v) \
  12441. (BIT_CLEAR_RESP_CTS_DYNBW_SEL_8822B(x) | \
  12442. BIT_RESP_CTS_DYNBW_SEL_8822B(v))
  12443. #define BIT_DLY_TX_WAIT_RXANTSEL_8822B BIT(4)
  12444. #define BIT_TXRESP_BY_RXANTSEL_8822B BIT(3)
  12445. #define BIT_SHIFT_ORIG_DCTS_CHK_8822B 0
  12446. #define BIT_MASK_ORIG_DCTS_CHK_8822B 0x3
  12447. #define BIT_ORIG_DCTS_CHK_8822B(x) \
  12448. (((x) & BIT_MASK_ORIG_DCTS_CHK_8822B) << BIT_SHIFT_ORIG_DCTS_CHK_8822B)
  12449. #define BITS_ORIG_DCTS_CHK_8822B \
  12450. (BIT_MASK_ORIG_DCTS_CHK_8822B << BIT_SHIFT_ORIG_DCTS_CHK_8822B)
  12451. #define BIT_CLEAR_ORIG_DCTS_CHK_8822B(x) ((x) & (~BITS_ORIG_DCTS_CHK_8822B))
  12452. #define BIT_GET_ORIG_DCTS_CHK_8822B(x) \
  12453. (((x) >> BIT_SHIFT_ORIG_DCTS_CHK_8822B) & BIT_MASK_ORIG_DCTS_CHK_8822B)
  12454. #define BIT_SET_ORIG_DCTS_CHK_8822B(x, v) \
  12455. (BIT_CLEAR_ORIG_DCTS_CHK_8822B(x) | BIT_ORIG_DCTS_CHK_8822B(v))
  12456. /* 2 REG_CAMCMD_8822B (CAM COMMAND REGISTER) */
  12457. #define BIT_SECCAM_POLLING_8822B BIT(31)
  12458. #define BIT_SECCAM_CLR_8822B BIT(30)
  12459. #define BIT_MFBCAM_CLR_8822B BIT(29)
  12460. #define BIT_SECCAM_WE_8822B BIT(16)
  12461. #define BIT_SHIFT_SECCAM_ADDR_V2_8822B 0
  12462. #define BIT_MASK_SECCAM_ADDR_V2_8822B 0x3ff
  12463. #define BIT_SECCAM_ADDR_V2_8822B(x) \
  12464. (((x) & BIT_MASK_SECCAM_ADDR_V2_8822B) \
  12465. << BIT_SHIFT_SECCAM_ADDR_V2_8822B)
  12466. #define BITS_SECCAM_ADDR_V2_8822B \
  12467. (BIT_MASK_SECCAM_ADDR_V2_8822B << BIT_SHIFT_SECCAM_ADDR_V2_8822B)
  12468. #define BIT_CLEAR_SECCAM_ADDR_V2_8822B(x) ((x) & (~BITS_SECCAM_ADDR_V2_8822B))
  12469. #define BIT_GET_SECCAM_ADDR_V2_8822B(x) \
  12470. (((x) >> BIT_SHIFT_SECCAM_ADDR_V2_8822B) & \
  12471. BIT_MASK_SECCAM_ADDR_V2_8822B)
  12472. #define BIT_SET_SECCAM_ADDR_V2_8822B(x, v) \
  12473. (BIT_CLEAR_SECCAM_ADDR_V2_8822B(x) | BIT_SECCAM_ADDR_V2_8822B(v))
  12474. /* 2 REG_CAMWRITE_8822B (CAM WRITE REGISTER) */
  12475. #define BIT_SHIFT_CAMW_DATA_8822B 0
  12476. #define BIT_MASK_CAMW_DATA_8822B 0xffffffffL
  12477. #define BIT_CAMW_DATA_8822B(x) \
  12478. (((x) & BIT_MASK_CAMW_DATA_8822B) << BIT_SHIFT_CAMW_DATA_8822B)
  12479. #define BITS_CAMW_DATA_8822B \
  12480. (BIT_MASK_CAMW_DATA_8822B << BIT_SHIFT_CAMW_DATA_8822B)
  12481. #define BIT_CLEAR_CAMW_DATA_8822B(x) ((x) & (~BITS_CAMW_DATA_8822B))
  12482. #define BIT_GET_CAMW_DATA_8822B(x) \
  12483. (((x) >> BIT_SHIFT_CAMW_DATA_8822B) & BIT_MASK_CAMW_DATA_8822B)
  12484. #define BIT_SET_CAMW_DATA_8822B(x, v) \
  12485. (BIT_CLEAR_CAMW_DATA_8822B(x) | BIT_CAMW_DATA_8822B(v))
  12486. /* 2 REG_CAMREAD_8822B (CAM READ REGISTER) */
  12487. #define BIT_SHIFT_CAMR_DATA_8822B 0
  12488. #define BIT_MASK_CAMR_DATA_8822B 0xffffffffL
  12489. #define BIT_CAMR_DATA_8822B(x) \
  12490. (((x) & BIT_MASK_CAMR_DATA_8822B) << BIT_SHIFT_CAMR_DATA_8822B)
  12491. #define BITS_CAMR_DATA_8822B \
  12492. (BIT_MASK_CAMR_DATA_8822B << BIT_SHIFT_CAMR_DATA_8822B)
  12493. #define BIT_CLEAR_CAMR_DATA_8822B(x) ((x) & (~BITS_CAMR_DATA_8822B))
  12494. #define BIT_GET_CAMR_DATA_8822B(x) \
  12495. (((x) >> BIT_SHIFT_CAMR_DATA_8822B) & BIT_MASK_CAMR_DATA_8822B)
  12496. #define BIT_SET_CAMR_DATA_8822B(x, v) \
  12497. (BIT_CLEAR_CAMR_DATA_8822B(x) | BIT_CAMR_DATA_8822B(v))
  12498. /* 2 REG_CAMDBG_8822B (CAM DEBUG REGISTER) */
  12499. #define BIT_SECCAM_INFO_8822B BIT(31)
  12500. #define BIT_SEC_KEYFOUND_8822B BIT(15)
  12501. #define BIT_SHIFT_CAMDBG_SEC_TYPE_8822B 12
  12502. #define BIT_MASK_CAMDBG_SEC_TYPE_8822B 0x7
  12503. #define BIT_CAMDBG_SEC_TYPE_8822B(x) \
  12504. (((x) & BIT_MASK_CAMDBG_SEC_TYPE_8822B) \
  12505. << BIT_SHIFT_CAMDBG_SEC_TYPE_8822B)
  12506. #define BITS_CAMDBG_SEC_TYPE_8822B \
  12507. (BIT_MASK_CAMDBG_SEC_TYPE_8822B << BIT_SHIFT_CAMDBG_SEC_TYPE_8822B)
  12508. #define BIT_CLEAR_CAMDBG_SEC_TYPE_8822B(x) ((x) & (~BITS_CAMDBG_SEC_TYPE_8822B))
  12509. #define BIT_GET_CAMDBG_SEC_TYPE_8822B(x) \
  12510. (((x) >> BIT_SHIFT_CAMDBG_SEC_TYPE_8822B) & \
  12511. BIT_MASK_CAMDBG_SEC_TYPE_8822B)
  12512. #define BIT_SET_CAMDBG_SEC_TYPE_8822B(x, v) \
  12513. (BIT_CLEAR_CAMDBG_SEC_TYPE_8822B(x) | BIT_CAMDBG_SEC_TYPE_8822B(v))
  12514. #define BIT_CAMDBG_EXT_SECTYPE_8822B BIT(11)
  12515. #define BIT_SHIFT_CAMDBG_MIC_KEY_IDX_8822B 5
  12516. #define BIT_MASK_CAMDBG_MIC_KEY_IDX_8822B 0x1f
  12517. #define BIT_CAMDBG_MIC_KEY_IDX_8822B(x) \
  12518. (((x) & BIT_MASK_CAMDBG_MIC_KEY_IDX_8822B) \
  12519. << BIT_SHIFT_CAMDBG_MIC_KEY_IDX_8822B)
  12520. #define BITS_CAMDBG_MIC_KEY_IDX_8822B \
  12521. (BIT_MASK_CAMDBG_MIC_KEY_IDX_8822B \
  12522. << BIT_SHIFT_CAMDBG_MIC_KEY_IDX_8822B)
  12523. #define BIT_CLEAR_CAMDBG_MIC_KEY_IDX_8822B(x) \
  12524. ((x) & (~BITS_CAMDBG_MIC_KEY_IDX_8822B))
  12525. #define BIT_GET_CAMDBG_MIC_KEY_IDX_8822B(x) \
  12526. (((x) >> BIT_SHIFT_CAMDBG_MIC_KEY_IDX_8822B) & \
  12527. BIT_MASK_CAMDBG_MIC_KEY_IDX_8822B)
  12528. #define BIT_SET_CAMDBG_MIC_KEY_IDX_8822B(x, v) \
  12529. (BIT_CLEAR_CAMDBG_MIC_KEY_IDX_8822B(x) | \
  12530. BIT_CAMDBG_MIC_KEY_IDX_8822B(v))
  12531. #define BIT_SHIFT_CAMDBG_SEC_KEY_IDX_8822B 0
  12532. #define BIT_MASK_CAMDBG_SEC_KEY_IDX_8822B 0x1f
  12533. #define BIT_CAMDBG_SEC_KEY_IDX_8822B(x) \
  12534. (((x) & BIT_MASK_CAMDBG_SEC_KEY_IDX_8822B) \
  12535. << BIT_SHIFT_CAMDBG_SEC_KEY_IDX_8822B)
  12536. #define BITS_CAMDBG_SEC_KEY_IDX_8822B \
  12537. (BIT_MASK_CAMDBG_SEC_KEY_IDX_8822B \
  12538. << BIT_SHIFT_CAMDBG_SEC_KEY_IDX_8822B)
  12539. #define BIT_CLEAR_CAMDBG_SEC_KEY_IDX_8822B(x) \
  12540. ((x) & (~BITS_CAMDBG_SEC_KEY_IDX_8822B))
  12541. #define BIT_GET_CAMDBG_SEC_KEY_IDX_8822B(x) \
  12542. (((x) >> BIT_SHIFT_CAMDBG_SEC_KEY_IDX_8822B) & \
  12543. BIT_MASK_CAMDBG_SEC_KEY_IDX_8822B)
  12544. #define BIT_SET_CAMDBG_SEC_KEY_IDX_8822B(x, v) \
  12545. (BIT_CLEAR_CAMDBG_SEC_KEY_IDX_8822B(x) | \
  12546. BIT_CAMDBG_SEC_KEY_IDX_8822B(v))
  12547. /* 2 REG_RXFILTER_ACTION_1_8822B */
  12548. #define BIT_SHIFT_RXFILTER_ACTION_1_8822B 0
  12549. #define BIT_MASK_RXFILTER_ACTION_1_8822B 0xff
  12550. #define BIT_RXFILTER_ACTION_1_8822B(x) \
  12551. (((x) & BIT_MASK_RXFILTER_ACTION_1_8822B) \
  12552. << BIT_SHIFT_RXFILTER_ACTION_1_8822B)
  12553. #define BITS_RXFILTER_ACTION_1_8822B \
  12554. (BIT_MASK_RXFILTER_ACTION_1_8822B << BIT_SHIFT_RXFILTER_ACTION_1_8822B)
  12555. #define BIT_CLEAR_RXFILTER_ACTION_1_8822B(x) \
  12556. ((x) & (~BITS_RXFILTER_ACTION_1_8822B))
  12557. #define BIT_GET_RXFILTER_ACTION_1_8822B(x) \
  12558. (((x) >> BIT_SHIFT_RXFILTER_ACTION_1_8822B) & \
  12559. BIT_MASK_RXFILTER_ACTION_1_8822B)
  12560. #define BIT_SET_RXFILTER_ACTION_1_8822B(x, v) \
  12561. (BIT_CLEAR_RXFILTER_ACTION_1_8822B(x) | BIT_RXFILTER_ACTION_1_8822B(v))
  12562. /* 2 REG_RXFILTER_CATEGORY_1_8822B */
  12563. #define BIT_SHIFT_RXFILTER_CATEGORY_1_8822B 0
  12564. #define BIT_MASK_RXFILTER_CATEGORY_1_8822B 0xff
  12565. #define BIT_RXFILTER_CATEGORY_1_8822B(x) \
  12566. (((x) & BIT_MASK_RXFILTER_CATEGORY_1_8822B) \
  12567. << BIT_SHIFT_RXFILTER_CATEGORY_1_8822B)
  12568. #define BITS_RXFILTER_CATEGORY_1_8822B \
  12569. (BIT_MASK_RXFILTER_CATEGORY_1_8822B \
  12570. << BIT_SHIFT_RXFILTER_CATEGORY_1_8822B)
  12571. #define BIT_CLEAR_RXFILTER_CATEGORY_1_8822B(x) \
  12572. ((x) & (~BITS_RXFILTER_CATEGORY_1_8822B))
  12573. #define BIT_GET_RXFILTER_CATEGORY_1_8822B(x) \
  12574. (((x) >> BIT_SHIFT_RXFILTER_CATEGORY_1_8822B) & \
  12575. BIT_MASK_RXFILTER_CATEGORY_1_8822B)
  12576. #define BIT_SET_RXFILTER_CATEGORY_1_8822B(x, v) \
  12577. (BIT_CLEAR_RXFILTER_CATEGORY_1_8822B(x) | \
  12578. BIT_RXFILTER_CATEGORY_1_8822B(v))
  12579. /* 2 REG_SECCFG_8822B (SECURITY CONFIGURATION REGISTER) */
  12580. #define BIT_DIS_GCLK_WAPI_8822B BIT(15)
  12581. #define BIT_DIS_GCLK_AES_8822B BIT(14)
  12582. #define BIT_DIS_GCLK_TKIP_8822B BIT(13)
  12583. #define BIT_AES_SEL_QC_1_8822B BIT(12)
  12584. #define BIT_AES_SEL_QC_0_8822B BIT(11)
  12585. #define BIT_CHK_BMC_8822B BIT(9)
  12586. #define BIT_CHK_KEYID_8822B BIT(8)
  12587. #define BIT_RXBCUSEDK_8822B BIT(7)
  12588. #define BIT_TXBCUSEDK_8822B BIT(6)
  12589. #define BIT_NOSKMC_8822B BIT(5)
  12590. #define BIT_SKBYA2_8822B BIT(4)
  12591. #define BIT_RXDEC_8822B BIT(3)
  12592. #define BIT_TXENC_8822B BIT(2)
  12593. #define BIT_RXUHUSEDK_8822B BIT(1)
  12594. #define BIT_TXUHUSEDK_8822B BIT(0)
  12595. /* 2 REG_RXFILTER_ACTION_3_8822B */
  12596. #define BIT_SHIFT_RXFILTER_ACTION_3_8822B 0
  12597. #define BIT_MASK_RXFILTER_ACTION_3_8822B 0xff
  12598. #define BIT_RXFILTER_ACTION_3_8822B(x) \
  12599. (((x) & BIT_MASK_RXFILTER_ACTION_3_8822B) \
  12600. << BIT_SHIFT_RXFILTER_ACTION_3_8822B)
  12601. #define BITS_RXFILTER_ACTION_3_8822B \
  12602. (BIT_MASK_RXFILTER_ACTION_3_8822B << BIT_SHIFT_RXFILTER_ACTION_3_8822B)
  12603. #define BIT_CLEAR_RXFILTER_ACTION_3_8822B(x) \
  12604. ((x) & (~BITS_RXFILTER_ACTION_3_8822B))
  12605. #define BIT_GET_RXFILTER_ACTION_3_8822B(x) \
  12606. (((x) >> BIT_SHIFT_RXFILTER_ACTION_3_8822B) & \
  12607. BIT_MASK_RXFILTER_ACTION_3_8822B)
  12608. #define BIT_SET_RXFILTER_ACTION_3_8822B(x, v) \
  12609. (BIT_CLEAR_RXFILTER_ACTION_3_8822B(x) | BIT_RXFILTER_ACTION_3_8822B(v))
  12610. /* 2 REG_RXFILTER_CATEGORY_3_8822B */
  12611. #define BIT_SHIFT_RXFILTER_CATEGORY_3_8822B 0
  12612. #define BIT_MASK_RXFILTER_CATEGORY_3_8822B 0xff
  12613. #define BIT_RXFILTER_CATEGORY_3_8822B(x) \
  12614. (((x) & BIT_MASK_RXFILTER_CATEGORY_3_8822B) \
  12615. << BIT_SHIFT_RXFILTER_CATEGORY_3_8822B)
  12616. #define BITS_RXFILTER_CATEGORY_3_8822B \
  12617. (BIT_MASK_RXFILTER_CATEGORY_3_8822B \
  12618. << BIT_SHIFT_RXFILTER_CATEGORY_3_8822B)
  12619. #define BIT_CLEAR_RXFILTER_CATEGORY_3_8822B(x) \
  12620. ((x) & (~BITS_RXFILTER_CATEGORY_3_8822B))
  12621. #define BIT_GET_RXFILTER_CATEGORY_3_8822B(x) \
  12622. (((x) >> BIT_SHIFT_RXFILTER_CATEGORY_3_8822B) & \
  12623. BIT_MASK_RXFILTER_CATEGORY_3_8822B)
  12624. #define BIT_SET_RXFILTER_CATEGORY_3_8822B(x, v) \
  12625. (BIT_CLEAR_RXFILTER_CATEGORY_3_8822B(x) | \
  12626. BIT_RXFILTER_CATEGORY_3_8822B(v))
  12627. /* 2 REG_RXFILTER_ACTION_2_8822B */
  12628. #define BIT_SHIFT_RXFILTER_ACTION_2_8822B 0
  12629. #define BIT_MASK_RXFILTER_ACTION_2_8822B 0xff
  12630. #define BIT_RXFILTER_ACTION_2_8822B(x) \
  12631. (((x) & BIT_MASK_RXFILTER_ACTION_2_8822B) \
  12632. << BIT_SHIFT_RXFILTER_ACTION_2_8822B)
  12633. #define BITS_RXFILTER_ACTION_2_8822B \
  12634. (BIT_MASK_RXFILTER_ACTION_2_8822B << BIT_SHIFT_RXFILTER_ACTION_2_8822B)
  12635. #define BIT_CLEAR_RXFILTER_ACTION_2_8822B(x) \
  12636. ((x) & (~BITS_RXFILTER_ACTION_2_8822B))
  12637. #define BIT_GET_RXFILTER_ACTION_2_8822B(x) \
  12638. (((x) >> BIT_SHIFT_RXFILTER_ACTION_2_8822B) & \
  12639. BIT_MASK_RXFILTER_ACTION_2_8822B)
  12640. #define BIT_SET_RXFILTER_ACTION_2_8822B(x, v) \
  12641. (BIT_CLEAR_RXFILTER_ACTION_2_8822B(x) | BIT_RXFILTER_ACTION_2_8822B(v))
  12642. /* 2 REG_RXFILTER_CATEGORY_2_8822B */
  12643. #define BIT_SHIFT_RXFILTER_CATEGORY_2_8822B 0
  12644. #define BIT_MASK_RXFILTER_CATEGORY_2_8822B 0xff
  12645. #define BIT_RXFILTER_CATEGORY_2_8822B(x) \
  12646. (((x) & BIT_MASK_RXFILTER_CATEGORY_2_8822B) \
  12647. << BIT_SHIFT_RXFILTER_CATEGORY_2_8822B)
  12648. #define BITS_RXFILTER_CATEGORY_2_8822B \
  12649. (BIT_MASK_RXFILTER_CATEGORY_2_8822B \
  12650. << BIT_SHIFT_RXFILTER_CATEGORY_2_8822B)
  12651. #define BIT_CLEAR_RXFILTER_CATEGORY_2_8822B(x) \
  12652. ((x) & (~BITS_RXFILTER_CATEGORY_2_8822B))
  12653. #define BIT_GET_RXFILTER_CATEGORY_2_8822B(x) \
  12654. (((x) >> BIT_SHIFT_RXFILTER_CATEGORY_2_8822B) & \
  12655. BIT_MASK_RXFILTER_CATEGORY_2_8822B)
  12656. #define BIT_SET_RXFILTER_CATEGORY_2_8822B(x, v) \
  12657. (BIT_CLEAR_RXFILTER_CATEGORY_2_8822B(x) | \
  12658. BIT_RXFILTER_CATEGORY_2_8822B(v))
  12659. /* 2 REG_RXFLTMAP4_8822B (RX FILTER MAP GROUP 4) */
  12660. #define BIT_CTRLFLT15EN_FW_8822B BIT(15)
  12661. #define BIT_CTRLFLT14EN_FW_8822B BIT(14)
  12662. #define BIT_CTRLFLT13EN_FW_8822B BIT(13)
  12663. #define BIT_CTRLFLT12EN_FW_8822B BIT(12)
  12664. #define BIT_CTRLFLT11EN_FW_8822B BIT(11)
  12665. #define BIT_CTRLFLT10EN_FW_8822B BIT(10)
  12666. #define BIT_CTRLFLT9EN_FW_8822B BIT(9)
  12667. #define BIT_CTRLFLT8EN_FW_8822B BIT(8)
  12668. #define BIT_CTRLFLT7EN_FW_8822B BIT(7)
  12669. #define BIT_CTRLFLT6EN_FW_8822B BIT(6)
  12670. #define BIT_CTRLFLT5EN_FW_8822B BIT(5)
  12671. #define BIT_CTRLFLT4EN_FW_8822B BIT(4)
  12672. #define BIT_CTRLFLT3EN_FW_8822B BIT(3)
  12673. #define BIT_CTRLFLT2EN_FW_8822B BIT(2)
  12674. #define BIT_CTRLFLT1EN_FW_8822B BIT(1)
  12675. #define BIT_CTRLFLT0EN_FW_8822B BIT(0)
  12676. /* 2 REG_RXFLTMAP3_8822B (RX FILTER MAP GROUP 3) */
  12677. #define BIT_MGTFLT15EN_FW_8822B BIT(15)
  12678. #define BIT_MGTFLT14EN_FW_8822B BIT(14)
  12679. #define BIT_MGTFLT13EN_FW_8822B BIT(13)
  12680. #define BIT_MGTFLT12EN_FW_8822B BIT(12)
  12681. #define BIT_MGTFLT11EN_FW_8822B BIT(11)
  12682. #define BIT_MGTFLT10EN_FW_8822B BIT(10)
  12683. #define BIT_MGTFLT9EN_FW_8822B BIT(9)
  12684. #define BIT_MGTFLT8EN_FW_8822B BIT(8)
  12685. #define BIT_MGTFLT7EN_FW_8822B BIT(7)
  12686. #define BIT_MGTFLT6EN_FW_8822B BIT(6)
  12687. #define BIT_MGTFLT5EN_FW_8822B BIT(5)
  12688. #define BIT_MGTFLT4EN_FW_8822B BIT(4)
  12689. #define BIT_MGTFLT3EN_FW_8822B BIT(3)
  12690. #define BIT_MGTFLT2EN_FW_8822B BIT(2)
  12691. #define BIT_MGTFLT1EN_FW_8822B BIT(1)
  12692. #define BIT_MGTFLT0EN_FW_8822B BIT(0)
  12693. /* 2 REG_RXFLTMAP6_8822B (RX FILTER MAP GROUP 6) */
  12694. #define BIT_ACTIONFLT15EN_FW_8822B BIT(15)
  12695. #define BIT_ACTIONFLT14EN_FW_8822B BIT(14)
  12696. #define BIT_ACTIONFLT13EN_FW_8822B BIT(13)
  12697. #define BIT_ACTIONFLT12EN_FW_8822B BIT(12)
  12698. #define BIT_ACTIONFLT11EN_FW_8822B BIT(11)
  12699. #define BIT_ACTIONFLT10EN_FW_8822B BIT(10)
  12700. #define BIT_ACTIONFLT9EN_FW_8822B BIT(9)
  12701. #define BIT_ACTIONFLT8EN_FW_8822B BIT(8)
  12702. #define BIT_ACTIONFLT7EN_FW_8822B BIT(7)
  12703. #define BIT_ACTIONFLT6EN_FW_8822B BIT(6)
  12704. #define BIT_ACTIONFLT5EN_FW_8822B BIT(5)
  12705. #define BIT_ACTIONFLT4EN_FW_8822B BIT(4)
  12706. #define BIT_ACTIONFLT3EN_FW_8822B BIT(3)
  12707. #define BIT_ACTIONFLT2EN_FW_8822B BIT(2)
  12708. #define BIT_ACTIONFLT1EN_FW_8822B BIT(1)
  12709. #define BIT_ACTIONFLT0EN_FW_8822B BIT(0)
  12710. /* 2 REG_RXFLTMAP5_8822B (RX FILTER MAP GROUP 5) */
  12711. #define BIT_DATAFLT15EN_FW_8822B BIT(15)
  12712. #define BIT_DATAFLT14EN_FW_8822B BIT(14)
  12713. #define BIT_DATAFLT13EN_FW_8822B BIT(13)
  12714. #define BIT_DATAFLT12EN_FW_8822B BIT(12)
  12715. #define BIT_DATAFLT11EN_FW_8822B BIT(11)
  12716. #define BIT_DATAFLT10EN_FW_8822B BIT(10)
  12717. #define BIT_DATAFLT9EN_FW_8822B BIT(9)
  12718. #define BIT_DATAFLT8EN_FW_8822B BIT(8)
  12719. #define BIT_DATAFLT7EN_FW_8822B BIT(7)
  12720. #define BIT_DATAFLT6EN_FW_8822B BIT(6)
  12721. #define BIT_DATAFLT5EN_FW_8822B BIT(5)
  12722. #define BIT_DATAFLT4EN_FW_8822B BIT(4)
  12723. #define BIT_DATAFLT3EN_FW_8822B BIT(3)
  12724. #define BIT_DATAFLT2EN_FW_8822B BIT(2)
  12725. #define BIT_DATAFLT1EN_FW_8822B BIT(1)
  12726. #define BIT_DATAFLT0EN_FW_8822B BIT(0)
  12727. /* 2 REG_WMMPS_UAPSD_TID_8822B (WMM POWER SAVE UAPSD TID REGISTER) */
  12728. #define BIT_WMMPS_UAPSD_TID7_8822B BIT(7)
  12729. #define BIT_WMMPS_UAPSD_TID6_8822B BIT(6)
  12730. #define BIT_WMMPS_UAPSD_TID5_8822B BIT(5)
  12731. #define BIT_WMMPS_UAPSD_TID4_8822B BIT(4)
  12732. #define BIT_WMMPS_UAPSD_TID3_8822B BIT(3)
  12733. #define BIT_WMMPS_UAPSD_TID2_8822B BIT(2)
  12734. #define BIT_WMMPS_UAPSD_TID1_8822B BIT(1)
  12735. #define BIT_WMMPS_UAPSD_TID0_8822B BIT(0)
  12736. /* 2 REG_PS_RX_INFO_8822B (POWER SAVE RX INFORMATION REGISTER) */
  12737. #define BIT_SHIFT_PORTSEL__PS_RX_INFO_8822B 5
  12738. #define BIT_MASK_PORTSEL__PS_RX_INFO_8822B 0x7
  12739. #define BIT_PORTSEL__PS_RX_INFO_8822B(x) \
  12740. (((x) & BIT_MASK_PORTSEL__PS_RX_INFO_8822B) \
  12741. << BIT_SHIFT_PORTSEL__PS_RX_INFO_8822B)
  12742. #define BITS_PORTSEL__PS_RX_INFO_8822B \
  12743. (BIT_MASK_PORTSEL__PS_RX_INFO_8822B \
  12744. << BIT_SHIFT_PORTSEL__PS_RX_INFO_8822B)
  12745. #define BIT_CLEAR_PORTSEL__PS_RX_INFO_8822B(x) \
  12746. ((x) & (~BITS_PORTSEL__PS_RX_INFO_8822B))
  12747. #define BIT_GET_PORTSEL__PS_RX_INFO_8822B(x) \
  12748. (((x) >> BIT_SHIFT_PORTSEL__PS_RX_INFO_8822B) & \
  12749. BIT_MASK_PORTSEL__PS_RX_INFO_8822B)
  12750. #define BIT_SET_PORTSEL__PS_RX_INFO_8822B(x, v) \
  12751. (BIT_CLEAR_PORTSEL__PS_RX_INFO_8822B(x) | \
  12752. BIT_PORTSEL__PS_RX_INFO_8822B(v))
  12753. #define BIT_RXCTRLIN0_8822B BIT(4)
  12754. #define BIT_RXMGTIN0_8822B BIT(3)
  12755. #define BIT_RXDATAIN2_8822B BIT(2)
  12756. #define BIT_RXDATAIN1_8822B BIT(1)
  12757. #define BIT_RXDATAIN0_8822B BIT(0)
  12758. /* 2 REG_NAN_RX_TSF_FILTER_8822B(NAN_RX_TSF_ADDRESS_FILTER) */
  12759. #define BIT_CHK_TSF_TA_8822B BIT(2)
  12760. #define BIT_CHK_TSF_CBSSID_8822B BIT(1)
  12761. #define BIT_CHK_TSF_EN_8822B BIT(0)
  12762. /* 2 REG_WOW_CTRL_8822B (WAKE ON WLAN CONTROL REGISTER) */
  12763. #define BIT_SHIFT_PSF_BSSIDSEL_B2B1_8822B 6
  12764. #define BIT_MASK_PSF_BSSIDSEL_B2B1_8822B 0x3
  12765. #define BIT_PSF_BSSIDSEL_B2B1_8822B(x) \
  12766. (((x) & BIT_MASK_PSF_BSSIDSEL_B2B1_8822B) \
  12767. << BIT_SHIFT_PSF_BSSIDSEL_B2B1_8822B)
  12768. #define BITS_PSF_BSSIDSEL_B2B1_8822B \
  12769. (BIT_MASK_PSF_BSSIDSEL_B2B1_8822B << BIT_SHIFT_PSF_BSSIDSEL_B2B1_8822B)
  12770. #define BIT_CLEAR_PSF_BSSIDSEL_B2B1_8822B(x) \
  12771. ((x) & (~BITS_PSF_BSSIDSEL_B2B1_8822B))
  12772. #define BIT_GET_PSF_BSSIDSEL_B2B1_8822B(x) \
  12773. (((x) >> BIT_SHIFT_PSF_BSSIDSEL_B2B1_8822B) & \
  12774. BIT_MASK_PSF_BSSIDSEL_B2B1_8822B)
  12775. #define BIT_SET_PSF_BSSIDSEL_B2B1_8822B(x, v) \
  12776. (BIT_CLEAR_PSF_BSSIDSEL_B2B1_8822B(x) | BIT_PSF_BSSIDSEL_B2B1_8822B(v))
  12777. #define BIT_WOWHCI_8822B BIT(5)
  12778. #define BIT_PSF_BSSIDSEL_B0_8822B BIT(4)
  12779. #define BIT_UWF_8822B BIT(3)
  12780. #define BIT_MAGIC_8822B BIT(2)
  12781. #define BIT_WOWEN_8822B BIT(1)
  12782. #define BIT_FORCE_WAKEUP_8822B BIT(0)
  12783. /* 2 REG_LPNAV_CTRL_8822B (LOW POWER NAV CONTROL REGISTER) */
  12784. #define BIT_LPNAV_EN_8822B BIT(31)
  12785. #define BIT_SHIFT_LPNAV_EARLY_8822B 16
  12786. #define BIT_MASK_LPNAV_EARLY_8822B 0x7fff
  12787. #define BIT_LPNAV_EARLY_8822B(x) \
  12788. (((x) & BIT_MASK_LPNAV_EARLY_8822B) << BIT_SHIFT_LPNAV_EARLY_8822B)
  12789. #define BITS_LPNAV_EARLY_8822B \
  12790. (BIT_MASK_LPNAV_EARLY_8822B << BIT_SHIFT_LPNAV_EARLY_8822B)
  12791. #define BIT_CLEAR_LPNAV_EARLY_8822B(x) ((x) & (~BITS_LPNAV_EARLY_8822B))
  12792. #define BIT_GET_LPNAV_EARLY_8822B(x) \
  12793. (((x) >> BIT_SHIFT_LPNAV_EARLY_8822B) & BIT_MASK_LPNAV_EARLY_8822B)
  12794. #define BIT_SET_LPNAV_EARLY_8822B(x, v) \
  12795. (BIT_CLEAR_LPNAV_EARLY_8822B(x) | BIT_LPNAV_EARLY_8822B(v))
  12796. #define BIT_SHIFT_LPNAV_TH_8822B 0
  12797. #define BIT_MASK_LPNAV_TH_8822B 0xffff
  12798. #define BIT_LPNAV_TH_8822B(x) \
  12799. (((x) & BIT_MASK_LPNAV_TH_8822B) << BIT_SHIFT_LPNAV_TH_8822B)
  12800. #define BITS_LPNAV_TH_8822B \
  12801. (BIT_MASK_LPNAV_TH_8822B << BIT_SHIFT_LPNAV_TH_8822B)
  12802. #define BIT_CLEAR_LPNAV_TH_8822B(x) ((x) & (~BITS_LPNAV_TH_8822B))
  12803. #define BIT_GET_LPNAV_TH_8822B(x) \
  12804. (((x) >> BIT_SHIFT_LPNAV_TH_8822B) & BIT_MASK_LPNAV_TH_8822B)
  12805. #define BIT_SET_LPNAV_TH_8822B(x, v) \
  12806. (BIT_CLEAR_LPNAV_TH_8822B(x) | BIT_LPNAV_TH_8822B(v))
  12807. /* 2 REG_WKFMCAM_CMD_8822B (WAKEUP FRAME CAM COMMAND REGISTER) */
  12808. #define BIT_WKFCAM_POLLING_V1_8822B BIT(31)
  12809. #define BIT_WKFCAM_CLR_V1_8822B BIT(30)
  12810. #define BIT_WKFCAM_WE_8822B BIT(16)
  12811. #define BIT_SHIFT_WKFCAM_ADDR_V2_8822B 8
  12812. #define BIT_MASK_WKFCAM_ADDR_V2_8822B 0xff
  12813. #define BIT_WKFCAM_ADDR_V2_8822B(x) \
  12814. (((x) & BIT_MASK_WKFCAM_ADDR_V2_8822B) \
  12815. << BIT_SHIFT_WKFCAM_ADDR_V2_8822B)
  12816. #define BITS_WKFCAM_ADDR_V2_8822B \
  12817. (BIT_MASK_WKFCAM_ADDR_V2_8822B << BIT_SHIFT_WKFCAM_ADDR_V2_8822B)
  12818. #define BIT_CLEAR_WKFCAM_ADDR_V2_8822B(x) ((x) & (~BITS_WKFCAM_ADDR_V2_8822B))
  12819. #define BIT_GET_WKFCAM_ADDR_V2_8822B(x) \
  12820. (((x) >> BIT_SHIFT_WKFCAM_ADDR_V2_8822B) & \
  12821. BIT_MASK_WKFCAM_ADDR_V2_8822B)
  12822. #define BIT_SET_WKFCAM_ADDR_V2_8822B(x, v) \
  12823. (BIT_CLEAR_WKFCAM_ADDR_V2_8822B(x) | BIT_WKFCAM_ADDR_V2_8822B(v))
  12824. #define BIT_SHIFT_WKFCAM_CAM_NUM_V1_8822B 0
  12825. #define BIT_MASK_WKFCAM_CAM_NUM_V1_8822B 0xff
  12826. #define BIT_WKFCAM_CAM_NUM_V1_8822B(x) \
  12827. (((x) & BIT_MASK_WKFCAM_CAM_NUM_V1_8822B) \
  12828. << BIT_SHIFT_WKFCAM_CAM_NUM_V1_8822B)
  12829. #define BITS_WKFCAM_CAM_NUM_V1_8822B \
  12830. (BIT_MASK_WKFCAM_CAM_NUM_V1_8822B << BIT_SHIFT_WKFCAM_CAM_NUM_V1_8822B)
  12831. #define BIT_CLEAR_WKFCAM_CAM_NUM_V1_8822B(x) \
  12832. ((x) & (~BITS_WKFCAM_CAM_NUM_V1_8822B))
  12833. #define BIT_GET_WKFCAM_CAM_NUM_V1_8822B(x) \
  12834. (((x) >> BIT_SHIFT_WKFCAM_CAM_NUM_V1_8822B) & \
  12835. BIT_MASK_WKFCAM_CAM_NUM_V1_8822B)
  12836. #define BIT_SET_WKFCAM_CAM_NUM_V1_8822B(x, v) \
  12837. (BIT_CLEAR_WKFCAM_CAM_NUM_V1_8822B(x) | BIT_WKFCAM_CAM_NUM_V1_8822B(v))
  12838. /* 2 REG_WKFMCAM_RWD_8822B (WAKEUP FRAME READ/WRITE DATA) */
  12839. #define BIT_SHIFT_WKFMCAM_RWD_8822B 0
  12840. #define BIT_MASK_WKFMCAM_RWD_8822B 0xffffffffL
  12841. #define BIT_WKFMCAM_RWD_8822B(x) \
  12842. (((x) & BIT_MASK_WKFMCAM_RWD_8822B) << BIT_SHIFT_WKFMCAM_RWD_8822B)
  12843. #define BITS_WKFMCAM_RWD_8822B \
  12844. (BIT_MASK_WKFMCAM_RWD_8822B << BIT_SHIFT_WKFMCAM_RWD_8822B)
  12845. #define BIT_CLEAR_WKFMCAM_RWD_8822B(x) ((x) & (~BITS_WKFMCAM_RWD_8822B))
  12846. #define BIT_GET_WKFMCAM_RWD_8822B(x) \
  12847. (((x) >> BIT_SHIFT_WKFMCAM_RWD_8822B) & BIT_MASK_WKFMCAM_RWD_8822B)
  12848. #define BIT_SET_WKFMCAM_RWD_8822B(x, v) \
  12849. (BIT_CLEAR_WKFMCAM_RWD_8822B(x) | BIT_WKFMCAM_RWD_8822B(v))
  12850. /* 2 REG_RXFLTMAP1_8822B (RX FILTER MAP GROUP 1) */
  12851. #define BIT_CTRLFLT15EN_8822B BIT(15)
  12852. #define BIT_CTRLFLT14EN_8822B BIT(14)
  12853. #define BIT_CTRLFLT13EN_8822B BIT(13)
  12854. #define BIT_CTRLFLT12EN_8822B BIT(12)
  12855. #define BIT_CTRLFLT11EN_8822B BIT(11)
  12856. #define BIT_CTRLFLT10EN_8822B BIT(10)
  12857. #define BIT_CTRLFLT9EN_8822B BIT(9)
  12858. #define BIT_CTRLFLT8EN_8822B BIT(8)
  12859. #define BIT_CTRLFLT7EN_8822B BIT(7)
  12860. #define BIT_CTRLFLT6EN_8822B BIT(6)
  12861. #define BIT_CTRLFLT5EN_8822B BIT(5)
  12862. #define BIT_CTRLFLT4EN_8822B BIT(4)
  12863. #define BIT_CTRLFLT3EN_8822B BIT(3)
  12864. #define BIT_CTRLFLT2EN_8822B BIT(2)
  12865. #define BIT_CTRLFLT1EN_8822B BIT(1)
  12866. #define BIT_CTRLFLT0EN_8822B BIT(0)
  12867. /* 2 REG_RXFLTMAP0_8822B (RX FILTER MAP GROUP 0) */
  12868. #define BIT_MGTFLT15EN_8822B BIT(15)
  12869. #define BIT_MGTFLT14EN_8822B BIT(14)
  12870. #define BIT_MGTFLT13EN_8822B BIT(13)
  12871. #define BIT_MGTFLT12EN_8822B BIT(12)
  12872. #define BIT_MGTFLT11EN_8822B BIT(11)
  12873. #define BIT_MGTFLT10EN_8822B BIT(10)
  12874. #define BIT_MGTFLT9EN_8822B BIT(9)
  12875. #define BIT_MGTFLT8EN_8822B BIT(8)
  12876. #define BIT_MGTFLT7EN_8822B BIT(7)
  12877. #define BIT_MGTFLT6EN_8822B BIT(6)
  12878. #define BIT_MGTFLT5EN_8822B BIT(5)
  12879. #define BIT_MGTFLT4EN_8822B BIT(4)
  12880. #define BIT_MGTFLT3EN_8822B BIT(3)
  12881. #define BIT_MGTFLT2EN_8822B BIT(2)
  12882. #define BIT_MGTFLT1EN_8822B BIT(1)
  12883. #define BIT_MGTFLT0EN_8822B BIT(0)
  12884. /* 2 REG_NOT_VALID_8822B */
  12885. /* 2 REG_RXFLTMAP2_8822B (RX FILTER MAP GROUP 2) */
  12886. #define BIT_DATAFLT15EN_8822B BIT(15)
  12887. #define BIT_DATAFLT14EN_8822B BIT(14)
  12888. #define BIT_DATAFLT13EN_8822B BIT(13)
  12889. #define BIT_DATAFLT12EN_8822B BIT(12)
  12890. #define BIT_DATAFLT11EN_8822B BIT(11)
  12891. #define BIT_DATAFLT10EN_8822B BIT(10)
  12892. #define BIT_DATAFLT9EN_8822B BIT(9)
  12893. #define BIT_DATAFLT8EN_8822B BIT(8)
  12894. #define BIT_DATAFLT7EN_8822B BIT(7)
  12895. #define BIT_DATAFLT6EN_8822B BIT(6)
  12896. #define BIT_DATAFLT5EN_8822B BIT(5)
  12897. #define BIT_DATAFLT4EN_8822B BIT(4)
  12898. #define BIT_DATAFLT3EN_8822B BIT(3)
  12899. #define BIT_DATAFLT2EN_8822B BIT(2)
  12900. #define BIT_DATAFLT1EN_8822B BIT(1)
  12901. #define BIT_DATAFLT0EN_8822B BIT(0)
  12902. /* 2 REG_BCN_PSR_RPT_8822B (BEACON PARSER REPORT REGISTER) */
  12903. #define BIT_SHIFT_DTIM_CNT_8822B 24
  12904. #define BIT_MASK_DTIM_CNT_8822B 0xff
  12905. #define BIT_DTIM_CNT_8822B(x) \
  12906. (((x) & BIT_MASK_DTIM_CNT_8822B) << BIT_SHIFT_DTIM_CNT_8822B)
  12907. #define BITS_DTIM_CNT_8822B \
  12908. (BIT_MASK_DTIM_CNT_8822B << BIT_SHIFT_DTIM_CNT_8822B)
  12909. #define BIT_CLEAR_DTIM_CNT_8822B(x) ((x) & (~BITS_DTIM_CNT_8822B))
  12910. #define BIT_GET_DTIM_CNT_8822B(x) \
  12911. (((x) >> BIT_SHIFT_DTIM_CNT_8822B) & BIT_MASK_DTIM_CNT_8822B)
  12912. #define BIT_SET_DTIM_CNT_8822B(x, v) \
  12913. (BIT_CLEAR_DTIM_CNT_8822B(x) | BIT_DTIM_CNT_8822B(v))
  12914. #define BIT_SHIFT_DTIM_PERIOD_8822B 16
  12915. #define BIT_MASK_DTIM_PERIOD_8822B 0xff
  12916. #define BIT_DTIM_PERIOD_8822B(x) \
  12917. (((x) & BIT_MASK_DTIM_PERIOD_8822B) << BIT_SHIFT_DTIM_PERIOD_8822B)
  12918. #define BITS_DTIM_PERIOD_8822B \
  12919. (BIT_MASK_DTIM_PERIOD_8822B << BIT_SHIFT_DTIM_PERIOD_8822B)
  12920. #define BIT_CLEAR_DTIM_PERIOD_8822B(x) ((x) & (~BITS_DTIM_PERIOD_8822B))
  12921. #define BIT_GET_DTIM_PERIOD_8822B(x) \
  12922. (((x) >> BIT_SHIFT_DTIM_PERIOD_8822B) & BIT_MASK_DTIM_PERIOD_8822B)
  12923. #define BIT_SET_DTIM_PERIOD_8822B(x, v) \
  12924. (BIT_CLEAR_DTIM_PERIOD_8822B(x) | BIT_DTIM_PERIOD_8822B(v))
  12925. #define BIT_DTIM_8822B BIT(15)
  12926. #define BIT_TIM_8822B BIT(14)
  12927. #define BIT_SHIFT_PS_AID_0_8822B 0
  12928. #define BIT_MASK_PS_AID_0_8822B 0x7ff
  12929. #define BIT_PS_AID_0_8822B(x) \
  12930. (((x) & BIT_MASK_PS_AID_0_8822B) << BIT_SHIFT_PS_AID_0_8822B)
  12931. #define BITS_PS_AID_0_8822B \
  12932. (BIT_MASK_PS_AID_0_8822B << BIT_SHIFT_PS_AID_0_8822B)
  12933. #define BIT_CLEAR_PS_AID_0_8822B(x) ((x) & (~BITS_PS_AID_0_8822B))
  12934. #define BIT_GET_PS_AID_0_8822B(x) \
  12935. (((x) >> BIT_SHIFT_PS_AID_0_8822B) & BIT_MASK_PS_AID_0_8822B)
  12936. #define BIT_SET_PS_AID_0_8822B(x, v) \
  12937. (BIT_CLEAR_PS_AID_0_8822B(x) | BIT_PS_AID_0_8822B(v))
  12938. /* 2 REG_FLC_TRPC_8822B (TIMER OF FLC_RPC) */
  12939. #define BIT_FLC_RPCT_V1_8822B BIT(7)
  12940. #define BIT_MODE_8822B BIT(6)
  12941. #define BIT_SHIFT_TRPCD_8822B 0
  12942. #define BIT_MASK_TRPCD_8822B 0x3f
  12943. #define BIT_TRPCD_8822B(x) \
  12944. (((x) & BIT_MASK_TRPCD_8822B) << BIT_SHIFT_TRPCD_8822B)
  12945. #define BITS_TRPCD_8822B (BIT_MASK_TRPCD_8822B << BIT_SHIFT_TRPCD_8822B)
  12946. #define BIT_CLEAR_TRPCD_8822B(x) ((x) & (~BITS_TRPCD_8822B))
  12947. #define BIT_GET_TRPCD_8822B(x) \
  12948. (((x) >> BIT_SHIFT_TRPCD_8822B) & BIT_MASK_TRPCD_8822B)
  12949. #define BIT_SET_TRPCD_8822B(x, v) \
  12950. (BIT_CLEAR_TRPCD_8822B(x) | BIT_TRPCD_8822B(v))
  12951. /* 2 REG_FLC_PTS_8822B (PKT TYPE SELECTION OF FLC_RPC T) */
  12952. #define BIT_CMF_8822B BIT(2)
  12953. #define BIT_CCF_8822B BIT(1)
  12954. #define BIT_CDF_8822B BIT(0)
  12955. /* 2 REG_FLC_RPCT_8822B (FLC_RPC THRESHOLD) */
  12956. #define BIT_SHIFT_FLC_RPCT_8822B 0
  12957. #define BIT_MASK_FLC_RPCT_8822B 0xff
  12958. #define BIT_FLC_RPCT_8822B(x) \
  12959. (((x) & BIT_MASK_FLC_RPCT_8822B) << BIT_SHIFT_FLC_RPCT_8822B)
  12960. #define BITS_FLC_RPCT_8822B \
  12961. (BIT_MASK_FLC_RPCT_8822B << BIT_SHIFT_FLC_RPCT_8822B)
  12962. #define BIT_CLEAR_FLC_RPCT_8822B(x) ((x) & (~BITS_FLC_RPCT_8822B))
  12963. #define BIT_GET_FLC_RPCT_8822B(x) \
  12964. (((x) >> BIT_SHIFT_FLC_RPCT_8822B) & BIT_MASK_FLC_RPCT_8822B)
  12965. #define BIT_SET_FLC_RPCT_8822B(x, v) \
  12966. (BIT_CLEAR_FLC_RPCT_8822B(x) | BIT_FLC_RPCT_8822B(v))
  12967. /* 2 REG_FLC_RPC_8822B (FW LPS CONDITION -- RX PKT COUNTER) */
  12968. #define BIT_SHIFT_FLC_RPC_8822B 0
  12969. #define BIT_MASK_FLC_RPC_8822B 0xff
  12970. #define BIT_FLC_RPC_8822B(x) \
  12971. (((x) & BIT_MASK_FLC_RPC_8822B) << BIT_SHIFT_FLC_RPC_8822B)
  12972. #define BITS_FLC_RPC_8822B (BIT_MASK_FLC_RPC_8822B << BIT_SHIFT_FLC_RPC_8822B)
  12973. #define BIT_CLEAR_FLC_RPC_8822B(x) ((x) & (~BITS_FLC_RPC_8822B))
  12974. #define BIT_GET_FLC_RPC_8822B(x) \
  12975. (((x) >> BIT_SHIFT_FLC_RPC_8822B) & BIT_MASK_FLC_RPC_8822B)
  12976. #define BIT_SET_FLC_RPC_8822B(x, v) \
  12977. (BIT_CLEAR_FLC_RPC_8822B(x) | BIT_FLC_RPC_8822B(v))
  12978. /* 2 REG_RXPKTMON_CTRL_8822B */
  12979. #define BIT_SHIFT_RXBKQPKT_SEQ_8822B 20
  12980. #define BIT_MASK_RXBKQPKT_SEQ_8822B 0xf
  12981. #define BIT_RXBKQPKT_SEQ_8822B(x) \
  12982. (((x) & BIT_MASK_RXBKQPKT_SEQ_8822B) << BIT_SHIFT_RXBKQPKT_SEQ_8822B)
  12983. #define BITS_RXBKQPKT_SEQ_8822B \
  12984. (BIT_MASK_RXBKQPKT_SEQ_8822B << BIT_SHIFT_RXBKQPKT_SEQ_8822B)
  12985. #define BIT_CLEAR_RXBKQPKT_SEQ_8822B(x) ((x) & (~BITS_RXBKQPKT_SEQ_8822B))
  12986. #define BIT_GET_RXBKQPKT_SEQ_8822B(x) \
  12987. (((x) >> BIT_SHIFT_RXBKQPKT_SEQ_8822B) & BIT_MASK_RXBKQPKT_SEQ_8822B)
  12988. #define BIT_SET_RXBKQPKT_SEQ_8822B(x, v) \
  12989. (BIT_CLEAR_RXBKQPKT_SEQ_8822B(x) | BIT_RXBKQPKT_SEQ_8822B(v))
  12990. #define BIT_SHIFT_RXBEQPKT_SEQ_8822B 16
  12991. #define BIT_MASK_RXBEQPKT_SEQ_8822B 0xf
  12992. #define BIT_RXBEQPKT_SEQ_8822B(x) \
  12993. (((x) & BIT_MASK_RXBEQPKT_SEQ_8822B) << BIT_SHIFT_RXBEQPKT_SEQ_8822B)
  12994. #define BITS_RXBEQPKT_SEQ_8822B \
  12995. (BIT_MASK_RXBEQPKT_SEQ_8822B << BIT_SHIFT_RXBEQPKT_SEQ_8822B)
  12996. #define BIT_CLEAR_RXBEQPKT_SEQ_8822B(x) ((x) & (~BITS_RXBEQPKT_SEQ_8822B))
  12997. #define BIT_GET_RXBEQPKT_SEQ_8822B(x) \
  12998. (((x) >> BIT_SHIFT_RXBEQPKT_SEQ_8822B) & BIT_MASK_RXBEQPKT_SEQ_8822B)
  12999. #define BIT_SET_RXBEQPKT_SEQ_8822B(x, v) \
  13000. (BIT_CLEAR_RXBEQPKT_SEQ_8822B(x) | BIT_RXBEQPKT_SEQ_8822B(v))
  13001. #define BIT_SHIFT_RXVIQPKT_SEQ_8822B 12
  13002. #define BIT_MASK_RXVIQPKT_SEQ_8822B 0xf
  13003. #define BIT_RXVIQPKT_SEQ_8822B(x) \
  13004. (((x) & BIT_MASK_RXVIQPKT_SEQ_8822B) << BIT_SHIFT_RXVIQPKT_SEQ_8822B)
  13005. #define BITS_RXVIQPKT_SEQ_8822B \
  13006. (BIT_MASK_RXVIQPKT_SEQ_8822B << BIT_SHIFT_RXVIQPKT_SEQ_8822B)
  13007. #define BIT_CLEAR_RXVIQPKT_SEQ_8822B(x) ((x) & (~BITS_RXVIQPKT_SEQ_8822B))
  13008. #define BIT_GET_RXVIQPKT_SEQ_8822B(x) \
  13009. (((x) >> BIT_SHIFT_RXVIQPKT_SEQ_8822B) & BIT_MASK_RXVIQPKT_SEQ_8822B)
  13010. #define BIT_SET_RXVIQPKT_SEQ_8822B(x, v) \
  13011. (BIT_CLEAR_RXVIQPKT_SEQ_8822B(x) | BIT_RXVIQPKT_SEQ_8822B(v))
  13012. #define BIT_SHIFT_RXVOQPKT_SEQ_8822B 8
  13013. #define BIT_MASK_RXVOQPKT_SEQ_8822B 0xf
  13014. #define BIT_RXVOQPKT_SEQ_8822B(x) \
  13015. (((x) & BIT_MASK_RXVOQPKT_SEQ_8822B) << BIT_SHIFT_RXVOQPKT_SEQ_8822B)
  13016. #define BITS_RXVOQPKT_SEQ_8822B \
  13017. (BIT_MASK_RXVOQPKT_SEQ_8822B << BIT_SHIFT_RXVOQPKT_SEQ_8822B)
  13018. #define BIT_CLEAR_RXVOQPKT_SEQ_8822B(x) ((x) & (~BITS_RXVOQPKT_SEQ_8822B))
  13019. #define BIT_GET_RXVOQPKT_SEQ_8822B(x) \
  13020. (((x) >> BIT_SHIFT_RXVOQPKT_SEQ_8822B) & BIT_MASK_RXVOQPKT_SEQ_8822B)
  13021. #define BIT_SET_RXVOQPKT_SEQ_8822B(x, v) \
  13022. (BIT_CLEAR_RXVOQPKT_SEQ_8822B(x) | BIT_RXVOQPKT_SEQ_8822B(v))
  13023. #define BIT_RXBKQPKT_ERR_8822B BIT(7)
  13024. #define BIT_RXBEQPKT_ERR_8822B BIT(6)
  13025. #define BIT_RXVIQPKT_ERR_8822B BIT(5)
  13026. #define BIT_RXVOQPKT_ERR_8822B BIT(4)
  13027. #define BIT_RXDMA_MON_EN_8822B BIT(2)
  13028. #define BIT_RXPKT_MON_RST_8822B BIT(1)
  13029. #define BIT_RXPKT_MON_EN_8822B BIT(0)
  13030. /* 2 REG_STATE_MON_8822B */
  13031. #define BIT_SHIFT_STATE_SEL_8822B 24
  13032. #define BIT_MASK_STATE_SEL_8822B 0x1f
  13033. #define BIT_STATE_SEL_8822B(x) \
  13034. (((x) & BIT_MASK_STATE_SEL_8822B) << BIT_SHIFT_STATE_SEL_8822B)
  13035. #define BITS_STATE_SEL_8822B \
  13036. (BIT_MASK_STATE_SEL_8822B << BIT_SHIFT_STATE_SEL_8822B)
  13037. #define BIT_CLEAR_STATE_SEL_8822B(x) ((x) & (~BITS_STATE_SEL_8822B))
  13038. #define BIT_GET_STATE_SEL_8822B(x) \
  13039. (((x) >> BIT_SHIFT_STATE_SEL_8822B) & BIT_MASK_STATE_SEL_8822B)
  13040. #define BIT_SET_STATE_SEL_8822B(x, v) \
  13041. (BIT_CLEAR_STATE_SEL_8822B(x) | BIT_STATE_SEL_8822B(v))
  13042. #define BIT_SHIFT_STATE_INFO_8822B 8
  13043. #define BIT_MASK_STATE_INFO_8822B 0xff
  13044. #define BIT_STATE_INFO_8822B(x) \
  13045. (((x) & BIT_MASK_STATE_INFO_8822B) << BIT_SHIFT_STATE_INFO_8822B)
  13046. #define BITS_STATE_INFO_8822B \
  13047. (BIT_MASK_STATE_INFO_8822B << BIT_SHIFT_STATE_INFO_8822B)
  13048. #define BIT_CLEAR_STATE_INFO_8822B(x) ((x) & (~BITS_STATE_INFO_8822B))
  13049. #define BIT_GET_STATE_INFO_8822B(x) \
  13050. (((x) >> BIT_SHIFT_STATE_INFO_8822B) & BIT_MASK_STATE_INFO_8822B)
  13051. #define BIT_SET_STATE_INFO_8822B(x, v) \
  13052. (BIT_CLEAR_STATE_INFO_8822B(x) | BIT_STATE_INFO_8822B(v))
  13053. #define BIT_UPD_NXT_STATE_8822B BIT(7)
  13054. #define BIT_SHIFT_CUR_STATE_8822B 0
  13055. #define BIT_MASK_CUR_STATE_8822B 0x7f
  13056. #define BIT_CUR_STATE_8822B(x) \
  13057. (((x) & BIT_MASK_CUR_STATE_8822B) << BIT_SHIFT_CUR_STATE_8822B)
  13058. #define BITS_CUR_STATE_8822B \
  13059. (BIT_MASK_CUR_STATE_8822B << BIT_SHIFT_CUR_STATE_8822B)
  13060. #define BIT_CLEAR_CUR_STATE_8822B(x) ((x) & (~BITS_CUR_STATE_8822B))
  13061. #define BIT_GET_CUR_STATE_8822B(x) \
  13062. (((x) >> BIT_SHIFT_CUR_STATE_8822B) & BIT_MASK_CUR_STATE_8822B)
  13063. #define BIT_SET_CUR_STATE_8822B(x, v) \
  13064. (BIT_CLEAR_CUR_STATE_8822B(x) | BIT_CUR_STATE_8822B(v))
  13065. /* 2 REG_ERROR_MON_8822B */
  13066. #define BIT_MACRX_ERR_1_8822B BIT(17)
  13067. #define BIT_MACRX_ERR_0_8822B BIT(16)
  13068. #define BIT_MACTX_ERR_3_8822B BIT(3)
  13069. #define BIT_MACTX_ERR_2_8822B BIT(2)
  13070. #define BIT_MACTX_ERR_1_8822B BIT(1)
  13071. #define BIT_MACTX_ERR_0_8822B BIT(0)
  13072. /* 2 REG_SEARCH_MACID_8822B */
  13073. #define BIT_EN_TXRPTBUF_CLK_8822B BIT(31)
  13074. #define BIT_SHIFT_INFO_INDEX_OFFSET_8822B 16
  13075. #define BIT_MASK_INFO_INDEX_OFFSET_8822B 0x1fff
  13076. #define BIT_INFO_INDEX_OFFSET_8822B(x) \
  13077. (((x) & BIT_MASK_INFO_INDEX_OFFSET_8822B) \
  13078. << BIT_SHIFT_INFO_INDEX_OFFSET_8822B)
  13079. #define BITS_INFO_INDEX_OFFSET_8822B \
  13080. (BIT_MASK_INFO_INDEX_OFFSET_8822B << BIT_SHIFT_INFO_INDEX_OFFSET_8822B)
  13081. #define BIT_CLEAR_INFO_INDEX_OFFSET_8822B(x) \
  13082. ((x) & (~BITS_INFO_INDEX_OFFSET_8822B))
  13083. #define BIT_GET_INFO_INDEX_OFFSET_8822B(x) \
  13084. (((x) >> BIT_SHIFT_INFO_INDEX_OFFSET_8822B) & \
  13085. BIT_MASK_INFO_INDEX_OFFSET_8822B)
  13086. #define BIT_SET_INFO_INDEX_OFFSET_8822B(x, v) \
  13087. (BIT_CLEAR_INFO_INDEX_OFFSET_8822B(x) | BIT_INFO_INDEX_OFFSET_8822B(v))
  13088. #define BIT_WMAC_SRCH_FIFOFULL_8822B BIT(15)
  13089. #define BIT_DIS_INFOSRCH_8822B BIT(14)
  13090. #define BIT_DISABLE_B0_8822B BIT(13)
  13091. #define BIT_SHIFT_INFO_ADDR_OFFSET_8822B 0
  13092. #define BIT_MASK_INFO_ADDR_OFFSET_8822B 0x1fff
  13093. #define BIT_INFO_ADDR_OFFSET_8822B(x) \
  13094. (((x) & BIT_MASK_INFO_ADDR_OFFSET_8822B) \
  13095. << BIT_SHIFT_INFO_ADDR_OFFSET_8822B)
  13096. #define BITS_INFO_ADDR_OFFSET_8822B \
  13097. (BIT_MASK_INFO_ADDR_OFFSET_8822B << BIT_SHIFT_INFO_ADDR_OFFSET_8822B)
  13098. #define BIT_CLEAR_INFO_ADDR_OFFSET_8822B(x) \
  13099. ((x) & (~BITS_INFO_ADDR_OFFSET_8822B))
  13100. #define BIT_GET_INFO_ADDR_OFFSET_8822B(x) \
  13101. (((x) >> BIT_SHIFT_INFO_ADDR_OFFSET_8822B) & \
  13102. BIT_MASK_INFO_ADDR_OFFSET_8822B)
  13103. #define BIT_SET_INFO_ADDR_OFFSET_8822B(x, v) \
  13104. (BIT_CLEAR_INFO_ADDR_OFFSET_8822B(x) | BIT_INFO_ADDR_OFFSET_8822B(v))
  13105. /* 2 REG_BT_COEX_TABLE_8822B (BT-COEXISTENCE CONTROL REGISTER) */
  13106. #define BIT_PRI_MASK_RX_RESP_8822B BIT(126)
  13107. #define BIT_PRI_MASK_RXOFDM_8822B BIT(125)
  13108. #define BIT_PRI_MASK_RXCCK_8822B BIT(124)
  13109. #define BIT_SHIFT_PRI_MASK_TXAC_8822B (117 & CPU_OPT_WIDTH)
  13110. #define BIT_MASK_PRI_MASK_TXAC_8822B 0x7f
  13111. #define BIT_PRI_MASK_TXAC_8822B(x) \
  13112. (((x) & BIT_MASK_PRI_MASK_TXAC_8822B) << BIT_SHIFT_PRI_MASK_TXAC_8822B)
  13113. #define BITS_PRI_MASK_TXAC_8822B \
  13114. (BIT_MASK_PRI_MASK_TXAC_8822B << BIT_SHIFT_PRI_MASK_TXAC_8822B)
  13115. #define BIT_CLEAR_PRI_MASK_TXAC_8822B(x) ((x) & (~BITS_PRI_MASK_TXAC_8822B))
  13116. #define BIT_GET_PRI_MASK_TXAC_8822B(x) \
  13117. (((x) >> BIT_SHIFT_PRI_MASK_TXAC_8822B) & BIT_MASK_PRI_MASK_TXAC_8822B)
  13118. #define BIT_SET_PRI_MASK_TXAC_8822B(x, v) \
  13119. (BIT_CLEAR_PRI_MASK_TXAC_8822B(x) | BIT_PRI_MASK_TXAC_8822B(v))
  13120. #define BIT_SHIFT_PRI_MASK_NAV_8822B (109 & CPU_OPT_WIDTH)
  13121. #define BIT_MASK_PRI_MASK_NAV_8822B 0xff
  13122. #define BIT_PRI_MASK_NAV_8822B(x) \
  13123. (((x) & BIT_MASK_PRI_MASK_NAV_8822B) << BIT_SHIFT_PRI_MASK_NAV_8822B)
  13124. #define BITS_PRI_MASK_NAV_8822B \
  13125. (BIT_MASK_PRI_MASK_NAV_8822B << BIT_SHIFT_PRI_MASK_NAV_8822B)
  13126. #define BIT_CLEAR_PRI_MASK_NAV_8822B(x) ((x) & (~BITS_PRI_MASK_NAV_8822B))
  13127. #define BIT_GET_PRI_MASK_NAV_8822B(x) \
  13128. (((x) >> BIT_SHIFT_PRI_MASK_NAV_8822B) & BIT_MASK_PRI_MASK_NAV_8822B)
  13129. #define BIT_SET_PRI_MASK_NAV_8822B(x, v) \
  13130. (BIT_CLEAR_PRI_MASK_NAV_8822B(x) | BIT_PRI_MASK_NAV_8822B(v))
  13131. #define BIT_PRI_MASK_CCK_8822B BIT(108)
  13132. #define BIT_PRI_MASK_OFDM_8822B BIT(107)
  13133. #define BIT_PRI_MASK_RTY_8822B BIT(106)
  13134. #define BIT_SHIFT_PRI_MASK_NUM_8822B (102 & CPU_OPT_WIDTH)
  13135. #define BIT_MASK_PRI_MASK_NUM_8822B 0xf
  13136. #define BIT_PRI_MASK_NUM_8822B(x) \
  13137. (((x) & BIT_MASK_PRI_MASK_NUM_8822B) << BIT_SHIFT_PRI_MASK_NUM_8822B)
  13138. #define BITS_PRI_MASK_NUM_8822B \
  13139. (BIT_MASK_PRI_MASK_NUM_8822B << BIT_SHIFT_PRI_MASK_NUM_8822B)
  13140. #define BIT_CLEAR_PRI_MASK_NUM_8822B(x) ((x) & (~BITS_PRI_MASK_NUM_8822B))
  13141. #define BIT_GET_PRI_MASK_NUM_8822B(x) \
  13142. (((x) >> BIT_SHIFT_PRI_MASK_NUM_8822B) & BIT_MASK_PRI_MASK_NUM_8822B)
  13143. #define BIT_SET_PRI_MASK_NUM_8822B(x, v) \
  13144. (BIT_CLEAR_PRI_MASK_NUM_8822B(x) | BIT_PRI_MASK_NUM_8822B(v))
  13145. #define BIT_SHIFT_PRI_MASK_TYPE_8822B (98 & CPU_OPT_WIDTH)
  13146. #define BIT_MASK_PRI_MASK_TYPE_8822B 0xf
  13147. #define BIT_PRI_MASK_TYPE_8822B(x) \
  13148. (((x) & BIT_MASK_PRI_MASK_TYPE_8822B) << BIT_SHIFT_PRI_MASK_TYPE_8822B)
  13149. #define BITS_PRI_MASK_TYPE_8822B \
  13150. (BIT_MASK_PRI_MASK_TYPE_8822B << BIT_SHIFT_PRI_MASK_TYPE_8822B)
  13151. #define BIT_CLEAR_PRI_MASK_TYPE_8822B(x) ((x) & (~BITS_PRI_MASK_TYPE_8822B))
  13152. #define BIT_GET_PRI_MASK_TYPE_8822B(x) \
  13153. (((x) >> BIT_SHIFT_PRI_MASK_TYPE_8822B) & BIT_MASK_PRI_MASK_TYPE_8822B)
  13154. #define BIT_SET_PRI_MASK_TYPE_8822B(x, v) \
  13155. (BIT_CLEAR_PRI_MASK_TYPE_8822B(x) | BIT_PRI_MASK_TYPE_8822B(v))
  13156. #define BIT_OOB_8822B BIT(97)
  13157. #define BIT_ANT_SEL_8822B BIT(96)
  13158. #define BIT_SHIFT_BREAK_TABLE_2_8822B (80 & CPU_OPT_WIDTH)
  13159. #define BIT_MASK_BREAK_TABLE_2_8822B 0xffff
  13160. #define BIT_BREAK_TABLE_2_8822B(x) \
  13161. (((x) & BIT_MASK_BREAK_TABLE_2_8822B) << BIT_SHIFT_BREAK_TABLE_2_8822B)
  13162. #define BITS_BREAK_TABLE_2_8822B \
  13163. (BIT_MASK_BREAK_TABLE_2_8822B << BIT_SHIFT_BREAK_TABLE_2_8822B)
  13164. #define BIT_CLEAR_BREAK_TABLE_2_8822B(x) ((x) & (~BITS_BREAK_TABLE_2_8822B))
  13165. #define BIT_GET_BREAK_TABLE_2_8822B(x) \
  13166. (((x) >> BIT_SHIFT_BREAK_TABLE_2_8822B) & BIT_MASK_BREAK_TABLE_2_8822B)
  13167. #define BIT_SET_BREAK_TABLE_2_8822B(x, v) \
  13168. (BIT_CLEAR_BREAK_TABLE_2_8822B(x) | BIT_BREAK_TABLE_2_8822B(v))
  13169. #define BIT_SHIFT_BREAK_TABLE_1_8822B (64 & CPU_OPT_WIDTH)
  13170. #define BIT_MASK_BREAK_TABLE_1_8822B 0xffff
  13171. #define BIT_BREAK_TABLE_1_8822B(x) \
  13172. (((x) & BIT_MASK_BREAK_TABLE_1_8822B) << BIT_SHIFT_BREAK_TABLE_1_8822B)
  13173. #define BITS_BREAK_TABLE_1_8822B \
  13174. (BIT_MASK_BREAK_TABLE_1_8822B << BIT_SHIFT_BREAK_TABLE_1_8822B)
  13175. #define BIT_CLEAR_BREAK_TABLE_1_8822B(x) ((x) & (~BITS_BREAK_TABLE_1_8822B))
  13176. #define BIT_GET_BREAK_TABLE_1_8822B(x) \
  13177. (((x) >> BIT_SHIFT_BREAK_TABLE_1_8822B) & BIT_MASK_BREAK_TABLE_1_8822B)
  13178. #define BIT_SET_BREAK_TABLE_1_8822B(x, v) \
  13179. (BIT_CLEAR_BREAK_TABLE_1_8822B(x) | BIT_BREAK_TABLE_1_8822B(v))
  13180. #define BIT_SHIFT_COEX_TABLE_2_8822B (32 & CPU_OPT_WIDTH)
  13181. #define BIT_MASK_COEX_TABLE_2_8822B 0xffffffffL
  13182. #define BIT_COEX_TABLE_2_8822B(x) \
  13183. (((x) & BIT_MASK_COEX_TABLE_2_8822B) << BIT_SHIFT_COEX_TABLE_2_8822B)
  13184. #define BITS_COEX_TABLE_2_8822B \
  13185. (BIT_MASK_COEX_TABLE_2_8822B << BIT_SHIFT_COEX_TABLE_2_8822B)
  13186. #define BIT_CLEAR_COEX_TABLE_2_8822B(x) ((x) & (~BITS_COEX_TABLE_2_8822B))
  13187. #define BIT_GET_COEX_TABLE_2_8822B(x) \
  13188. (((x) >> BIT_SHIFT_COEX_TABLE_2_8822B) & BIT_MASK_COEX_TABLE_2_8822B)
  13189. #define BIT_SET_COEX_TABLE_2_8822B(x, v) \
  13190. (BIT_CLEAR_COEX_TABLE_2_8822B(x) | BIT_COEX_TABLE_2_8822B(v))
  13191. #define BIT_SHIFT_COEX_TABLE_1_8822B 0
  13192. #define BIT_MASK_COEX_TABLE_1_8822B 0xffffffffL
  13193. #define BIT_COEX_TABLE_1_8822B(x) \
  13194. (((x) & BIT_MASK_COEX_TABLE_1_8822B) << BIT_SHIFT_COEX_TABLE_1_8822B)
  13195. #define BITS_COEX_TABLE_1_8822B \
  13196. (BIT_MASK_COEX_TABLE_1_8822B << BIT_SHIFT_COEX_TABLE_1_8822B)
  13197. #define BIT_CLEAR_COEX_TABLE_1_8822B(x) ((x) & (~BITS_COEX_TABLE_1_8822B))
  13198. #define BIT_GET_COEX_TABLE_1_8822B(x) \
  13199. (((x) >> BIT_SHIFT_COEX_TABLE_1_8822B) & BIT_MASK_COEX_TABLE_1_8822B)
  13200. #define BIT_SET_COEX_TABLE_1_8822B(x, v) \
  13201. (BIT_CLEAR_COEX_TABLE_1_8822B(x) | BIT_COEX_TABLE_1_8822B(v))
  13202. /* 2 REG_RXCMD_0_8822B */
  13203. #define BIT_RXCMD_EN_8822B BIT(31)
  13204. #define BIT_SHIFT_RXCMD_INFO_8822B 0
  13205. #define BIT_MASK_RXCMD_INFO_8822B 0x7fffffffL
  13206. #define BIT_RXCMD_INFO_8822B(x) \
  13207. (((x) & BIT_MASK_RXCMD_INFO_8822B) << BIT_SHIFT_RXCMD_INFO_8822B)
  13208. #define BITS_RXCMD_INFO_8822B \
  13209. (BIT_MASK_RXCMD_INFO_8822B << BIT_SHIFT_RXCMD_INFO_8822B)
  13210. #define BIT_CLEAR_RXCMD_INFO_8822B(x) ((x) & (~BITS_RXCMD_INFO_8822B))
  13211. #define BIT_GET_RXCMD_INFO_8822B(x) \
  13212. (((x) >> BIT_SHIFT_RXCMD_INFO_8822B) & BIT_MASK_RXCMD_INFO_8822B)
  13213. #define BIT_SET_RXCMD_INFO_8822B(x, v) \
  13214. (BIT_CLEAR_RXCMD_INFO_8822B(x) | BIT_RXCMD_INFO_8822B(v))
  13215. /* 2 REG_RXCMD_1_8822B */
  13216. #define BIT_SHIFT_RXCMD_PRD_8822B 0
  13217. #define BIT_MASK_RXCMD_PRD_8822B 0xffff
  13218. #define BIT_RXCMD_PRD_8822B(x) \
  13219. (((x) & BIT_MASK_RXCMD_PRD_8822B) << BIT_SHIFT_RXCMD_PRD_8822B)
  13220. #define BITS_RXCMD_PRD_8822B \
  13221. (BIT_MASK_RXCMD_PRD_8822B << BIT_SHIFT_RXCMD_PRD_8822B)
  13222. #define BIT_CLEAR_RXCMD_PRD_8822B(x) ((x) & (~BITS_RXCMD_PRD_8822B))
  13223. #define BIT_GET_RXCMD_PRD_8822B(x) \
  13224. (((x) >> BIT_SHIFT_RXCMD_PRD_8822B) & BIT_MASK_RXCMD_PRD_8822B)
  13225. #define BIT_SET_RXCMD_PRD_8822B(x, v) \
  13226. (BIT_CLEAR_RXCMD_PRD_8822B(x) | BIT_RXCMD_PRD_8822B(v))
  13227. /* 2 REG_NOT_VALID_8822B */
  13228. /* 2 REG_WMAC_RESP_TXINFO_8822B (RESPONSE TXINFO REGISTER) */
  13229. #define BIT_SHIFT_WMAC_RESP_MFB_8822B 25
  13230. #define BIT_MASK_WMAC_RESP_MFB_8822B 0x7f
  13231. #define BIT_WMAC_RESP_MFB_8822B(x) \
  13232. (((x) & BIT_MASK_WMAC_RESP_MFB_8822B) << BIT_SHIFT_WMAC_RESP_MFB_8822B)
  13233. #define BITS_WMAC_RESP_MFB_8822B \
  13234. (BIT_MASK_WMAC_RESP_MFB_8822B << BIT_SHIFT_WMAC_RESP_MFB_8822B)
  13235. #define BIT_CLEAR_WMAC_RESP_MFB_8822B(x) ((x) & (~BITS_WMAC_RESP_MFB_8822B))
  13236. #define BIT_GET_WMAC_RESP_MFB_8822B(x) \
  13237. (((x) >> BIT_SHIFT_WMAC_RESP_MFB_8822B) & BIT_MASK_WMAC_RESP_MFB_8822B)
  13238. #define BIT_SET_WMAC_RESP_MFB_8822B(x, v) \
  13239. (BIT_CLEAR_WMAC_RESP_MFB_8822B(x) | BIT_WMAC_RESP_MFB_8822B(v))
  13240. #define BIT_SHIFT_WMAC_ANTINF_SEL_8822B 23
  13241. #define BIT_MASK_WMAC_ANTINF_SEL_8822B 0x3
  13242. #define BIT_WMAC_ANTINF_SEL_8822B(x) \
  13243. (((x) & BIT_MASK_WMAC_ANTINF_SEL_8822B) \
  13244. << BIT_SHIFT_WMAC_ANTINF_SEL_8822B)
  13245. #define BITS_WMAC_ANTINF_SEL_8822B \
  13246. (BIT_MASK_WMAC_ANTINF_SEL_8822B << BIT_SHIFT_WMAC_ANTINF_SEL_8822B)
  13247. #define BIT_CLEAR_WMAC_ANTINF_SEL_8822B(x) ((x) & (~BITS_WMAC_ANTINF_SEL_8822B))
  13248. #define BIT_GET_WMAC_ANTINF_SEL_8822B(x) \
  13249. (((x) >> BIT_SHIFT_WMAC_ANTINF_SEL_8822B) & \
  13250. BIT_MASK_WMAC_ANTINF_SEL_8822B)
  13251. #define BIT_SET_WMAC_ANTINF_SEL_8822B(x, v) \
  13252. (BIT_CLEAR_WMAC_ANTINF_SEL_8822B(x) | BIT_WMAC_ANTINF_SEL_8822B(v))
  13253. #define BIT_SHIFT_WMAC_ANTSEL_SEL_8822B 21
  13254. #define BIT_MASK_WMAC_ANTSEL_SEL_8822B 0x3
  13255. #define BIT_WMAC_ANTSEL_SEL_8822B(x) \
  13256. (((x) & BIT_MASK_WMAC_ANTSEL_SEL_8822B) \
  13257. << BIT_SHIFT_WMAC_ANTSEL_SEL_8822B)
  13258. #define BITS_WMAC_ANTSEL_SEL_8822B \
  13259. (BIT_MASK_WMAC_ANTSEL_SEL_8822B << BIT_SHIFT_WMAC_ANTSEL_SEL_8822B)
  13260. #define BIT_CLEAR_WMAC_ANTSEL_SEL_8822B(x) ((x) & (~BITS_WMAC_ANTSEL_SEL_8822B))
  13261. #define BIT_GET_WMAC_ANTSEL_SEL_8822B(x) \
  13262. (((x) >> BIT_SHIFT_WMAC_ANTSEL_SEL_8822B) & \
  13263. BIT_MASK_WMAC_ANTSEL_SEL_8822B)
  13264. #define BIT_SET_WMAC_ANTSEL_SEL_8822B(x, v) \
  13265. (BIT_CLEAR_WMAC_ANTSEL_SEL_8822B(x) | BIT_WMAC_ANTSEL_SEL_8822B(v))
  13266. #define BIT_SHIFT_R_WMAC_RESP_TXPOWER_8822B 18
  13267. #define BIT_MASK_R_WMAC_RESP_TXPOWER_8822B 0x7
  13268. #define BIT_R_WMAC_RESP_TXPOWER_8822B(x) \
  13269. (((x) & BIT_MASK_R_WMAC_RESP_TXPOWER_8822B) \
  13270. << BIT_SHIFT_R_WMAC_RESP_TXPOWER_8822B)
  13271. #define BITS_R_WMAC_RESP_TXPOWER_8822B \
  13272. (BIT_MASK_R_WMAC_RESP_TXPOWER_8822B \
  13273. << BIT_SHIFT_R_WMAC_RESP_TXPOWER_8822B)
  13274. #define BIT_CLEAR_R_WMAC_RESP_TXPOWER_8822B(x) \
  13275. ((x) & (~BITS_R_WMAC_RESP_TXPOWER_8822B))
  13276. #define BIT_GET_R_WMAC_RESP_TXPOWER_8822B(x) \
  13277. (((x) >> BIT_SHIFT_R_WMAC_RESP_TXPOWER_8822B) & \
  13278. BIT_MASK_R_WMAC_RESP_TXPOWER_8822B)
  13279. #define BIT_SET_R_WMAC_RESP_TXPOWER_8822B(x, v) \
  13280. (BIT_CLEAR_R_WMAC_RESP_TXPOWER_8822B(x) | \
  13281. BIT_R_WMAC_RESP_TXPOWER_8822B(v))
  13282. #define BIT_SHIFT_WMAC_RESP_TXANT_8822B 0
  13283. #define BIT_MASK_WMAC_RESP_TXANT_8822B 0x3ffff
  13284. #define BIT_WMAC_RESP_TXANT_8822B(x) \
  13285. (((x) & BIT_MASK_WMAC_RESP_TXANT_8822B) \
  13286. << BIT_SHIFT_WMAC_RESP_TXANT_8822B)
  13287. #define BITS_WMAC_RESP_TXANT_8822B \
  13288. (BIT_MASK_WMAC_RESP_TXANT_8822B << BIT_SHIFT_WMAC_RESP_TXANT_8822B)
  13289. #define BIT_CLEAR_WMAC_RESP_TXANT_8822B(x) ((x) & (~BITS_WMAC_RESP_TXANT_8822B))
  13290. #define BIT_GET_WMAC_RESP_TXANT_8822B(x) \
  13291. (((x) >> BIT_SHIFT_WMAC_RESP_TXANT_8822B) & \
  13292. BIT_MASK_WMAC_RESP_TXANT_8822B)
  13293. #define BIT_SET_WMAC_RESP_TXANT_8822B(x, v) \
  13294. (BIT_CLEAR_WMAC_RESP_TXANT_8822B(x) | BIT_WMAC_RESP_TXANT_8822B(v))
  13295. /* 2 REG_BBPSF_CTRL_8822B */
  13296. #define BIT_CTL_IDLE_CLR_CSI_RPT_8822B BIT(31)
  13297. #define BIT_WMAC_USE_NDPARATE_8822B BIT(30)
  13298. #define BIT_SHIFT_WMAC_CSI_RATE_8822B 24
  13299. #define BIT_MASK_WMAC_CSI_RATE_8822B 0x3f
  13300. #define BIT_WMAC_CSI_RATE_8822B(x) \
  13301. (((x) & BIT_MASK_WMAC_CSI_RATE_8822B) << BIT_SHIFT_WMAC_CSI_RATE_8822B)
  13302. #define BITS_WMAC_CSI_RATE_8822B \
  13303. (BIT_MASK_WMAC_CSI_RATE_8822B << BIT_SHIFT_WMAC_CSI_RATE_8822B)
  13304. #define BIT_CLEAR_WMAC_CSI_RATE_8822B(x) ((x) & (~BITS_WMAC_CSI_RATE_8822B))
  13305. #define BIT_GET_WMAC_CSI_RATE_8822B(x) \
  13306. (((x) >> BIT_SHIFT_WMAC_CSI_RATE_8822B) & BIT_MASK_WMAC_CSI_RATE_8822B)
  13307. #define BIT_SET_WMAC_CSI_RATE_8822B(x, v) \
  13308. (BIT_CLEAR_WMAC_CSI_RATE_8822B(x) | BIT_WMAC_CSI_RATE_8822B(v))
  13309. #define BIT_SHIFT_WMAC_RESP_TXRATE_8822B 16
  13310. #define BIT_MASK_WMAC_RESP_TXRATE_8822B 0xff
  13311. #define BIT_WMAC_RESP_TXRATE_8822B(x) \
  13312. (((x) & BIT_MASK_WMAC_RESP_TXRATE_8822B) \
  13313. << BIT_SHIFT_WMAC_RESP_TXRATE_8822B)
  13314. #define BITS_WMAC_RESP_TXRATE_8822B \
  13315. (BIT_MASK_WMAC_RESP_TXRATE_8822B << BIT_SHIFT_WMAC_RESP_TXRATE_8822B)
  13316. #define BIT_CLEAR_WMAC_RESP_TXRATE_8822B(x) \
  13317. ((x) & (~BITS_WMAC_RESP_TXRATE_8822B))
  13318. #define BIT_GET_WMAC_RESP_TXRATE_8822B(x) \
  13319. (((x) >> BIT_SHIFT_WMAC_RESP_TXRATE_8822B) & \
  13320. BIT_MASK_WMAC_RESP_TXRATE_8822B)
  13321. #define BIT_SET_WMAC_RESP_TXRATE_8822B(x, v) \
  13322. (BIT_CLEAR_WMAC_RESP_TXRATE_8822B(x) | BIT_WMAC_RESP_TXRATE_8822B(v))
  13323. #define BIT_BBPSF_MPDUCHKEN_8822B BIT(5)
  13324. #define BIT_BBPSF_MHCHKEN_8822B BIT(4)
  13325. #define BIT_BBPSF_ERRCHKEN_8822B BIT(3)
  13326. #define BIT_SHIFT_BBPSF_ERRTHR_8822B 0
  13327. #define BIT_MASK_BBPSF_ERRTHR_8822B 0x7
  13328. #define BIT_BBPSF_ERRTHR_8822B(x) \
  13329. (((x) & BIT_MASK_BBPSF_ERRTHR_8822B) << BIT_SHIFT_BBPSF_ERRTHR_8822B)
  13330. #define BITS_BBPSF_ERRTHR_8822B \
  13331. (BIT_MASK_BBPSF_ERRTHR_8822B << BIT_SHIFT_BBPSF_ERRTHR_8822B)
  13332. #define BIT_CLEAR_BBPSF_ERRTHR_8822B(x) ((x) & (~BITS_BBPSF_ERRTHR_8822B))
  13333. #define BIT_GET_BBPSF_ERRTHR_8822B(x) \
  13334. (((x) >> BIT_SHIFT_BBPSF_ERRTHR_8822B) & BIT_MASK_BBPSF_ERRTHR_8822B)
  13335. #define BIT_SET_BBPSF_ERRTHR_8822B(x, v) \
  13336. (BIT_CLEAR_BBPSF_ERRTHR_8822B(x) | BIT_BBPSF_ERRTHR_8822B(v))
  13337. /* 2 REG_NOT_VALID_8822B */
  13338. /* 2 REG_P2P_RX_BCN_NOA_8822B (P2P RX BEACON NOA REGISTER) */
  13339. #define BIT_NOA_PARSER_EN_8822B BIT(15)
  13340. #define BIT_BSSID_SEL_8822B BIT(14)
  13341. #define BIT_SHIFT_P2P_OUI_TYPE_8822B 0
  13342. #define BIT_MASK_P2P_OUI_TYPE_8822B 0xff
  13343. #define BIT_P2P_OUI_TYPE_8822B(x) \
  13344. (((x) & BIT_MASK_P2P_OUI_TYPE_8822B) << BIT_SHIFT_P2P_OUI_TYPE_8822B)
  13345. #define BITS_P2P_OUI_TYPE_8822B \
  13346. (BIT_MASK_P2P_OUI_TYPE_8822B << BIT_SHIFT_P2P_OUI_TYPE_8822B)
  13347. #define BIT_CLEAR_P2P_OUI_TYPE_8822B(x) ((x) & (~BITS_P2P_OUI_TYPE_8822B))
  13348. #define BIT_GET_P2P_OUI_TYPE_8822B(x) \
  13349. (((x) >> BIT_SHIFT_P2P_OUI_TYPE_8822B) & BIT_MASK_P2P_OUI_TYPE_8822B)
  13350. #define BIT_SET_P2P_OUI_TYPE_8822B(x, v) \
  13351. (BIT_CLEAR_P2P_OUI_TYPE_8822B(x) | BIT_P2P_OUI_TYPE_8822B(v))
  13352. /* 2 REG_ASSOCIATED_BFMER0_INFO_8822B (ASSOCIATED BEAMFORMER0 INFO REGISTER) */
  13353. #define BIT_SHIFT_R_WMAC_TXCSI_AID0_8822B (48 & CPU_OPT_WIDTH)
  13354. #define BIT_MASK_R_WMAC_TXCSI_AID0_8822B 0x1ff
  13355. #define BIT_R_WMAC_TXCSI_AID0_8822B(x) \
  13356. (((x) & BIT_MASK_R_WMAC_TXCSI_AID0_8822B) \
  13357. << BIT_SHIFT_R_WMAC_TXCSI_AID0_8822B)
  13358. #define BITS_R_WMAC_TXCSI_AID0_8822B \
  13359. (BIT_MASK_R_WMAC_TXCSI_AID0_8822B << BIT_SHIFT_R_WMAC_TXCSI_AID0_8822B)
  13360. #define BIT_CLEAR_R_WMAC_TXCSI_AID0_8822B(x) \
  13361. ((x) & (~BITS_R_WMAC_TXCSI_AID0_8822B))
  13362. #define BIT_GET_R_WMAC_TXCSI_AID0_8822B(x) \
  13363. (((x) >> BIT_SHIFT_R_WMAC_TXCSI_AID0_8822B) & \
  13364. BIT_MASK_R_WMAC_TXCSI_AID0_8822B)
  13365. #define BIT_SET_R_WMAC_TXCSI_AID0_8822B(x, v) \
  13366. (BIT_CLEAR_R_WMAC_TXCSI_AID0_8822B(x) | BIT_R_WMAC_TXCSI_AID0_8822B(v))
  13367. #define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_8822B 0
  13368. #define BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_8822B 0xffffffffffffL
  13369. #define BIT_R_WMAC_SOUNDING_RXADD_R0_8822B(x) \
  13370. (((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_8822B) \
  13371. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_8822B)
  13372. #define BITS_R_WMAC_SOUNDING_RXADD_R0_8822B \
  13373. (BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_8822B \
  13374. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_8822B)
  13375. #define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0_8822B(x) \
  13376. ((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R0_8822B))
  13377. #define BIT_GET_R_WMAC_SOUNDING_RXADD_R0_8822B(x) \
  13378. (((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_8822B) & \
  13379. BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_8822B)
  13380. #define BIT_SET_R_WMAC_SOUNDING_RXADD_R0_8822B(x, v) \
  13381. (BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0_8822B(x) | \
  13382. BIT_R_WMAC_SOUNDING_RXADD_R0_8822B(v))
  13383. /* 2 REG_ASSOCIATED_BFMER1_INFO_8822B (ASSOCIATED BEAMFORMER1 INFO REGISTER) */
  13384. #define BIT_SHIFT_R_WMAC_TXCSI_AID1_8822B (48 & CPU_OPT_WIDTH)
  13385. #define BIT_MASK_R_WMAC_TXCSI_AID1_8822B 0x1ff
  13386. #define BIT_R_WMAC_TXCSI_AID1_8822B(x) \
  13387. (((x) & BIT_MASK_R_WMAC_TXCSI_AID1_8822B) \
  13388. << BIT_SHIFT_R_WMAC_TXCSI_AID1_8822B)
  13389. #define BITS_R_WMAC_TXCSI_AID1_8822B \
  13390. (BIT_MASK_R_WMAC_TXCSI_AID1_8822B << BIT_SHIFT_R_WMAC_TXCSI_AID1_8822B)
  13391. #define BIT_CLEAR_R_WMAC_TXCSI_AID1_8822B(x) \
  13392. ((x) & (~BITS_R_WMAC_TXCSI_AID1_8822B))
  13393. #define BIT_GET_R_WMAC_TXCSI_AID1_8822B(x) \
  13394. (((x) >> BIT_SHIFT_R_WMAC_TXCSI_AID1_8822B) & \
  13395. BIT_MASK_R_WMAC_TXCSI_AID1_8822B)
  13396. #define BIT_SET_R_WMAC_TXCSI_AID1_8822B(x, v) \
  13397. (BIT_CLEAR_R_WMAC_TXCSI_AID1_8822B(x) | BIT_R_WMAC_TXCSI_AID1_8822B(v))
  13398. #define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_8822B 0
  13399. #define BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_8822B 0xffffffffffffL
  13400. #define BIT_R_WMAC_SOUNDING_RXADD_R1_8822B(x) \
  13401. (((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_8822B) \
  13402. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_8822B)
  13403. #define BITS_R_WMAC_SOUNDING_RXADD_R1_8822B \
  13404. (BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_8822B \
  13405. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_8822B)
  13406. #define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_8822B(x) \
  13407. ((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R1_8822B))
  13408. #define BIT_GET_R_WMAC_SOUNDING_RXADD_R1_8822B(x) \
  13409. (((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_8822B) & \
  13410. BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_8822B)
  13411. #define BIT_SET_R_WMAC_SOUNDING_RXADD_R1_8822B(x, v) \
  13412. (BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_8822B(x) | \
  13413. BIT_R_WMAC_SOUNDING_RXADD_R1_8822B(v))
  13414. /* 2 REG_TX_CSI_RPT_PARAM_BW20_8822B (TX CSI REPORT PARAMETER REGISTER) */
  13415. #define BIT_SHIFT_R_WMAC_BFINFO_20M_1_8822B 16
  13416. #define BIT_MASK_R_WMAC_BFINFO_20M_1_8822B 0xfff
  13417. #define BIT_R_WMAC_BFINFO_20M_1_8822B(x) \
  13418. (((x) & BIT_MASK_R_WMAC_BFINFO_20M_1_8822B) \
  13419. << BIT_SHIFT_R_WMAC_BFINFO_20M_1_8822B)
  13420. #define BITS_R_WMAC_BFINFO_20M_1_8822B \
  13421. (BIT_MASK_R_WMAC_BFINFO_20M_1_8822B \
  13422. << BIT_SHIFT_R_WMAC_BFINFO_20M_1_8822B)
  13423. #define BIT_CLEAR_R_WMAC_BFINFO_20M_1_8822B(x) \
  13424. ((x) & (~BITS_R_WMAC_BFINFO_20M_1_8822B))
  13425. #define BIT_GET_R_WMAC_BFINFO_20M_1_8822B(x) \
  13426. (((x) >> BIT_SHIFT_R_WMAC_BFINFO_20M_1_8822B) & \
  13427. BIT_MASK_R_WMAC_BFINFO_20M_1_8822B)
  13428. #define BIT_SET_R_WMAC_BFINFO_20M_1_8822B(x, v) \
  13429. (BIT_CLEAR_R_WMAC_BFINFO_20M_1_8822B(x) | \
  13430. BIT_R_WMAC_BFINFO_20M_1_8822B(v))
  13431. #define BIT_SHIFT_R_WMAC_BFINFO_20M_0_8822B 0
  13432. #define BIT_MASK_R_WMAC_BFINFO_20M_0_8822B 0xfff
  13433. #define BIT_R_WMAC_BFINFO_20M_0_8822B(x) \
  13434. (((x) & BIT_MASK_R_WMAC_BFINFO_20M_0_8822B) \
  13435. << BIT_SHIFT_R_WMAC_BFINFO_20M_0_8822B)
  13436. #define BITS_R_WMAC_BFINFO_20M_0_8822B \
  13437. (BIT_MASK_R_WMAC_BFINFO_20M_0_8822B \
  13438. << BIT_SHIFT_R_WMAC_BFINFO_20M_0_8822B)
  13439. #define BIT_CLEAR_R_WMAC_BFINFO_20M_0_8822B(x) \
  13440. ((x) & (~BITS_R_WMAC_BFINFO_20M_0_8822B))
  13441. #define BIT_GET_R_WMAC_BFINFO_20M_0_8822B(x) \
  13442. (((x) >> BIT_SHIFT_R_WMAC_BFINFO_20M_0_8822B) & \
  13443. BIT_MASK_R_WMAC_BFINFO_20M_0_8822B)
  13444. #define BIT_SET_R_WMAC_BFINFO_20M_0_8822B(x, v) \
  13445. (BIT_CLEAR_R_WMAC_BFINFO_20M_0_8822B(x) | \
  13446. BIT_R_WMAC_BFINFO_20M_0_8822B(v))
  13447. /* 2 REG_TX_CSI_RPT_PARAM_BW40_8822B (TX CSI REPORT PARAMETER_BW40 REGISTER) */
  13448. #define BIT_SHIFT_WMAC_RESP_ANTCD_8822B 0
  13449. #define BIT_MASK_WMAC_RESP_ANTCD_8822B 0xf
  13450. #define BIT_WMAC_RESP_ANTCD_8822B(x) \
  13451. (((x) & BIT_MASK_WMAC_RESP_ANTCD_8822B) \
  13452. << BIT_SHIFT_WMAC_RESP_ANTCD_8822B)
  13453. #define BITS_WMAC_RESP_ANTCD_8822B \
  13454. (BIT_MASK_WMAC_RESP_ANTCD_8822B << BIT_SHIFT_WMAC_RESP_ANTCD_8822B)
  13455. #define BIT_CLEAR_WMAC_RESP_ANTCD_8822B(x) ((x) & (~BITS_WMAC_RESP_ANTCD_8822B))
  13456. #define BIT_GET_WMAC_RESP_ANTCD_8822B(x) \
  13457. (((x) >> BIT_SHIFT_WMAC_RESP_ANTCD_8822B) & \
  13458. BIT_MASK_WMAC_RESP_ANTCD_8822B)
  13459. #define BIT_SET_WMAC_RESP_ANTCD_8822B(x, v) \
  13460. (BIT_CLEAR_WMAC_RESP_ANTCD_8822B(x) | BIT_WMAC_RESP_ANTCD_8822B(v))
  13461. /* 2 REG_TX_CSI_RPT_PARAM_BW80_8822B (TX CSI REPORT PARAMETER_BW80 REGISTER) */
  13462. /* 2 REG_BCN_PSR_RPT2_8822B (BEACON PARSER REPORT REGISTER2) */
  13463. #define BIT_SHIFT_DTIM_CNT2_8822B 24
  13464. #define BIT_MASK_DTIM_CNT2_8822B 0xff
  13465. #define BIT_DTIM_CNT2_8822B(x) \
  13466. (((x) & BIT_MASK_DTIM_CNT2_8822B) << BIT_SHIFT_DTIM_CNT2_8822B)
  13467. #define BITS_DTIM_CNT2_8822B \
  13468. (BIT_MASK_DTIM_CNT2_8822B << BIT_SHIFT_DTIM_CNT2_8822B)
  13469. #define BIT_CLEAR_DTIM_CNT2_8822B(x) ((x) & (~BITS_DTIM_CNT2_8822B))
  13470. #define BIT_GET_DTIM_CNT2_8822B(x) \
  13471. (((x) >> BIT_SHIFT_DTIM_CNT2_8822B) & BIT_MASK_DTIM_CNT2_8822B)
  13472. #define BIT_SET_DTIM_CNT2_8822B(x, v) \
  13473. (BIT_CLEAR_DTIM_CNT2_8822B(x) | BIT_DTIM_CNT2_8822B(v))
  13474. #define BIT_SHIFT_DTIM_PERIOD2_8822B 16
  13475. #define BIT_MASK_DTIM_PERIOD2_8822B 0xff
  13476. #define BIT_DTIM_PERIOD2_8822B(x) \
  13477. (((x) & BIT_MASK_DTIM_PERIOD2_8822B) << BIT_SHIFT_DTIM_PERIOD2_8822B)
  13478. #define BITS_DTIM_PERIOD2_8822B \
  13479. (BIT_MASK_DTIM_PERIOD2_8822B << BIT_SHIFT_DTIM_PERIOD2_8822B)
  13480. #define BIT_CLEAR_DTIM_PERIOD2_8822B(x) ((x) & (~BITS_DTIM_PERIOD2_8822B))
  13481. #define BIT_GET_DTIM_PERIOD2_8822B(x) \
  13482. (((x) >> BIT_SHIFT_DTIM_PERIOD2_8822B) & BIT_MASK_DTIM_PERIOD2_8822B)
  13483. #define BIT_SET_DTIM_PERIOD2_8822B(x, v) \
  13484. (BIT_CLEAR_DTIM_PERIOD2_8822B(x) | BIT_DTIM_PERIOD2_8822B(v))
  13485. #define BIT_DTIM2_8822B BIT(15)
  13486. #define BIT_TIM2_8822B BIT(14)
  13487. #define BIT_SHIFT_PS_AID_2_8822B 0
  13488. #define BIT_MASK_PS_AID_2_8822B 0x7ff
  13489. #define BIT_PS_AID_2_8822B(x) \
  13490. (((x) & BIT_MASK_PS_AID_2_8822B) << BIT_SHIFT_PS_AID_2_8822B)
  13491. #define BITS_PS_AID_2_8822B \
  13492. (BIT_MASK_PS_AID_2_8822B << BIT_SHIFT_PS_AID_2_8822B)
  13493. #define BIT_CLEAR_PS_AID_2_8822B(x) ((x) & (~BITS_PS_AID_2_8822B))
  13494. #define BIT_GET_PS_AID_2_8822B(x) \
  13495. (((x) >> BIT_SHIFT_PS_AID_2_8822B) & BIT_MASK_PS_AID_2_8822B)
  13496. #define BIT_SET_PS_AID_2_8822B(x, v) \
  13497. (BIT_CLEAR_PS_AID_2_8822B(x) | BIT_PS_AID_2_8822B(v))
  13498. /* 2 REG_BCN_PSR_RPT3_8822B (BEACON PARSER REPORT REGISTER3) */
  13499. #define BIT_SHIFT_DTIM_CNT3_8822B 24
  13500. #define BIT_MASK_DTIM_CNT3_8822B 0xff
  13501. #define BIT_DTIM_CNT3_8822B(x) \
  13502. (((x) & BIT_MASK_DTIM_CNT3_8822B) << BIT_SHIFT_DTIM_CNT3_8822B)
  13503. #define BITS_DTIM_CNT3_8822B \
  13504. (BIT_MASK_DTIM_CNT3_8822B << BIT_SHIFT_DTIM_CNT3_8822B)
  13505. #define BIT_CLEAR_DTIM_CNT3_8822B(x) ((x) & (~BITS_DTIM_CNT3_8822B))
  13506. #define BIT_GET_DTIM_CNT3_8822B(x) \
  13507. (((x) >> BIT_SHIFT_DTIM_CNT3_8822B) & BIT_MASK_DTIM_CNT3_8822B)
  13508. #define BIT_SET_DTIM_CNT3_8822B(x, v) \
  13509. (BIT_CLEAR_DTIM_CNT3_8822B(x) | BIT_DTIM_CNT3_8822B(v))
  13510. #define BIT_SHIFT_DTIM_PERIOD3_8822B 16
  13511. #define BIT_MASK_DTIM_PERIOD3_8822B 0xff
  13512. #define BIT_DTIM_PERIOD3_8822B(x) \
  13513. (((x) & BIT_MASK_DTIM_PERIOD3_8822B) << BIT_SHIFT_DTIM_PERIOD3_8822B)
  13514. #define BITS_DTIM_PERIOD3_8822B \
  13515. (BIT_MASK_DTIM_PERIOD3_8822B << BIT_SHIFT_DTIM_PERIOD3_8822B)
  13516. #define BIT_CLEAR_DTIM_PERIOD3_8822B(x) ((x) & (~BITS_DTIM_PERIOD3_8822B))
  13517. #define BIT_GET_DTIM_PERIOD3_8822B(x) \
  13518. (((x) >> BIT_SHIFT_DTIM_PERIOD3_8822B) & BIT_MASK_DTIM_PERIOD3_8822B)
  13519. #define BIT_SET_DTIM_PERIOD3_8822B(x, v) \
  13520. (BIT_CLEAR_DTIM_PERIOD3_8822B(x) | BIT_DTIM_PERIOD3_8822B(v))
  13521. #define BIT_DTIM3_8822B BIT(15)
  13522. #define BIT_TIM3_8822B BIT(14)
  13523. #define BIT_SHIFT_PS_AID_3_8822B 0
  13524. #define BIT_MASK_PS_AID_3_8822B 0x7ff
  13525. #define BIT_PS_AID_3_8822B(x) \
  13526. (((x) & BIT_MASK_PS_AID_3_8822B) << BIT_SHIFT_PS_AID_3_8822B)
  13527. #define BITS_PS_AID_3_8822B \
  13528. (BIT_MASK_PS_AID_3_8822B << BIT_SHIFT_PS_AID_3_8822B)
  13529. #define BIT_CLEAR_PS_AID_3_8822B(x) ((x) & (~BITS_PS_AID_3_8822B))
  13530. #define BIT_GET_PS_AID_3_8822B(x) \
  13531. (((x) >> BIT_SHIFT_PS_AID_3_8822B) & BIT_MASK_PS_AID_3_8822B)
  13532. #define BIT_SET_PS_AID_3_8822B(x, v) \
  13533. (BIT_CLEAR_PS_AID_3_8822B(x) | BIT_PS_AID_3_8822B(v))
  13534. /* 2 REG_BCN_PSR_RPT4_8822B (BEACON PARSER REPORT REGISTER4) */
  13535. #define BIT_SHIFT_DTIM_CNT4_8822B 24
  13536. #define BIT_MASK_DTIM_CNT4_8822B 0xff
  13537. #define BIT_DTIM_CNT4_8822B(x) \
  13538. (((x) & BIT_MASK_DTIM_CNT4_8822B) << BIT_SHIFT_DTIM_CNT4_8822B)
  13539. #define BITS_DTIM_CNT4_8822B \
  13540. (BIT_MASK_DTIM_CNT4_8822B << BIT_SHIFT_DTIM_CNT4_8822B)
  13541. #define BIT_CLEAR_DTIM_CNT4_8822B(x) ((x) & (~BITS_DTIM_CNT4_8822B))
  13542. #define BIT_GET_DTIM_CNT4_8822B(x) \
  13543. (((x) >> BIT_SHIFT_DTIM_CNT4_8822B) & BIT_MASK_DTIM_CNT4_8822B)
  13544. #define BIT_SET_DTIM_CNT4_8822B(x, v) \
  13545. (BIT_CLEAR_DTIM_CNT4_8822B(x) | BIT_DTIM_CNT4_8822B(v))
  13546. #define BIT_SHIFT_DTIM_PERIOD4_8822B 16
  13547. #define BIT_MASK_DTIM_PERIOD4_8822B 0xff
  13548. #define BIT_DTIM_PERIOD4_8822B(x) \
  13549. (((x) & BIT_MASK_DTIM_PERIOD4_8822B) << BIT_SHIFT_DTIM_PERIOD4_8822B)
  13550. #define BITS_DTIM_PERIOD4_8822B \
  13551. (BIT_MASK_DTIM_PERIOD4_8822B << BIT_SHIFT_DTIM_PERIOD4_8822B)
  13552. #define BIT_CLEAR_DTIM_PERIOD4_8822B(x) ((x) & (~BITS_DTIM_PERIOD4_8822B))
  13553. #define BIT_GET_DTIM_PERIOD4_8822B(x) \
  13554. (((x) >> BIT_SHIFT_DTIM_PERIOD4_8822B) & BIT_MASK_DTIM_PERIOD4_8822B)
  13555. #define BIT_SET_DTIM_PERIOD4_8822B(x, v) \
  13556. (BIT_CLEAR_DTIM_PERIOD4_8822B(x) | BIT_DTIM_PERIOD4_8822B(v))
  13557. #define BIT_DTIM4_8822B BIT(15)
  13558. #define BIT_TIM4_8822B BIT(14)
  13559. #define BIT_SHIFT_PS_AID_4_8822B 0
  13560. #define BIT_MASK_PS_AID_4_8822B 0x7ff
  13561. #define BIT_PS_AID_4_8822B(x) \
  13562. (((x) & BIT_MASK_PS_AID_4_8822B) << BIT_SHIFT_PS_AID_4_8822B)
  13563. #define BITS_PS_AID_4_8822B \
  13564. (BIT_MASK_PS_AID_4_8822B << BIT_SHIFT_PS_AID_4_8822B)
  13565. #define BIT_CLEAR_PS_AID_4_8822B(x) ((x) & (~BITS_PS_AID_4_8822B))
  13566. #define BIT_GET_PS_AID_4_8822B(x) \
  13567. (((x) >> BIT_SHIFT_PS_AID_4_8822B) & BIT_MASK_PS_AID_4_8822B)
  13568. #define BIT_SET_PS_AID_4_8822B(x, v) \
  13569. (BIT_CLEAR_PS_AID_4_8822B(x) | BIT_PS_AID_4_8822B(v))
  13570. /* 2 REG_A1_ADDR_MASK_8822B (A1 ADDR MASK REGISTER) */
  13571. #define BIT_SHIFT_A1_ADDR_MASK_8822B 0
  13572. #define BIT_MASK_A1_ADDR_MASK_8822B 0xffffffffL
  13573. #define BIT_A1_ADDR_MASK_8822B(x) \
  13574. (((x) & BIT_MASK_A1_ADDR_MASK_8822B) << BIT_SHIFT_A1_ADDR_MASK_8822B)
  13575. #define BITS_A1_ADDR_MASK_8822B \
  13576. (BIT_MASK_A1_ADDR_MASK_8822B << BIT_SHIFT_A1_ADDR_MASK_8822B)
  13577. #define BIT_CLEAR_A1_ADDR_MASK_8822B(x) ((x) & (~BITS_A1_ADDR_MASK_8822B))
  13578. #define BIT_GET_A1_ADDR_MASK_8822B(x) \
  13579. (((x) >> BIT_SHIFT_A1_ADDR_MASK_8822B) & BIT_MASK_A1_ADDR_MASK_8822B)
  13580. #define BIT_SET_A1_ADDR_MASK_8822B(x, v) \
  13581. (BIT_CLEAR_A1_ADDR_MASK_8822B(x) | BIT_A1_ADDR_MASK_8822B(v))
  13582. /* 2 REG_MACID2_8822B (MAC ID2 REGISTER) */
  13583. #define BIT_SHIFT_MACID2_8822B 0
  13584. #define BIT_MASK_MACID2_8822B 0xffffffffffffL
  13585. #define BIT_MACID2_8822B(x) \
  13586. (((x) & BIT_MASK_MACID2_8822B) << BIT_SHIFT_MACID2_8822B)
  13587. #define BITS_MACID2_8822B (BIT_MASK_MACID2_8822B << BIT_SHIFT_MACID2_8822B)
  13588. #define BIT_CLEAR_MACID2_8822B(x) ((x) & (~BITS_MACID2_8822B))
  13589. #define BIT_GET_MACID2_8822B(x) \
  13590. (((x) >> BIT_SHIFT_MACID2_8822B) & BIT_MASK_MACID2_8822B)
  13591. #define BIT_SET_MACID2_8822B(x, v) \
  13592. (BIT_CLEAR_MACID2_8822B(x) | BIT_MACID2_8822B(v))
  13593. /* 2 REG_BSSID2_8822B (BSSID2 REGISTER) */
  13594. #define BIT_SHIFT_BSSID2_8822B 0
  13595. #define BIT_MASK_BSSID2_8822B 0xffffffffffffL
  13596. #define BIT_BSSID2_8822B(x) \
  13597. (((x) & BIT_MASK_BSSID2_8822B) << BIT_SHIFT_BSSID2_8822B)
  13598. #define BITS_BSSID2_8822B (BIT_MASK_BSSID2_8822B << BIT_SHIFT_BSSID2_8822B)
  13599. #define BIT_CLEAR_BSSID2_8822B(x) ((x) & (~BITS_BSSID2_8822B))
  13600. #define BIT_GET_BSSID2_8822B(x) \
  13601. (((x) >> BIT_SHIFT_BSSID2_8822B) & BIT_MASK_BSSID2_8822B)
  13602. #define BIT_SET_BSSID2_8822B(x, v) \
  13603. (BIT_CLEAR_BSSID2_8822B(x) | BIT_BSSID2_8822B(v))
  13604. /* 2 REG_MACID3_8822B (MAC ID3 REGISTER) */
  13605. #define BIT_SHIFT_MACID3_8822B 0
  13606. #define BIT_MASK_MACID3_8822B 0xffffffffffffL
  13607. #define BIT_MACID3_8822B(x) \
  13608. (((x) & BIT_MASK_MACID3_8822B) << BIT_SHIFT_MACID3_8822B)
  13609. #define BITS_MACID3_8822B (BIT_MASK_MACID3_8822B << BIT_SHIFT_MACID3_8822B)
  13610. #define BIT_CLEAR_MACID3_8822B(x) ((x) & (~BITS_MACID3_8822B))
  13611. #define BIT_GET_MACID3_8822B(x) \
  13612. (((x) >> BIT_SHIFT_MACID3_8822B) & BIT_MASK_MACID3_8822B)
  13613. #define BIT_SET_MACID3_8822B(x, v) \
  13614. (BIT_CLEAR_MACID3_8822B(x) | BIT_MACID3_8822B(v))
  13615. /* 2 REG_BSSID3_8822B (BSSID3 REGISTER) */
  13616. #define BIT_SHIFT_BSSID3_8822B 0
  13617. #define BIT_MASK_BSSID3_8822B 0xffffffffffffL
  13618. #define BIT_BSSID3_8822B(x) \
  13619. (((x) & BIT_MASK_BSSID3_8822B) << BIT_SHIFT_BSSID3_8822B)
  13620. #define BITS_BSSID3_8822B (BIT_MASK_BSSID3_8822B << BIT_SHIFT_BSSID3_8822B)
  13621. #define BIT_CLEAR_BSSID3_8822B(x) ((x) & (~BITS_BSSID3_8822B))
  13622. #define BIT_GET_BSSID3_8822B(x) \
  13623. (((x) >> BIT_SHIFT_BSSID3_8822B) & BIT_MASK_BSSID3_8822B)
  13624. #define BIT_SET_BSSID3_8822B(x, v) \
  13625. (BIT_CLEAR_BSSID3_8822B(x) | BIT_BSSID3_8822B(v))
  13626. /* 2 REG_MACID4_8822B (MAC ID4 REGISTER) */
  13627. #define BIT_SHIFT_MACID4_8822B 0
  13628. #define BIT_MASK_MACID4_8822B 0xffffffffffffL
  13629. #define BIT_MACID4_8822B(x) \
  13630. (((x) & BIT_MASK_MACID4_8822B) << BIT_SHIFT_MACID4_8822B)
  13631. #define BITS_MACID4_8822B (BIT_MASK_MACID4_8822B << BIT_SHIFT_MACID4_8822B)
  13632. #define BIT_CLEAR_MACID4_8822B(x) ((x) & (~BITS_MACID4_8822B))
  13633. #define BIT_GET_MACID4_8822B(x) \
  13634. (((x) >> BIT_SHIFT_MACID4_8822B) & BIT_MASK_MACID4_8822B)
  13635. #define BIT_SET_MACID4_8822B(x, v) \
  13636. (BIT_CLEAR_MACID4_8822B(x) | BIT_MACID4_8822B(v))
  13637. /* 2 REG_BSSID4_8822B (BSSID4 REGISTER) */
  13638. #define BIT_SHIFT_BSSID4_8822B 0
  13639. #define BIT_MASK_BSSID4_8822B 0xffffffffffffL
  13640. #define BIT_BSSID4_8822B(x) \
  13641. (((x) & BIT_MASK_BSSID4_8822B) << BIT_SHIFT_BSSID4_8822B)
  13642. #define BITS_BSSID4_8822B (BIT_MASK_BSSID4_8822B << BIT_SHIFT_BSSID4_8822B)
  13643. #define BIT_CLEAR_BSSID4_8822B(x) ((x) & (~BITS_BSSID4_8822B))
  13644. #define BIT_GET_BSSID4_8822B(x) \
  13645. (((x) >> BIT_SHIFT_BSSID4_8822B) & BIT_MASK_BSSID4_8822B)
  13646. #define BIT_SET_BSSID4_8822B(x, v) \
  13647. (BIT_CLEAR_BSSID4_8822B(x) | BIT_BSSID4_8822B(v))
  13648. /* 2 REG_NOA_REPORT_8822B */
  13649. /* 2 REG_PWRBIT_SETTING_8822B */
  13650. #define BIT_CLI3_PWRBIT_OW_EN_8822B BIT(7)
  13651. #define BIT_CLI3_PWR_ST_8822B BIT(6)
  13652. #define BIT_CLI2_PWRBIT_OW_EN_8822B BIT(5)
  13653. #define BIT_CLI2_PWR_ST_8822B BIT(4)
  13654. #define BIT_CLI1_PWRBIT_OW_EN_8822B BIT(3)
  13655. #define BIT_CLI1_PWR_ST_8822B BIT(2)
  13656. #define BIT_CLI0_PWRBIT_OW_EN_8822B BIT(1)
  13657. #define BIT_CLI0_PWR_ST_8822B BIT(0)
  13658. /* 2 REG_WMAC_MU_BF_OPTION_8822B */
  13659. #define BIT_WMAC_RESP_NONSTA1_DIS_8822B BIT(7)
  13660. #define BIT_BIT_WMAC_TXMU_ACKPOLICY_EN_8822B BIT(6)
  13661. #define BIT_SHIFT_WMAC_TXMU_ACKPOLICY_8822B 4
  13662. #define BIT_MASK_WMAC_TXMU_ACKPOLICY_8822B 0x3
  13663. #define BIT_WMAC_TXMU_ACKPOLICY_8822B(x) \
  13664. (((x) & BIT_MASK_WMAC_TXMU_ACKPOLICY_8822B) \
  13665. << BIT_SHIFT_WMAC_TXMU_ACKPOLICY_8822B)
  13666. #define BITS_WMAC_TXMU_ACKPOLICY_8822B \
  13667. (BIT_MASK_WMAC_TXMU_ACKPOLICY_8822B \
  13668. << BIT_SHIFT_WMAC_TXMU_ACKPOLICY_8822B)
  13669. #define BIT_CLEAR_WMAC_TXMU_ACKPOLICY_8822B(x) \
  13670. ((x) & (~BITS_WMAC_TXMU_ACKPOLICY_8822B))
  13671. #define BIT_GET_WMAC_TXMU_ACKPOLICY_8822B(x) \
  13672. (((x) >> BIT_SHIFT_WMAC_TXMU_ACKPOLICY_8822B) & \
  13673. BIT_MASK_WMAC_TXMU_ACKPOLICY_8822B)
  13674. #define BIT_SET_WMAC_TXMU_ACKPOLICY_8822B(x, v) \
  13675. (BIT_CLEAR_WMAC_TXMU_ACKPOLICY_8822B(x) | \
  13676. BIT_WMAC_TXMU_ACKPOLICY_8822B(v))
  13677. #define BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL_8822B 1
  13678. #define BIT_MASK_WMAC_MU_BFEE_PORT_SEL_8822B 0x7
  13679. #define BIT_WMAC_MU_BFEE_PORT_SEL_8822B(x) \
  13680. (((x) & BIT_MASK_WMAC_MU_BFEE_PORT_SEL_8822B) \
  13681. << BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL_8822B)
  13682. #define BITS_WMAC_MU_BFEE_PORT_SEL_8822B \
  13683. (BIT_MASK_WMAC_MU_BFEE_PORT_SEL_8822B \
  13684. << BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL_8822B)
  13685. #define BIT_CLEAR_WMAC_MU_BFEE_PORT_SEL_8822B(x) \
  13686. ((x) & (~BITS_WMAC_MU_BFEE_PORT_SEL_8822B))
  13687. #define BIT_GET_WMAC_MU_BFEE_PORT_SEL_8822B(x) \
  13688. (((x) >> BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL_8822B) & \
  13689. BIT_MASK_WMAC_MU_BFEE_PORT_SEL_8822B)
  13690. #define BIT_SET_WMAC_MU_BFEE_PORT_SEL_8822B(x, v) \
  13691. (BIT_CLEAR_WMAC_MU_BFEE_PORT_SEL_8822B(x) | \
  13692. BIT_WMAC_MU_BFEE_PORT_SEL_8822B(v))
  13693. #define BIT_WMAC_MU_BFEE_DIS_8822B BIT(0)
  13694. /* 2 REG_NOT_VALID_8822B */
  13695. #define BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH_8822B 0
  13696. #define BIT_MASK_WMAC_PAUSE_BB_CLR_TH_8822B 0xff
  13697. #define BIT_WMAC_PAUSE_BB_CLR_TH_8822B(x) \
  13698. (((x) & BIT_MASK_WMAC_PAUSE_BB_CLR_TH_8822B) \
  13699. << BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH_8822B)
  13700. #define BITS_WMAC_PAUSE_BB_CLR_TH_8822B \
  13701. (BIT_MASK_WMAC_PAUSE_BB_CLR_TH_8822B \
  13702. << BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH_8822B)
  13703. #define BIT_CLEAR_WMAC_PAUSE_BB_CLR_TH_8822B(x) \
  13704. ((x) & (~BITS_WMAC_PAUSE_BB_CLR_TH_8822B))
  13705. #define BIT_GET_WMAC_PAUSE_BB_CLR_TH_8822B(x) \
  13706. (((x) >> BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH_8822B) & \
  13707. BIT_MASK_WMAC_PAUSE_BB_CLR_TH_8822B)
  13708. #define BIT_SET_WMAC_PAUSE_BB_CLR_TH_8822B(x, v) \
  13709. (BIT_CLEAR_WMAC_PAUSE_BB_CLR_TH_8822B(x) | \
  13710. BIT_WMAC_PAUSE_BB_CLR_TH_8822B(v))
  13711. /* 2 REG_WMAC_MU_ARB_8822B */
  13712. #define BIT_WMAC_ARB_HW_ADAPT_EN_8822B BIT(7)
  13713. #define BIT_WMAC_ARB_SW_EN_8822B BIT(6)
  13714. #define BIT_SHIFT_WMAC_ARB_SW_STATE_8822B 0
  13715. #define BIT_MASK_WMAC_ARB_SW_STATE_8822B 0x3f
  13716. #define BIT_WMAC_ARB_SW_STATE_8822B(x) \
  13717. (((x) & BIT_MASK_WMAC_ARB_SW_STATE_8822B) \
  13718. << BIT_SHIFT_WMAC_ARB_SW_STATE_8822B)
  13719. #define BITS_WMAC_ARB_SW_STATE_8822B \
  13720. (BIT_MASK_WMAC_ARB_SW_STATE_8822B << BIT_SHIFT_WMAC_ARB_SW_STATE_8822B)
  13721. #define BIT_CLEAR_WMAC_ARB_SW_STATE_8822B(x) \
  13722. ((x) & (~BITS_WMAC_ARB_SW_STATE_8822B))
  13723. #define BIT_GET_WMAC_ARB_SW_STATE_8822B(x) \
  13724. (((x) >> BIT_SHIFT_WMAC_ARB_SW_STATE_8822B) & \
  13725. BIT_MASK_WMAC_ARB_SW_STATE_8822B)
  13726. #define BIT_SET_WMAC_ARB_SW_STATE_8822B(x, v) \
  13727. (BIT_CLEAR_WMAC_ARB_SW_STATE_8822B(x) | BIT_WMAC_ARB_SW_STATE_8822B(v))
  13728. /* 2 REG_WMAC_MU_OPTION_8822B */
  13729. #define BIT_SHIFT_WMAC_MU_DBGSEL_8822B 5
  13730. #define BIT_MASK_WMAC_MU_DBGSEL_8822B 0x3
  13731. #define BIT_WMAC_MU_DBGSEL_8822B(x) \
  13732. (((x) & BIT_MASK_WMAC_MU_DBGSEL_8822B) \
  13733. << BIT_SHIFT_WMAC_MU_DBGSEL_8822B)
  13734. #define BITS_WMAC_MU_DBGSEL_8822B \
  13735. (BIT_MASK_WMAC_MU_DBGSEL_8822B << BIT_SHIFT_WMAC_MU_DBGSEL_8822B)
  13736. #define BIT_CLEAR_WMAC_MU_DBGSEL_8822B(x) ((x) & (~BITS_WMAC_MU_DBGSEL_8822B))
  13737. #define BIT_GET_WMAC_MU_DBGSEL_8822B(x) \
  13738. (((x) >> BIT_SHIFT_WMAC_MU_DBGSEL_8822B) & \
  13739. BIT_MASK_WMAC_MU_DBGSEL_8822B)
  13740. #define BIT_SET_WMAC_MU_DBGSEL_8822B(x, v) \
  13741. (BIT_CLEAR_WMAC_MU_DBGSEL_8822B(x) | BIT_WMAC_MU_DBGSEL_8822B(v))
  13742. #define BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT_8822B 0
  13743. #define BIT_MASK_WMAC_MU_CPRD_TIMEOUT_8822B 0x1f
  13744. #define BIT_WMAC_MU_CPRD_TIMEOUT_8822B(x) \
  13745. (((x) & BIT_MASK_WMAC_MU_CPRD_TIMEOUT_8822B) \
  13746. << BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT_8822B)
  13747. #define BITS_WMAC_MU_CPRD_TIMEOUT_8822B \
  13748. (BIT_MASK_WMAC_MU_CPRD_TIMEOUT_8822B \
  13749. << BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT_8822B)
  13750. #define BIT_CLEAR_WMAC_MU_CPRD_TIMEOUT_8822B(x) \
  13751. ((x) & (~BITS_WMAC_MU_CPRD_TIMEOUT_8822B))
  13752. #define BIT_GET_WMAC_MU_CPRD_TIMEOUT_8822B(x) \
  13753. (((x) >> BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT_8822B) & \
  13754. BIT_MASK_WMAC_MU_CPRD_TIMEOUT_8822B)
  13755. #define BIT_SET_WMAC_MU_CPRD_TIMEOUT_8822B(x, v) \
  13756. (BIT_CLEAR_WMAC_MU_CPRD_TIMEOUT_8822B(x) | \
  13757. BIT_WMAC_MU_CPRD_TIMEOUT_8822B(v))
  13758. /* 2 REG_WMAC_MU_BF_CTL_8822B */
  13759. #define BIT_WMAC_INVLD_BFPRT_CHK_8822B BIT(15)
  13760. #define BIT_WMAC_RETXBFRPTSEQ_UPD_8822B BIT(14)
  13761. #define BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL_8822B 12
  13762. #define BIT_MASK_WMAC_MU_BFRPTSEG_SEL_8822B 0x3
  13763. #define BIT_WMAC_MU_BFRPTSEG_SEL_8822B(x) \
  13764. (((x) & BIT_MASK_WMAC_MU_BFRPTSEG_SEL_8822B) \
  13765. << BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL_8822B)
  13766. #define BITS_WMAC_MU_BFRPTSEG_SEL_8822B \
  13767. (BIT_MASK_WMAC_MU_BFRPTSEG_SEL_8822B \
  13768. << BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL_8822B)
  13769. #define BIT_CLEAR_WMAC_MU_BFRPTSEG_SEL_8822B(x) \
  13770. ((x) & (~BITS_WMAC_MU_BFRPTSEG_SEL_8822B))
  13771. #define BIT_GET_WMAC_MU_BFRPTSEG_SEL_8822B(x) \
  13772. (((x) >> BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL_8822B) & \
  13773. BIT_MASK_WMAC_MU_BFRPTSEG_SEL_8822B)
  13774. #define BIT_SET_WMAC_MU_BFRPTSEG_SEL_8822B(x, v) \
  13775. (BIT_CLEAR_WMAC_MU_BFRPTSEG_SEL_8822B(x) | \
  13776. BIT_WMAC_MU_BFRPTSEG_SEL_8822B(v))
  13777. #define BIT_SHIFT_WMAC_MU_BF_MYAID_8822B 0
  13778. #define BIT_MASK_WMAC_MU_BF_MYAID_8822B 0xfff
  13779. #define BIT_WMAC_MU_BF_MYAID_8822B(x) \
  13780. (((x) & BIT_MASK_WMAC_MU_BF_MYAID_8822B) \
  13781. << BIT_SHIFT_WMAC_MU_BF_MYAID_8822B)
  13782. #define BITS_WMAC_MU_BF_MYAID_8822B \
  13783. (BIT_MASK_WMAC_MU_BF_MYAID_8822B << BIT_SHIFT_WMAC_MU_BF_MYAID_8822B)
  13784. #define BIT_CLEAR_WMAC_MU_BF_MYAID_8822B(x) \
  13785. ((x) & (~BITS_WMAC_MU_BF_MYAID_8822B))
  13786. #define BIT_GET_WMAC_MU_BF_MYAID_8822B(x) \
  13787. (((x) >> BIT_SHIFT_WMAC_MU_BF_MYAID_8822B) & \
  13788. BIT_MASK_WMAC_MU_BF_MYAID_8822B)
  13789. #define BIT_SET_WMAC_MU_BF_MYAID_8822B(x, v) \
  13790. (BIT_CLEAR_WMAC_MU_BF_MYAID_8822B(x) | BIT_WMAC_MU_BF_MYAID_8822B(v))
  13791. /* 2 REG_WMAC_MU_BFRPT_PARA_8822B */
  13792. #define BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL_8822B 12
  13793. #define BIT_MASK_BIT_BFRPT_PARA_USERID_SEL_8822B 0x7
  13794. #define BIT_BIT_BFRPT_PARA_USERID_SEL_8822B(x) \
  13795. (((x) & BIT_MASK_BIT_BFRPT_PARA_USERID_SEL_8822B) \
  13796. << BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL_8822B)
  13797. #define BITS_BIT_BFRPT_PARA_USERID_SEL_8822B \
  13798. (BIT_MASK_BIT_BFRPT_PARA_USERID_SEL_8822B \
  13799. << BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL_8822B)
  13800. #define BIT_CLEAR_BIT_BFRPT_PARA_USERID_SEL_8822B(x) \
  13801. ((x) & (~BITS_BIT_BFRPT_PARA_USERID_SEL_8822B))
  13802. #define BIT_GET_BIT_BFRPT_PARA_USERID_SEL_8822B(x) \
  13803. (((x) >> BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL_8822B) & \
  13804. BIT_MASK_BIT_BFRPT_PARA_USERID_SEL_8822B)
  13805. #define BIT_SET_BIT_BFRPT_PARA_USERID_SEL_8822B(x, v) \
  13806. (BIT_CLEAR_BIT_BFRPT_PARA_USERID_SEL_8822B(x) | \
  13807. BIT_BIT_BFRPT_PARA_USERID_SEL_8822B(v))
  13808. #define BIT_SHIFT_BFRPT_PARA_8822B 0
  13809. #define BIT_MASK_BFRPT_PARA_8822B 0xfff
  13810. #define BIT_BFRPT_PARA_8822B(x) \
  13811. (((x) & BIT_MASK_BFRPT_PARA_8822B) << BIT_SHIFT_BFRPT_PARA_8822B)
  13812. #define BITS_BFRPT_PARA_8822B \
  13813. (BIT_MASK_BFRPT_PARA_8822B << BIT_SHIFT_BFRPT_PARA_8822B)
  13814. #define BIT_CLEAR_BFRPT_PARA_8822B(x) ((x) & (~BITS_BFRPT_PARA_8822B))
  13815. #define BIT_GET_BFRPT_PARA_8822B(x) \
  13816. (((x) >> BIT_SHIFT_BFRPT_PARA_8822B) & BIT_MASK_BFRPT_PARA_8822B)
  13817. #define BIT_SET_BFRPT_PARA_8822B(x, v) \
  13818. (BIT_CLEAR_BFRPT_PARA_8822B(x) | BIT_BFRPT_PARA_8822B(v))
  13819. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE2_8822B */
  13820. #define BIT_STATUS_BFEE2_8822B BIT(10)
  13821. #define BIT_WMAC_MU_BFEE2_EN_8822B BIT(9)
  13822. #define BIT_SHIFT_WMAC_MU_BFEE2_AID_8822B 0
  13823. #define BIT_MASK_WMAC_MU_BFEE2_AID_8822B 0x1ff
  13824. #define BIT_WMAC_MU_BFEE2_AID_8822B(x) \
  13825. (((x) & BIT_MASK_WMAC_MU_BFEE2_AID_8822B) \
  13826. << BIT_SHIFT_WMAC_MU_BFEE2_AID_8822B)
  13827. #define BITS_WMAC_MU_BFEE2_AID_8822B \
  13828. (BIT_MASK_WMAC_MU_BFEE2_AID_8822B << BIT_SHIFT_WMAC_MU_BFEE2_AID_8822B)
  13829. #define BIT_CLEAR_WMAC_MU_BFEE2_AID_8822B(x) \
  13830. ((x) & (~BITS_WMAC_MU_BFEE2_AID_8822B))
  13831. #define BIT_GET_WMAC_MU_BFEE2_AID_8822B(x) \
  13832. (((x) >> BIT_SHIFT_WMAC_MU_BFEE2_AID_8822B) & \
  13833. BIT_MASK_WMAC_MU_BFEE2_AID_8822B)
  13834. #define BIT_SET_WMAC_MU_BFEE2_AID_8822B(x, v) \
  13835. (BIT_CLEAR_WMAC_MU_BFEE2_AID_8822B(x) | BIT_WMAC_MU_BFEE2_AID_8822B(v))
  13836. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE3_8822B */
  13837. #define BIT_STATUS_BFEE3_8822B BIT(10)
  13838. #define BIT_WMAC_MU_BFEE3_EN_8822B BIT(9)
  13839. #define BIT_SHIFT_WMAC_MU_BFEE3_AID_8822B 0
  13840. #define BIT_MASK_WMAC_MU_BFEE3_AID_8822B 0x1ff
  13841. #define BIT_WMAC_MU_BFEE3_AID_8822B(x) \
  13842. (((x) & BIT_MASK_WMAC_MU_BFEE3_AID_8822B) \
  13843. << BIT_SHIFT_WMAC_MU_BFEE3_AID_8822B)
  13844. #define BITS_WMAC_MU_BFEE3_AID_8822B \
  13845. (BIT_MASK_WMAC_MU_BFEE3_AID_8822B << BIT_SHIFT_WMAC_MU_BFEE3_AID_8822B)
  13846. #define BIT_CLEAR_WMAC_MU_BFEE3_AID_8822B(x) \
  13847. ((x) & (~BITS_WMAC_MU_BFEE3_AID_8822B))
  13848. #define BIT_GET_WMAC_MU_BFEE3_AID_8822B(x) \
  13849. (((x) >> BIT_SHIFT_WMAC_MU_BFEE3_AID_8822B) & \
  13850. BIT_MASK_WMAC_MU_BFEE3_AID_8822B)
  13851. #define BIT_SET_WMAC_MU_BFEE3_AID_8822B(x, v) \
  13852. (BIT_CLEAR_WMAC_MU_BFEE3_AID_8822B(x) | BIT_WMAC_MU_BFEE3_AID_8822B(v))
  13853. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE4_8822B */
  13854. #define BIT_STATUS_BFEE4_8822B BIT(10)
  13855. #define BIT_WMAC_MU_BFEE4_EN_8822B BIT(9)
  13856. #define BIT_SHIFT_WMAC_MU_BFEE4_AID_8822B 0
  13857. #define BIT_MASK_WMAC_MU_BFEE4_AID_8822B 0x1ff
  13858. #define BIT_WMAC_MU_BFEE4_AID_8822B(x) \
  13859. (((x) & BIT_MASK_WMAC_MU_BFEE4_AID_8822B) \
  13860. << BIT_SHIFT_WMAC_MU_BFEE4_AID_8822B)
  13861. #define BITS_WMAC_MU_BFEE4_AID_8822B \
  13862. (BIT_MASK_WMAC_MU_BFEE4_AID_8822B << BIT_SHIFT_WMAC_MU_BFEE4_AID_8822B)
  13863. #define BIT_CLEAR_WMAC_MU_BFEE4_AID_8822B(x) \
  13864. ((x) & (~BITS_WMAC_MU_BFEE4_AID_8822B))
  13865. #define BIT_GET_WMAC_MU_BFEE4_AID_8822B(x) \
  13866. (((x) >> BIT_SHIFT_WMAC_MU_BFEE4_AID_8822B) & \
  13867. BIT_MASK_WMAC_MU_BFEE4_AID_8822B)
  13868. #define BIT_SET_WMAC_MU_BFEE4_AID_8822B(x, v) \
  13869. (BIT_CLEAR_WMAC_MU_BFEE4_AID_8822B(x) | BIT_WMAC_MU_BFEE4_AID_8822B(v))
  13870. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE5_8822B */
  13871. #define BIT_STATUS_BFEE5_8822B BIT(10)
  13872. #define BIT_WMAC_MU_BFEE5_EN_8822B BIT(9)
  13873. #define BIT_SHIFT_WMAC_MU_BFEE5_AID_8822B 0
  13874. #define BIT_MASK_WMAC_MU_BFEE5_AID_8822B 0x1ff
  13875. #define BIT_WMAC_MU_BFEE5_AID_8822B(x) \
  13876. (((x) & BIT_MASK_WMAC_MU_BFEE5_AID_8822B) \
  13877. << BIT_SHIFT_WMAC_MU_BFEE5_AID_8822B)
  13878. #define BITS_WMAC_MU_BFEE5_AID_8822B \
  13879. (BIT_MASK_WMAC_MU_BFEE5_AID_8822B << BIT_SHIFT_WMAC_MU_BFEE5_AID_8822B)
  13880. #define BIT_CLEAR_WMAC_MU_BFEE5_AID_8822B(x) \
  13881. ((x) & (~BITS_WMAC_MU_BFEE5_AID_8822B))
  13882. #define BIT_GET_WMAC_MU_BFEE5_AID_8822B(x) \
  13883. (((x) >> BIT_SHIFT_WMAC_MU_BFEE5_AID_8822B) & \
  13884. BIT_MASK_WMAC_MU_BFEE5_AID_8822B)
  13885. #define BIT_SET_WMAC_MU_BFEE5_AID_8822B(x, v) \
  13886. (BIT_CLEAR_WMAC_MU_BFEE5_AID_8822B(x) | BIT_WMAC_MU_BFEE5_AID_8822B(v))
  13887. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE6_8822B */
  13888. #define BIT_STATUS_BFEE6_8822B BIT(10)
  13889. #define BIT_WMAC_MU_BFEE6_EN_8822B BIT(9)
  13890. #define BIT_SHIFT_WMAC_MU_BFEE6_AID_8822B 0
  13891. #define BIT_MASK_WMAC_MU_BFEE6_AID_8822B 0x1ff
  13892. #define BIT_WMAC_MU_BFEE6_AID_8822B(x) \
  13893. (((x) & BIT_MASK_WMAC_MU_BFEE6_AID_8822B) \
  13894. << BIT_SHIFT_WMAC_MU_BFEE6_AID_8822B)
  13895. #define BITS_WMAC_MU_BFEE6_AID_8822B \
  13896. (BIT_MASK_WMAC_MU_BFEE6_AID_8822B << BIT_SHIFT_WMAC_MU_BFEE6_AID_8822B)
  13897. #define BIT_CLEAR_WMAC_MU_BFEE6_AID_8822B(x) \
  13898. ((x) & (~BITS_WMAC_MU_BFEE6_AID_8822B))
  13899. #define BIT_GET_WMAC_MU_BFEE6_AID_8822B(x) \
  13900. (((x) >> BIT_SHIFT_WMAC_MU_BFEE6_AID_8822B) & \
  13901. BIT_MASK_WMAC_MU_BFEE6_AID_8822B)
  13902. #define BIT_SET_WMAC_MU_BFEE6_AID_8822B(x, v) \
  13903. (BIT_CLEAR_WMAC_MU_BFEE6_AID_8822B(x) | BIT_WMAC_MU_BFEE6_AID_8822B(v))
  13904. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE7_8822B */
  13905. #define BIT_STATUS_BFEE7_8822B BIT(10)
  13906. #define BIT_WMAC_MU_BFEE7_EN_8822B BIT(9)
  13907. #define BIT_SHIFT_WMAC_MU_BFEE7_AID_8822B 0
  13908. #define BIT_MASK_WMAC_MU_BFEE7_AID_8822B 0x1ff
  13909. #define BIT_WMAC_MU_BFEE7_AID_8822B(x) \
  13910. (((x) & BIT_MASK_WMAC_MU_BFEE7_AID_8822B) \
  13911. << BIT_SHIFT_WMAC_MU_BFEE7_AID_8822B)
  13912. #define BITS_WMAC_MU_BFEE7_AID_8822B \
  13913. (BIT_MASK_WMAC_MU_BFEE7_AID_8822B << BIT_SHIFT_WMAC_MU_BFEE7_AID_8822B)
  13914. #define BIT_CLEAR_WMAC_MU_BFEE7_AID_8822B(x) \
  13915. ((x) & (~BITS_WMAC_MU_BFEE7_AID_8822B))
  13916. #define BIT_GET_WMAC_MU_BFEE7_AID_8822B(x) \
  13917. (((x) >> BIT_SHIFT_WMAC_MU_BFEE7_AID_8822B) & \
  13918. BIT_MASK_WMAC_MU_BFEE7_AID_8822B)
  13919. #define BIT_SET_WMAC_MU_BFEE7_AID_8822B(x, v) \
  13920. (BIT_CLEAR_WMAC_MU_BFEE7_AID_8822B(x) | BIT_WMAC_MU_BFEE7_AID_8822B(v))
  13921. /* 2 REG_NOT_VALID_8822B */
  13922. #define BIT_RST_ALL_COUNTER_8822B BIT(31)
  13923. #define BIT_SHIFT_ABORT_RX_VBON_COUNTER_8822B 16
  13924. #define BIT_MASK_ABORT_RX_VBON_COUNTER_8822B 0xff
  13925. #define BIT_ABORT_RX_VBON_COUNTER_8822B(x) \
  13926. (((x) & BIT_MASK_ABORT_RX_VBON_COUNTER_8822B) \
  13927. << BIT_SHIFT_ABORT_RX_VBON_COUNTER_8822B)
  13928. #define BITS_ABORT_RX_VBON_COUNTER_8822B \
  13929. (BIT_MASK_ABORT_RX_VBON_COUNTER_8822B \
  13930. << BIT_SHIFT_ABORT_RX_VBON_COUNTER_8822B)
  13931. #define BIT_CLEAR_ABORT_RX_VBON_COUNTER_8822B(x) \
  13932. ((x) & (~BITS_ABORT_RX_VBON_COUNTER_8822B))
  13933. #define BIT_GET_ABORT_RX_VBON_COUNTER_8822B(x) \
  13934. (((x) >> BIT_SHIFT_ABORT_RX_VBON_COUNTER_8822B) & \
  13935. BIT_MASK_ABORT_RX_VBON_COUNTER_8822B)
  13936. #define BIT_SET_ABORT_RX_VBON_COUNTER_8822B(x, v) \
  13937. (BIT_CLEAR_ABORT_RX_VBON_COUNTER_8822B(x) | \
  13938. BIT_ABORT_RX_VBON_COUNTER_8822B(v))
  13939. #define BIT_SHIFT_ABORT_RX_RDRDY_COUNTER_8822B 8
  13940. #define BIT_MASK_ABORT_RX_RDRDY_COUNTER_8822B 0xff
  13941. #define BIT_ABORT_RX_RDRDY_COUNTER_8822B(x) \
  13942. (((x) & BIT_MASK_ABORT_RX_RDRDY_COUNTER_8822B) \
  13943. << BIT_SHIFT_ABORT_RX_RDRDY_COUNTER_8822B)
  13944. #define BITS_ABORT_RX_RDRDY_COUNTER_8822B \
  13945. (BIT_MASK_ABORT_RX_RDRDY_COUNTER_8822B \
  13946. << BIT_SHIFT_ABORT_RX_RDRDY_COUNTER_8822B)
  13947. #define BIT_CLEAR_ABORT_RX_RDRDY_COUNTER_8822B(x) \
  13948. ((x) & (~BITS_ABORT_RX_RDRDY_COUNTER_8822B))
  13949. #define BIT_GET_ABORT_RX_RDRDY_COUNTER_8822B(x) \
  13950. (((x) >> BIT_SHIFT_ABORT_RX_RDRDY_COUNTER_8822B) & \
  13951. BIT_MASK_ABORT_RX_RDRDY_COUNTER_8822B)
  13952. #define BIT_SET_ABORT_RX_RDRDY_COUNTER_8822B(x, v) \
  13953. (BIT_CLEAR_ABORT_RX_RDRDY_COUNTER_8822B(x) | \
  13954. BIT_ABORT_RX_RDRDY_COUNTER_8822B(v))
  13955. #define BIT_SHIFT_VBON_EARLY_FALLING_COUNTER_8822B 0
  13956. #define BIT_MASK_VBON_EARLY_FALLING_COUNTER_8822B 0xff
  13957. #define BIT_VBON_EARLY_FALLING_COUNTER_8822B(x) \
  13958. (((x) & BIT_MASK_VBON_EARLY_FALLING_COUNTER_8822B) \
  13959. << BIT_SHIFT_VBON_EARLY_FALLING_COUNTER_8822B)
  13960. #define BITS_VBON_EARLY_FALLING_COUNTER_8822B \
  13961. (BIT_MASK_VBON_EARLY_FALLING_COUNTER_8822B \
  13962. << BIT_SHIFT_VBON_EARLY_FALLING_COUNTER_8822B)
  13963. #define BIT_CLEAR_VBON_EARLY_FALLING_COUNTER_8822B(x) \
  13964. ((x) & (~BITS_VBON_EARLY_FALLING_COUNTER_8822B))
  13965. #define BIT_GET_VBON_EARLY_FALLING_COUNTER_8822B(x) \
  13966. (((x) >> BIT_SHIFT_VBON_EARLY_FALLING_COUNTER_8822B) & \
  13967. BIT_MASK_VBON_EARLY_FALLING_COUNTER_8822B)
  13968. #define BIT_SET_VBON_EARLY_FALLING_COUNTER_8822B(x, v) \
  13969. (BIT_CLEAR_VBON_EARLY_FALLING_COUNTER_8822B(x) | \
  13970. BIT_VBON_EARLY_FALLING_COUNTER_8822B(v))
  13971. /* 2 REG_NOT_VALID_8822B */
  13972. #define BIT_WMAC_PLCP_TRX_SEL_8822B BIT(31)
  13973. #define BIT_SHIFT_WMAC_PLCP_RDSIG_SEL_8822B 28
  13974. #define BIT_MASK_WMAC_PLCP_RDSIG_SEL_8822B 0x7
  13975. #define BIT_WMAC_PLCP_RDSIG_SEL_8822B(x) \
  13976. (((x) & BIT_MASK_WMAC_PLCP_RDSIG_SEL_8822B) \
  13977. << BIT_SHIFT_WMAC_PLCP_RDSIG_SEL_8822B)
  13978. #define BITS_WMAC_PLCP_RDSIG_SEL_8822B \
  13979. (BIT_MASK_WMAC_PLCP_RDSIG_SEL_8822B \
  13980. << BIT_SHIFT_WMAC_PLCP_RDSIG_SEL_8822B)
  13981. #define BIT_CLEAR_WMAC_PLCP_RDSIG_SEL_8822B(x) \
  13982. ((x) & (~BITS_WMAC_PLCP_RDSIG_SEL_8822B))
  13983. #define BIT_GET_WMAC_PLCP_RDSIG_SEL_8822B(x) \
  13984. (((x) >> BIT_SHIFT_WMAC_PLCP_RDSIG_SEL_8822B) & \
  13985. BIT_MASK_WMAC_PLCP_RDSIG_SEL_8822B)
  13986. #define BIT_SET_WMAC_PLCP_RDSIG_SEL_8822B(x, v) \
  13987. (BIT_CLEAR_WMAC_PLCP_RDSIG_SEL_8822B(x) | \
  13988. BIT_WMAC_PLCP_RDSIG_SEL_8822B(v))
  13989. #define BIT_SHIFT_WMAC_RATE_IDX_8822B 24
  13990. #define BIT_MASK_WMAC_RATE_IDX_8822B 0xf
  13991. #define BIT_WMAC_RATE_IDX_8822B(x) \
  13992. (((x) & BIT_MASK_WMAC_RATE_IDX_8822B) << BIT_SHIFT_WMAC_RATE_IDX_8822B)
  13993. #define BITS_WMAC_RATE_IDX_8822B \
  13994. (BIT_MASK_WMAC_RATE_IDX_8822B << BIT_SHIFT_WMAC_RATE_IDX_8822B)
  13995. #define BIT_CLEAR_WMAC_RATE_IDX_8822B(x) ((x) & (~BITS_WMAC_RATE_IDX_8822B))
  13996. #define BIT_GET_WMAC_RATE_IDX_8822B(x) \
  13997. (((x) >> BIT_SHIFT_WMAC_RATE_IDX_8822B) & BIT_MASK_WMAC_RATE_IDX_8822B)
  13998. #define BIT_SET_WMAC_RATE_IDX_8822B(x, v) \
  13999. (BIT_CLEAR_WMAC_RATE_IDX_8822B(x) | BIT_WMAC_RATE_IDX_8822B(v))
  14000. #define BIT_SHIFT_WMAC_PLCP_RDSIG_8822B 0
  14001. #define BIT_MASK_WMAC_PLCP_RDSIG_8822B 0xffffff
  14002. #define BIT_WMAC_PLCP_RDSIG_8822B(x) \
  14003. (((x) & BIT_MASK_WMAC_PLCP_RDSIG_8822B) \
  14004. << BIT_SHIFT_WMAC_PLCP_RDSIG_8822B)
  14005. #define BITS_WMAC_PLCP_RDSIG_8822B \
  14006. (BIT_MASK_WMAC_PLCP_RDSIG_8822B << BIT_SHIFT_WMAC_PLCP_RDSIG_8822B)
  14007. #define BIT_CLEAR_WMAC_PLCP_RDSIG_8822B(x) ((x) & (~BITS_WMAC_PLCP_RDSIG_8822B))
  14008. #define BIT_GET_WMAC_PLCP_RDSIG_8822B(x) \
  14009. (((x) >> BIT_SHIFT_WMAC_PLCP_RDSIG_8822B) & \
  14010. BIT_MASK_WMAC_PLCP_RDSIG_8822B)
  14011. #define BIT_SET_WMAC_PLCP_RDSIG_8822B(x, v) \
  14012. (BIT_CLEAR_WMAC_PLCP_RDSIG_8822B(x) | BIT_WMAC_PLCP_RDSIG_8822B(v))
  14013. /* 2 REG_NOT_VALID_8822B */
  14014. #define BIT_WMAC_MUTX_IDX_8822B BIT(24)
  14015. #define BIT_SHIFT_WMAC_PLCP_RDSIG_8822B 0
  14016. #define BIT_MASK_WMAC_PLCP_RDSIG_8822B 0xffffff
  14017. #define BIT_WMAC_PLCP_RDSIG_8822B(x) \
  14018. (((x) & BIT_MASK_WMAC_PLCP_RDSIG_8822B) \
  14019. << BIT_SHIFT_WMAC_PLCP_RDSIG_8822B)
  14020. #define BITS_WMAC_PLCP_RDSIG_8822B \
  14021. (BIT_MASK_WMAC_PLCP_RDSIG_8822B << BIT_SHIFT_WMAC_PLCP_RDSIG_8822B)
  14022. #define BIT_CLEAR_WMAC_PLCP_RDSIG_8822B(x) ((x) & (~BITS_WMAC_PLCP_RDSIG_8822B))
  14023. #define BIT_GET_WMAC_PLCP_RDSIG_8822B(x) \
  14024. (((x) >> BIT_SHIFT_WMAC_PLCP_RDSIG_8822B) & \
  14025. BIT_MASK_WMAC_PLCP_RDSIG_8822B)
  14026. #define BIT_SET_WMAC_PLCP_RDSIG_8822B(x, v) \
  14027. (BIT_CLEAR_WMAC_PLCP_RDSIG_8822B(x) | BIT_WMAC_PLCP_RDSIG_8822B(v))
  14028. /* 2 REG_TRANSMIT_ADDRSS_0_8822B (TA0 REGISTER) */
  14029. #define BIT_SHIFT_TA0_8822B 0
  14030. #define BIT_MASK_TA0_8822B 0xffffffffffffL
  14031. #define BIT_TA0_8822B(x) (((x) & BIT_MASK_TA0_8822B) << BIT_SHIFT_TA0_8822B)
  14032. #define BITS_TA0_8822B (BIT_MASK_TA0_8822B << BIT_SHIFT_TA0_8822B)
  14033. #define BIT_CLEAR_TA0_8822B(x) ((x) & (~BITS_TA0_8822B))
  14034. #define BIT_GET_TA0_8822B(x) (((x) >> BIT_SHIFT_TA0_8822B) & BIT_MASK_TA0_8822B)
  14035. #define BIT_SET_TA0_8822B(x, v) (BIT_CLEAR_TA0_8822B(x) | BIT_TA0_8822B(v))
  14036. /* 2 REG_TRANSMIT_ADDRSS_1_8822B (TA1 REGISTER) */
  14037. #define BIT_SHIFT_TA1_8822B 0
  14038. #define BIT_MASK_TA1_8822B 0xffffffffffffL
  14039. #define BIT_TA1_8822B(x) (((x) & BIT_MASK_TA1_8822B) << BIT_SHIFT_TA1_8822B)
  14040. #define BITS_TA1_8822B (BIT_MASK_TA1_8822B << BIT_SHIFT_TA1_8822B)
  14041. #define BIT_CLEAR_TA1_8822B(x) ((x) & (~BITS_TA1_8822B))
  14042. #define BIT_GET_TA1_8822B(x) (((x) >> BIT_SHIFT_TA1_8822B) & BIT_MASK_TA1_8822B)
  14043. #define BIT_SET_TA1_8822B(x, v) (BIT_CLEAR_TA1_8822B(x) | BIT_TA1_8822B(v))
  14044. /* 2 REG_TRANSMIT_ADDRSS_2_8822B (TA2 REGISTER) */
  14045. #define BIT_SHIFT_TA2_8822B 0
  14046. #define BIT_MASK_TA2_8822B 0xffffffffffffL
  14047. #define BIT_TA2_8822B(x) (((x) & BIT_MASK_TA2_8822B) << BIT_SHIFT_TA2_8822B)
  14048. #define BITS_TA2_8822B (BIT_MASK_TA2_8822B << BIT_SHIFT_TA2_8822B)
  14049. #define BIT_CLEAR_TA2_8822B(x) ((x) & (~BITS_TA2_8822B))
  14050. #define BIT_GET_TA2_8822B(x) (((x) >> BIT_SHIFT_TA2_8822B) & BIT_MASK_TA2_8822B)
  14051. #define BIT_SET_TA2_8822B(x, v) (BIT_CLEAR_TA2_8822B(x) | BIT_TA2_8822B(v))
  14052. /* 2 REG_TRANSMIT_ADDRSS_3_8822B (TA3 REGISTER) */
  14053. #define BIT_SHIFT_TA3_8822B 0
  14054. #define BIT_MASK_TA3_8822B 0xffffffffffffL
  14055. #define BIT_TA3_8822B(x) (((x) & BIT_MASK_TA3_8822B) << BIT_SHIFT_TA3_8822B)
  14056. #define BITS_TA3_8822B (BIT_MASK_TA3_8822B << BIT_SHIFT_TA3_8822B)
  14057. #define BIT_CLEAR_TA3_8822B(x) ((x) & (~BITS_TA3_8822B))
  14058. #define BIT_GET_TA3_8822B(x) (((x) >> BIT_SHIFT_TA3_8822B) & BIT_MASK_TA3_8822B)
  14059. #define BIT_SET_TA3_8822B(x, v) (BIT_CLEAR_TA3_8822B(x) | BIT_TA3_8822B(v))
  14060. /* 2 REG_TRANSMIT_ADDRSS_4_8822B (TA4 REGISTER) */
  14061. #define BIT_SHIFT_TA4_8822B 0
  14062. #define BIT_MASK_TA4_8822B 0xffffffffffffL
  14063. #define BIT_TA4_8822B(x) (((x) & BIT_MASK_TA4_8822B) << BIT_SHIFT_TA4_8822B)
  14064. #define BITS_TA4_8822B (BIT_MASK_TA4_8822B << BIT_SHIFT_TA4_8822B)
  14065. #define BIT_CLEAR_TA4_8822B(x) ((x) & (~BITS_TA4_8822B))
  14066. #define BIT_GET_TA4_8822B(x) (((x) >> BIT_SHIFT_TA4_8822B) & BIT_MASK_TA4_8822B)
  14067. #define BIT_SET_TA4_8822B(x, v) (BIT_CLEAR_TA4_8822B(x) | BIT_TA4_8822B(v))
  14068. /* 2 REG_NOT_VALID_8822B */
  14069. /* 2 REG_MACID1_8822B */
  14070. #define BIT_SHIFT_MACID1_8822B 0
  14071. #define BIT_MASK_MACID1_8822B 0xffffffffffffL
  14072. #define BIT_MACID1_8822B(x) \
  14073. (((x) & BIT_MASK_MACID1_8822B) << BIT_SHIFT_MACID1_8822B)
  14074. #define BITS_MACID1_8822B (BIT_MASK_MACID1_8822B << BIT_SHIFT_MACID1_8822B)
  14075. #define BIT_CLEAR_MACID1_8822B(x) ((x) & (~BITS_MACID1_8822B))
  14076. #define BIT_GET_MACID1_8822B(x) \
  14077. (((x) >> BIT_SHIFT_MACID1_8822B) & BIT_MASK_MACID1_8822B)
  14078. #define BIT_SET_MACID1_8822B(x, v) \
  14079. (BIT_CLEAR_MACID1_8822B(x) | BIT_MACID1_8822B(v))
  14080. /* 2 REG_BSSID1_8822B */
  14081. #define BIT_SHIFT_BSSID1_8822B 0
  14082. #define BIT_MASK_BSSID1_8822B 0xffffffffffffL
  14083. #define BIT_BSSID1_8822B(x) \
  14084. (((x) & BIT_MASK_BSSID1_8822B) << BIT_SHIFT_BSSID1_8822B)
  14085. #define BITS_BSSID1_8822B (BIT_MASK_BSSID1_8822B << BIT_SHIFT_BSSID1_8822B)
  14086. #define BIT_CLEAR_BSSID1_8822B(x) ((x) & (~BITS_BSSID1_8822B))
  14087. #define BIT_GET_BSSID1_8822B(x) \
  14088. (((x) >> BIT_SHIFT_BSSID1_8822B) & BIT_MASK_BSSID1_8822B)
  14089. #define BIT_SET_BSSID1_8822B(x, v) \
  14090. (BIT_CLEAR_BSSID1_8822B(x) | BIT_BSSID1_8822B(v))
  14091. /* 2 REG_BCN_PSR_RPT1_8822B */
  14092. #define BIT_SHIFT_DTIM_CNT1_8822B 24
  14093. #define BIT_MASK_DTIM_CNT1_8822B 0xff
  14094. #define BIT_DTIM_CNT1_8822B(x) \
  14095. (((x) & BIT_MASK_DTIM_CNT1_8822B) << BIT_SHIFT_DTIM_CNT1_8822B)
  14096. #define BITS_DTIM_CNT1_8822B \
  14097. (BIT_MASK_DTIM_CNT1_8822B << BIT_SHIFT_DTIM_CNT1_8822B)
  14098. #define BIT_CLEAR_DTIM_CNT1_8822B(x) ((x) & (~BITS_DTIM_CNT1_8822B))
  14099. #define BIT_GET_DTIM_CNT1_8822B(x) \
  14100. (((x) >> BIT_SHIFT_DTIM_CNT1_8822B) & BIT_MASK_DTIM_CNT1_8822B)
  14101. #define BIT_SET_DTIM_CNT1_8822B(x, v) \
  14102. (BIT_CLEAR_DTIM_CNT1_8822B(x) | BIT_DTIM_CNT1_8822B(v))
  14103. #define BIT_SHIFT_DTIM_PERIOD1_8822B 16
  14104. #define BIT_MASK_DTIM_PERIOD1_8822B 0xff
  14105. #define BIT_DTIM_PERIOD1_8822B(x) \
  14106. (((x) & BIT_MASK_DTIM_PERIOD1_8822B) << BIT_SHIFT_DTIM_PERIOD1_8822B)
  14107. #define BITS_DTIM_PERIOD1_8822B \
  14108. (BIT_MASK_DTIM_PERIOD1_8822B << BIT_SHIFT_DTIM_PERIOD1_8822B)
  14109. #define BIT_CLEAR_DTIM_PERIOD1_8822B(x) ((x) & (~BITS_DTIM_PERIOD1_8822B))
  14110. #define BIT_GET_DTIM_PERIOD1_8822B(x) \
  14111. (((x) >> BIT_SHIFT_DTIM_PERIOD1_8822B) & BIT_MASK_DTIM_PERIOD1_8822B)
  14112. #define BIT_SET_DTIM_PERIOD1_8822B(x, v) \
  14113. (BIT_CLEAR_DTIM_PERIOD1_8822B(x) | BIT_DTIM_PERIOD1_8822B(v))
  14114. #define BIT_DTIM1_8822B BIT(15)
  14115. #define BIT_TIM1_8822B BIT(14)
  14116. #define BIT_SHIFT_PS_AID_1_8822B 0
  14117. #define BIT_MASK_PS_AID_1_8822B 0x7ff
  14118. #define BIT_PS_AID_1_8822B(x) \
  14119. (((x) & BIT_MASK_PS_AID_1_8822B) << BIT_SHIFT_PS_AID_1_8822B)
  14120. #define BITS_PS_AID_1_8822B \
  14121. (BIT_MASK_PS_AID_1_8822B << BIT_SHIFT_PS_AID_1_8822B)
  14122. #define BIT_CLEAR_PS_AID_1_8822B(x) ((x) & (~BITS_PS_AID_1_8822B))
  14123. #define BIT_GET_PS_AID_1_8822B(x) \
  14124. (((x) >> BIT_SHIFT_PS_AID_1_8822B) & BIT_MASK_PS_AID_1_8822B)
  14125. #define BIT_SET_PS_AID_1_8822B(x, v) \
  14126. (BIT_CLEAR_PS_AID_1_8822B(x) | BIT_PS_AID_1_8822B(v))
  14127. /* 2 REG_ASSOCIATED_BFMEE_SEL_8822B */
  14128. #define BIT_TXUSER_ID1_8822B BIT(25)
  14129. #define BIT_SHIFT_AID1_8822B 16
  14130. #define BIT_MASK_AID1_8822B 0x1ff
  14131. #define BIT_AID1_8822B(x) (((x) & BIT_MASK_AID1_8822B) << BIT_SHIFT_AID1_8822B)
  14132. #define BITS_AID1_8822B (BIT_MASK_AID1_8822B << BIT_SHIFT_AID1_8822B)
  14133. #define BIT_CLEAR_AID1_8822B(x) ((x) & (~BITS_AID1_8822B))
  14134. #define BIT_GET_AID1_8822B(x) \
  14135. (((x) >> BIT_SHIFT_AID1_8822B) & BIT_MASK_AID1_8822B)
  14136. #define BIT_SET_AID1_8822B(x, v) (BIT_CLEAR_AID1_8822B(x) | BIT_AID1_8822B(v))
  14137. #define BIT_TXUSER_ID0_8822B BIT(9)
  14138. #define BIT_SHIFT_AID0_8822B 0
  14139. #define BIT_MASK_AID0_8822B 0x1ff
  14140. #define BIT_AID0_8822B(x) (((x) & BIT_MASK_AID0_8822B) << BIT_SHIFT_AID0_8822B)
  14141. #define BITS_AID0_8822B (BIT_MASK_AID0_8822B << BIT_SHIFT_AID0_8822B)
  14142. #define BIT_CLEAR_AID0_8822B(x) ((x) & (~BITS_AID0_8822B))
  14143. #define BIT_GET_AID0_8822B(x) \
  14144. (((x) >> BIT_SHIFT_AID0_8822B) & BIT_MASK_AID0_8822B)
  14145. #define BIT_SET_AID0_8822B(x, v) (BIT_CLEAR_AID0_8822B(x) | BIT_AID0_8822B(v))
  14146. /* 2 REG_SND_PTCL_CTRL_8822B */
  14147. #define BIT_SHIFT_NDP_RX_STANDBY_TIMER_8822B 24
  14148. #define BIT_MASK_NDP_RX_STANDBY_TIMER_8822B 0xff
  14149. #define BIT_NDP_RX_STANDBY_TIMER_8822B(x) \
  14150. (((x) & BIT_MASK_NDP_RX_STANDBY_TIMER_8822B) \
  14151. << BIT_SHIFT_NDP_RX_STANDBY_TIMER_8822B)
  14152. #define BITS_NDP_RX_STANDBY_TIMER_8822B \
  14153. (BIT_MASK_NDP_RX_STANDBY_TIMER_8822B \
  14154. << BIT_SHIFT_NDP_RX_STANDBY_TIMER_8822B)
  14155. #define BIT_CLEAR_NDP_RX_STANDBY_TIMER_8822B(x) \
  14156. ((x) & (~BITS_NDP_RX_STANDBY_TIMER_8822B))
  14157. #define BIT_GET_NDP_RX_STANDBY_TIMER_8822B(x) \
  14158. (((x) >> BIT_SHIFT_NDP_RX_STANDBY_TIMER_8822B) & \
  14159. BIT_MASK_NDP_RX_STANDBY_TIMER_8822B)
  14160. #define BIT_SET_NDP_RX_STANDBY_TIMER_8822B(x, v) \
  14161. (BIT_CLEAR_NDP_RX_STANDBY_TIMER_8822B(x) | \
  14162. BIT_NDP_RX_STANDBY_TIMER_8822B(v))
  14163. #define BIT_SHIFT_CSI_RPT_OFFSET_HT_V1_8822B 16
  14164. #define BIT_MASK_CSI_RPT_OFFSET_HT_V1_8822B 0x3f
  14165. #define BIT_CSI_RPT_OFFSET_HT_V1_8822B(x) \
  14166. (((x) & BIT_MASK_CSI_RPT_OFFSET_HT_V1_8822B) \
  14167. << BIT_SHIFT_CSI_RPT_OFFSET_HT_V1_8822B)
  14168. #define BITS_CSI_RPT_OFFSET_HT_V1_8822B \
  14169. (BIT_MASK_CSI_RPT_OFFSET_HT_V1_8822B \
  14170. << BIT_SHIFT_CSI_RPT_OFFSET_HT_V1_8822B)
  14171. #define BIT_CLEAR_CSI_RPT_OFFSET_HT_V1_8822B(x) \
  14172. ((x) & (~BITS_CSI_RPT_OFFSET_HT_V1_8822B))
  14173. #define BIT_GET_CSI_RPT_OFFSET_HT_V1_8822B(x) \
  14174. (((x) >> BIT_SHIFT_CSI_RPT_OFFSET_HT_V1_8822B) & \
  14175. BIT_MASK_CSI_RPT_OFFSET_HT_V1_8822B)
  14176. #define BIT_SET_CSI_RPT_OFFSET_HT_V1_8822B(x, v) \
  14177. (BIT_CLEAR_CSI_RPT_OFFSET_HT_V1_8822B(x) | \
  14178. BIT_CSI_RPT_OFFSET_HT_V1_8822B(v))
  14179. #define BIT_VHTNDP_RPTPOLL_CSI_STR_OFFSET_SEL_8822B BIT(15)
  14180. #define BIT_NDPVLD_POS_RST_FFPTR_DIS_8822B BIT(14)
  14181. #define BIT_SHIFT_R_CSI_RPT_OFFSET_VHT_V1_8822B 8
  14182. #define BIT_MASK_R_CSI_RPT_OFFSET_VHT_V1_8822B 0x3f
  14183. #define BIT_R_CSI_RPT_OFFSET_VHT_V1_8822B(x) \
  14184. (((x) & BIT_MASK_R_CSI_RPT_OFFSET_VHT_V1_8822B) \
  14185. << BIT_SHIFT_R_CSI_RPT_OFFSET_VHT_V1_8822B)
  14186. #define BITS_R_CSI_RPT_OFFSET_VHT_V1_8822B \
  14187. (BIT_MASK_R_CSI_RPT_OFFSET_VHT_V1_8822B \
  14188. << BIT_SHIFT_R_CSI_RPT_OFFSET_VHT_V1_8822B)
  14189. #define BIT_CLEAR_R_CSI_RPT_OFFSET_VHT_V1_8822B(x) \
  14190. ((x) & (~BITS_R_CSI_RPT_OFFSET_VHT_V1_8822B))
  14191. #define BIT_GET_R_CSI_RPT_OFFSET_VHT_V1_8822B(x) \
  14192. (((x) >> BIT_SHIFT_R_CSI_RPT_OFFSET_VHT_V1_8822B) & \
  14193. BIT_MASK_R_CSI_RPT_OFFSET_VHT_V1_8822B)
  14194. #define BIT_SET_R_CSI_RPT_OFFSET_VHT_V1_8822B(x, v) \
  14195. (BIT_CLEAR_R_CSI_RPT_OFFSET_VHT_V1_8822B(x) | \
  14196. BIT_R_CSI_RPT_OFFSET_VHT_V1_8822B(v))
  14197. #define BIT_R_WMAC_USE_NSTS_8822B BIT(7)
  14198. #define BIT_R_DISABLE_CHECK_VHTSIGB_CRC_8822B BIT(6)
  14199. #define BIT_R_DISABLE_CHECK_VHTSIGA_CRC_8822B BIT(5)
  14200. #define BIT_R_WMAC_BFPARAM_SEL_8822B BIT(4)
  14201. #define BIT_R_WMAC_CSISEQ_SEL_8822B BIT(3)
  14202. #define BIT_R_WMAC_CSI_WITHHTC_EN_8822B BIT(2)
  14203. #define BIT_R_WMAC_HT_NDPA_EN_8822B BIT(1)
  14204. #define BIT_R_WMAC_VHT_NDPA_EN_8822B BIT(0)
  14205. /* 2 REG_RX_CSI_RPT_INFO_8822B */
  14206. /* 2 REG_NS_ARP_CTRL_8822B */
  14207. #define BIT_R_WMAC_NSARP_RSPEN_8822B BIT(15)
  14208. #define BIT_R_WMAC_NSARP_RARP_8822B BIT(9)
  14209. #define BIT_R_WMAC_NSARP_RIPV6_8822B BIT(8)
  14210. #define BIT_SHIFT_R_WMAC_NSARP_MODEN_8822B 6
  14211. #define BIT_MASK_R_WMAC_NSARP_MODEN_8822B 0x3
  14212. #define BIT_R_WMAC_NSARP_MODEN_8822B(x) \
  14213. (((x) & BIT_MASK_R_WMAC_NSARP_MODEN_8822B) \
  14214. << BIT_SHIFT_R_WMAC_NSARP_MODEN_8822B)
  14215. #define BITS_R_WMAC_NSARP_MODEN_8822B \
  14216. (BIT_MASK_R_WMAC_NSARP_MODEN_8822B \
  14217. << BIT_SHIFT_R_WMAC_NSARP_MODEN_8822B)
  14218. #define BIT_CLEAR_R_WMAC_NSARP_MODEN_8822B(x) \
  14219. ((x) & (~BITS_R_WMAC_NSARP_MODEN_8822B))
  14220. #define BIT_GET_R_WMAC_NSARP_MODEN_8822B(x) \
  14221. (((x) >> BIT_SHIFT_R_WMAC_NSARP_MODEN_8822B) & \
  14222. BIT_MASK_R_WMAC_NSARP_MODEN_8822B)
  14223. #define BIT_SET_R_WMAC_NSARP_MODEN_8822B(x, v) \
  14224. (BIT_CLEAR_R_WMAC_NSARP_MODEN_8822B(x) | \
  14225. BIT_R_WMAC_NSARP_MODEN_8822B(v))
  14226. #define BIT_SHIFT_R_WMAC_NSARP_RSPFTP_8822B 4
  14227. #define BIT_MASK_R_WMAC_NSARP_RSPFTP_8822B 0x3
  14228. #define BIT_R_WMAC_NSARP_RSPFTP_8822B(x) \
  14229. (((x) & BIT_MASK_R_WMAC_NSARP_RSPFTP_8822B) \
  14230. << BIT_SHIFT_R_WMAC_NSARP_RSPFTP_8822B)
  14231. #define BITS_R_WMAC_NSARP_RSPFTP_8822B \
  14232. (BIT_MASK_R_WMAC_NSARP_RSPFTP_8822B \
  14233. << BIT_SHIFT_R_WMAC_NSARP_RSPFTP_8822B)
  14234. #define BIT_CLEAR_R_WMAC_NSARP_RSPFTP_8822B(x) \
  14235. ((x) & (~BITS_R_WMAC_NSARP_RSPFTP_8822B))
  14236. #define BIT_GET_R_WMAC_NSARP_RSPFTP_8822B(x) \
  14237. (((x) >> BIT_SHIFT_R_WMAC_NSARP_RSPFTP_8822B) & \
  14238. BIT_MASK_R_WMAC_NSARP_RSPFTP_8822B)
  14239. #define BIT_SET_R_WMAC_NSARP_RSPFTP_8822B(x, v) \
  14240. (BIT_CLEAR_R_WMAC_NSARP_RSPFTP_8822B(x) | \
  14241. BIT_R_WMAC_NSARP_RSPFTP_8822B(v))
  14242. #define BIT_SHIFT_R_WMAC_NSARP_RSPSEC_8822B 0
  14243. #define BIT_MASK_R_WMAC_NSARP_RSPSEC_8822B 0xf
  14244. #define BIT_R_WMAC_NSARP_RSPSEC_8822B(x) \
  14245. (((x) & BIT_MASK_R_WMAC_NSARP_RSPSEC_8822B) \
  14246. << BIT_SHIFT_R_WMAC_NSARP_RSPSEC_8822B)
  14247. #define BITS_R_WMAC_NSARP_RSPSEC_8822B \
  14248. (BIT_MASK_R_WMAC_NSARP_RSPSEC_8822B \
  14249. << BIT_SHIFT_R_WMAC_NSARP_RSPSEC_8822B)
  14250. #define BIT_CLEAR_R_WMAC_NSARP_RSPSEC_8822B(x) \
  14251. ((x) & (~BITS_R_WMAC_NSARP_RSPSEC_8822B))
  14252. #define BIT_GET_R_WMAC_NSARP_RSPSEC_8822B(x) \
  14253. (((x) >> BIT_SHIFT_R_WMAC_NSARP_RSPSEC_8822B) & \
  14254. BIT_MASK_R_WMAC_NSARP_RSPSEC_8822B)
  14255. #define BIT_SET_R_WMAC_NSARP_RSPSEC_8822B(x, v) \
  14256. (BIT_CLEAR_R_WMAC_NSARP_RSPSEC_8822B(x) | \
  14257. BIT_R_WMAC_NSARP_RSPSEC_8822B(v))
  14258. /* 2 REG_NS_ARP_INFO_8822B */
  14259. #define BIT_REQ_IS_MCNS_8822B BIT(23)
  14260. #define BIT_REQ_IS_UCNS_8822B BIT(22)
  14261. #define BIT_REQ_IS_USNS_8822B BIT(21)
  14262. #define BIT_REQ_IS_ARP_8822B BIT(20)
  14263. #define BIT_EXPRSP_MH_WITHQC_8822B BIT(19)
  14264. #define BIT_SHIFT_EXPRSP_SECTYPE_8822B 16
  14265. #define BIT_MASK_EXPRSP_SECTYPE_8822B 0x7
  14266. #define BIT_EXPRSP_SECTYPE_8822B(x) \
  14267. (((x) & BIT_MASK_EXPRSP_SECTYPE_8822B) \
  14268. << BIT_SHIFT_EXPRSP_SECTYPE_8822B)
  14269. #define BITS_EXPRSP_SECTYPE_8822B \
  14270. (BIT_MASK_EXPRSP_SECTYPE_8822B << BIT_SHIFT_EXPRSP_SECTYPE_8822B)
  14271. #define BIT_CLEAR_EXPRSP_SECTYPE_8822B(x) ((x) & (~BITS_EXPRSP_SECTYPE_8822B))
  14272. #define BIT_GET_EXPRSP_SECTYPE_8822B(x) \
  14273. (((x) >> BIT_SHIFT_EXPRSP_SECTYPE_8822B) & \
  14274. BIT_MASK_EXPRSP_SECTYPE_8822B)
  14275. #define BIT_SET_EXPRSP_SECTYPE_8822B(x, v) \
  14276. (BIT_CLEAR_EXPRSP_SECTYPE_8822B(x) | BIT_EXPRSP_SECTYPE_8822B(v))
  14277. #define BIT_SHIFT_EXPRSP_CHKSM_7_TO_0_8822B 8
  14278. #define BIT_MASK_EXPRSP_CHKSM_7_TO_0_8822B 0xff
  14279. #define BIT_EXPRSP_CHKSM_7_TO_0_8822B(x) \
  14280. (((x) & BIT_MASK_EXPRSP_CHKSM_7_TO_0_8822B) \
  14281. << BIT_SHIFT_EXPRSP_CHKSM_7_TO_0_8822B)
  14282. #define BITS_EXPRSP_CHKSM_7_TO_0_8822B \
  14283. (BIT_MASK_EXPRSP_CHKSM_7_TO_0_8822B \
  14284. << BIT_SHIFT_EXPRSP_CHKSM_7_TO_0_8822B)
  14285. #define BIT_CLEAR_EXPRSP_CHKSM_7_TO_0_8822B(x) \
  14286. ((x) & (~BITS_EXPRSP_CHKSM_7_TO_0_8822B))
  14287. #define BIT_GET_EXPRSP_CHKSM_7_TO_0_8822B(x) \
  14288. (((x) >> BIT_SHIFT_EXPRSP_CHKSM_7_TO_0_8822B) & \
  14289. BIT_MASK_EXPRSP_CHKSM_7_TO_0_8822B)
  14290. #define BIT_SET_EXPRSP_CHKSM_7_TO_0_8822B(x, v) \
  14291. (BIT_CLEAR_EXPRSP_CHKSM_7_TO_0_8822B(x) | \
  14292. BIT_EXPRSP_CHKSM_7_TO_0_8822B(v))
  14293. #define BIT_SHIFT_EXPRSP_CHKSM_15_TO_8_8822B 0
  14294. #define BIT_MASK_EXPRSP_CHKSM_15_TO_8_8822B 0xff
  14295. #define BIT_EXPRSP_CHKSM_15_TO_8_8822B(x) \
  14296. (((x) & BIT_MASK_EXPRSP_CHKSM_15_TO_8_8822B) \
  14297. << BIT_SHIFT_EXPRSP_CHKSM_15_TO_8_8822B)
  14298. #define BITS_EXPRSP_CHKSM_15_TO_8_8822B \
  14299. (BIT_MASK_EXPRSP_CHKSM_15_TO_8_8822B \
  14300. << BIT_SHIFT_EXPRSP_CHKSM_15_TO_8_8822B)
  14301. #define BIT_CLEAR_EXPRSP_CHKSM_15_TO_8_8822B(x) \
  14302. ((x) & (~BITS_EXPRSP_CHKSM_15_TO_8_8822B))
  14303. #define BIT_GET_EXPRSP_CHKSM_15_TO_8_8822B(x) \
  14304. (((x) >> BIT_SHIFT_EXPRSP_CHKSM_15_TO_8_8822B) & \
  14305. BIT_MASK_EXPRSP_CHKSM_15_TO_8_8822B)
  14306. #define BIT_SET_EXPRSP_CHKSM_15_TO_8_8822B(x, v) \
  14307. (BIT_CLEAR_EXPRSP_CHKSM_15_TO_8_8822B(x) | \
  14308. BIT_EXPRSP_CHKSM_15_TO_8_8822B(v))
  14309. /* 2 REG_BEAMFORMING_INFO_NSARP_V1_8822B */
  14310. #define BIT_SHIFT_WMAC_ARPIP_8822B 0
  14311. #define BIT_MASK_WMAC_ARPIP_8822B 0xffffffffL
  14312. #define BIT_WMAC_ARPIP_8822B(x) \
  14313. (((x) & BIT_MASK_WMAC_ARPIP_8822B) << BIT_SHIFT_WMAC_ARPIP_8822B)
  14314. #define BITS_WMAC_ARPIP_8822B \
  14315. (BIT_MASK_WMAC_ARPIP_8822B << BIT_SHIFT_WMAC_ARPIP_8822B)
  14316. #define BIT_CLEAR_WMAC_ARPIP_8822B(x) ((x) & (~BITS_WMAC_ARPIP_8822B))
  14317. #define BIT_GET_WMAC_ARPIP_8822B(x) \
  14318. (((x) >> BIT_SHIFT_WMAC_ARPIP_8822B) & BIT_MASK_WMAC_ARPIP_8822B)
  14319. #define BIT_SET_WMAC_ARPIP_8822B(x, v) \
  14320. (BIT_CLEAR_WMAC_ARPIP_8822B(x) | BIT_WMAC_ARPIP_8822B(v))
  14321. /* 2 REG_BEAMFORMING_INFO_NSARP_8822B */
  14322. #define BIT_SHIFT_BEAMFORMING_INFO_8822B 0
  14323. #define BIT_MASK_BEAMFORMING_INFO_8822B 0xffffffffL
  14324. #define BIT_BEAMFORMING_INFO_8822B(x) \
  14325. (((x) & BIT_MASK_BEAMFORMING_INFO_8822B) \
  14326. << BIT_SHIFT_BEAMFORMING_INFO_8822B)
  14327. #define BITS_BEAMFORMING_INFO_8822B \
  14328. (BIT_MASK_BEAMFORMING_INFO_8822B << BIT_SHIFT_BEAMFORMING_INFO_8822B)
  14329. #define BIT_CLEAR_BEAMFORMING_INFO_8822B(x) \
  14330. ((x) & (~BITS_BEAMFORMING_INFO_8822B))
  14331. #define BIT_GET_BEAMFORMING_INFO_8822B(x) \
  14332. (((x) >> BIT_SHIFT_BEAMFORMING_INFO_8822B) & \
  14333. BIT_MASK_BEAMFORMING_INFO_8822B)
  14334. #define BIT_SET_BEAMFORMING_INFO_8822B(x, v) \
  14335. (BIT_CLEAR_BEAMFORMING_INFO_8822B(x) | BIT_BEAMFORMING_INFO_8822B(v))
  14336. /* 2 REG_NOT_VALID_8822B */
  14337. #define BIT_SHIFT_R_WMAC_IPV6_MYIPAD_8822B 0
  14338. #define BIT_MASK_R_WMAC_IPV6_MYIPAD_8822B 0xffffffffffffffffffffffffffffffffL
  14339. #define BIT_R_WMAC_IPV6_MYIPAD_8822B(x) \
  14340. (((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD_8822B) \
  14341. << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_8822B)
  14342. #define BITS_R_WMAC_IPV6_MYIPAD_8822B \
  14343. (BIT_MASK_R_WMAC_IPV6_MYIPAD_8822B \
  14344. << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_8822B)
  14345. #define BIT_CLEAR_R_WMAC_IPV6_MYIPAD_8822B(x) \
  14346. ((x) & (~BITS_R_WMAC_IPV6_MYIPAD_8822B))
  14347. #define BIT_GET_R_WMAC_IPV6_MYIPAD_8822B(x) \
  14348. (((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD_8822B) & \
  14349. BIT_MASK_R_WMAC_IPV6_MYIPAD_8822B)
  14350. #define BIT_SET_R_WMAC_IPV6_MYIPAD_8822B(x, v) \
  14351. (BIT_CLEAR_R_WMAC_IPV6_MYIPAD_8822B(x) | \
  14352. BIT_R_WMAC_IPV6_MYIPAD_8822B(v))
  14353. /* 2 REG_RSVD_0X740_8822B */
  14354. /* 2 REG_WMAC_RTX_CTX_SUBTYPE_CFG_8822B */
  14355. #define BIT_SHIFT_R_WMAC_CTX_SUBTYPE_8822B 4
  14356. #define BIT_MASK_R_WMAC_CTX_SUBTYPE_8822B 0xf
  14357. #define BIT_R_WMAC_CTX_SUBTYPE_8822B(x) \
  14358. (((x) & BIT_MASK_R_WMAC_CTX_SUBTYPE_8822B) \
  14359. << BIT_SHIFT_R_WMAC_CTX_SUBTYPE_8822B)
  14360. #define BITS_R_WMAC_CTX_SUBTYPE_8822B \
  14361. (BIT_MASK_R_WMAC_CTX_SUBTYPE_8822B \
  14362. << BIT_SHIFT_R_WMAC_CTX_SUBTYPE_8822B)
  14363. #define BIT_CLEAR_R_WMAC_CTX_SUBTYPE_8822B(x) \
  14364. ((x) & (~BITS_R_WMAC_CTX_SUBTYPE_8822B))
  14365. #define BIT_GET_R_WMAC_CTX_SUBTYPE_8822B(x) \
  14366. (((x) >> BIT_SHIFT_R_WMAC_CTX_SUBTYPE_8822B) & \
  14367. BIT_MASK_R_WMAC_CTX_SUBTYPE_8822B)
  14368. #define BIT_SET_R_WMAC_CTX_SUBTYPE_8822B(x, v) \
  14369. (BIT_CLEAR_R_WMAC_CTX_SUBTYPE_8822B(x) | \
  14370. BIT_R_WMAC_CTX_SUBTYPE_8822B(v))
  14371. #define BIT_SHIFT_R_WMAC_RTX_SUBTYPE_8822B 0
  14372. #define BIT_MASK_R_WMAC_RTX_SUBTYPE_8822B 0xf
  14373. #define BIT_R_WMAC_RTX_SUBTYPE_8822B(x) \
  14374. (((x) & BIT_MASK_R_WMAC_RTX_SUBTYPE_8822B) \
  14375. << BIT_SHIFT_R_WMAC_RTX_SUBTYPE_8822B)
  14376. #define BITS_R_WMAC_RTX_SUBTYPE_8822B \
  14377. (BIT_MASK_R_WMAC_RTX_SUBTYPE_8822B \
  14378. << BIT_SHIFT_R_WMAC_RTX_SUBTYPE_8822B)
  14379. #define BIT_CLEAR_R_WMAC_RTX_SUBTYPE_8822B(x) \
  14380. ((x) & (~BITS_R_WMAC_RTX_SUBTYPE_8822B))
  14381. #define BIT_GET_R_WMAC_RTX_SUBTYPE_8822B(x) \
  14382. (((x) >> BIT_SHIFT_R_WMAC_RTX_SUBTYPE_8822B) & \
  14383. BIT_MASK_R_WMAC_RTX_SUBTYPE_8822B)
  14384. #define BIT_SET_R_WMAC_RTX_SUBTYPE_8822B(x, v) \
  14385. (BIT_CLEAR_R_WMAC_RTX_SUBTYPE_8822B(x) | \
  14386. BIT_R_WMAC_RTX_SUBTYPE_8822B(v))
  14387. /* 2 REG_WMAC_SWAES_CFG_8822B */
  14388. /* 2 REG_BT_COEX_V2_8822B */
  14389. #define BIT_GNT_BT_POLARITY_8822B BIT(12)
  14390. #define BIT_GNT_BT_BYPASS_PRIORITY_8822B BIT(8)
  14391. #define BIT_SHIFT_TIMER_8822B 0
  14392. #define BIT_MASK_TIMER_8822B 0xff
  14393. #define BIT_TIMER_8822B(x) \
  14394. (((x) & BIT_MASK_TIMER_8822B) << BIT_SHIFT_TIMER_8822B)
  14395. #define BITS_TIMER_8822B (BIT_MASK_TIMER_8822B << BIT_SHIFT_TIMER_8822B)
  14396. #define BIT_CLEAR_TIMER_8822B(x) ((x) & (~BITS_TIMER_8822B))
  14397. #define BIT_GET_TIMER_8822B(x) \
  14398. (((x) >> BIT_SHIFT_TIMER_8822B) & BIT_MASK_TIMER_8822B)
  14399. #define BIT_SET_TIMER_8822B(x, v) \
  14400. (BIT_CLEAR_TIMER_8822B(x) | BIT_TIMER_8822B(v))
  14401. /* 2 REG_BT_COEX_8822B */
  14402. #define BIT_R_GNT_BT_RFC_SW_8822B BIT(12)
  14403. #define BIT_R_GNT_BT_RFC_SW_EN_8822B BIT(11)
  14404. #define BIT_R_GNT_BT_BB_SW_8822B BIT(10)
  14405. #define BIT_R_GNT_BT_BB_SW_EN_8822B BIT(9)
  14406. #define BIT_R_BT_CNT_THREN_8822B BIT(8)
  14407. #define BIT_SHIFT_R_BT_CNT_THR_8822B 0
  14408. #define BIT_MASK_R_BT_CNT_THR_8822B 0xff
  14409. #define BIT_R_BT_CNT_THR_8822B(x) \
  14410. (((x) & BIT_MASK_R_BT_CNT_THR_8822B) << BIT_SHIFT_R_BT_CNT_THR_8822B)
  14411. #define BITS_R_BT_CNT_THR_8822B \
  14412. (BIT_MASK_R_BT_CNT_THR_8822B << BIT_SHIFT_R_BT_CNT_THR_8822B)
  14413. #define BIT_CLEAR_R_BT_CNT_THR_8822B(x) ((x) & (~BITS_R_BT_CNT_THR_8822B))
  14414. #define BIT_GET_R_BT_CNT_THR_8822B(x) \
  14415. (((x) >> BIT_SHIFT_R_BT_CNT_THR_8822B) & BIT_MASK_R_BT_CNT_THR_8822B)
  14416. #define BIT_SET_R_BT_CNT_THR_8822B(x, v) \
  14417. (BIT_CLEAR_R_BT_CNT_THR_8822B(x) | BIT_R_BT_CNT_THR_8822B(v))
  14418. /* 2 REG_WLAN_ACT_MASK_CTRL_8822B */
  14419. #define BIT_WLRX_TER_BY_CTL_8822B BIT(43)
  14420. #define BIT_WLRX_TER_BY_AD_8822B BIT(42)
  14421. #define BIT_ANT_DIVERSITY_SEL_8822B BIT(41)
  14422. #define BIT_ANTSEL_FOR_BT_CTRL_EN_8822B BIT(40)
  14423. #define BIT_WLACT_LOW_GNTWL_EN_8822B BIT(34)
  14424. #define BIT_WLACT_HIGH_GNTBT_EN_8822B BIT(33)
  14425. #define BIT_NAV_UPPER_V1_8822B BIT(32)
  14426. #define BIT_SHIFT_RXMYRTS_NAV_V1_8822B 8
  14427. #define BIT_MASK_RXMYRTS_NAV_V1_8822B 0xff
  14428. #define BIT_RXMYRTS_NAV_V1_8822B(x) \
  14429. (((x) & BIT_MASK_RXMYRTS_NAV_V1_8822B) \
  14430. << BIT_SHIFT_RXMYRTS_NAV_V1_8822B)
  14431. #define BITS_RXMYRTS_NAV_V1_8822B \
  14432. (BIT_MASK_RXMYRTS_NAV_V1_8822B << BIT_SHIFT_RXMYRTS_NAV_V1_8822B)
  14433. #define BIT_CLEAR_RXMYRTS_NAV_V1_8822B(x) ((x) & (~BITS_RXMYRTS_NAV_V1_8822B))
  14434. #define BIT_GET_RXMYRTS_NAV_V1_8822B(x) \
  14435. (((x) >> BIT_SHIFT_RXMYRTS_NAV_V1_8822B) & \
  14436. BIT_MASK_RXMYRTS_NAV_V1_8822B)
  14437. #define BIT_SET_RXMYRTS_NAV_V1_8822B(x, v) \
  14438. (BIT_CLEAR_RXMYRTS_NAV_V1_8822B(x) | BIT_RXMYRTS_NAV_V1_8822B(v))
  14439. #define BIT_SHIFT_RTSRST_V1_8822B 0
  14440. #define BIT_MASK_RTSRST_V1_8822B 0xff
  14441. #define BIT_RTSRST_V1_8822B(x) \
  14442. (((x) & BIT_MASK_RTSRST_V1_8822B) << BIT_SHIFT_RTSRST_V1_8822B)
  14443. #define BITS_RTSRST_V1_8822B \
  14444. (BIT_MASK_RTSRST_V1_8822B << BIT_SHIFT_RTSRST_V1_8822B)
  14445. #define BIT_CLEAR_RTSRST_V1_8822B(x) ((x) & (~BITS_RTSRST_V1_8822B))
  14446. #define BIT_GET_RTSRST_V1_8822B(x) \
  14447. (((x) >> BIT_SHIFT_RTSRST_V1_8822B) & BIT_MASK_RTSRST_V1_8822B)
  14448. #define BIT_SET_RTSRST_V1_8822B(x, v) \
  14449. (BIT_CLEAR_RTSRST_V1_8822B(x) | BIT_RTSRST_V1_8822B(v))
  14450. /* 2 REG_BT_COEX_ENHANCED_INTR_CTRL_8822B */
  14451. #define BIT_SHIFT_BT_STAT_DELAY_8822B 12
  14452. #define BIT_MASK_BT_STAT_DELAY_8822B 0xf
  14453. #define BIT_BT_STAT_DELAY_8822B(x) \
  14454. (((x) & BIT_MASK_BT_STAT_DELAY_8822B) << BIT_SHIFT_BT_STAT_DELAY_8822B)
  14455. #define BITS_BT_STAT_DELAY_8822B \
  14456. (BIT_MASK_BT_STAT_DELAY_8822B << BIT_SHIFT_BT_STAT_DELAY_8822B)
  14457. #define BIT_CLEAR_BT_STAT_DELAY_8822B(x) ((x) & (~BITS_BT_STAT_DELAY_8822B))
  14458. #define BIT_GET_BT_STAT_DELAY_8822B(x) \
  14459. (((x) >> BIT_SHIFT_BT_STAT_DELAY_8822B) & BIT_MASK_BT_STAT_DELAY_8822B)
  14460. #define BIT_SET_BT_STAT_DELAY_8822B(x, v) \
  14461. (BIT_CLEAR_BT_STAT_DELAY_8822B(x) | BIT_BT_STAT_DELAY_8822B(v))
  14462. #define BIT_SHIFT_BT_TRX_INIT_DETECT_8822B 8
  14463. #define BIT_MASK_BT_TRX_INIT_DETECT_8822B 0xf
  14464. #define BIT_BT_TRX_INIT_DETECT_8822B(x) \
  14465. (((x) & BIT_MASK_BT_TRX_INIT_DETECT_8822B) \
  14466. << BIT_SHIFT_BT_TRX_INIT_DETECT_8822B)
  14467. #define BITS_BT_TRX_INIT_DETECT_8822B \
  14468. (BIT_MASK_BT_TRX_INIT_DETECT_8822B \
  14469. << BIT_SHIFT_BT_TRX_INIT_DETECT_8822B)
  14470. #define BIT_CLEAR_BT_TRX_INIT_DETECT_8822B(x) \
  14471. ((x) & (~BITS_BT_TRX_INIT_DETECT_8822B))
  14472. #define BIT_GET_BT_TRX_INIT_DETECT_8822B(x) \
  14473. (((x) >> BIT_SHIFT_BT_TRX_INIT_DETECT_8822B) & \
  14474. BIT_MASK_BT_TRX_INIT_DETECT_8822B)
  14475. #define BIT_SET_BT_TRX_INIT_DETECT_8822B(x, v) \
  14476. (BIT_CLEAR_BT_TRX_INIT_DETECT_8822B(x) | \
  14477. BIT_BT_TRX_INIT_DETECT_8822B(v))
  14478. #define BIT_SHIFT_BT_PRI_DETECT_TO_8822B 4
  14479. #define BIT_MASK_BT_PRI_DETECT_TO_8822B 0xf
  14480. #define BIT_BT_PRI_DETECT_TO_8822B(x) \
  14481. (((x) & BIT_MASK_BT_PRI_DETECT_TO_8822B) \
  14482. << BIT_SHIFT_BT_PRI_DETECT_TO_8822B)
  14483. #define BITS_BT_PRI_DETECT_TO_8822B \
  14484. (BIT_MASK_BT_PRI_DETECT_TO_8822B << BIT_SHIFT_BT_PRI_DETECT_TO_8822B)
  14485. #define BIT_CLEAR_BT_PRI_DETECT_TO_8822B(x) \
  14486. ((x) & (~BITS_BT_PRI_DETECT_TO_8822B))
  14487. #define BIT_GET_BT_PRI_DETECT_TO_8822B(x) \
  14488. (((x) >> BIT_SHIFT_BT_PRI_DETECT_TO_8822B) & \
  14489. BIT_MASK_BT_PRI_DETECT_TO_8822B)
  14490. #define BIT_SET_BT_PRI_DETECT_TO_8822B(x, v) \
  14491. (BIT_CLEAR_BT_PRI_DETECT_TO_8822B(x) | BIT_BT_PRI_DETECT_TO_8822B(v))
  14492. #define BIT_R_GRANTALL_WLMASK_8822B BIT(3)
  14493. #define BIT_STATIS_BT_EN_8822B BIT(2)
  14494. #define BIT_WL_ACT_MASK_ENABLE_8822B BIT(1)
  14495. #define BIT_ENHANCED_BT_8822B BIT(0)
  14496. /* 2 REG_BT_ACT_STATISTICS_8822B */
  14497. #define BIT_SHIFT_STATIS_BT_LO_RX_8822B (48 & CPU_OPT_WIDTH)
  14498. #define BIT_MASK_STATIS_BT_LO_RX_8822B 0xffff
  14499. #define BIT_STATIS_BT_LO_RX_8822B(x) \
  14500. (((x) & BIT_MASK_STATIS_BT_LO_RX_8822B) \
  14501. << BIT_SHIFT_STATIS_BT_LO_RX_8822B)
  14502. #define BITS_STATIS_BT_LO_RX_8822B \
  14503. (BIT_MASK_STATIS_BT_LO_RX_8822B << BIT_SHIFT_STATIS_BT_LO_RX_8822B)
  14504. #define BIT_CLEAR_STATIS_BT_LO_RX_8822B(x) ((x) & (~BITS_STATIS_BT_LO_RX_8822B))
  14505. #define BIT_GET_STATIS_BT_LO_RX_8822B(x) \
  14506. (((x) >> BIT_SHIFT_STATIS_BT_LO_RX_8822B) & \
  14507. BIT_MASK_STATIS_BT_LO_RX_8822B)
  14508. #define BIT_SET_STATIS_BT_LO_RX_8822B(x, v) \
  14509. (BIT_CLEAR_STATIS_BT_LO_RX_8822B(x) | BIT_STATIS_BT_LO_RX_8822B(v))
  14510. #define BIT_SHIFT_STATIS_BT_LO_TX_8822B (32 & CPU_OPT_WIDTH)
  14511. #define BIT_MASK_STATIS_BT_LO_TX_8822B 0xffff
  14512. #define BIT_STATIS_BT_LO_TX_8822B(x) \
  14513. (((x) & BIT_MASK_STATIS_BT_LO_TX_8822B) \
  14514. << BIT_SHIFT_STATIS_BT_LO_TX_8822B)
  14515. #define BITS_STATIS_BT_LO_TX_8822B \
  14516. (BIT_MASK_STATIS_BT_LO_TX_8822B << BIT_SHIFT_STATIS_BT_LO_TX_8822B)
  14517. #define BIT_CLEAR_STATIS_BT_LO_TX_8822B(x) ((x) & (~BITS_STATIS_BT_LO_TX_8822B))
  14518. #define BIT_GET_STATIS_BT_LO_TX_8822B(x) \
  14519. (((x) >> BIT_SHIFT_STATIS_BT_LO_TX_8822B) & \
  14520. BIT_MASK_STATIS_BT_LO_TX_8822B)
  14521. #define BIT_SET_STATIS_BT_LO_TX_8822B(x, v) \
  14522. (BIT_CLEAR_STATIS_BT_LO_TX_8822B(x) | BIT_STATIS_BT_LO_TX_8822B(v))
  14523. #define BIT_SHIFT_STATIS_BT_HI_RX_8822B 16
  14524. #define BIT_MASK_STATIS_BT_HI_RX_8822B 0xffff
  14525. #define BIT_STATIS_BT_HI_RX_8822B(x) \
  14526. (((x) & BIT_MASK_STATIS_BT_HI_RX_8822B) \
  14527. << BIT_SHIFT_STATIS_BT_HI_RX_8822B)
  14528. #define BITS_STATIS_BT_HI_RX_8822B \
  14529. (BIT_MASK_STATIS_BT_HI_RX_8822B << BIT_SHIFT_STATIS_BT_HI_RX_8822B)
  14530. #define BIT_CLEAR_STATIS_BT_HI_RX_8822B(x) ((x) & (~BITS_STATIS_BT_HI_RX_8822B))
  14531. #define BIT_GET_STATIS_BT_HI_RX_8822B(x) \
  14532. (((x) >> BIT_SHIFT_STATIS_BT_HI_RX_8822B) & \
  14533. BIT_MASK_STATIS_BT_HI_RX_8822B)
  14534. #define BIT_SET_STATIS_BT_HI_RX_8822B(x, v) \
  14535. (BIT_CLEAR_STATIS_BT_HI_RX_8822B(x) | BIT_STATIS_BT_HI_RX_8822B(v))
  14536. #define BIT_SHIFT_STATIS_BT_HI_TX_8822B 0
  14537. #define BIT_MASK_STATIS_BT_HI_TX_8822B 0xffff
  14538. #define BIT_STATIS_BT_HI_TX_8822B(x) \
  14539. (((x) & BIT_MASK_STATIS_BT_HI_TX_8822B) \
  14540. << BIT_SHIFT_STATIS_BT_HI_TX_8822B)
  14541. #define BITS_STATIS_BT_HI_TX_8822B \
  14542. (BIT_MASK_STATIS_BT_HI_TX_8822B << BIT_SHIFT_STATIS_BT_HI_TX_8822B)
  14543. #define BIT_CLEAR_STATIS_BT_HI_TX_8822B(x) ((x) & (~BITS_STATIS_BT_HI_TX_8822B))
  14544. #define BIT_GET_STATIS_BT_HI_TX_8822B(x) \
  14545. (((x) >> BIT_SHIFT_STATIS_BT_HI_TX_8822B) & \
  14546. BIT_MASK_STATIS_BT_HI_TX_8822B)
  14547. #define BIT_SET_STATIS_BT_HI_TX_8822B(x, v) \
  14548. (BIT_CLEAR_STATIS_BT_HI_TX_8822B(x) | BIT_STATIS_BT_HI_TX_8822B(v))
  14549. /* 2 REG_BT_STATISTICS_CONTROL_REGISTER_8822B */
  14550. #define BIT_SHIFT_R_BT_CMD_RPT_8822B 16
  14551. #define BIT_MASK_R_BT_CMD_RPT_8822B 0xffff
  14552. #define BIT_R_BT_CMD_RPT_8822B(x) \
  14553. (((x) & BIT_MASK_R_BT_CMD_RPT_8822B) << BIT_SHIFT_R_BT_CMD_RPT_8822B)
  14554. #define BITS_R_BT_CMD_RPT_8822B \
  14555. (BIT_MASK_R_BT_CMD_RPT_8822B << BIT_SHIFT_R_BT_CMD_RPT_8822B)
  14556. #define BIT_CLEAR_R_BT_CMD_RPT_8822B(x) ((x) & (~BITS_R_BT_CMD_RPT_8822B))
  14557. #define BIT_GET_R_BT_CMD_RPT_8822B(x) \
  14558. (((x) >> BIT_SHIFT_R_BT_CMD_RPT_8822B) & BIT_MASK_R_BT_CMD_RPT_8822B)
  14559. #define BIT_SET_R_BT_CMD_RPT_8822B(x, v) \
  14560. (BIT_CLEAR_R_BT_CMD_RPT_8822B(x) | BIT_R_BT_CMD_RPT_8822B(v))
  14561. #define BIT_SHIFT_R_RPT_FROM_BT_8822B 8
  14562. #define BIT_MASK_R_RPT_FROM_BT_8822B 0xff
  14563. #define BIT_R_RPT_FROM_BT_8822B(x) \
  14564. (((x) & BIT_MASK_R_RPT_FROM_BT_8822B) << BIT_SHIFT_R_RPT_FROM_BT_8822B)
  14565. #define BITS_R_RPT_FROM_BT_8822B \
  14566. (BIT_MASK_R_RPT_FROM_BT_8822B << BIT_SHIFT_R_RPT_FROM_BT_8822B)
  14567. #define BIT_CLEAR_R_RPT_FROM_BT_8822B(x) ((x) & (~BITS_R_RPT_FROM_BT_8822B))
  14568. #define BIT_GET_R_RPT_FROM_BT_8822B(x) \
  14569. (((x) >> BIT_SHIFT_R_RPT_FROM_BT_8822B) & BIT_MASK_R_RPT_FROM_BT_8822B)
  14570. #define BIT_SET_R_RPT_FROM_BT_8822B(x, v) \
  14571. (BIT_CLEAR_R_RPT_FROM_BT_8822B(x) | BIT_R_RPT_FROM_BT_8822B(v))
  14572. #define BIT_SHIFT_BT_HID_ISR_SET_8822B 6
  14573. #define BIT_MASK_BT_HID_ISR_SET_8822B 0x3
  14574. #define BIT_BT_HID_ISR_SET_8822B(x) \
  14575. (((x) & BIT_MASK_BT_HID_ISR_SET_8822B) \
  14576. << BIT_SHIFT_BT_HID_ISR_SET_8822B)
  14577. #define BITS_BT_HID_ISR_SET_8822B \
  14578. (BIT_MASK_BT_HID_ISR_SET_8822B << BIT_SHIFT_BT_HID_ISR_SET_8822B)
  14579. #define BIT_CLEAR_BT_HID_ISR_SET_8822B(x) ((x) & (~BITS_BT_HID_ISR_SET_8822B))
  14580. #define BIT_GET_BT_HID_ISR_SET_8822B(x) \
  14581. (((x) >> BIT_SHIFT_BT_HID_ISR_SET_8822B) & \
  14582. BIT_MASK_BT_HID_ISR_SET_8822B)
  14583. #define BIT_SET_BT_HID_ISR_SET_8822B(x, v) \
  14584. (BIT_CLEAR_BT_HID_ISR_SET_8822B(x) | BIT_BT_HID_ISR_SET_8822B(v))
  14585. #define BIT_TDMA_BT_START_NOTIFY_8822B BIT(5)
  14586. #define BIT_ENABLE_TDMA_FW_MODE_8822B BIT(4)
  14587. #define BIT_ENABLE_PTA_TDMA_MODE_8822B BIT(3)
  14588. #define BIT_ENABLE_COEXIST_TAB_IN_TDMA_8822B BIT(2)
  14589. #define BIT_GPIO2_GPIO3_EXANGE_OR_NO_BT_CCA_8822B BIT(1)
  14590. #define BIT_RTK_BT_ENABLE_8822B BIT(0)
  14591. /* 2 REG_BT_STATUS_REPORT_REGISTER_8822B */
  14592. #define BIT_SHIFT_BT_PROFILE_8822B 24
  14593. #define BIT_MASK_BT_PROFILE_8822B 0xff
  14594. #define BIT_BT_PROFILE_8822B(x) \
  14595. (((x) & BIT_MASK_BT_PROFILE_8822B) << BIT_SHIFT_BT_PROFILE_8822B)
  14596. #define BITS_BT_PROFILE_8822B \
  14597. (BIT_MASK_BT_PROFILE_8822B << BIT_SHIFT_BT_PROFILE_8822B)
  14598. #define BIT_CLEAR_BT_PROFILE_8822B(x) ((x) & (~BITS_BT_PROFILE_8822B))
  14599. #define BIT_GET_BT_PROFILE_8822B(x) \
  14600. (((x) >> BIT_SHIFT_BT_PROFILE_8822B) & BIT_MASK_BT_PROFILE_8822B)
  14601. #define BIT_SET_BT_PROFILE_8822B(x, v) \
  14602. (BIT_CLEAR_BT_PROFILE_8822B(x) | BIT_BT_PROFILE_8822B(v))
  14603. #define BIT_SHIFT_BT_POWER_8822B 16
  14604. #define BIT_MASK_BT_POWER_8822B 0xff
  14605. #define BIT_BT_POWER_8822B(x) \
  14606. (((x) & BIT_MASK_BT_POWER_8822B) << BIT_SHIFT_BT_POWER_8822B)
  14607. #define BITS_BT_POWER_8822B \
  14608. (BIT_MASK_BT_POWER_8822B << BIT_SHIFT_BT_POWER_8822B)
  14609. #define BIT_CLEAR_BT_POWER_8822B(x) ((x) & (~BITS_BT_POWER_8822B))
  14610. #define BIT_GET_BT_POWER_8822B(x) \
  14611. (((x) >> BIT_SHIFT_BT_POWER_8822B) & BIT_MASK_BT_POWER_8822B)
  14612. #define BIT_SET_BT_POWER_8822B(x, v) \
  14613. (BIT_CLEAR_BT_POWER_8822B(x) | BIT_BT_POWER_8822B(v))
  14614. #define BIT_SHIFT_BT_PREDECT_STATUS_8822B 8
  14615. #define BIT_MASK_BT_PREDECT_STATUS_8822B 0xff
  14616. #define BIT_BT_PREDECT_STATUS_8822B(x) \
  14617. (((x) & BIT_MASK_BT_PREDECT_STATUS_8822B) \
  14618. << BIT_SHIFT_BT_PREDECT_STATUS_8822B)
  14619. #define BITS_BT_PREDECT_STATUS_8822B \
  14620. (BIT_MASK_BT_PREDECT_STATUS_8822B << BIT_SHIFT_BT_PREDECT_STATUS_8822B)
  14621. #define BIT_CLEAR_BT_PREDECT_STATUS_8822B(x) \
  14622. ((x) & (~BITS_BT_PREDECT_STATUS_8822B))
  14623. #define BIT_GET_BT_PREDECT_STATUS_8822B(x) \
  14624. (((x) >> BIT_SHIFT_BT_PREDECT_STATUS_8822B) & \
  14625. BIT_MASK_BT_PREDECT_STATUS_8822B)
  14626. #define BIT_SET_BT_PREDECT_STATUS_8822B(x, v) \
  14627. (BIT_CLEAR_BT_PREDECT_STATUS_8822B(x) | BIT_BT_PREDECT_STATUS_8822B(v))
  14628. #define BIT_SHIFT_BT_CMD_INFO_8822B 0
  14629. #define BIT_MASK_BT_CMD_INFO_8822B 0xff
  14630. #define BIT_BT_CMD_INFO_8822B(x) \
  14631. (((x) & BIT_MASK_BT_CMD_INFO_8822B) << BIT_SHIFT_BT_CMD_INFO_8822B)
  14632. #define BITS_BT_CMD_INFO_8822B \
  14633. (BIT_MASK_BT_CMD_INFO_8822B << BIT_SHIFT_BT_CMD_INFO_8822B)
  14634. #define BIT_CLEAR_BT_CMD_INFO_8822B(x) ((x) & (~BITS_BT_CMD_INFO_8822B))
  14635. #define BIT_GET_BT_CMD_INFO_8822B(x) \
  14636. (((x) >> BIT_SHIFT_BT_CMD_INFO_8822B) & BIT_MASK_BT_CMD_INFO_8822B)
  14637. #define BIT_SET_BT_CMD_INFO_8822B(x, v) \
  14638. (BIT_CLEAR_BT_CMD_INFO_8822B(x) | BIT_BT_CMD_INFO_8822B(v))
  14639. /* 2 REG_BT_INTERRUPT_CONTROL_REGISTER_8822B */
  14640. #define BIT_EN_MAC_NULL_PKT_NOTIFY_8822B BIT(31)
  14641. #define BIT_EN_WLAN_RPT_AND_BT_QUERY_8822B BIT(30)
  14642. #define BIT_EN_BT_STSTUS_RPT_8822B BIT(29)
  14643. #define BIT_EN_BT_POWER_8822B BIT(28)
  14644. #define BIT_EN_BT_CHANNEL_8822B BIT(27)
  14645. #define BIT_EN_BT_SLOT_CHANGE_8822B BIT(26)
  14646. #define BIT_EN_BT_PROFILE_OR_HID_8822B BIT(25)
  14647. #define BIT_WLAN_RPT_NOTIFY_8822B BIT(24)
  14648. #define BIT_SHIFT_WLAN_RPT_DATA_8822B 16
  14649. #define BIT_MASK_WLAN_RPT_DATA_8822B 0xff
  14650. #define BIT_WLAN_RPT_DATA_8822B(x) \
  14651. (((x) & BIT_MASK_WLAN_RPT_DATA_8822B) << BIT_SHIFT_WLAN_RPT_DATA_8822B)
  14652. #define BITS_WLAN_RPT_DATA_8822B \
  14653. (BIT_MASK_WLAN_RPT_DATA_8822B << BIT_SHIFT_WLAN_RPT_DATA_8822B)
  14654. #define BIT_CLEAR_WLAN_RPT_DATA_8822B(x) ((x) & (~BITS_WLAN_RPT_DATA_8822B))
  14655. #define BIT_GET_WLAN_RPT_DATA_8822B(x) \
  14656. (((x) >> BIT_SHIFT_WLAN_RPT_DATA_8822B) & BIT_MASK_WLAN_RPT_DATA_8822B)
  14657. #define BIT_SET_WLAN_RPT_DATA_8822B(x, v) \
  14658. (BIT_CLEAR_WLAN_RPT_DATA_8822B(x) | BIT_WLAN_RPT_DATA_8822B(v))
  14659. #define BIT_SHIFT_CMD_ID_8822B 8
  14660. #define BIT_MASK_CMD_ID_8822B 0xff
  14661. #define BIT_CMD_ID_8822B(x) \
  14662. (((x) & BIT_MASK_CMD_ID_8822B) << BIT_SHIFT_CMD_ID_8822B)
  14663. #define BITS_CMD_ID_8822B (BIT_MASK_CMD_ID_8822B << BIT_SHIFT_CMD_ID_8822B)
  14664. #define BIT_CLEAR_CMD_ID_8822B(x) ((x) & (~BITS_CMD_ID_8822B))
  14665. #define BIT_GET_CMD_ID_8822B(x) \
  14666. (((x) >> BIT_SHIFT_CMD_ID_8822B) & BIT_MASK_CMD_ID_8822B)
  14667. #define BIT_SET_CMD_ID_8822B(x, v) \
  14668. (BIT_CLEAR_CMD_ID_8822B(x) | BIT_CMD_ID_8822B(v))
  14669. #define BIT_SHIFT_BT_DATA_8822B 0
  14670. #define BIT_MASK_BT_DATA_8822B 0xff
  14671. #define BIT_BT_DATA_8822B(x) \
  14672. (((x) & BIT_MASK_BT_DATA_8822B) << BIT_SHIFT_BT_DATA_8822B)
  14673. #define BITS_BT_DATA_8822B (BIT_MASK_BT_DATA_8822B << BIT_SHIFT_BT_DATA_8822B)
  14674. #define BIT_CLEAR_BT_DATA_8822B(x) ((x) & (~BITS_BT_DATA_8822B))
  14675. #define BIT_GET_BT_DATA_8822B(x) \
  14676. (((x) >> BIT_SHIFT_BT_DATA_8822B) & BIT_MASK_BT_DATA_8822B)
  14677. #define BIT_SET_BT_DATA_8822B(x, v) \
  14678. (BIT_CLEAR_BT_DATA_8822B(x) | BIT_BT_DATA_8822B(v))
  14679. /* 2 REG_WLAN_REPORT_TIME_OUT_CONTROL_REGISTER_8822B */
  14680. #define BIT_SHIFT_WLAN_RPT_TO_8822B 0
  14681. #define BIT_MASK_WLAN_RPT_TO_8822B 0xff
  14682. #define BIT_WLAN_RPT_TO_8822B(x) \
  14683. (((x) & BIT_MASK_WLAN_RPT_TO_8822B) << BIT_SHIFT_WLAN_RPT_TO_8822B)
  14684. #define BITS_WLAN_RPT_TO_8822B \
  14685. (BIT_MASK_WLAN_RPT_TO_8822B << BIT_SHIFT_WLAN_RPT_TO_8822B)
  14686. #define BIT_CLEAR_WLAN_RPT_TO_8822B(x) ((x) & (~BITS_WLAN_RPT_TO_8822B))
  14687. #define BIT_GET_WLAN_RPT_TO_8822B(x) \
  14688. (((x) >> BIT_SHIFT_WLAN_RPT_TO_8822B) & BIT_MASK_WLAN_RPT_TO_8822B)
  14689. #define BIT_SET_WLAN_RPT_TO_8822B(x, v) \
  14690. (BIT_CLEAR_WLAN_RPT_TO_8822B(x) | BIT_WLAN_RPT_TO_8822B(v))
  14691. /* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER_8822B */
  14692. #define BIT_SHIFT_ISOLATION_CHK_8822B 1
  14693. #define BIT_MASK_ISOLATION_CHK_8822B 0x7fffffffffffffffffffL
  14694. #define BIT_ISOLATION_CHK_8822B(x) \
  14695. (((x) & BIT_MASK_ISOLATION_CHK_8822B) << BIT_SHIFT_ISOLATION_CHK_8822B)
  14696. #define BITS_ISOLATION_CHK_8822B \
  14697. (BIT_MASK_ISOLATION_CHK_8822B << BIT_SHIFT_ISOLATION_CHK_8822B)
  14698. #define BIT_CLEAR_ISOLATION_CHK_8822B(x) ((x) & (~BITS_ISOLATION_CHK_8822B))
  14699. #define BIT_GET_ISOLATION_CHK_8822B(x) \
  14700. (((x) >> BIT_SHIFT_ISOLATION_CHK_8822B) & BIT_MASK_ISOLATION_CHK_8822B)
  14701. #define BIT_SET_ISOLATION_CHK_8822B(x, v) \
  14702. (BIT_CLEAR_ISOLATION_CHK_8822B(x) | BIT_ISOLATION_CHK_8822B(v))
  14703. #define BIT_ISOLATION_EN_8822B BIT(0)
  14704. /* 2 REG_BT_INTERRUPT_STATUS_REGISTER_8822B */
  14705. #define BIT_BT_HID_ISR_8822B BIT(7)
  14706. #define BIT_BT_QUERY_ISR_8822B BIT(6)
  14707. #define BIT_MAC_NULL_PKT_NOTIFY_ISR_8822B BIT(5)
  14708. #define BIT_WLAN_RPT_ISR_8822B BIT(4)
  14709. #define BIT_BT_POWER_ISR_8822B BIT(3)
  14710. #define BIT_BT_CHANNEL_ISR_8822B BIT(2)
  14711. #define BIT_BT_SLOT_CHANGE_ISR_8822B BIT(1)
  14712. #define BIT_BT_PROFILE_ISR_8822B BIT(0)
  14713. /* 2 REG_BT_TDMA_TIME_REGISTER_8822B */
  14714. #define BIT_SHIFT_BT_TIME_8822B 6
  14715. #define BIT_MASK_BT_TIME_8822B 0x3ffffff
  14716. #define BIT_BT_TIME_8822B(x) \
  14717. (((x) & BIT_MASK_BT_TIME_8822B) << BIT_SHIFT_BT_TIME_8822B)
  14718. #define BITS_BT_TIME_8822B (BIT_MASK_BT_TIME_8822B << BIT_SHIFT_BT_TIME_8822B)
  14719. #define BIT_CLEAR_BT_TIME_8822B(x) ((x) & (~BITS_BT_TIME_8822B))
  14720. #define BIT_GET_BT_TIME_8822B(x) \
  14721. (((x) >> BIT_SHIFT_BT_TIME_8822B) & BIT_MASK_BT_TIME_8822B)
  14722. #define BIT_SET_BT_TIME_8822B(x, v) \
  14723. (BIT_CLEAR_BT_TIME_8822B(x) | BIT_BT_TIME_8822B(v))
  14724. #define BIT_SHIFT_BT_RPT_SAMPLE_RATE_8822B 0
  14725. #define BIT_MASK_BT_RPT_SAMPLE_RATE_8822B 0x3f
  14726. #define BIT_BT_RPT_SAMPLE_RATE_8822B(x) \
  14727. (((x) & BIT_MASK_BT_RPT_SAMPLE_RATE_8822B) \
  14728. << BIT_SHIFT_BT_RPT_SAMPLE_RATE_8822B)
  14729. #define BITS_BT_RPT_SAMPLE_RATE_8822B \
  14730. (BIT_MASK_BT_RPT_SAMPLE_RATE_8822B \
  14731. << BIT_SHIFT_BT_RPT_SAMPLE_RATE_8822B)
  14732. #define BIT_CLEAR_BT_RPT_SAMPLE_RATE_8822B(x) \
  14733. ((x) & (~BITS_BT_RPT_SAMPLE_RATE_8822B))
  14734. #define BIT_GET_BT_RPT_SAMPLE_RATE_8822B(x) \
  14735. (((x) >> BIT_SHIFT_BT_RPT_SAMPLE_RATE_8822B) & \
  14736. BIT_MASK_BT_RPT_SAMPLE_RATE_8822B)
  14737. #define BIT_SET_BT_RPT_SAMPLE_RATE_8822B(x, v) \
  14738. (BIT_CLEAR_BT_RPT_SAMPLE_RATE_8822B(x) | \
  14739. BIT_BT_RPT_SAMPLE_RATE_8822B(v))
  14740. /* 2 REG_BT_ACT_REGISTER_8822B */
  14741. #define BIT_SHIFT_BT_EISR_EN_8822B 16
  14742. #define BIT_MASK_BT_EISR_EN_8822B 0xff
  14743. #define BIT_BT_EISR_EN_8822B(x) \
  14744. (((x) & BIT_MASK_BT_EISR_EN_8822B) << BIT_SHIFT_BT_EISR_EN_8822B)
  14745. #define BITS_BT_EISR_EN_8822B \
  14746. (BIT_MASK_BT_EISR_EN_8822B << BIT_SHIFT_BT_EISR_EN_8822B)
  14747. #define BIT_CLEAR_BT_EISR_EN_8822B(x) ((x) & (~BITS_BT_EISR_EN_8822B))
  14748. #define BIT_GET_BT_EISR_EN_8822B(x) \
  14749. (((x) >> BIT_SHIFT_BT_EISR_EN_8822B) & BIT_MASK_BT_EISR_EN_8822B)
  14750. #define BIT_SET_BT_EISR_EN_8822B(x, v) \
  14751. (BIT_CLEAR_BT_EISR_EN_8822B(x) | BIT_BT_EISR_EN_8822B(v))
  14752. #define BIT_BT_ACT_FALLING_ISR_8822B BIT(10)
  14753. #define BIT_BT_ACT_RISING_ISR_8822B BIT(9)
  14754. #define BIT_TDMA_TO_ISR_8822B BIT(8)
  14755. #define BIT_SHIFT_BT_CH_8822B 0
  14756. #define BIT_MASK_BT_CH_8822B 0xff
  14757. #define BIT_BT_CH_8822B(x) \
  14758. (((x) & BIT_MASK_BT_CH_8822B) << BIT_SHIFT_BT_CH_8822B)
  14759. #define BITS_BT_CH_8822B (BIT_MASK_BT_CH_8822B << BIT_SHIFT_BT_CH_8822B)
  14760. #define BIT_CLEAR_BT_CH_8822B(x) ((x) & (~BITS_BT_CH_8822B))
  14761. #define BIT_GET_BT_CH_8822B(x) \
  14762. (((x) >> BIT_SHIFT_BT_CH_8822B) & BIT_MASK_BT_CH_8822B)
  14763. #define BIT_SET_BT_CH_8822B(x, v) \
  14764. (BIT_CLEAR_BT_CH_8822B(x) | BIT_BT_CH_8822B(v))
  14765. /* 2 REG_OBFF_CTRL_BASIC_8822B */
  14766. #define BIT_OBFF_EN_V1_8822B BIT(31)
  14767. #define BIT_SHIFT_OBFF_STATE_V1_8822B 28
  14768. #define BIT_MASK_OBFF_STATE_V1_8822B 0x3
  14769. #define BIT_OBFF_STATE_V1_8822B(x) \
  14770. (((x) & BIT_MASK_OBFF_STATE_V1_8822B) << BIT_SHIFT_OBFF_STATE_V1_8822B)
  14771. #define BITS_OBFF_STATE_V1_8822B \
  14772. (BIT_MASK_OBFF_STATE_V1_8822B << BIT_SHIFT_OBFF_STATE_V1_8822B)
  14773. #define BIT_CLEAR_OBFF_STATE_V1_8822B(x) ((x) & (~BITS_OBFF_STATE_V1_8822B))
  14774. #define BIT_GET_OBFF_STATE_V1_8822B(x) \
  14775. (((x) >> BIT_SHIFT_OBFF_STATE_V1_8822B) & BIT_MASK_OBFF_STATE_V1_8822B)
  14776. #define BIT_SET_OBFF_STATE_V1_8822B(x, v) \
  14777. (BIT_CLEAR_OBFF_STATE_V1_8822B(x) | BIT_OBFF_STATE_V1_8822B(v))
  14778. #define BIT_OBFF_ACT_RXDMA_EN_8822B BIT(27)
  14779. #define BIT_OBFF_BLOCK_INT_EN_8822B BIT(26)
  14780. #define BIT_OBFF_AUTOACT_EN_8822B BIT(25)
  14781. #define BIT_OBFF_AUTOIDLE_EN_8822B BIT(24)
  14782. #define BIT_SHIFT_WAKE_MAX_PLS_8822B 20
  14783. #define BIT_MASK_WAKE_MAX_PLS_8822B 0x7
  14784. #define BIT_WAKE_MAX_PLS_8822B(x) \
  14785. (((x) & BIT_MASK_WAKE_MAX_PLS_8822B) << BIT_SHIFT_WAKE_MAX_PLS_8822B)
  14786. #define BITS_WAKE_MAX_PLS_8822B \
  14787. (BIT_MASK_WAKE_MAX_PLS_8822B << BIT_SHIFT_WAKE_MAX_PLS_8822B)
  14788. #define BIT_CLEAR_WAKE_MAX_PLS_8822B(x) ((x) & (~BITS_WAKE_MAX_PLS_8822B))
  14789. #define BIT_GET_WAKE_MAX_PLS_8822B(x) \
  14790. (((x) >> BIT_SHIFT_WAKE_MAX_PLS_8822B) & BIT_MASK_WAKE_MAX_PLS_8822B)
  14791. #define BIT_SET_WAKE_MAX_PLS_8822B(x, v) \
  14792. (BIT_CLEAR_WAKE_MAX_PLS_8822B(x) | BIT_WAKE_MAX_PLS_8822B(v))
  14793. #define BIT_SHIFT_WAKE_MIN_PLS_8822B 16
  14794. #define BIT_MASK_WAKE_MIN_PLS_8822B 0x7
  14795. #define BIT_WAKE_MIN_PLS_8822B(x) \
  14796. (((x) & BIT_MASK_WAKE_MIN_PLS_8822B) << BIT_SHIFT_WAKE_MIN_PLS_8822B)
  14797. #define BITS_WAKE_MIN_PLS_8822B \
  14798. (BIT_MASK_WAKE_MIN_PLS_8822B << BIT_SHIFT_WAKE_MIN_PLS_8822B)
  14799. #define BIT_CLEAR_WAKE_MIN_PLS_8822B(x) ((x) & (~BITS_WAKE_MIN_PLS_8822B))
  14800. #define BIT_GET_WAKE_MIN_PLS_8822B(x) \
  14801. (((x) >> BIT_SHIFT_WAKE_MIN_PLS_8822B) & BIT_MASK_WAKE_MIN_PLS_8822B)
  14802. #define BIT_SET_WAKE_MIN_PLS_8822B(x, v) \
  14803. (BIT_CLEAR_WAKE_MIN_PLS_8822B(x) | BIT_WAKE_MIN_PLS_8822B(v))
  14804. #define BIT_SHIFT_WAKE_MAX_F2F_8822B 12
  14805. #define BIT_MASK_WAKE_MAX_F2F_8822B 0x7
  14806. #define BIT_WAKE_MAX_F2F_8822B(x) \
  14807. (((x) & BIT_MASK_WAKE_MAX_F2F_8822B) << BIT_SHIFT_WAKE_MAX_F2F_8822B)
  14808. #define BITS_WAKE_MAX_F2F_8822B \
  14809. (BIT_MASK_WAKE_MAX_F2F_8822B << BIT_SHIFT_WAKE_MAX_F2F_8822B)
  14810. #define BIT_CLEAR_WAKE_MAX_F2F_8822B(x) ((x) & (~BITS_WAKE_MAX_F2F_8822B))
  14811. #define BIT_GET_WAKE_MAX_F2F_8822B(x) \
  14812. (((x) >> BIT_SHIFT_WAKE_MAX_F2F_8822B) & BIT_MASK_WAKE_MAX_F2F_8822B)
  14813. #define BIT_SET_WAKE_MAX_F2F_8822B(x, v) \
  14814. (BIT_CLEAR_WAKE_MAX_F2F_8822B(x) | BIT_WAKE_MAX_F2F_8822B(v))
  14815. #define BIT_SHIFT_WAKE_MIN_F2F_8822B 8
  14816. #define BIT_MASK_WAKE_MIN_F2F_8822B 0x7
  14817. #define BIT_WAKE_MIN_F2F_8822B(x) \
  14818. (((x) & BIT_MASK_WAKE_MIN_F2F_8822B) << BIT_SHIFT_WAKE_MIN_F2F_8822B)
  14819. #define BITS_WAKE_MIN_F2F_8822B \
  14820. (BIT_MASK_WAKE_MIN_F2F_8822B << BIT_SHIFT_WAKE_MIN_F2F_8822B)
  14821. #define BIT_CLEAR_WAKE_MIN_F2F_8822B(x) ((x) & (~BITS_WAKE_MIN_F2F_8822B))
  14822. #define BIT_GET_WAKE_MIN_F2F_8822B(x) \
  14823. (((x) >> BIT_SHIFT_WAKE_MIN_F2F_8822B) & BIT_MASK_WAKE_MIN_F2F_8822B)
  14824. #define BIT_SET_WAKE_MIN_F2F_8822B(x, v) \
  14825. (BIT_CLEAR_WAKE_MIN_F2F_8822B(x) | BIT_WAKE_MIN_F2F_8822B(v))
  14826. #define BIT_APP_CPU_ACT_V1_8822B BIT(3)
  14827. #define BIT_APP_OBFF_V1_8822B BIT(2)
  14828. #define BIT_APP_IDLE_V1_8822B BIT(1)
  14829. #define BIT_APP_INIT_V1_8822B BIT(0)
  14830. /* 2 REG_OBFF_CTRL2_TIMER_8822B */
  14831. #define BIT_SHIFT_RX_HIGH_TIMER_IDX_8822B 24
  14832. #define BIT_MASK_RX_HIGH_TIMER_IDX_8822B 0x7
  14833. #define BIT_RX_HIGH_TIMER_IDX_8822B(x) \
  14834. (((x) & BIT_MASK_RX_HIGH_TIMER_IDX_8822B) \
  14835. << BIT_SHIFT_RX_HIGH_TIMER_IDX_8822B)
  14836. #define BITS_RX_HIGH_TIMER_IDX_8822B \
  14837. (BIT_MASK_RX_HIGH_TIMER_IDX_8822B << BIT_SHIFT_RX_HIGH_TIMER_IDX_8822B)
  14838. #define BIT_CLEAR_RX_HIGH_TIMER_IDX_8822B(x) \
  14839. ((x) & (~BITS_RX_HIGH_TIMER_IDX_8822B))
  14840. #define BIT_GET_RX_HIGH_TIMER_IDX_8822B(x) \
  14841. (((x) >> BIT_SHIFT_RX_HIGH_TIMER_IDX_8822B) & \
  14842. BIT_MASK_RX_HIGH_TIMER_IDX_8822B)
  14843. #define BIT_SET_RX_HIGH_TIMER_IDX_8822B(x, v) \
  14844. (BIT_CLEAR_RX_HIGH_TIMER_IDX_8822B(x) | BIT_RX_HIGH_TIMER_IDX_8822B(v))
  14845. #define BIT_SHIFT_RX_MED_TIMER_IDX_8822B 16
  14846. #define BIT_MASK_RX_MED_TIMER_IDX_8822B 0x7
  14847. #define BIT_RX_MED_TIMER_IDX_8822B(x) \
  14848. (((x) & BIT_MASK_RX_MED_TIMER_IDX_8822B) \
  14849. << BIT_SHIFT_RX_MED_TIMER_IDX_8822B)
  14850. #define BITS_RX_MED_TIMER_IDX_8822B \
  14851. (BIT_MASK_RX_MED_TIMER_IDX_8822B << BIT_SHIFT_RX_MED_TIMER_IDX_8822B)
  14852. #define BIT_CLEAR_RX_MED_TIMER_IDX_8822B(x) \
  14853. ((x) & (~BITS_RX_MED_TIMER_IDX_8822B))
  14854. #define BIT_GET_RX_MED_TIMER_IDX_8822B(x) \
  14855. (((x) >> BIT_SHIFT_RX_MED_TIMER_IDX_8822B) & \
  14856. BIT_MASK_RX_MED_TIMER_IDX_8822B)
  14857. #define BIT_SET_RX_MED_TIMER_IDX_8822B(x, v) \
  14858. (BIT_CLEAR_RX_MED_TIMER_IDX_8822B(x) | BIT_RX_MED_TIMER_IDX_8822B(v))
  14859. #define BIT_SHIFT_RX_LOW_TIMER_IDX_8822B 8
  14860. #define BIT_MASK_RX_LOW_TIMER_IDX_8822B 0x7
  14861. #define BIT_RX_LOW_TIMER_IDX_8822B(x) \
  14862. (((x) & BIT_MASK_RX_LOW_TIMER_IDX_8822B) \
  14863. << BIT_SHIFT_RX_LOW_TIMER_IDX_8822B)
  14864. #define BITS_RX_LOW_TIMER_IDX_8822B \
  14865. (BIT_MASK_RX_LOW_TIMER_IDX_8822B << BIT_SHIFT_RX_LOW_TIMER_IDX_8822B)
  14866. #define BIT_CLEAR_RX_LOW_TIMER_IDX_8822B(x) \
  14867. ((x) & (~BITS_RX_LOW_TIMER_IDX_8822B))
  14868. #define BIT_GET_RX_LOW_TIMER_IDX_8822B(x) \
  14869. (((x) >> BIT_SHIFT_RX_LOW_TIMER_IDX_8822B) & \
  14870. BIT_MASK_RX_LOW_TIMER_IDX_8822B)
  14871. #define BIT_SET_RX_LOW_TIMER_IDX_8822B(x, v) \
  14872. (BIT_CLEAR_RX_LOW_TIMER_IDX_8822B(x) | BIT_RX_LOW_TIMER_IDX_8822B(v))
  14873. #define BIT_SHIFT_OBFF_INT_TIMER_IDX_8822B 0
  14874. #define BIT_MASK_OBFF_INT_TIMER_IDX_8822B 0x7
  14875. #define BIT_OBFF_INT_TIMER_IDX_8822B(x) \
  14876. (((x) & BIT_MASK_OBFF_INT_TIMER_IDX_8822B) \
  14877. << BIT_SHIFT_OBFF_INT_TIMER_IDX_8822B)
  14878. #define BITS_OBFF_INT_TIMER_IDX_8822B \
  14879. (BIT_MASK_OBFF_INT_TIMER_IDX_8822B \
  14880. << BIT_SHIFT_OBFF_INT_TIMER_IDX_8822B)
  14881. #define BIT_CLEAR_OBFF_INT_TIMER_IDX_8822B(x) \
  14882. ((x) & (~BITS_OBFF_INT_TIMER_IDX_8822B))
  14883. #define BIT_GET_OBFF_INT_TIMER_IDX_8822B(x) \
  14884. (((x) >> BIT_SHIFT_OBFF_INT_TIMER_IDX_8822B) & \
  14885. BIT_MASK_OBFF_INT_TIMER_IDX_8822B)
  14886. #define BIT_SET_OBFF_INT_TIMER_IDX_8822B(x, v) \
  14887. (BIT_CLEAR_OBFF_INT_TIMER_IDX_8822B(x) | \
  14888. BIT_OBFF_INT_TIMER_IDX_8822B(v))
  14889. /* 2 REG_LTR_CTRL_BASIC_8822B */
  14890. #define BIT_LTR_EN_V1_8822B BIT(31)
  14891. #define BIT_LTR_HW_EN_V1_8822B BIT(30)
  14892. #define BIT_LRT_ACT_CTS_EN_8822B BIT(29)
  14893. #define BIT_LTR_ACT_RXPKT_EN_8822B BIT(28)
  14894. #define BIT_LTR_ACT_RXDMA_EN_8822B BIT(27)
  14895. #define BIT_LTR_IDLE_NO_SNOOP_8822B BIT(26)
  14896. #define BIT_SPDUP_MGTPKT_8822B BIT(25)
  14897. #define BIT_RX_AGG_EN_8822B BIT(24)
  14898. #define BIT_APP_LTR_ACT_8822B BIT(23)
  14899. #define BIT_APP_LTR_IDLE_8822B BIT(22)
  14900. #define BIT_SHIFT_HIGH_RATE_TRIG_SEL_8822B 20
  14901. #define BIT_MASK_HIGH_RATE_TRIG_SEL_8822B 0x3
  14902. #define BIT_HIGH_RATE_TRIG_SEL_8822B(x) \
  14903. (((x) & BIT_MASK_HIGH_RATE_TRIG_SEL_8822B) \
  14904. << BIT_SHIFT_HIGH_RATE_TRIG_SEL_8822B)
  14905. #define BITS_HIGH_RATE_TRIG_SEL_8822B \
  14906. (BIT_MASK_HIGH_RATE_TRIG_SEL_8822B \
  14907. << BIT_SHIFT_HIGH_RATE_TRIG_SEL_8822B)
  14908. #define BIT_CLEAR_HIGH_RATE_TRIG_SEL_8822B(x) \
  14909. ((x) & (~BITS_HIGH_RATE_TRIG_SEL_8822B))
  14910. #define BIT_GET_HIGH_RATE_TRIG_SEL_8822B(x) \
  14911. (((x) >> BIT_SHIFT_HIGH_RATE_TRIG_SEL_8822B) & \
  14912. BIT_MASK_HIGH_RATE_TRIG_SEL_8822B)
  14913. #define BIT_SET_HIGH_RATE_TRIG_SEL_8822B(x, v) \
  14914. (BIT_CLEAR_HIGH_RATE_TRIG_SEL_8822B(x) | \
  14915. BIT_HIGH_RATE_TRIG_SEL_8822B(v))
  14916. #define BIT_SHIFT_MED_RATE_TRIG_SEL_8822B 18
  14917. #define BIT_MASK_MED_RATE_TRIG_SEL_8822B 0x3
  14918. #define BIT_MED_RATE_TRIG_SEL_8822B(x) \
  14919. (((x) & BIT_MASK_MED_RATE_TRIG_SEL_8822B) \
  14920. << BIT_SHIFT_MED_RATE_TRIG_SEL_8822B)
  14921. #define BITS_MED_RATE_TRIG_SEL_8822B \
  14922. (BIT_MASK_MED_RATE_TRIG_SEL_8822B << BIT_SHIFT_MED_RATE_TRIG_SEL_8822B)
  14923. #define BIT_CLEAR_MED_RATE_TRIG_SEL_8822B(x) \
  14924. ((x) & (~BITS_MED_RATE_TRIG_SEL_8822B))
  14925. #define BIT_GET_MED_RATE_TRIG_SEL_8822B(x) \
  14926. (((x) >> BIT_SHIFT_MED_RATE_TRIG_SEL_8822B) & \
  14927. BIT_MASK_MED_RATE_TRIG_SEL_8822B)
  14928. #define BIT_SET_MED_RATE_TRIG_SEL_8822B(x, v) \
  14929. (BIT_CLEAR_MED_RATE_TRIG_SEL_8822B(x) | BIT_MED_RATE_TRIG_SEL_8822B(v))
  14930. #define BIT_SHIFT_LOW_RATE_TRIG_SEL_8822B 16
  14931. #define BIT_MASK_LOW_RATE_TRIG_SEL_8822B 0x3
  14932. #define BIT_LOW_RATE_TRIG_SEL_8822B(x) \
  14933. (((x) & BIT_MASK_LOW_RATE_TRIG_SEL_8822B) \
  14934. << BIT_SHIFT_LOW_RATE_TRIG_SEL_8822B)
  14935. #define BITS_LOW_RATE_TRIG_SEL_8822B \
  14936. (BIT_MASK_LOW_RATE_TRIG_SEL_8822B << BIT_SHIFT_LOW_RATE_TRIG_SEL_8822B)
  14937. #define BIT_CLEAR_LOW_RATE_TRIG_SEL_8822B(x) \
  14938. ((x) & (~BITS_LOW_RATE_TRIG_SEL_8822B))
  14939. #define BIT_GET_LOW_RATE_TRIG_SEL_8822B(x) \
  14940. (((x) >> BIT_SHIFT_LOW_RATE_TRIG_SEL_8822B) & \
  14941. BIT_MASK_LOW_RATE_TRIG_SEL_8822B)
  14942. #define BIT_SET_LOW_RATE_TRIG_SEL_8822B(x, v) \
  14943. (BIT_CLEAR_LOW_RATE_TRIG_SEL_8822B(x) | BIT_LOW_RATE_TRIG_SEL_8822B(v))
  14944. #define BIT_SHIFT_HIGH_RATE_BD_IDX_8822B 8
  14945. #define BIT_MASK_HIGH_RATE_BD_IDX_8822B 0x7f
  14946. #define BIT_HIGH_RATE_BD_IDX_8822B(x) \
  14947. (((x) & BIT_MASK_HIGH_RATE_BD_IDX_8822B) \
  14948. << BIT_SHIFT_HIGH_RATE_BD_IDX_8822B)
  14949. #define BITS_HIGH_RATE_BD_IDX_8822B \
  14950. (BIT_MASK_HIGH_RATE_BD_IDX_8822B << BIT_SHIFT_HIGH_RATE_BD_IDX_8822B)
  14951. #define BIT_CLEAR_HIGH_RATE_BD_IDX_8822B(x) \
  14952. ((x) & (~BITS_HIGH_RATE_BD_IDX_8822B))
  14953. #define BIT_GET_HIGH_RATE_BD_IDX_8822B(x) \
  14954. (((x) >> BIT_SHIFT_HIGH_RATE_BD_IDX_8822B) & \
  14955. BIT_MASK_HIGH_RATE_BD_IDX_8822B)
  14956. #define BIT_SET_HIGH_RATE_BD_IDX_8822B(x, v) \
  14957. (BIT_CLEAR_HIGH_RATE_BD_IDX_8822B(x) | BIT_HIGH_RATE_BD_IDX_8822B(v))
  14958. #define BIT_SHIFT_LOW_RATE_BD_IDX_8822B 0
  14959. #define BIT_MASK_LOW_RATE_BD_IDX_8822B 0x7f
  14960. #define BIT_LOW_RATE_BD_IDX_8822B(x) \
  14961. (((x) & BIT_MASK_LOW_RATE_BD_IDX_8822B) \
  14962. << BIT_SHIFT_LOW_RATE_BD_IDX_8822B)
  14963. #define BITS_LOW_RATE_BD_IDX_8822B \
  14964. (BIT_MASK_LOW_RATE_BD_IDX_8822B << BIT_SHIFT_LOW_RATE_BD_IDX_8822B)
  14965. #define BIT_CLEAR_LOW_RATE_BD_IDX_8822B(x) ((x) & (~BITS_LOW_RATE_BD_IDX_8822B))
  14966. #define BIT_GET_LOW_RATE_BD_IDX_8822B(x) \
  14967. (((x) >> BIT_SHIFT_LOW_RATE_BD_IDX_8822B) & \
  14968. BIT_MASK_LOW_RATE_BD_IDX_8822B)
  14969. #define BIT_SET_LOW_RATE_BD_IDX_8822B(x, v) \
  14970. (BIT_CLEAR_LOW_RATE_BD_IDX_8822B(x) | BIT_LOW_RATE_BD_IDX_8822B(v))
  14971. /* 2 REG_LTR_CTRL2_TIMER_THRESHOLD_8822B */
  14972. #define BIT_SHIFT_RX_EMPTY_TIMER_IDX_8822B 24
  14973. #define BIT_MASK_RX_EMPTY_TIMER_IDX_8822B 0x7
  14974. #define BIT_RX_EMPTY_TIMER_IDX_8822B(x) \
  14975. (((x) & BIT_MASK_RX_EMPTY_TIMER_IDX_8822B) \
  14976. << BIT_SHIFT_RX_EMPTY_TIMER_IDX_8822B)
  14977. #define BITS_RX_EMPTY_TIMER_IDX_8822B \
  14978. (BIT_MASK_RX_EMPTY_TIMER_IDX_8822B \
  14979. << BIT_SHIFT_RX_EMPTY_TIMER_IDX_8822B)
  14980. #define BIT_CLEAR_RX_EMPTY_TIMER_IDX_8822B(x) \
  14981. ((x) & (~BITS_RX_EMPTY_TIMER_IDX_8822B))
  14982. #define BIT_GET_RX_EMPTY_TIMER_IDX_8822B(x) \
  14983. (((x) >> BIT_SHIFT_RX_EMPTY_TIMER_IDX_8822B) & \
  14984. BIT_MASK_RX_EMPTY_TIMER_IDX_8822B)
  14985. #define BIT_SET_RX_EMPTY_TIMER_IDX_8822B(x, v) \
  14986. (BIT_CLEAR_RX_EMPTY_TIMER_IDX_8822B(x) | \
  14987. BIT_RX_EMPTY_TIMER_IDX_8822B(v))
  14988. #define BIT_SHIFT_RX_AFULL_TH_IDX_8822B 20
  14989. #define BIT_MASK_RX_AFULL_TH_IDX_8822B 0x7
  14990. #define BIT_RX_AFULL_TH_IDX_8822B(x) \
  14991. (((x) & BIT_MASK_RX_AFULL_TH_IDX_8822B) \
  14992. << BIT_SHIFT_RX_AFULL_TH_IDX_8822B)
  14993. #define BITS_RX_AFULL_TH_IDX_8822B \
  14994. (BIT_MASK_RX_AFULL_TH_IDX_8822B << BIT_SHIFT_RX_AFULL_TH_IDX_8822B)
  14995. #define BIT_CLEAR_RX_AFULL_TH_IDX_8822B(x) ((x) & (~BITS_RX_AFULL_TH_IDX_8822B))
  14996. #define BIT_GET_RX_AFULL_TH_IDX_8822B(x) \
  14997. (((x) >> BIT_SHIFT_RX_AFULL_TH_IDX_8822B) & \
  14998. BIT_MASK_RX_AFULL_TH_IDX_8822B)
  14999. #define BIT_SET_RX_AFULL_TH_IDX_8822B(x, v) \
  15000. (BIT_CLEAR_RX_AFULL_TH_IDX_8822B(x) | BIT_RX_AFULL_TH_IDX_8822B(v))
  15001. #define BIT_SHIFT_RX_HIGH_TH_IDX_8822B 16
  15002. #define BIT_MASK_RX_HIGH_TH_IDX_8822B 0x7
  15003. #define BIT_RX_HIGH_TH_IDX_8822B(x) \
  15004. (((x) & BIT_MASK_RX_HIGH_TH_IDX_8822B) \
  15005. << BIT_SHIFT_RX_HIGH_TH_IDX_8822B)
  15006. #define BITS_RX_HIGH_TH_IDX_8822B \
  15007. (BIT_MASK_RX_HIGH_TH_IDX_8822B << BIT_SHIFT_RX_HIGH_TH_IDX_8822B)
  15008. #define BIT_CLEAR_RX_HIGH_TH_IDX_8822B(x) ((x) & (~BITS_RX_HIGH_TH_IDX_8822B))
  15009. #define BIT_GET_RX_HIGH_TH_IDX_8822B(x) \
  15010. (((x) >> BIT_SHIFT_RX_HIGH_TH_IDX_8822B) & \
  15011. BIT_MASK_RX_HIGH_TH_IDX_8822B)
  15012. #define BIT_SET_RX_HIGH_TH_IDX_8822B(x, v) \
  15013. (BIT_CLEAR_RX_HIGH_TH_IDX_8822B(x) | BIT_RX_HIGH_TH_IDX_8822B(v))
  15014. #define BIT_SHIFT_RX_MED_TH_IDX_8822B 12
  15015. #define BIT_MASK_RX_MED_TH_IDX_8822B 0x7
  15016. #define BIT_RX_MED_TH_IDX_8822B(x) \
  15017. (((x) & BIT_MASK_RX_MED_TH_IDX_8822B) << BIT_SHIFT_RX_MED_TH_IDX_8822B)
  15018. #define BITS_RX_MED_TH_IDX_8822B \
  15019. (BIT_MASK_RX_MED_TH_IDX_8822B << BIT_SHIFT_RX_MED_TH_IDX_8822B)
  15020. #define BIT_CLEAR_RX_MED_TH_IDX_8822B(x) ((x) & (~BITS_RX_MED_TH_IDX_8822B))
  15021. #define BIT_GET_RX_MED_TH_IDX_8822B(x) \
  15022. (((x) >> BIT_SHIFT_RX_MED_TH_IDX_8822B) & BIT_MASK_RX_MED_TH_IDX_8822B)
  15023. #define BIT_SET_RX_MED_TH_IDX_8822B(x, v) \
  15024. (BIT_CLEAR_RX_MED_TH_IDX_8822B(x) | BIT_RX_MED_TH_IDX_8822B(v))
  15025. #define BIT_SHIFT_RX_LOW_TH_IDX_8822B 8
  15026. #define BIT_MASK_RX_LOW_TH_IDX_8822B 0x7
  15027. #define BIT_RX_LOW_TH_IDX_8822B(x) \
  15028. (((x) & BIT_MASK_RX_LOW_TH_IDX_8822B) << BIT_SHIFT_RX_LOW_TH_IDX_8822B)
  15029. #define BITS_RX_LOW_TH_IDX_8822B \
  15030. (BIT_MASK_RX_LOW_TH_IDX_8822B << BIT_SHIFT_RX_LOW_TH_IDX_8822B)
  15031. #define BIT_CLEAR_RX_LOW_TH_IDX_8822B(x) ((x) & (~BITS_RX_LOW_TH_IDX_8822B))
  15032. #define BIT_GET_RX_LOW_TH_IDX_8822B(x) \
  15033. (((x) >> BIT_SHIFT_RX_LOW_TH_IDX_8822B) & BIT_MASK_RX_LOW_TH_IDX_8822B)
  15034. #define BIT_SET_RX_LOW_TH_IDX_8822B(x, v) \
  15035. (BIT_CLEAR_RX_LOW_TH_IDX_8822B(x) | BIT_RX_LOW_TH_IDX_8822B(v))
  15036. #define BIT_SHIFT_LTR_SPACE_IDX_8822B 4
  15037. #define BIT_MASK_LTR_SPACE_IDX_8822B 0x3
  15038. #define BIT_LTR_SPACE_IDX_8822B(x) \
  15039. (((x) & BIT_MASK_LTR_SPACE_IDX_8822B) << BIT_SHIFT_LTR_SPACE_IDX_8822B)
  15040. #define BITS_LTR_SPACE_IDX_8822B \
  15041. (BIT_MASK_LTR_SPACE_IDX_8822B << BIT_SHIFT_LTR_SPACE_IDX_8822B)
  15042. #define BIT_CLEAR_LTR_SPACE_IDX_8822B(x) ((x) & (~BITS_LTR_SPACE_IDX_8822B))
  15043. #define BIT_GET_LTR_SPACE_IDX_8822B(x) \
  15044. (((x) >> BIT_SHIFT_LTR_SPACE_IDX_8822B) & BIT_MASK_LTR_SPACE_IDX_8822B)
  15045. #define BIT_SET_LTR_SPACE_IDX_8822B(x, v) \
  15046. (BIT_CLEAR_LTR_SPACE_IDX_8822B(x) | BIT_LTR_SPACE_IDX_8822B(v))
  15047. #define BIT_SHIFT_LTR_IDLE_TIMER_IDX_8822B 0
  15048. #define BIT_MASK_LTR_IDLE_TIMER_IDX_8822B 0x7
  15049. #define BIT_LTR_IDLE_TIMER_IDX_8822B(x) \
  15050. (((x) & BIT_MASK_LTR_IDLE_TIMER_IDX_8822B) \
  15051. << BIT_SHIFT_LTR_IDLE_TIMER_IDX_8822B)
  15052. #define BITS_LTR_IDLE_TIMER_IDX_8822B \
  15053. (BIT_MASK_LTR_IDLE_TIMER_IDX_8822B \
  15054. << BIT_SHIFT_LTR_IDLE_TIMER_IDX_8822B)
  15055. #define BIT_CLEAR_LTR_IDLE_TIMER_IDX_8822B(x) \
  15056. ((x) & (~BITS_LTR_IDLE_TIMER_IDX_8822B))
  15057. #define BIT_GET_LTR_IDLE_TIMER_IDX_8822B(x) \
  15058. (((x) >> BIT_SHIFT_LTR_IDLE_TIMER_IDX_8822B) & \
  15059. BIT_MASK_LTR_IDLE_TIMER_IDX_8822B)
  15060. #define BIT_SET_LTR_IDLE_TIMER_IDX_8822B(x, v) \
  15061. (BIT_CLEAR_LTR_IDLE_TIMER_IDX_8822B(x) | \
  15062. BIT_LTR_IDLE_TIMER_IDX_8822B(v))
  15063. /* 2 REG_LTR_IDLE_LATENCY_V1_8822B */
  15064. #define BIT_SHIFT_LTR_IDLE_L_8822B 0
  15065. #define BIT_MASK_LTR_IDLE_L_8822B 0xffffffffL
  15066. #define BIT_LTR_IDLE_L_8822B(x) \
  15067. (((x) & BIT_MASK_LTR_IDLE_L_8822B) << BIT_SHIFT_LTR_IDLE_L_8822B)
  15068. #define BITS_LTR_IDLE_L_8822B \
  15069. (BIT_MASK_LTR_IDLE_L_8822B << BIT_SHIFT_LTR_IDLE_L_8822B)
  15070. #define BIT_CLEAR_LTR_IDLE_L_8822B(x) ((x) & (~BITS_LTR_IDLE_L_8822B))
  15071. #define BIT_GET_LTR_IDLE_L_8822B(x) \
  15072. (((x) >> BIT_SHIFT_LTR_IDLE_L_8822B) & BIT_MASK_LTR_IDLE_L_8822B)
  15073. #define BIT_SET_LTR_IDLE_L_8822B(x, v) \
  15074. (BIT_CLEAR_LTR_IDLE_L_8822B(x) | BIT_LTR_IDLE_L_8822B(v))
  15075. /* 2 REG_LTR_ACTIVE_LATENCY_V1_8822B */
  15076. #define BIT_SHIFT_LTR_ACT_L_8822B 0
  15077. #define BIT_MASK_LTR_ACT_L_8822B 0xffffffffL
  15078. #define BIT_LTR_ACT_L_8822B(x) \
  15079. (((x) & BIT_MASK_LTR_ACT_L_8822B) << BIT_SHIFT_LTR_ACT_L_8822B)
  15080. #define BITS_LTR_ACT_L_8822B \
  15081. (BIT_MASK_LTR_ACT_L_8822B << BIT_SHIFT_LTR_ACT_L_8822B)
  15082. #define BIT_CLEAR_LTR_ACT_L_8822B(x) ((x) & (~BITS_LTR_ACT_L_8822B))
  15083. #define BIT_GET_LTR_ACT_L_8822B(x) \
  15084. (((x) >> BIT_SHIFT_LTR_ACT_L_8822B) & BIT_MASK_LTR_ACT_L_8822B)
  15085. #define BIT_SET_LTR_ACT_L_8822B(x, v) \
  15086. (BIT_CLEAR_LTR_ACT_L_8822B(x) | BIT_LTR_ACT_L_8822B(v))
  15087. /* 2 REG_ANTENNA_TRAINING_CONTROL_REGISTER_8822B */
  15088. #define BIT_APPEND_MACID_IN_RESP_EN_8822B BIT(50)
  15089. #define BIT_ADDR2_MATCH_EN_8822B BIT(49)
  15090. #define BIT_ANTTRN_EN_8822B BIT(48)
  15091. #define BIT_SHIFT_TRAIN_STA_ADDR_8822B 0
  15092. #define BIT_MASK_TRAIN_STA_ADDR_8822B 0xffffffffffffL
  15093. #define BIT_TRAIN_STA_ADDR_8822B(x) \
  15094. (((x) & BIT_MASK_TRAIN_STA_ADDR_8822B) \
  15095. << BIT_SHIFT_TRAIN_STA_ADDR_8822B)
  15096. #define BITS_TRAIN_STA_ADDR_8822B \
  15097. (BIT_MASK_TRAIN_STA_ADDR_8822B << BIT_SHIFT_TRAIN_STA_ADDR_8822B)
  15098. #define BIT_CLEAR_TRAIN_STA_ADDR_8822B(x) ((x) & (~BITS_TRAIN_STA_ADDR_8822B))
  15099. #define BIT_GET_TRAIN_STA_ADDR_8822B(x) \
  15100. (((x) >> BIT_SHIFT_TRAIN_STA_ADDR_8822B) & \
  15101. BIT_MASK_TRAIN_STA_ADDR_8822B)
  15102. #define BIT_SET_TRAIN_STA_ADDR_8822B(x, v) \
  15103. (BIT_CLEAR_TRAIN_STA_ADDR_8822B(x) | BIT_TRAIN_STA_ADDR_8822B(v))
  15104. /* 2 REG_RSVD_0X7B4_8822B */
  15105. /* 2 REG_WMAC_PKTCNT_RWD_8822B */
  15106. #define BIT_SHIFT_PKTCNT_BSSIDMAP_8822B 4
  15107. #define BIT_MASK_PKTCNT_BSSIDMAP_8822B 0xf
  15108. #define BIT_PKTCNT_BSSIDMAP_8822B(x) \
  15109. (((x) & BIT_MASK_PKTCNT_BSSIDMAP_8822B) \
  15110. << BIT_SHIFT_PKTCNT_BSSIDMAP_8822B)
  15111. #define BITS_PKTCNT_BSSIDMAP_8822B \
  15112. (BIT_MASK_PKTCNT_BSSIDMAP_8822B << BIT_SHIFT_PKTCNT_BSSIDMAP_8822B)
  15113. #define BIT_CLEAR_PKTCNT_BSSIDMAP_8822B(x) ((x) & (~BITS_PKTCNT_BSSIDMAP_8822B))
  15114. #define BIT_GET_PKTCNT_BSSIDMAP_8822B(x) \
  15115. (((x) >> BIT_SHIFT_PKTCNT_BSSIDMAP_8822B) & \
  15116. BIT_MASK_PKTCNT_BSSIDMAP_8822B)
  15117. #define BIT_SET_PKTCNT_BSSIDMAP_8822B(x, v) \
  15118. (BIT_CLEAR_PKTCNT_BSSIDMAP_8822B(x) | BIT_PKTCNT_BSSIDMAP_8822B(v))
  15119. #define BIT_PKTCNT_CNTRST_8822B BIT(1)
  15120. #define BIT_PKTCNT_CNTEN_8822B BIT(0)
  15121. /* 2 REG_WMAC_PKTCNT_CTRL_8822B */
  15122. #define BIT_WMAC_PKTCNT_TRST_8822B BIT(9)
  15123. #define BIT_WMAC_PKTCNT_FEN_8822B BIT(8)
  15124. #define BIT_SHIFT_WMAC_PKTCNT_CFGAD_8822B 0
  15125. #define BIT_MASK_WMAC_PKTCNT_CFGAD_8822B 0xff
  15126. #define BIT_WMAC_PKTCNT_CFGAD_8822B(x) \
  15127. (((x) & BIT_MASK_WMAC_PKTCNT_CFGAD_8822B) \
  15128. << BIT_SHIFT_WMAC_PKTCNT_CFGAD_8822B)
  15129. #define BITS_WMAC_PKTCNT_CFGAD_8822B \
  15130. (BIT_MASK_WMAC_PKTCNT_CFGAD_8822B << BIT_SHIFT_WMAC_PKTCNT_CFGAD_8822B)
  15131. #define BIT_CLEAR_WMAC_PKTCNT_CFGAD_8822B(x) \
  15132. ((x) & (~BITS_WMAC_PKTCNT_CFGAD_8822B))
  15133. #define BIT_GET_WMAC_PKTCNT_CFGAD_8822B(x) \
  15134. (((x) >> BIT_SHIFT_WMAC_PKTCNT_CFGAD_8822B) & \
  15135. BIT_MASK_WMAC_PKTCNT_CFGAD_8822B)
  15136. #define BIT_SET_WMAC_PKTCNT_CFGAD_8822B(x, v) \
  15137. (BIT_CLEAR_WMAC_PKTCNT_CFGAD_8822B(x) | BIT_WMAC_PKTCNT_CFGAD_8822B(v))
  15138. /* 2 REG_IQ_DUMP_8822B */
  15139. #define BIT_SHIFT_R_WMAC_MATCH_REF_MAC_8822B (64 & CPU_OPT_WIDTH)
  15140. #define BIT_MASK_R_WMAC_MATCH_REF_MAC_8822B 0xffffffffL
  15141. #define BIT_R_WMAC_MATCH_REF_MAC_8822B(x) \
  15142. (((x) & BIT_MASK_R_WMAC_MATCH_REF_MAC_8822B) \
  15143. << BIT_SHIFT_R_WMAC_MATCH_REF_MAC_8822B)
  15144. #define BITS_R_WMAC_MATCH_REF_MAC_8822B \
  15145. (BIT_MASK_R_WMAC_MATCH_REF_MAC_8822B \
  15146. << BIT_SHIFT_R_WMAC_MATCH_REF_MAC_8822B)
  15147. #define BIT_CLEAR_R_WMAC_MATCH_REF_MAC_8822B(x) \
  15148. ((x) & (~BITS_R_WMAC_MATCH_REF_MAC_8822B))
  15149. #define BIT_GET_R_WMAC_MATCH_REF_MAC_8822B(x) \
  15150. (((x) >> BIT_SHIFT_R_WMAC_MATCH_REF_MAC_8822B) & \
  15151. BIT_MASK_R_WMAC_MATCH_REF_MAC_8822B)
  15152. #define BIT_SET_R_WMAC_MATCH_REF_MAC_8822B(x, v) \
  15153. (BIT_CLEAR_R_WMAC_MATCH_REF_MAC_8822B(x) | \
  15154. BIT_R_WMAC_MATCH_REF_MAC_8822B(v))
  15155. #define BIT_SHIFT_R_WMAC_MASK_LA_MAC_8822B (32 & CPU_OPT_WIDTH)
  15156. #define BIT_MASK_R_WMAC_MASK_LA_MAC_8822B 0xffffffffL
  15157. #define BIT_R_WMAC_MASK_LA_MAC_8822B(x) \
  15158. (((x) & BIT_MASK_R_WMAC_MASK_LA_MAC_8822B) \
  15159. << BIT_SHIFT_R_WMAC_MASK_LA_MAC_8822B)
  15160. #define BITS_R_WMAC_MASK_LA_MAC_8822B \
  15161. (BIT_MASK_R_WMAC_MASK_LA_MAC_8822B \
  15162. << BIT_SHIFT_R_WMAC_MASK_LA_MAC_8822B)
  15163. #define BIT_CLEAR_R_WMAC_MASK_LA_MAC_8822B(x) \
  15164. ((x) & (~BITS_R_WMAC_MASK_LA_MAC_8822B))
  15165. #define BIT_GET_R_WMAC_MASK_LA_MAC_8822B(x) \
  15166. (((x) >> BIT_SHIFT_R_WMAC_MASK_LA_MAC_8822B) & \
  15167. BIT_MASK_R_WMAC_MASK_LA_MAC_8822B)
  15168. #define BIT_SET_R_WMAC_MASK_LA_MAC_8822B(x, v) \
  15169. (BIT_CLEAR_R_WMAC_MASK_LA_MAC_8822B(x) | \
  15170. BIT_R_WMAC_MASK_LA_MAC_8822B(v))
  15171. #define BIT_SHIFT_DUMP_OK_ADDR_8822B 16
  15172. #define BIT_MASK_DUMP_OK_ADDR_8822B 0xffff
  15173. #define BIT_DUMP_OK_ADDR_8822B(x) \
  15174. (((x) & BIT_MASK_DUMP_OK_ADDR_8822B) << BIT_SHIFT_DUMP_OK_ADDR_8822B)
  15175. #define BITS_DUMP_OK_ADDR_8822B \
  15176. (BIT_MASK_DUMP_OK_ADDR_8822B << BIT_SHIFT_DUMP_OK_ADDR_8822B)
  15177. #define BIT_CLEAR_DUMP_OK_ADDR_8822B(x) ((x) & (~BITS_DUMP_OK_ADDR_8822B))
  15178. #define BIT_GET_DUMP_OK_ADDR_8822B(x) \
  15179. (((x) >> BIT_SHIFT_DUMP_OK_ADDR_8822B) & BIT_MASK_DUMP_OK_ADDR_8822B)
  15180. #define BIT_SET_DUMP_OK_ADDR_8822B(x, v) \
  15181. (BIT_CLEAR_DUMP_OK_ADDR_8822B(x) | BIT_DUMP_OK_ADDR_8822B(v))
  15182. #define BIT_SHIFT_R_TRIG_TIME_SEL_8822B 8
  15183. #define BIT_MASK_R_TRIG_TIME_SEL_8822B 0x7f
  15184. #define BIT_R_TRIG_TIME_SEL_8822B(x) \
  15185. (((x) & BIT_MASK_R_TRIG_TIME_SEL_8822B) \
  15186. << BIT_SHIFT_R_TRIG_TIME_SEL_8822B)
  15187. #define BITS_R_TRIG_TIME_SEL_8822B \
  15188. (BIT_MASK_R_TRIG_TIME_SEL_8822B << BIT_SHIFT_R_TRIG_TIME_SEL_8822B)
  15189. #define BIT_CLEAR_R_TRIG_TIME_SEL_8822B(x) ((x) & (~BITS_R_TRIG_TIME_SEL_8822B))
  15190. #define BIT_GET_R_TRIG_TIME_SEL_8822B(x) \
  15191. (((x) >> BIT_SHIFT_R_TRIG_TIME_SEL_8822B) & \
  15192. BIT_MASK_R_TRIG_TIME_SEL_8822B)
  15193. #define BIT_SET_R_TRIG_TIME_SEL_8822B(x, v) \
  15194. (BIT_CLEAR_R_TRIG_TIME_SEL_8822B(x) | BIT_R_TRIG_TIME_SEL_8822B(v))
  15195. #define BIT_SHIFT_R_MAC_TRIG_SEL_8822B 6
  15196. #define BIT_MASK_R_MAC_TRIG_SEL_8822B 0x3
  15197. #define BIT_R_MAC_TRIG_SEL_8822B(x) \
  15198. (((x) & BIT_MASK_R_MAC_TRIG_SEL_8822B) \
  15199. << BIT_SHIFT_R_MAC_TRIG_SEL_8822B)
  15200. #define BITS_R_MAC_TRIG_SEL_8822B \
  15201. (BIT_MASK_R_MAC_TRIG_SEL_8822B << BIT_SHIFT_R_MAC_TRIG_SEL_8822B)
  15202. #define BIT_CLEAR_R_MAC_TRIG_SEL_8822B(x) ((x) & (~BITS_R_MAC_TRIG_SEL_8822B))
  15203. #define BIT_GET_R_MAC_TRIG_SEL_8822B(x) \
  15204. (((x) >> BIT_SHIFT_R_MAC_TRIG_SEL_8822B) & \
  15205. BIT_MASK_R_MAC_TRIG_SEL_8822B)
  15206. #define BIT_SET_R_MAC_TRIG_SEL_8822B(x, v) \
  15207. (BIT_CLEAR_R_MAC_TRIG_SEL_8822B(x) | BIT_R_MAC_TRIG_SEL_8822B(v))
  15208. #define BIT_MAC_TRIG_REG_8822B BIT(5)
  15209. #define BIT_SHIFT_R_LEVEL_PULSE_SEL_8822B 3
  15210. #define BIT_MASK_R_LEVEL_PULSE_SEL_8822B 0x3
  15211. #define BIT_R_LEVEL_PULSE_SEL_8822B(x) \
  15212. (((x) & BIT_MASK_R_LEVEL_PULSE_SEL_8822B) \
  15213. << BIT_SHIFT_R_LEVEL_PULSE_SEL_8822B)
  15214. #define BITS_R_LEVEL_PULSE_SEL_8822B \
  15215. (BIT_MASK_R_LEVEL_PULSE_SEL_8822B << BIT_SHIFT_R_LEVEL_PULSE_SEL_8822B)
  15216. #define BIT_CLEAR_R_LEVEL_PULSE_SEL_8822B(x) \
  15217. ((x) & (~BITS_R_LEVEL_PULSE_SEL_8822B))
  15218. #define BIT_GET_R_LEVEL_PULSE_SEL_8822B(x) \
  15219. (((x) >> BIT_SHIFT_R_LEVEL_PULSE_SEL_8822B) & \
  15220. BIT_MASK_R_LEVEL_PULSE_SEL_8822B)
  15221. #define BIT_SET_R_LEVEL_PULSE_SEL_8822B(x, v) \
  15222. (BIT_CLEAR_R_LEVEL_PULSE_SEL_8822B(x) | BIT_R_LEVEL_PULSE_SEL_8822B(v))
  15223. #define BIT_EN_LA_MAC_8822B BIT(2)
  15224. #define BIT_R_EN_IQDUMP_8822B BIT(1)
  15225. #define BIT_R_IQDATA_DUMP_8822B BIT(0)
  15226. /* 2 REG_WMAC_FTM_CTL_8822B */
  15227. #define BIT_RXFTM_TXACK_SC_8822B BIT(6)
  15228. #define BIT_RXFTM_TXACK_BW_8822B BIT(5)
  15229. #define BIT_RXFTM_EN_8822B BIT(3)
  15230. #define BIT_RXFTMREQ_BYDRV_8822B BIT(2)
  15231. #define BIT_RXFTMREQ_EN_8822B BIT(1)
  15232. #define BIT_FTM_EN_8822B BIT(0)
  15233. /* 2 REG_WMAC_IQ_MDPK_FUNC_8822B */
  15234. /* 2 REG_WMAC_OPTION_FUNCTION_8822B */
  15235. #define BIT_SHIFT_R_WMAC_RX_FIL_LEN_8822B (64 & CPU_OPT_WIDTH)
  15236. #define BIT_MASK_R_WMAC_RX_FIL_LEN_8822B 0xffff
  15237. #define BIT_R_WMAC_RX_FIL_LEN_8822B(x) \
  15238. (((x) & BIT_MASK_R_WMAC_RX_FIL_LEN_8822B) \
  15239. << BIT_SHIFT_R_WMAC_RX_FIL_LEN_8822B)
  15240. #define BITS_R_WMAC_RX_FIL_LEN_8822B \
  15241. (BIT_MASK_R_WMAC_RX_FIL_LEN_8822B << BIT_SHIFT_R_WMAC_RX_FIL_LEN_8822B)
  15242. #define BIT_CLEAR_R_WMAC_RX_FIL_LEN_8822B(x) \
  15243. ((x) & (~BITS_R_WMAC_RX_FIL_LEN_8822B))
  15244. #define BIT_GET_R_WMAC_RX_FIL_LEN_8822B(x) \
  15245. (((x) >> BIT_SHIFT_R_WMAC_RX_FIL_LEN_8822B) & \
  15246. BIT_MASK_R_WMAC_RX_FIL_LEN_8822B)
  15247. #define BIT_SET_R_WMAC_RX_FIL_LEN_8822B(x, v) \
  15248. (BIT_CLEAR_R_WMAC_RX_FIL_LEN_8822B(x) | BIT_R_WMAC_RX_FIL_LEN_8822B(v))
  15249. #define BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_8822B (56 & CPU_OPT_WIDTH)
  15250. #define BIT_MASK_R_WMAC_RXFIFO_FULL_TH_8822B 0xff
  15251. #define BIT_R_WMAC_RXFIFO_FULL_TH_8822B(x) \
  15252. (((x) & BIT_MASK_R_WMAC_RXFIFO_FULL_TH_8822B) \
  15253. << BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_8822B)
  15254. #define BITS_R_WMAC_RXFIFO_FULL_TH_8822B \
  15255. (BIT_MASK_R_WMAC_RXFIFO_FULL_TH_8822B \
  15256. << BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_8822B)
  15257. #define BIT_CLEAR_R_WMAC_RXFIFO_FULL_TH_8822B(x) \
  15258. ((x) & (~BITS_R_WMAC_RXFIFO_FULL_TH_8822B))
  15259. #define BIT_GET_R_WMAC_RXFIFO_FULL_TH_8822B(x) \
  15260. (((x) >> BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_8822B) & \
  15261. BIT_MASK_R_WMAC_RXFIFO_FULL_TH_8822B)
  15262. #define BIT_SET_R_WMAC_RXFIFO_FULL_TH_8822B(x, v) \
  15263. (BIT_CLEAR_R_WMAC_RXFIFO_FULL_TH_8822B(x) | \
  15264. BIT_R_WMAC_RXFIFO_FULL_TH_8822B(v))
  15265. #define BIT_R_WMAC_RX_SYNCFIFO_SYNC_8822B BIT(55)
  15266. #define BIT_R_WMAC_RXRST_DLY_8822B BIT(54)
  15267. #define BIT_R_WMAC_SRCH_TXRPT_REF_DROP_8822B BIT(53)
  15268. #define BIT_R_WMAC_SRCH_TXRPT_UA1_8822B BIT(52)
  15269. #define BIT_R_WMAC_SRCH_TXRPT_TYPE_8822B BIT(51)
  15270. #define BIT_R_WMAC_NDP_RST_8822B BIT(50)
  15271. #define BIT_R_WMAC_POWINT_EN_8822B BIT(49)
  15272. #define BIT_R_WMAC_SRCH_TXRPT_PERPKT_8822B BIT(48)
  15273. #define BIT_R_WMAC_SRCH_TXRPT_MID_8822B BIT(47)
  15274. #define BIT_R_WMAC_PFIN_TOEN_8822B BIT(46)
  15275. #define BIT_R_WMAC_FIL_SECERR_8822B BIT(45)
  15276. #define BIT_R_WMAC_FIL_CTLPKTLEN_8822B BIT(44)
  15277. #define BIT_R_WMAC_FIL_FCTYPE_8822B BIT(43)
  15278. #define BIT_R_WMAC_FIL_FCPROVER_8822B BIT(42)
  15279. #define BIT_R_WMAC_PHYSTS_SNIF_8822B BIT(41)
  15280. #define BIT_R_WMAC_PHYSTS_PLCP_8822B BIT(40)
  15281. #define BIT_R_MAC_TCR_VBONF_RD_8822B BIT(39)
  15282. #define BIT_R_WMAC_TCR_MPAR_NDP_8822B BIT(38)
  15283. #define BIT_R_WMAC_NDP_FILTER_8822B BIT(37)
  15284. #define BIT_R_WMAC_RXLEN_SEL_8822B BIT(36)
  15285. #define BIT_R_WMAC_RXLEN_SEL1_8822B BIT(35)
  15286. #define BIT_R_OFDM_FILTER_8822B BIT(34)
  15287. #define BIT_R_WMAC_CHK_OFDM_LEN_8822B BIT(33)
  15288. #define BIT_R_WMAC_CHK_CCK_LEN_8822B BIT(32)
  15289. #define BIT_SHIFT_R_OFDM_LEN_8822B 26
  15290. #define BIT_MASK_R_OFDM_LEN_8822B 0x3f
  15291. #define BIT_R_OFDM_LEN_8822B(x) \
  15292. (((x) & BIT_MASK_R_OFDM_LEN_8822B) << BIT_SHIFT_R_OFDM_LEN_8822B)
  15293. #define BITS_R_OFDM_LEN_8822B \
  15294. (BIT_MASK_R_OFDM_LEN_8822B << BIT_SHIFT_R_OFDM_LEN_8822B)
  15295. #define BIT_CLEAR_R_OFDM_LEN_8822B(x) ((x) & (~BITS_R_OFDM_LEN_8822B))
  15296. #define BIT_GET_R_OFDM_LEN_8822B(x) \
  15297. (((x) >> BIT_SHIFT_R_OFDM_LEN_8822B) & BIT_MASK_R_OFDM_LEN_8822B)
  15298. #define BIT_SET_R_OFDM_LEN_8822B(x, v) \
  15299. (BIT_CLEAR_R_OFDM_LEN_8822B(x) | BIT_R_OFDM_LEN_8822B(v))
  15300. #define BIT_SHIFT_R_CCK_LEN_8822B 0
  15301. #define BIT_MASK_R_CCK_LEN_8822B 0xffff
  15302. #define BIT_R_CCK_LEN_8822B(x) \
  15303. (((x) & BIT_MASK_R_CCK_LEN_8822B) << BIT_SHIFT_R_CCK_LEN_8822B)
  15304. #define BITS_R_CCK_LEN_8822B \
  15305. (BIT_MASK_R_CCK_LEN_8822B << BIT_SHIFT_R_CCK_LEN_8822B)
  15306. #define BIT_CLEAR_R_CCK_LEN_8822B(x) ((x) & (~BITS_R_CCK_LEN_8822B))
  15307. #define BIT_GET_R_CCK_LEN_8822B(x) \
  15308. (((x) >> BIT_SHIFT_R_CCK_LEN_8822B) & BIT_MASK_R_CCK_LEN_8822B)
  15309. #define BIT_SET_R_CCK_LEN_8822B(x, v) \
  15310. (BIT_CLEAR_R_CCK_LEN_8822B(x) | BIT_R_CCK_LEN_8822B(v))
  15311. /* 2 REG_RX_FILTER_FUNCTION_8822B */
  15312. #define BIT_R_WMAC_MHRDDY_LATCH_8822B BIT(14)
  15313. #define BIT_R_WMAC_MHRDDY_CLR_8822B BIT(13)
  15314. #define BIT_R_RXPKTCTL_FSM_BASED_MPDURDY1_8822B BIT(12)
  15315. #define BIT_WMAC_DIS_VHT_PLCP_CHK_MU_8822B BIT(11)
  15316. #define BIT_R_CHK_DELIMIT_LEN_8822B BIT(10)
  15317. #define BIT_R_REAPTER_ADDR_MATCH_8822B BIT(9)
  15318. #define BIT_R_RXPKTCTL_FSM_BASED_MPDURDY_8822B BIT(8)
  15319. #define BIT_R_LATCH_MACHRDY_8822B BIT(7)
  15320. #define BIT_R_WMAC_RXFIL_REND_8822B BIT(6)
  15321. #define BIT_R_WMAC_MPDURDY_CLR_8822B BIT(5)
  15322. #define BIT_R_WMAC_CLRRXSEC_8822B BIT(4)
  15323. #define BIT_R_WMAC_RXFIL_RDEL_8822B BIT(3)
  15324. #define BIT_R_WMAC_RXFIL_FCSE_8822B BIT(2)
  15325. #define BIT_R_WMAC_RXFIL_MESH_DEL_8822B BIT(1)
  15326. #define BIT_R_WMAC_RXFIL_MASKM_8822B BIT(0)
  15327. /* 2 REG_NDP_SIG_8822B */
  15328. #define BIT_SHIFT_R_WMAC_TXNDP_SIGB_8822B 0
  15329. #define BIT_MASK_R_WMAC_TXNDP_SIGB_8822B 0x1fffff
  15330. #define BIT_R_WMAC_TXNDP_SIGB_8822B(x) \
  15331. (((x) & BIT_MASK_R_WMAC_TXNDP_SIGB_8822B) \
  15332. << BIT_SHIFT_R_WMAC_TXNDP_SIGB_8822B)
  15333. #define BITS_R_WMAC_TXNDP_SIGB_8822B \
  15334. (BIT_MASK_R_WMAC_TXNDP_SIGB_8822B << BIT_SHIFT_R_WMAC_TXNDP_SIGB_8822B)
  15335. #define BIT_CLEAR_R_WMAC_TXNDP_SIGB_8822B(x) \
  15336. ((x) & (~BITS_R_WMAC_TXNDP_SIGB_8822B))
  15337. #define BIT_GET_R_WMAC_TXNDP_SIGB_8822B(x) \
  15338. (((x) >> BIT_SHIFT_R_WMAC_TXNDP_SIGB_8822B) & \
  15339. BIT_MASK_R_WMAC_TXNDP_SIGB_8822B)
  15340. #define BIT_SET_R_WMAC_TXNDP_SIGB_8822B(x, v) \
  15341. (BIT_CLEAR_R_WMAC_TXNDP_SIGB_8822B(x) | BIT_R_WMAC_TXNDP_SIGB_8822B(v))
  15342. /* 2 REG_TXCMD_INFO_FOR_RSP_PKT_8822B */
  15343. #define BIT_SHIFT_R_MAC_DEBUG_8822B (32 & CPU_OPT_WIDTH)
  15344. #define BIT_MASK_R_MAC_DEBUG_8822B 0xffffffffL
  15345. #define BIT_R_MAC_DEBUG_8822B(x) \
  15346. (((x) & BIT_MASK_R_MAC_DEBUG_8822B) << BIT_SHIFT_R_MAC_DEBUG_8822B)
  15347. #define BITS_R_MAC_DEBUG_8822B \
  15348. (BIT_MASK_R_MAC_DEBUG_8822B << BIT_SHIFT_R_MAC_DEBUG_8822B)
  15349. #define BIT_CLEAR_R_MAC_DEBUG_8822B(x) ((x) & (~BITS_R_MAC_DEBUG_8822B))
  15350. #define BIT_GET_R_MAC_DEBUG_8822B(x) \
  15351. (((x) >> BIT_SHIFT_R_MAC_DEBUG_8822B) & BIT_MASK_R_MAC_DEBUG_8822B)
  15352. #define BIT_SET_R_MAC_DEBUG_8822B(x, v) \
  15353. (BIT_CLEAR_R_MAC_DEBUG_8822B(x) | BIT_R_MAC_DEBUG_8822B(v))
  15354. #define BIT_SHIFT_R_MAC_DBG_SHIFT_8822B 8
  15355. #define BIT_MASK_R_MAC_DBG_SHIFT_8822B 0x7
  15356. #define BIT_R_MAC_DBG_SHIFT_8822B(x) \
  15357. (((x) & BIT_MASK_R_MAC_DBG_SHIFT_8822B) \
  15358. << BIT_SHIFT_R_MAC_DBG_SHIFT_8822B)
  15359. #define BITS_R_MAC_DBG_SHIFT_8822B \
  15360. (BIT_MASK_R_MAC_DBG_SHIFT_8822B << BIT_SHIFT_R_MAC_DBG_SHIFT_8822B)
  15361. #define BIT_CLEAR_R_MAC_DBG_SHIFT_8822B(x) ((x) & (~BITS_R_MAC_DBG_SHIFT_8822B))
  15362. #define BIT_GET_R_MAC_DBG_SHIFT_8822B(x) \
  15363. (((x) >> BIT_SHIFT_R_MAC_DBG_SHIFT_8822B) & \
  15364. BIT_MASK_R_MAC_DBG_SHIFT_8822B)
  15365. #define BIT_SET_R_MAC_DBG_SHIFT_8822B(x, v) \
  15366. (BIT_CLEAR_R_MAC_DBG_SHIFT_8822B(x) | BIT_R_MAC_DBG_SHIFT_8822B(v))
  15367. #define BIT_SHIFT_R_MAC_DBG_SEL_8822B 0
  15368. #define BIT_MASK_R_MAC_DBG_SEL_8822B 0x3
  15369. #define BIT_R_MAC_DBG_SEL_8822B(x) \
  15370. (((x) & BIT_MASK_R_MAC_DBG_SEL_8822B) << BIT_SHIFT_R_MAC_DBG_SEL_8822B)
  15371. #define BITS_R_MAC_DBG_SEL_8822B \
  15372. (BIT_MASK_R_MAC_DBG_SEL_8822B << BIT_SHIFT_R_MAC_DBG_SEL_8822B)
  15373. #define BIT_CLEAR_R_MAC_DBG_SEL_8822B(x) ((x) & (~BITS_R_MAC_DBG_SEL_8822B))
  15374. #define BIT_GET_R_MAC_DBG_SEL_8822B(x) \
  15375. (((x) >> BIT_SHIFT_R_MAC_DBG_SEL_8822B) & BIT_MASK_R_MAC_DBG_SEL_8822B)
  15376. #define BIT_SET_R_MAC_DBG_SEL_8822B(x, v) \
  15377. (BIT_CLEAR_R_MAC_DBG_SEL_8822B(x) | BIT_R_MAC_DBG_SEL_8822B(v))
  15378. /* 2 REG_RTS_ADDRESS_0_8822B */
  15379. /* 2 REG_RTS_ADDRESS_1_8822B */
  15380. /* 2 REG_RPFM_MAP1_8822B */
  15381. #define BIT_DATA_RPFM15EN_8822B BIT(15)
  15382. #define BIT_DATA_RPFM14EN_8822B BIT(14)
  15383. #define BIT_DATA_RPFM13EN_8822B BIT(13)
  15384. #define BIT_DATA_RPFM12EN_8822B BIT(12)
  15385. #define BIT_DATA_RPFM11EN_8822B BIT(11)
  15386. #define BIT_DATA_RPFM10EN_8822B BIT(10)
  15387. #define BIT_DATA_RPFM9EN_8822B BIT(9)
  15388. #define BIT_DATA_RPFM8EN_8822B BIT(8)
  15389. #define BIT_DATA_RPFM7EN_8822B BIT(7)
  15390. #define BIT_DATA_RPFM6EN_8822B BIT(6)
  15391. #define BIT_DATA_RPFM5EN_8822B BIT(5)
  15392. #define BIT_DATA_RPFM4EN_8822B BIT(4)
  15393. #define BIT_DATA_RPFM3EN_8822B BIT(3)
  15394. #define BIT_DATA_RPFM2EN_8822B BIT(2)
  15395. #define BIT_DATA_RPFM1EN_8822B BIT(1)
  15396. #define BIT_DATA_RPFM0EN_8822B BIT(0)
  15397. /* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_CTRL_V1_8822B */
  15398. #define BIT_LTECOEX_ACCESS_START_V1_8822B BIT(31)
  15399. #define BIT_LTECOEX_WRITE_MODE_V1_8822B BIT(30)
  15400. #define BIT_LTECOEX_READY_BIT_V1_8822B BIT(29)
  15401. #define BIT_SHIFT_WRITE_BYTE_EN_V1_8822B 16
  15402. #define BIT_MASK_WRITE_BYTE_EN_V1_8822B 0xf
  15403. #define BIT_WRITE_BYTE_EN_V1_8822B(x) \
  15404. (((x) & BIT_MASK_WRITE_BYTE_EN_V1_8822B) \
  15405. << BIT_SHIFT_WRITE_BYTE_EN_V1_8822B)
  15406. #define BITS_WRITE_BYTE_EN_V1_8822B \
  15407. (BIT_MASK_WRITE_BYTE_EN_V1_8822B << BIT_SHIFT_WRITE_BYTE_EN_V1_8822B)
  15408. #define BIT_CLEAR_WRITE_BYTE_EN_V1_8822B(x) \
  15409. ((x) & (~BITS_WRITE_BYTE_EN_V1_8822B))
  15410. #define BIT_GET_WRITE_BYTE_EN_V1_8822B(x) \
  15411. (((x) >> BIT_SHIFT_WRITE_BYTE_EN_V1_8822B) & \
  15412. BIT_MASK_WRITE_BYTE_EN_V1_8822B)
  15413. #define BIT_SET_WRITE_BYTE_EN_V1_8822B(x, v) \
  15414. (BIT_CLEAR_WRITE_BYTE_EN_V1_8822B(x) | BIT_WRITE_BYTE_EN_V1_8822B(v))
  15415. #define BIT_SHIFT_LTECOEX_REG_ADDR_V1_8822B 0
  15416. #define BIT_MASK_LTECOEX_REG_ADDR_V1_8822B 0xffff
  15417. #define BIT_LTECOEX_REG_ADDR_V1_8822B(x) \
  15418. (((x) & BIT_MASK_LTECOEX_REG_ADDR_V1_8822B) \
  15419. << BIT_SHIFT_LTECOEX_REG_ADDR_V1_8822B)
  15420. #define BITS_LTECOEX_REG_ADDR_V1_8822B \
  15421. (BIT_MASK_LTECOEX_REG_ADDR_V1_8822B \
  15422. << BIT_SHIFT_LTECOEX_REG_ADDR_V1_8822B)
  15423. #define BIT_CLEAR_LTECOEX_REG_ADDR_V1_8822B(x) \
  15424. ((x) & (~BITS_LTECOEX_REG_ADDR_V1_8822B))
  15425. #define BIT_GET_LTECOEX_REG_ADDR_V1_8822B(x) \
  15426. (((x) >> BIT_SHIFT_LTECOEX_REG_ADDR_V1_8822B) & \
  15427. BIT_MASK_LTECOEX_REG_ADDR_V1_8822B)
  15428. #define BIT_SET_LTECOEX_REG_ADDR_V1_8822B(x, v) \
  15429. (BIT_CLEAR_LTECOEX_REG_ADDR_V1_8822B(x) | \
  15430. BIT_LTECOEX_REG_ADDR_V1_8822B(v))
  15431. /* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_WRITE_DATA_V1_8822B */
  15432. #define BIT_SHIFT_LTECOEX_W_DATA_V1_8822B 0
  15433. #define BIT_MASK_LTECOEX_W_DATA_V1_8822B 0xffffffffL
  15434. #define BIT_LTECOEX_W_DATA_V1_8822B(x) \
  15435. (((x) & BIT_MASK_LTECOEX_W_DATA_V1_8822B) \
  15436. << BIT_SHIFT_LTECOEX_W_DATA_V1_8822B)
  15437. #define BITS_LTECOEX_W_DATA_V1_8822B \
  15438. (BIT_MASK_LTECOEX_W_DATA_V1_8822B << BIT_SHIFT_LTECOEX_W_DATA_V1_8822B)
  15439. #define BIT_CLEAR_LTECOEX_W_DATA_V1_8822B(x) \
  15440. ((x) & (~BITS_LTECOEX_W_DATA_V1_8822B))
  15441. #define BIT_GET_LTECOEX_W_DATA_V1_8822B(x) \
  15442. (((x) >> BIT_SHIFT_LTECOEX_W_DATA_V1_8822B) & \
  15443. BIT_MASK_LTECOEX_W_DATA_V1_8822B)
  15444. #define BIT_SET_LTECOEX_W_DATA_V1_8822B(x, v) \
  15445. (BIT_CLEAR_LTECOEX_W_DATA_V1_8822B(x) | BIT_LTECOEX_W_DATA_V1_8822B(v))
  15446. /* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_READ_DATA_V1_8822B */
  15447. #define BIT_SHIFT_LTECOEX_R_DATA_V1_8822B 0
  15448. #define BIT_MASK_LTECOEX_R_DATA_V1_8822B 0xffffffffL
  15449. #define BIT_LTECOEX_R_DATA_V1_8822B(x) \
  15450. (((x) & BIT_MASK_LTECOEX_R_DATA_V1_8822B) \
  15451. << BIT_SHIFT_LTECOEX_R_DATA_V1_8822B)
  15452. #define BITS_LTECOEX_R_DATA_V1_8822B \
  15453. (BIT_MASK_LTECOEX_R_DATA_V1_8822B << BIT_SHIFT_LTECOEX_R_DATA_V1_8822B)
  15454. #define BIT_CLEAR_LTECOEX_R_DATA_V1_8822B(x) \
  15455. ((x) & (~BITS_LTECOEX_R_DATA_V1_8822B))
  15456. #define BIT_GET_LTECOEX_R_DATA_V1_8822B(x) \
  15457. (((x) >> BIT_SHIFT_LTECOEX_R_DATA_V1_8822B) & \
  15458. BIT_MASK_LTECOEX_R_DATA_V1_8822B)
  15459. #define BIT_SET_LTECOEX_R_DATA_V1_8822B(x, v) \
  15460. (BIT_CLEAR_LTECOEX_R_DATA_V1_8822B(x) | BIT_LTECOEX_R_DATA_V1_8822B(v))
  15461. /* 2 REG_NOT_VALID_8822B */
  15462. /* 2 REG_SDIO_TX_CTRL_8822B */
  15463. #define BIT_SHIFT_SDIO_INT_TIMEOUT_8822B 16
  15464. #define BIT_MASK_SDIO_INT_TIMEOUT_8822B 0xffff
  15465. #define BIT_SDIO_INT_TIMEOUT_8822B(x) \
  15466. (((x) & BIT_MASK_SDIO_INT_TIMEOUT_8822B) \
  15467. << BIT_SHIFT_SDIO_INT_TIMEOUT_8822B)
  15468. #define BITS_SDIO_INT_TIMEOUT_8822B \
  15469. (BIT_MASK_SDIO_INT_TIMEOUT_8822B << BIT_SHIFT_SDIO_INT_TIMEOUT_8822B)
  15470. #define BIT_CLEAR_SDIO_INT_TIMEOUT_8822B(x) \
  15471. ((x) & (~BITS_SDIO_INT_TIMEOUT_8822B))
  15472. #define BIT_GET_SDIO_INT_TIMEOUT_8822B(x) \
  15473. (((x) >> BIT_SHIFT_SDIO_INT_TIMEOUT_8822B) & \
  15474. BIT_MASK_SDIO_INT_TIMEOUT_8822B)
  15475. #define BIT_SET_SDIO_INT_TIMEOUT_8822B(x, v) \
  15476. (BIT_CLEAR_SDIO_INT_TIMEOUT_8822B(x) | BIT_SDIO_INT_TIMEOUT_8822B(v))
  15477. #define BIT_IO_ERR_STATUS_8822B BIT(15)
  15478. #define BIT_REPLY_ERRCRC_IN_DATA_8822B BIT(9)
  15479. #define BIT_EN_CMD53_OVERLAP_8822B BIT(8)
  15480. #define BIT_REPLY_ERR_IN_R5_8822B BIT(7)
  15481. #define BIT_R18A_EN_8822B BIT(6)
  15482. #define BIT_SDIO_CMD_FORCE_VLD_8822B BIT(5)
  15483. #define BIT_INIT_CMD_EN_8822B BIT(4)
  15484. #define BIT_EN_RXDMA_MASK_INT_8822B BIT(2)
  15485. #define BIT_EN_MASK_TIMER_8822B BIT(1)
  15486. #define BIT_CMD_ERR_STOP_INT_EN_8822B BIT(0)
  15487. /* 2 REG_SDIO_HIMR_8822B */
  15488. #define BIT_SDIO_CRCERR_MSK_8822B BIT(31)
  15489. #define BIT_SDIO_HSISR3_IND_MSK_8822B BIT(30)
  15490. #define BIT_SDIO_HSISR2_IND_MSK_8822B BIT(29)
  15491. #define BIT_SDIO_HEISR_IND_MSK_8822B BIT(28)
  15492. #define BIT_SDIO_CTWEND_MSK_8822B BIT(27)
  15493. #define BIT_SDIO_ATIMEND_E_MSK_8822B BIT(26)
  15494. #define BIT_SDIIO_ATIMEND_MSK_8822B BIT(25)
  15495. #define BIT_SDIO_OCPINT_MSK_8822B BIT(24)
  15496. #define BIT_SDIO_PSTIMEOUT_MSK_8822B BIT(23)
  15497. #define BIT_SDIO_GTINT4_MSK_8822B BIT(22)
  15498. #define BIT_SDIO_GTINT3_MSK_8822B BIT(21)
  15499. #define BIT_SDIO_HSISR_IND_MSK_8822B BIT(20)
  15500. #define BIT_SDIO_CPWM2_MSK_8822B BIT(19)
  15501. #define BIT_SDIO_CPWM1_MSK_8822B BIT(18)
  15502. #define BIT_SDIO_C2HCMD_INT_MSK_8822B BIT(17)
  15503. #define BIT_SDIO_BCNERLY_INT_MSK_8822B BIT(16)
  15504. #define BIT_SDIO_TXBCNERR_MSK_8822B BIT(7)
  15505. #define BIT_SDIO_TXBCNOK_MSK_8822B BIT(6)
  15506. #define BIT_SDIO_RXFOVW_MSK_8822B BIT(5)
  15507. #define BIT_SDIO_TXFOVW_MSK_8822B BIT(4)
  15508. #define BIT_SDIO_RXERR_MSK_8822B BIT(3)
  15509. #define BIT_SDIO_TXERR_MSK_8822B BIT(2)
  15510. #define BIT_SDIO_AVAL_MSK_8822B BIT(1)
  15511. #define BIT_RX_REQUEST_MSK_8822B BIT(0)
  15512. /* 2 REG_SDIO_HISR_8822B */
  15513. #define BIT_SDIO_CRCERR_8822B BIT(31)
  15514. #define BIT_SDIO_HSISR3_IND_8822B BIT(30)
  15515. #define BIT_SDIO_HSISR2_IND_8822B BIT(29)
  15516. #define BIT_SDIO_HEISR_IND_8822B BIT(28)
  15517. #define BIT_SDIO_CTWEND_8822B BIT(27)
  15518. #define BIT_SDIO_ATIMEND_E_8822B BIT(26)
  15519. #define BIT_SDIO_ATIMEND_8822B BIT(25)
  15520. #define BIT_SDIO_OCPINT_8822B BIT(24)
  15521. #define BIT_SDIO_PSTIMEOUT_8822B BIT(23)
  15522. #define BIT_SDIO_GTINT4_8822B BIT(22)
  15523. #define BIT_SDIO_GTINT3_8822B BIT(21)
  15524. #define BIT_SDIO_HSISR_IND_8822B BIT(20)
  15525. #define BIT_SDIO_CPWM2_8822B BIT(19)
  15526. #define BIT_SDIO_CPWM1_8822B BIT(18)
  15527. #define BIT_SDIO_C2HCMD_INT_8822B BIT(17)
  15528. #define BIT_SDIO_BCNERLY_INT_8822B BIT(16)
  15529. #define BIT_SDIO_TXBCNERR_8822B BIT(7)
  15530. #define BIT_SDIO_TXBCNOK_8822B BIT(6)
  15531. #define BIT_SDIO_RXFOVW_8822B BIT(5)
  15532. #define BIT_SDIO_TXFOVW_8822B BIT(4)
  15533. #define BIT_SDIO_RXERR_8822B BIT(3)
  15534. #define BIT_SDIO_TXERR_8822B BIT(2)
  15535. #define BIT_SDIO_AVAL_8822B BIT(1)
  15536. #define BIT_RX_REQUEST_8822B BIT(0)
  15537. /* 2 REG_SDIO_RX_REQ_LEN_8822B */
  15538. #define BIT_SHIFT_RX_REQ_LEN_V1_8822B 0
  15539. #define BIT_MASK_RX_REQ_LEN_V1_8822B 0x3ffff
  15540. #define BIT_RX_REQ_LEN_V1_8822B(x) \
  15541. (((x) & BIT_MASK_RX_REQ_LEN_V1_8822B) << BIT_SHIFT_RX_REQ_LEN_V1_8822B)
  15542. #define BITS_RX_REQ_LEN_V1_8822B \
  15543. (BIT_MASK_RX_REQ_LEN_V1_8822B << BIT_SHIFT_RX_REQ_LEN_V1_8822B)
  15544. #define BIT_CLEAR_RX_REQ_LEN_V1_8822B(x) ((x) & (~BITS_RX_REQ_LEN_V1_8822B))
  15545. #define BIT_GET_RX_REQ_LEN_V1_8822B(x) \
  15546. (((x) >> BIT_SHIFT_RX_REQ_LEN_V1_8822B) & BIT_MASK_RX_REQ_LEN_V1_8822B)
  15547. #define BIT_SET_RX_REQ_LEN_V1_8822B(x, v) \
  15548. (BIT_CLEAR_RX_REQ_LEN_V1_8822B(x) | BIT_RX_REQ_LEN_V1_8822B(v))
  15549. /* 2 REG_SDIO_FREE_TXPG_SEQ_V1_8822B */
  15550. #define BIT_SHIFT_FREE_TXPG_SEQ_8822B 0
  15551. #define BIT_MASK_FREE_TXPG_SEQ_8822B 0xff
  15552. #define BIT_FREE_TXPG_SEQ_8822B(x) \
  15553. (((x) & BIT_MASK_FREE_TXPG_SEQ_8822B) << BIT_SHIFT_FREE_TXPG_SEQ_8822B)
  15554. #define BITS_FREE_TXPG_SEQ_8822B \
  15555. (BIT_MASK_FREE_TXPG_SEQ_8822B << BIT_SHIFT_FREE_TXPG_SEQ_8822B)
  15556. #define BIT_CLEAR_FREE_TXPG_SEQ_8822B(x) ((x) & (~BITS_FREE_TXPG_SEQ_8822B))
  15557. #define BIT_GET_FREE_TXPG_SEQ_8822B(x) \
  15558. (((x) >> BIT_SHIFT_FREE_TXPG_SEQ_8822B) & BIT_MASK_FREE_TXPG_SEQ_8822B)
  15559. #define BIT_SET_FREE_TXPG_SEQ_8822B(x, v) \
  15560. (BIT_CLEAR_FREE_TXPG_SEQ_8822B(x) | BIT_FREE_TXPG_SEQ_8822B(v))
  15561. /* 2 REG_SDIO_FREE_TXPG_8822B */
  15562. #define BIT_SHIFT_MID_FREEPG_V1_8822B 16
  15563. #define BIT_MASK_MID_FREEPG_V1_8822B 0xfff
  15564. #define BIT_MID_FREEPG_V1_8822B(x) \
  15565. (((x) & BIT_MASK_MID_FREEPG_V1_8822B) << BIT_SHIFT_MID_FREEPG_V1_8822B)
  15566. #define BITS_MID_FREEPG_V1_8822B \
  15567. (BIT_MASK_MID_FREEPG_V1_8822B << BIT_SHIFT_MID_FREEPG_V1_8822B)
  15568. #define BIT_CLEAR_MID_FREEPG_V1_8822B(x) ((x) & (~BITS_MID_FREEPG_V1_8822B))
  15569. #define BIT_GET_MID_FREEPG_V1_8822B(x) \
  15570. (((x) >> BIT_SHIFT_MID_FREEPG_V1_8822B) & BIT_MASK_MID_FREEPG_V1_8822B)
  15571. #define BIT_SET_MID_FREEPG_V1_8822B(x, v) \
  15572. (BIT_CLEAR_MID_FREEPG_V1_8822B(x) | BIT_MID_FREEPG_V1_8822B(v))
  15573. #define BIT_SHIFT_HIQ_FREEPG_V1_8822B 0
  15574. #define BIT_MASK_HIQ_FREEPG_V1_8822B 0xfff
  15575. #define BIT_HIQ_FREEPG_V1_8822B(x) \
  15576. (((x) & BIT_MASK_HIQ_FREEPG_V1_8822B) << BIT_SHIFT_HIQ_FREEPG_V1_8822B)
  15577. #define BITS_HIQ_FREEPG_V1_8822B \
  15578. (BIT_MASK_HIQ_FREEPG_V1_8822B << BIT_SHIFT_HIQ_FREEPG_V1_8822B)
  15579. #define BIT_CLEAR_HIQ_FREEPG_V1_8822B(x) ((x) & (~BITS_HIQ_FREEPG_V1_8822B))
  15580. #define BIT_GET_HIQ_FREEPG_V1_8822B(x) \
  15581. (((x) >> BIT_SHIFT_HIQ_FREEPG_V1_8822B) & BIT_MASK_HIQ_FREEPG_V1_8822B)
  15582. #define BIT_SET_HIQ_FREEPG_V1_8822B(x, v) \
  15583. (BIT_CLEAR_HIQ_FREEPG_V1_8822B(x) | BIT_HIQ_FREEPG_V1_8822B(v))
  15584. /* 2 REG_SDIO_FREE_TXPG2_8822B */
  15585. #define BIT_SHIFT_PUB_FREEPG_V1_8822B 16
  15586. #define BIT_MASK_PUB_FREEPG_V1_8822B 0xfff
  15587. #define BIT_PUB_FREEPG_V1_8822B(x) \
  15588. (((x) & BIT_MASK_PUB_FREEPG_V1_8822B) << BIT_SHIFT_PUB_FREEPG_V1_8822B)
  15589. #define BITS_PUB_FREEPG_V1_8822B \
  15590. (BIT_MASK_PUB_FREEPG_V1_8822B << BIT_SHIFT_PUB_FREEPG_V1_8822B)
  15591. #define BIT_CLEAR_PUB_FREEPG_V1_8822B(x) ((x) & (~BITS_PUB_FREEPG_V1_8822B))
  15592. #define BIT_GET_PUB_FREEPG_V1_8822B(x) \
  15593. (((x) >> BIT_SHIFT_PUB_FREEPG_V1_8822B) & BIT_MASK_PUB_FREEPG_V1_8822B)
  15594. #define BIT_SET_PUB_FREEPG_V1_8822B(x, v) \
  15595. (BIT_CLEAR_PUB_FREEPG_V1_8822B(x) | BIT_PUB_FREEPG_V1_8822B(v))
  15596. #define BIT_SHIFT_LOW_FREEPG_V1_8822B 0
  15597. #define BIT_MASK_LOW_FREEPG_V1_8822B 0xfff
  15598. #define BIT_LOW_FREEPG_V1_8822B(x) \
  15599. (((x) & BIT_MASK_LOW_FREEPG_V1_8822B) << BIT_SHIFT_LOW_FREEPG_V1_8822B)
  15600. #define BITS_LOW_FREEPG_V1_8822B \
  15601. (BIT_MASK_LOW_FREEPG_V1_8822B << BIT_SHIFT_LOW_FREEPG_V1_8822B)
  15602. #define BIT_CLEAR_LOW_FREEPG_V1_8822B(x) ((x) & (~BITS_LOW_FREEPG_V1_8822B))
  15603. #define BIT_GET_LOW_FREEPG_V1_8822B(x) \
  15604. (((x) >> BIT_SHIFT_LOW_FREEPG_V1_8822B) & BIT_MASK_LOW_FREEPG_V1_8822B)
  15605. #define BIT_SET_LOW_FREEPG_V1_8822B(x, v) \
  15606. (BIT_CLEAR_LOW_FREEPG_V1_8822B(x) | BIT_LOW_FREEPG_V1_8822B(v))
  15607. /* 2 REG_SDIO_OQT_FREE_TXPG_V1_8822B */
  15608. #define BIT_SHIFT_NOAC_OQT_FREEPG_V1_8822B 24
  15609. #define BIT_MASK_NOAC_OQT_FREEPG_V1_8822B 0xff
  15610. #define BIT_NOAC_OQT_FREEPG_V1_8822B(x) \
  15611. (((x) & BIT_MASK_NOAC_OQT_FREEPG_V1_8822B) \
  15612. << BIT_SHIFT_NOAC_OQT_FREEPG_V1_8822B)
  15613. #define BITS_NOAC_OQT_FREEPG_V1_8822B \
  15614. (BIT_MASK_NOAC_OQT_FREEPG_V1_8822B \
  15615. << BIT_SHIFT_NOAC_OQT_FREEPG_V1_8822B)
  15616. #define BIT_CLEAR_NOAC_OQT_FREEPG_V1_8822B(x) \
  15617. ((x) & (~BITS_NOAC_OQT_FREEPG_V1_8822B))
  15618. #define BIT_GET_NOAC_OQT_FREEPG_V1_8822B(x) \
  15619. (((x) >> BIT_SHIFT_NOAC_OQT_FREEPG_V1_8822B) & \
  15620. BIT_MASK_NOAC_OQT_FREEPG_V1_8822B)
  15621. #define BIT_SET_NOAC_OQT_FREEPG_V1_8822B(x, v) \
  15622. (BIT_CLEAR_NOAC_OQT_FREEPG_V1_8822B(x) | \
  15623. BIT_NOAC_OQT_FREEPG_V1_8822B(v))
  15624. #define BIT_SHIFT_AC_OQT_FREEPG_V1_8822B 16
  15625. #define BIT_MASK_AC_OQT_FREEPG_V1_8822B 0xff
  15626. #define BIT_AC_OQT_FREEPG_V1_8822B(x) \
  15627. (((x) & BIT_MASK_AC_OQT_FREEPG_V1_8822B) \
  15628. << BIT_SHIFT_AC_OQT_FREEPG_V1_8822B)
  15629. #define BITS_AC_OQT_FREEPG_V1_8822B \
  15630. (BIT_MASK_AC_OQT_FREEPG_V1_8822B << BIT_SHIFT_AC_OQT_FREEPG_V1_8822B)
  15631. #define BIT_CLEAR_AC_OQT_FREEPG_V1_8822B(x) \
  15632. ((x) & (~BITS_AC_OQT_FREEPG_V1_8822B))
  15633. #define BIT_GET_AC_OQT_FREEPG_V1_8822B(x) \
  15634. (((x) >> BIT_SHIFT_AC_OQT_FREEPG_V1_8822B) & \
  15635. BIT_MASK_AC_OQT_FREEPG_V1_8822B)
  15636. #define BIT_SET_AC_OQT_FREEPG_V1_8822B(x, v) \
  15637. (BIT_CLEAR_AC_OQT_FREEPG_V1_8822B(x) | BIT_AC_OQT_FREEPG_V1_8822B(v))
  15638. #define BIT_SHIFT_EXQ_FREEPG_V1_8822B 0
  15639. #define BIT_MASK_EXQ_FREEPG_V1_8822B 0xfff
  15640. #define BIT_EXQ_FREEPG_V1_8822B(x) \
  15641. (((x) & BIT_MASK_EXQ_FREEPG_V1_8822B) << BIT_SHIFT_EXQ_FREEPG_V1_8822B)
  15642. #define BITS_EXQ_FREEPG_V1_8822B \
  15643. (BIT_MASK_EXQ_FREEPG_V1_8822B << BIT_SHIFT_EXQ_FREEPG_V1_8822B)
  15644. #define BIT_CLEAR_EXQ_FREEPG_V1_8822B(x) ((x) & (~BITS_EXQ_FREEPG_V1_8822B))
  15645. #define BIT_GET_EXQ_FREEPG_V1_8822B(x) \
  15646. (((x) >> BIT_SHIFT_EXQ_FREEPG_V1_8822B) & BIT_MASK_EXQ_FREEPG_V1_8822B)
  15647. #define BIT_SET_EXQ_FREEPG_V1_8822B(x, v) \
  15648. (BIT_CLEAR_EXQ_FREEPG_V1_8822B(x) | BIT_EXQ_FREEPG_V1_8822B(v))
  15649. /* 2 REG_SDIO_HTSFR_INFO_8822B */
  15650. #define BIT_SHIFT_HTSFR1_8822B 16
  15651. #define BIT_MASK_HTSFR1_8822B 0xffff
  15652. #define BIT_HTSFR1_8822B(x) \
  15653. (((x) & BIT_MASK_HTSFR1_8822B) << BIT_SHIFT_HTSFR1_8822B)
  15654. #define BITS_HTSFR1_8822B (BIT_MASK_HTSFR1_8822B << BIT_SHIFT_HTSFR1_8822B)
  15655. #define BIT_CLEAR_HTSFR1_8822B(x) ((x) & (~BITS_HTSFR1_8822B))
  15656. #define BIT_GET_HTSFR1_8822B(x) \
  15657. (((x) >> BIT_SHIFT_HTSFR1_8822B) & BIT_MASK_HTSFR1_8822B)
  15658. #define BIT_SET_HTSFR1_8822B(x, v) \
  15659. (BIT_CLEAR_HTSFR1_8822B(x) | BIT_HTSFR1_8822B(v))
  15660. #define BIT_SHIFT_HTSFR0_8822B 0
  15661. #define BIT_MASK_HTSFR0_8822B 0xffff
  15662. #define BIT_HTSFR0_8822B(x) \
  15663. (((x) & BIT_MASK_HTSFR0_8822B) << BIT_SHIFT_HTSFR0_8822B)
  15664. #define BITS_HTSFR0_8822B (BIT_MASK_HTSFR0_8822B << BIT_SHIFT_HTSFR0_8822B)
  15665. #define BIT_CLEAR_HTSFR0_8822B(x) ((x) & (~BITS_HTSFR0_8822B))
  15666. #define BIT_GET_HTSFR0_8822B(x) \
  15667. (((x) >> BIT_SHIFT_HTSFR0_8822B) & BIT_MASK_HTSFR0_8822B)
  15668. #define BIT_SET_HTSFR0_8822B(x, v) \
  15669. (BIT_CLEAR_HTSFR0_8822B(x) | BIT_HTSFR0_8822B(v))
  15670. /* 2 REG_SDIO_HCPWM1_V2_8822B */
  15671. #define BIT_TOGGLE_8822B BIT(7)
  15672. #define BIT_CUR_PS_8822B BIT(0)
  15673. /* 2 REG_SDIO_HCPWM2_V2_8822B */
  15674. /* 2 REG_SDIO_INDIRECT_REG_CFG_8822B */
  15675. #define BIT_INDIRECT_REG_RDY_8822B BIT(20)
  15676. #define BIT_INDIRECT_REG_R_8822B BIT(19)
  15677. #define BIT_INDIRECT_REG_W_8822B BIT(18)
  15678. #define BIT_SHIFT_INDIRECT_REG_SIZE_8822B 16
  15679. #define BIT_MASK_INDIRECT_REG_SIZE_8822B 0x3
  15680. #define BIT_INDIRECT_REG_SIZE_8822B(x) \
  15681. (((x) & BIT_MASK_INDIRECT_REG_SIZE_8822B) \
  15682. << BIT_SHIFT_INDIRECT_REG_SIZE_8822B)
  15683. #define BITS_INDIRECT_REG_SIZE_8822B \
  15684. (BIT_MASK_INDIRECT_REG_SIZE_8822B << BIT_SHIFT_INDIRECT_REG_SIZE_8822B)
  15685. #define BIT_CLEAR_INDIRECT_REG_SIZE_8822B(x) \
  15686. ((x) & (~BITS_INDIRECT_REG_SIZE_8822B))
  15687. #define BIT_GET_INDIRECT_REG_SIZE_8822B(x) \
  15688. (((x) >> BIT_SHIFT_INDIRECT_REG_SIZE_8822B) & \
  15689. BIT_MASK_INDIRECT_REG_SIZE_8822B)
  15690. #define BIT_SET_INDIRECT_REG_SIZE_8822B(x, v) \
  15691. (BIT_CLEAR_INDIRECT_REG_SIZE_8822B(x) | BIT_INDIRECT_REG_SIZE_8822B(v))
  15692. #define BIT_SHIFT_INDIRECT_REG_ADDR_8822B 0
  15693. #define BIT_MASK_INDIRECT_REG_ADDR_8822B 0xffff
  15694. #define BIT_INDIRECT_REG_ADDR_8822B(x) \
  15695. (((x) & BIT_MASK_INDIRECT_REG_ADDR_8822B) \
  15696. << BIT_SHIFT_INDIRECT_REG_ADDR_8822B)
  15697. #define BITS_INDIRECT_REG_ADDR_8822B \
  15698. (BIT_MASK_INDIRECT_REG_ADDR_8822B << BIT_SHIFT_INDIRECT_REG_ADDR_8822B)
  15699. #define BIT_CLEAR_INDIRECT_REG_ADDR_8822B(x) \
  15700. ((x) & (~BITS_INDIRECT_REG_ADDR_8822B))
  15701. #define BIT_GET_INDIRECT_REG_ADDR_8822B(x) \
  15702. (((x) >> BIT_SHIFT_INDIRECT_REG_ADDR_8822B) & \
  15703. BIT_MASK_INDIRECT_REG_ADDR_8822B)
  15704. #define BIT_SET_INDIRECT_REG_ADDR_8822B(x, v) \
  15705. (BIT_CLEAR_INDIRECT_REG_ADDR_8822B(x) | BIT_INDIRECT_REG_ADDR_8822B(v))
  15706. /* 2 REG_SDIO_INDIRECT_REG_DATA_8822B */
  15707. #define BIT_SHIFT_INDIRECT_REG_DATA_8822B 0
  15708. #define BIT_MASK_INDIRECT_REG_DATA_8822B 0xffffffffL
  15709. #define BIT_INDIRECT_REG_DATA_8822B(x) \
  15710. (((x) & BIT_MASK_INDIRECT_REG_DATA_8822B) \
  15711. << BIT_SHIFT_INDIRECT_REG_DATA_8822B)
  15712. #define BITS_INDIRECT_REG_DATA_8822B \
  15713. (BIT_MASK_INDIRECT_REG_DATA_8822B << BIT_SHIFT_INDIRECT_REG_DATA_8822B)
  15714. #define BIT_CLEAR_INDIRECT_REG_DATA_8822B(x) \
  15715. ((x) & (~BITS_INDIRECT_REG_DATA_8822B))
  15716. #define BIT_GET_INDIRECT_REG_DATA_8822B(x) \
  15717. (((x) >> BIT_SHIFT_INDIRECT_REG_DATA_8822B) & \
  15718. BIT_MASK_INDIRECT_REG_DATA_8822B)
  15719. #define BIT_SET_INDIRECT_REG_DATA_8822B(x, v) \
  15720. (BIT_CLEAR_INDIRECT_REG_DATA_8822B(x) | BIT_INDIRECT_REG_DATA_8822B(v))
  15721. /* 2 REG_SDIO_H2C_8822B */
  15722. #define BIT_SHIFT_SDIO_H2C_MSG_8822B 0
  15723. #define BIT_MASK_SDIO_H2C_MSG_8822B 0xffffffffL
  15724. #define BIT_SDIO_H2C_MSG_8822B(x) \
  15725. (((x) & BIT_MASK_SDIO_H2C_MSG_8822B) << BIT_SHIFT_SDIO_H2C_MSG_8822B)
  15726. #define BITS_SDIO_H2C_MSG_8822B \
  15727. (BIT_MASK_SDIO_H2C_MSG_8822B << BIT_SHIFT_SDIO_H2C_MSG_8822B)
  15728. #define BIT_CLEAR_SDIO_H2C_MSG_8822B(x) ((x) & (~BITS_SDIO_H2C_MSG_8822B))
  15729. #define BIT_GET_SDIO_H2C_MSG_8822B(x) \
  15730. (((x) >> BIT_SHIFT_SDIO_H2C_MSG_8822B) & BIT_MASK_SDIO_H2C_MSG_8822B)
  15731. #define BIT_SET_SDIO_H2C_MSG_8822B(x, v) \
  15732. (BIT_CLEAR_SDIO_H2C_MSG_8822B(x) | BIT_SDIO_H2C_MSG_8822B(v))
  15733. /* 2 REG_SDIO_C2H_8822B */
  15734. #define BIT_SHIFT_SDIO_C2H_MSG_8822B 0
  15735. #define BIT_MASK_SDIO_C2H_MSG_8822B 0xffffffffL
  15736. #define BIT_SDIO_C2H_MSG_8822B(x) \
  15737. (((x) & BIT_MASK_SDIO_C2H_MSG_8822B) << BIT_SHIFT_SDIO_C2H_MSG_8822B)
  15738. #define BITS_SDIO_C2H_MSG_8822B \
  15739. (BIT_MASK_SDIO_C2H_MSG_8822B << BIT_SHIFT_SDIO_C2H_MSG_8822B)
  15740. #define BIT_CLEAR_SDIO_C2H_MSG_8822B(x) ((x) & (~BITS_SDIO_C2H_MSG_8822B))
  15741. #define BIT_GET_SDIO_C2H_MSG_8822B(x) \
  15742. (((x) >> BIT_SHIFT_SDIO_C2H_MSG_8822B) & BIT_MASK_SDIO_C2H_MSG_8822B)
  15743. #define BIT_SET_SDIO_C2H_MSG_8822B(x, v) \
  15744. (BIT_CLEAR_SDIO_C2H_MSG_8822B(x) | BIT_SDIO_C2H_MSG_8822B(v))
  15745. /* 2 REG_SDIO_HRPWM1_8822B */
  15746. #define BIT_TOGGLE_8822B BIT(7)
  15747. #define BIT_ACK_8822B BIT(6)
  15748. #define BIT_REQ_PS_8822B BIT(0)
  15749. /* 2 REG_SDIO_HRPWM2_8822B */
  15750. /* 2 REG_SDIO_HPS_CLKR_8822B */
  15751. /* 2 REG_SDIO_BUS_CTRL_8822B */
  15752. #define BIT_PAD_CLK_XHGE_EN_8822B BIT(3)
  15753. #define BIT_INTER_CLK_EN_8822B BIT(2)
  15754. #define BIT_EN_RPT_TXCRC_8822B BIT(1)
  15755. #define BIT_DIS_RXDMA_STS_8822B BIT(0)
  15756. /* 2 REG_SDIO_HSUS_CTRL_8822B */
  15757. #define BIT_INTR_CTRL_8822B BIT(4)
  15758. #define BIT_SDIO_VOLTAGE_8822B BIT(3)
  15759. #define BIT_BYPASS_INIT_8822B BIT(2)
  15760. #define BIT_HCI_RESUME_RDY_8822B BIT(1)
  15761. #define BIT_HCI_SUS_REQ_8822B BIT(0)
  15762. /* 2 REG_SDIO_RESPONSE_TIMER_8822B */
  15763. #define BIT_SHIFT_CMDIN_2RESP_TIMER_8822B 0
  15764. #define BIT_MASK_CMDIN_2RESP_TIMER_8822B 0xffff
  15765. #define BIT_CMDIN_2RESP_TIMER_8822B(x) \
  15766. (((x) & BIT_MASK_CMDIN_2RESP_TIMER_8822B) \
  15767. << BIT_SHIFT_CMDIN_2RESP_TIMER_8822B)
  15768. #define BITS_CMDIN_2RESP_TIMER_8822B \
  15769. (BIT_MASK_CMDIN_2RESP_TIMER_8822B << BIT_SHIFT_CMDIN_2RESP_TIMER_8822B)
  15770. #define BIT_CLEAR_CMDIN_2RESP_TIMER_8822B(x) \
  15771. ((x) & (~BITS_CMDIN_2RESP_TIMER_8822B))
  15772. #define BIT_GET_CMDIN_2RESP_TIMER_8822B(x) \
  15773. (((x) >> BIT_SHIFT_CMDIN_2RESP_TIMER_8822B) & \
  15774. BIT_MASK_CMDIN_2RESP_TIMER_8822B)
  15775. #define BIT_SET_CMDIN_2RESP_TIMER_8822B(x, v) \
  15776. (BIT_CLEAR_CMDIN_2RESP_TIMER_8822B(x) | BIT_CMDIN_2RESP_TIMER_8822B(v))
  15777. /* 2 REG_SDIO_CMD_CRC_8822B */
  15778. #define BIT_SHIFT_SDIO_CMD_CRC_V1_8822B 0
  15779. #define BIT_MASK_SDIO_CMD_CRC_V1_8822B 0xff
  15780. #define BIT_SDIO_CMD_CRC_V1_8822B(x) \
  15781. (((x) & BIT_MASK_SDIO_CMD_CRC_V1_8822B) \
  15782. << BIT_SHIFT_SDIO_CMD_CRC_V1_8822B)
  15783. #define BITS_SDIO_CMD_CRC_V1_8822B \
  15784. (BIT_MASK_SDIO_CMD_CRC_V1_8822B << BIT_SHIFT_SDIO_CMD_CRC_V1_8822B)
  15785. #define BIT_CLEAR_SDIO_CMD_CRC_V1_8822B(x) ((x) & (~BITS_SDIO_CMD_CRC_V1_8822B))
  15786. #define BIT_GET_SDIO_CMD_CRC_V1_8822B(x) \
  15787. (((x) >> BIT_SHIFT_SDIO_CMD_CRC_V1_8822B) & \
  15788. BIT_MASK_SDIO_CMD_CRC_V1_8822B)
  15789. #define BIT_SET_SDIO_CMD_CRC_V1_8822B(x, v) \
  15790. (BIT_CLEAR_SDIO_CMD_CRC_V1_8822B(x) | BIT_SDIO_CMD_CRC_V1_8822B(v))
  15791. /* 2 REG_SDIO_HSISR_8822B */
  15792. #define BIT_DRV_WLAN_INT_CLR_8822B BIT(1)
  15793. #define BIT_DRV_WLAN_INT_8822B BIT(0)
  15794. /* 2 REG_SDIO_ERR_RPT_8822B */
  15795. #define BIT_HR_FF_OVF_8822B BIT(6)
  15796. #define BIT_HR_FF_UDN_8822B BIT(5)
  15797. #define BIT_TXDMA_BUSY_ERR_8822B BIT(4)
  15798. #define BIT_TXDMA_VLD_ERR_8822B BIT(3)
  15799. #define BIT_QSEL_UNKNOWN_ERR_8822B BIT(2)
  15800. #define BIT_QSEL_MIS_ERR_8822B BIT(1)
  15801. #define BIT_SDIO_OVERRD_ERR_8822B BIT(0)
  15802. /* 2 REG_SDIO_CMD_ERRCNT_8822B */
  15803. #define BIT_SHIFT_CMD_CRC_ERR_CNT_8822B 0
  15804. #define BIT_MASK_CMD_CRC_ERR_CNT_8822B 0xff
  15805. #define BIT_CMD_CRC_ERR_CNT_8822B(x) \
  15806. (((x) & BIT_MASK_CMD_CRC_ERR_CNT_8822B) \
  15807. << BIT_SHIFT_CMD_CRC_ERR_CNT_8822B)
  15808. #define BITS_CMD_CRC_ERR_CNT_8822B \
  15809. (BIT_MASK_CMD_CRC_ERR_CNT_8822B << BIT_SHIFT_CMD_CRC_ERR_CNT_8822B)
  15810. #define BIT_CLEAR_CMD_CRC_ERR_CNT_8822B(x) ((x) & (~BITS_CMD_CRC_ERR_CNT_8822B))
  15811. #define BIT_GET_CMD_CRC_ERR_CNT_8822B(x) \
  15812. (((x) >> BIT_SHIFT_CMD_CRC_ERR_CNT_8822B) & \
  15813. BIT_MASK_CMD_CRC_ERR_CNT_8822B)
  15814. #define BIT_SET_CMD_CRC_ERR_CNT_8822B(x, v) \
  15815. (BIT_CLEAR_CMD_CRC_ERR_CNT_8822B(x) | BIT_CMD_CRC_ERR_CNT_8822B(v))
  15816. /* 2 REG_SDIO_DATA_ERRCNT_8822B */
  15817. #define BIT_SHIFT_DATA_CRC_ERR_CNT_8822B 0
  15818. #define BIT_MASK_DATA_CRC_ERR_CNT_8822B 0xff
  15819. #define BIT_DATA_CRC_ERR_CNT_8822B(x) \
  15820. (((x) & BIT_MASK_DATA_CRC_ERR_CNT_8822B) \
  15821. << BIT_SHIFT_DATA_CRC_ERR_CNT_8822B)
  15822. #define BITS_DATA_CRC_ERR_CNT_8822B \
  15823. (BIT_MASK_DATA_CRC_ERR_CNT_8822B << BIT_SHIFT_DATA_CRC_ERR_CNT_8822B)
  15824. #define BIT_CLEAR_DATA_CRC_ERR_CNT_8822B(x) \
  15825. ((x) & (~BITS_DATA_CRC_ERR_CNT_8822B))
  15826. #define BIT_GET_DATA_CRC_ERR_CNT_8822B(x) \
  15827. (((x) >> BIT_SHIFT_DATA_CRC_ERR_CNT_8822B) & \
  15828. BIT_MASK_DATA_CRC_ERR_CNT_8822B)
  15829. #define BIT_SET_DATA_CRC_ERR_CNT_8822B(x, v) \
  15830. (BIT_CLEAR_DATA_CRC_ERR_CNT_8822B(x) | BIT_DATA_CRC_ERR_CNT_8822B(v))
  15831. /* 2 REG_SDIO_CMD_ERR_CONTENT_8822B */
  15832. #define BIT_SHIFT_SDIO_CMD_ERR_CONTENT_8822B 0
  15833. #define BIT_MASK_SDIO_CMD_ERR_CONTENT_8822B 0xffffffffffL
  15834. #define BIT_SDIO_CMD_ERR_CONTENT_8822B(x) \
  15835. (((x) & BIT_MASK_SDIO_CMD_ERR_CONTENT_8822B) \
  15836. << BIT_SHIFT_SDIO_CMD_ERR_CONTENT_8822B)
  15837. #define BITS_SDIO_CMD_ERR_CONTENT_8822B \
  15838. (BIT_MASK_SDIO_CMD_ERR_CONTENT_8822B \
  15839. << BIT_SHIFT_SDIO_CMD_ERR_CONTENT_8822B)
  15840. #define BIT_CLEAR_SDIO_CMD_ERR_CONTENT_8822B(x) \
  15841. ((x) & (~BITS_SDIO_CMD_ERR_CONTENT_8822B))
  15842. #define BIT_GET_SDIO_CMD_ERR_CONTENT_8822B(x) \
  15843. (((x) >> BIT_SHIFT_SDIO_CMD_ERR_CONTENT_8822B) & \
  15844. BIT_MASK_SDIO_CMD_ERR_CONTENT_8822B)
  15845. #define BIT_SET_SDIO_CMD_ERR_CONTENT_8822B(x, v) \
  15846. (BIT_CLEAR_SDIO_CMD_ERR_CONTENT_8822B(x) | \
  15847. BIT_SDIO_CMD_ERR_CONTENT_8822B(v))
  15848. /* 2 REG_SDIO_CRC_ERR_IDX_8822B */
  15849. #define BIT_D3_CRC_ERR_8822B BIT(4)
  15850. #define BIT_D2_CRC_ERR_8822B BIT(3)
  15851. #define BIT_D1_CRC_ERR_8822B BIT(2)
  15852. #define BIT_D0_CRC_ERR_8822B BIT(1)
  15853. #define BIT_CMD_CRC_ERR_8822B BIT(0)
  15854. /* 2 REG_SDIO_DATA_CRC_8822B */
  15855. #define BIT_SHIFT_SDIO_DATA_CRC_8822B 0
  15856. #define BIT_MASK_SDIO_DATA_CRC_8822B 0xffff
  15857. #define BIT_SDIO_DATA_CRC_8822B(x) \
  15858. (((x) & BIT_MASK_SDIO_DATA_CRC_8822B) << BIT_SHIFT_SDIO_DATA_CRC_8822B)
  15859. #define BITS_SDIO_DATA_CRC_8822B \
  15860. (BIT_MASK_SDIO_DATA_CRC_8822B << BIT_SHIFT_SDIO_DATA_CRC_8822B)
  15861. #define BIT_CLEAR_SDIO_DATA_CRC_8822B(x) ((x) & (~BITS_SDIO_DATA_CRC_8822B))
  15862. #define BIT_GET_SDIO_DATA_CRC_8822B(x) \
  15863. (((x) >> BIT_SHIFT_SDIO_DATA_CRC_8822B) & BIT_MASK_SDIO_DATA_CRC_8822B)
  15864. #define BIT_SET_SDIO_DATA_CRC_8822B(x, v) \
  15865. (BIT_CLEAR_SDIO_DATA_CRC_8822B(x) | BIT_SDIO_DATA_CRC_8822B(v))
  15866. /* 2 REG_SDIO_DATA_REPLY_TIME_8822B */
  15867. #define BIT_SHIFT_SDIO_DATA_REPLY_TIME_8822B 0
  15868. #define BIT_MASK_SDIO_DATA_REPLY_TIME_8822B 0x7
  15869. #define BIT_SDIO_DATA_REPLY_TIME_8822B(x) \
  15870. (((x) & BIT_MASK_SDIO_DATA_REPLY_TIME_8822B) \
  15871. << BIT_SHIFT_SDIO_DATA_REPLY_TIME_8822B)
  15872. #define BITS_SDIO_DATA_REPLY_TIME_8822B \
  15873. (BIT_MASK_SDIO_DATA_REPLY_TIME_8822B \
  15874. << BIT_SHIFT_SDIO_DATA_REPLY_TIME_8822B)
  15875. #define BIT_CLEAR_SDIO_DATA_REPLY_TIME_8822B(x) \
  15876. ((x) & (~BITS_SDIO_DATA_REPLY_TIME_8822B))
  15877. #define BIT_GET_SDIO_DATA_REPLY_TIME_8822B(x) \
  15878. (((x) >> BIT_SHIFT_SDIO_DATA_REPLY_TIME_8822B) & \
  15879. BIT_MASK_SDIO_DATA_REPLY_TIME_8822B)
  15880. #define BIT_SET_SDIO_DATA_REPLY_TIME_8822B(x, v) \
  15881. (BIT_CLEAR_SDIO_DATA_REPLY_TIME_8822B(x) | \
  15882. BIT_SDIO_DATA_REPLY_TIME_8822B(v))
  15883. #endif