brintos

brintos / linux-shallow public Read only

0
0
Text · 38.7 KiB · f782439 Raw
2258 lines · c
1// SPDX-License-Identifier: GPL-2.0+2/*3 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.4 * All rights reserved.5 *6 * Purpose: Implement functions to access baseband7 *8 * Author: Kyle Hsu9 *10 * Date: Aug.22, 200211 *12 * Functions:13 *      bb_get_frame_time	 - Calculate data frame transmitting time14 *      bb_read_embedded	 - Embedded read baseband register via MAC15 *      bb_write_embedded	 - Embedded write baseband register via MAC16 *      bb_vt3253_init		 - VIA VT3253 baseband chip init code17 *18 * Revision History:19 *      06-10-2003 Bryan YC Fan:  Re-write codes to support VT3253 spec.20 *      08-07-2003 Bryan YC Fan:  Add MAXIM2827/2825 and RFMD2959 support.21 *      08-26-2003 Kyle Hsu    :  Modify BBuGetFrameTime() and22 *				  BBvCalculateParameter().23 *                                cancel the setting of MAC_REG_SOFTPWRCTL on24 *				  BBbVT3253Init().25 *                                Add the comments.26 *      09-01-2003 Bryan YC Fan:  RF & BB tables updated.27 *                                Modified BBvLoopbackOn & BBvLoopbackOff().28 *29 *30 */31 32#include "mac.h"33#include "baseband.h"34#include "srom.h"35#include "rf.h"36 37/*---------------------  Static Classes  ----------------------------*/38 39/*---------------------  Static Variables  --------------------------*/40 41/*---------------------  Static Functions  --------------------------*/42 43/*---------------------  Export Variables  --------------------------*/44 45/*---------------------  Static Definitions -------------------------*/46 47/*---------------------  Static Classes  ----------------------------*/48 49/*---------------------  Static Variables  --------------------------*/50 51#define CB_VT3253_INIT_FOR_RFMD 44652static const unsigned char by_vt3253_init_tab_rfmd[CB_VT3253_INIT_FOR_RFMD][2] = {53	{0x00, 0x30},54	{0x01, 0x00},55	{0x02, 0x00},56	{0x03, 0x00},57	{0x04, 0x00},58	{0x05, 0x00},59	{0x06, 0x00},60	{0x07, 0x00},61	{0x08, 0x70},62	{0x09, 0x45},63	{0x0a, 0x2a},64	{0x0b, 0x76},65	{0x0c, 0x00},66	{0x0d, 0x01},67	{0x0e, 0x80},68	{0x0f, 0x00},69	{0x10, 0x00},70	{0x11, 0x00},71	{0x12, 0x00},72	{0x13, 0x00},73	{0x14, 0x00},74	{0x15, 0x00},75	{0x16, 0x00},76	{0x17, 0x00},77	{0x18, 0x00},78	{0x19, 0x00},79	{0x1a, 0x00},80	{0x1b, 0x9d},81	{0x1c, 0x05},82	{0x1d, 0x00},83	{0x1e, 0x00},84	{0x1f, 0x00},85	{0x20, 0x00},86	{0x21, 0x00},87	{0x22, 0x00},88	{0x23, 0x00},89	{0x24, 0x00},90	{0x25, 0x4a},91	{0x26, 0x00},92	{0x27, 0x00},93	{0x28, 0x00},94	{0x29, 0x00},95	{0x2a, 0x00},96	{0x2b, 0x00},97	{0x2c, 0x00},98	{0x2d, 0xa8},99	{0x2e, 0x1a},100	{0x2f, 0x0c},101	{0x30, 0x26},102	{0x31, 0x5b},103	{0x32, 0x00},104	{0x33, 0x00},105	{0x34, 0x00},106	{0x35, 0x00},107	{0x36, 0xaa},108	{0x37, 0xaa},109	{0x38, 0xff},110	{0x39, 0xff},111	{0x3a, 0x00},112	{0x3b, 0x00},113	{0x3c, 0x00},114	{0x3d, 0x0d},115	{0x3e, 0x51},116	{0x3f, 0x04},117	{0x40, 0x00},118	{0x41, 0x08},119	{0x42, 0x00},120	{0x43, 0x08},121	{0x44, 0x06},122	{0x45, 0x14},123	{0x46, 0x05},124	{0x47, 0x08},125	{0x48, 0x00},126	{0x49, 0x00},127	{0x4a, 0x00},128	{0x4b, 0x00},129	{0x4c, 0x09},130	{0x4d, 0x80},131	{0x4e, 0x00},132	{0x4f, 0xc5},133	{0x50, 0x14},134	{0x51, 0x19},135	{0x52, 0x00},136	{0x53, 0x00},137	{0x54, 0x00},138	{0x55, 0x00},139	{0x56, 0x00},140	{0x57, 0x00},141	{0x58, 0x00},142	{0x59, 0xb0},143	{0x5a, 0x00},144	{0x5b, 0x00},145	{0x5c, 0x00},146	{0x5d, 0x00},147	{0x5e, 0x00},148	{0x5f, 0x00},149	{0x60, 0x44},150	{0x61, 0x04},151	{0x62, 0x00},152	{0x63, 0x00},153	{0x64, 0x00},154	{0x65, 0x00},155	{0x66, 0x04},156	{0x67, 0xb7},157	{0x68, 0x00},158	{0x69, 0x00},159	{0x6a, 0x00},160	{0x6b, 0x00},161	{0x6c, 0x00},162	{0x6d, 0x03},163	{0x6e, 0x01},164	{0x6f, 0x00},165	{0x70, 0x00},166	{0x71, 0x00},167	{0x72, 0x00},168	{0x73, 0x00},169	{0x74, 0x00},170	{0x75, 0x00},171	{0x76, 0x00},172	{0x77, 0x00},173	{0x78, 0x00},174	{0x79, 0x00},175	{0x7a, 0x00},176	{0x7b, 0x00},177	{0x7c, 0x00},178	{0x7d, 0x00},179	{0x7e, 0x00},180	{0x7f, 0x00},181	{0x80, 0x0b},182	{0x81, 0x00},183	{0x82, 0x3c},184	{0x83, 0x00},185	{0x84, 0x00},186	{0x85, 0x00},187	{0x86, 0x00},188	{0x87, 0x00},189	{0x88, 0x08},190	{0x89, 0x00},191	{0x8a, 0x08},192	{0x8b, 0xa6},193	{0x8c, 0x84},194	{0x8d, 0x47},195	{0x8e, 0xbb},196	{0x8f, 0x02},197	{0x90, 0x21},198	{0x91, 0x0c},199	{0x92, 0x04},200	{0x93, 0x22},201	{0x94, 0x00},202	{0x95, 0x00},203	{0x96, 0x00},204	{0x97, 0xeb},205	{0x98, 0x00},206	{0x99, 0x00},207	{0x9a, 0x00},208	{0x9b, 0x00},209	{0x9c, 0x00},210	{0x9d, 0x00},211	{0x9e, 0x00},212	{0x9f, 0x00},213	{0xa0, 0x00},214	{0xa1, 0x00},215	{0xa2, 0x00},216	{0xa3, 0x00},217	{0xa4, 0x00},218	{0xa5, 0x00},219	{0xa6, 0x10},220	{0xa7, 0x04},221	{0xa8, 0x10},222	{0xa9, 0x00},223	{0xaa, 0x8f},224	{0xab, 0x00},225	{0xac, 0x00},226	{0xad, 0x00},227	{0xae, 0x00},228	{0xaf, 0x80},229	{0xb0, 0x38},230	{0xb1, 0x00},231	{0xb2, 0x00},232	{0xb3, 0x00},233	{0xb4, 0xee},234	{0xb5, 0xff},235	{0xb6, 0x10},236	{0xb7, 0x00},237	{0xb8, 0x00},238	{0xb9, 0x00},239	{0xba, 0x00},240	{0xbb, 0x03},241	{0xbc, 0x00},242	{0xbd, 0x00},243	{0xbe, 0x00},244	{0xbf, 0x00},245	{0xc0, 0x10},246	{0xc1, 0x10},247	{0xc2, 0x18},248	{0xc3, 0x20},249	{0xc4, 0x10},250	{0xc5, 0x00},251	{0xc6, 0x22},252	{0xc7, 0x14},253	{0xc8, 0x0f},254	{0xc9, 0x08},255	{0xca, 0xa4},256	{0xcb, 0xa7},257	{0xcc, 0x3c},258	{0xcd, 0x10},259	{0xce, 0x20},260	{0xcf, 0x00},261	{0xd0, 0x00},262	{0xd1, 0x10},263	{0xd2, 0x00},264	{0xd3, 0x00},265	{0xd4, 0x10},266	{0xd5, 0x33},267	{0xd6, 0x70},268	{0xd7, 0x01},269	{0xd8, 0x00},270	{0xd9, 0x00},271	{0xda, 0x00},272	{0xdb, 0x00},273	{0xdc, 0x00},274	{0xdd, 0x00},275	{0xde, 0x00},276	{0xdf, 0x00},277	{0xe0, 0x00},278	{0xe1, 0x00},279	{0xe2, 0xcc},280	{0xe3, 0x04},281	{0xe4, 0x08},282	{0xe5, 0x10},283	{0xe6, 0x00},284	{0xe7, 0x0e},285	{0xe8, 0x88},286	{0xe9, 0xd4},287	{0xea, 0x05},288	{0xeb, 0xf0},289	{0xec, 0x79},290	{0xed, 0x0f},291	{0xee, 0x04},292	{0xef, 0x04},293	{0xf0, 0x00},294	{0xf1, 0x00},295	{0xf2, 0x00},296	{0xf3, 0x00},297	{0xf4, 0x00},298	{0xf5, 0x00},299	{0xf6, 0x00},300	{0xf7, 0x00},301	{0xf8, 0x00},302	{0xf9, 0x00},303	{0xF0, 0x00},304	{0xF1, 0xF8},305	{0xF0, 0x80},306	{0xF0, 0x00},307	{0xF1, 0xF4},308	{0xF0, 0x81},309	{0xF0, 0x01},310	{0xF1, 0xF0},311	{0xF0, 0x82},312	{0xF0, 0x02},313	{0xF1, 0xEC},314	{0xF0, 0x83},315	{0xF0, 0x03},316	{0xF1, 0xE8},317	{0xF0, 0x84},318	{0xF0, 0x04},319	{0xF1, 0xE4},320	{0xF0, 0x85},321	{0xF0, 0x05},322	{0xF1, 0xE0},323	{0xF0, 0x86},324	{0xF0, 0x06},325	{0xF1, 0xDC},326	{0xF0, 0x87},327	{0xF0, 0x07},328	{0xF1, 0xD8},329	{0xF0, 0x88},330	{0xF0, 0x08},331	{0xF1, 0xD4},332	{0xF0, 0x89},333	{0xF0, 0x09},334	{0xF1, 0xD0},335	{0xF0, 0x8A},336	{0xF0, 0x0A},337	{0xF1, 0xCC},338	{0xF0, 0x8B},339	{0xF0, 0x0B},340	{0xF1, 0xC8},341	{0xF0, 0x8C},342	{0xF0, 0x0C},343	{0xF1, 0xC4},344	{0xF0, 0x8D},345	{0xF0, 0x0D},346	{0xF1, 0xC0},347	{0xF0, 0x8E},348	{0xF0, 0x0E},349	{0xF1, 0xBC},350	{0xF0, 0x8F},351	{0xF0, 0x0F},352	{0xF1, 0xB8},353	{0xF0, 0x90},354	{0xF0, 0x10},355	{0xF1, 0xB4},356	{0xF0, 0x91},357	{0xF0, 0x11},358	{0xF1, 0xB0},359	{0xF0, 0x92},360	{0xF0, 0x12},361	{0xF1, 0xAC},362	{0xF0, 0x93},363	{0xF0, 0x13},364	{0xF1, 0xA8},365	{0xF0, 0x94},366	{0xF0, 0x14},367	{0xF1, 0xA4},368	{0xF0, 0x95},369	{0xF0, 0x15},370	{0xF1, 0xA0},371	{0xF0, 0x96},372	{0xF0, 0x16},373	{0xF1, 0x9C},374	{0xF0, 0x97},375	{0xF0, 0x17},376	{0xF1, 0x98},377	{0xF0, 0x98},378	{0xF0, 0x18},379	{0xF1, 0x94},380	{0xF0, 0x99},381	{0xF0, 0x19},382	{0xF1, 0x90},383	{0xF0, 0x9A},384	{0xF0, 0x1A},385	{0xF1, 0x8C},386	{0xF0, 0x9B},387	{0xF0, 0x1B},388	{0xF1, 0x88},389	{0xF0, 0x9C},390	{0xF0, 0x1C},391	{0xF1, 0x84},392	{0xF0, 0x9D},393	{0xF0, 0x1D},394	{0xF1, 0x80},395	{0xF0, 0x9E},396	{0xF0, 0x1E},397	{0xF1, 0x7C},398	{0xF0, 0x9F},399	{0xF0, 0x1F},400	{0xF1, 0x78},401	{0xF0, 0xA0},402	{0xF0, 0x20},403	{0xF1, 0x74},404	{0xF0, 0xA1},405	{0xF0, 0x21},406	{0xF1, 0x70},407	{0xF0, 0xA2},408	{0xF0, 0x22},409	{0xF1, 0x6C},410	{0xF0, 0xA3},411	{0xF0, 0x23},412	{0xF1, 0x68},413	{0xF0, 0xA4},414	{0xF0, 0x24},415	{0xF1, 0x64},416	{0xF0, 0xA5},417	{0xF0, 0x25},418	{0xF1, 0x60},419	{0xF0, 0xA6},420	{0xF0, 0x26},421	{0xF1, 0x5C},422	{0xF0, 0xA7},423	{0xF0, 0x27},424	{0xF1, 0x58},425	{0xF0, 0xA8},426	{0xF0, 0x28},427	{0xF1, 0x54},428	{0xF0, 0xA9},429	{0xF0, 0x29},430	{0xF1, 0x50},431	{0xF0, 0xAA},432	{0xF0, 0x2A},433	{0xF1, 0x4C},434	{0xF0, 0xAB},435	{0xF0, 0x2B},436	{0xF1, 0x48},437	{0xF0, 0xAC},438	{0xF0, 0x2C},439	{0xF1, 0x44},440	{0xF0, 0xAD},441	{0xF0, 0x2D},442	{0xF1, 0x40},443	{0xF0, 0xAE},444	{0xF0, 0x2E},445	{0xF1, 0x3C},446	{0xF0, 0xAF},447	{0xF0, 0x2F},448	{0xF1, 0x38},449	{0xF0, 0xB0},450	{0xF0, 0x30},451	{0xF1, 0x34},452	{0xF0, 0xB1},453	{0xF0, 0x31},454	{0xF1, 0x30},455	{0xF0, 0xB2},456	{0xF0, 0x32},457	{0xF1, 0x2C},458	{0xF0, 0xB3},459	{0xF0, 0x33},460	{0xF1, 0x28},461	{0xF0, 0xB4},462	{0xF0, 0x34},463	{0xF1, 0x24},464	{0xF0, 0xB5},465	{0xF0, 0x35},466	{0xF1, 0x20},467	{0xF0, 0xB6},468	{0xF0, 0x36},469	{0xF1, 0x1C},470	{0xF0, 0xB7},471	{0xF0, 0x37},472	{0xF1, 0x18},473	{0xF0, 0xB8},474	{0xF0, 0x38},475	{0xF1, 0x14},476	{0xF0, 0xB9},477	{0xF0, 0x39},478	{0xF1, 0x10},479	{0xF0, 0xBA},480	{0xF0, 0x3A},481	{0xF1, 0x0C},482	{0xF0, 0xBB},483	{0xF0, 0x3B},484	{0xF1, 0x08},485	{0xF0, 0x00},486	{0xF0, 0x3C},487	{0xF1, 0x04},488	{0xF0, 0xBD},489	{0xF0, 0x3D},490	{0xF1, 0x00},491	{0xF0, 0xBE},492	{0xF0, 0x3E},493	{0xF1, 0x00},494	{0xF0, 0xBF},495	{0xF0, 0x3F},496	{0xF1, 0x00},497	{0xF0, 0xC0},498	{0xF0, 0x00},499};500 501#define CB_VT3253B0_INIT_FOR_RFMD 256502static const unsigned char vt3253b0_rfmd[CB_VT3253B0_INIT_FOR_RFMD][2] = {503	{0x00, 0x31},504	{0x01, 0x00},505	{0x02, 0x00},506	{0x03, 0x00},507	{0x04, 0x00},508	{0x05, 0x81},509	{0x06, 0x00},510	{0x07, 0x00},511	{0x08, 0x38},512	{0x09, 0x45},513	{0x0a, 0x2a},514	{0x0b, 0x76},515	{0x0c, 0x00},516	{0x0d, 0x00},517	{0x0e, 0x80},518	{0x0f, 0x00},519	{0x10, 0x00},520	{0x11, 0x00},521	{0x12, 0x00},522	{0x13, 0x00},523	{0x14, 0x00},524	{0x15, 0x00},525	{0x16, 0x00},526	{0x17, 0x00},527	{0x18, 0x00},528	{0x19, 0x00},529	{0x1a, 0x00},530	{0x1b, 0x8e},531	{0x1c, 0x06},532	{0x1d, 0x00},533	{0x1e, 0x00},534	{0x1f, 0x00},535	{0x20, 0x00},536	{0x21, 0x00},537	{0x22, 0x00},538	{0x23, 0x00},539	{0x24, 0x00},540	{0x25, 0x4a},541	{0x26, 0x00},542	{0x27, 0x00},543	{0x28, 0x00},544	{0x29, 0x00},545	{0x2a, 0x00},546	{0x2b, 0x00},547	{0x2c, 0x00},548	{0x2d, 0x34},549	{0x2e, 0x18},550	{0x2f, 0x0c},551	{0x30, 0x26},552	{0x31, 0x5b},553	{0x32, 0x00},554	{0x33, 0x00},555	{0x34, 0x00},556	{0x35, 0x00},557	{0x36, 0xaa},558	{0x37, 0xaa},559	{0x38, 0xff},560	{0x39, 0xff},561	{0x3a, 0xf8},562	{0x3b, 0x00},563	{0x3c, 0x00},564	{0x3d, 0x09},565	{0x3e, 0x0d},566	{0x3f, 0x04},567	{0x40, 0x00},568	{0x41, 0x08},569	{0x42, 0x00},570	{0x43, 0x08},571	{0x44, 0x08},572	{0x45, 0x14},573	{0x46, 0x05},574	{0x47, 0x08},575	{0x48, 0x00},576	{0x49, 0x00},577	{0x4a, 0x00},578	{0x4b, 0x00},579	{0x4c, 0x09},580	{0x4d, 0x80},581	{0x4e, 0x00},582	{0x4f, 0xc5},583	{0x50, 0x14},584	{0x51, 0x19},585	{0x52, 0x00},586	{0x53, 0x00},587	{0x54, 0x00},588	{0x55, 0x00},589	{0x56, 0x00},590	{0x57, 0x00},591	{0x58, 0x00},592	{0x59, 0xb0},593	{0x5a, 0x00},594	{0x5b, 0x00},595	{0x5c, 0x00},596	{0x5d, 0x00},597	{0x5e, 0x00},598	{0x5f, 0x00},599	{0x60, 0x39},600	{0x61, 0x83},601	{0x62, 0x00},602	{0x63, 0x00},603	{0x64, 0x00},604	{0x65, 0x00},605	{0x66, 0xc0},606	{0x67, 0x49},607	{0x68, 0x00},608	{0x69, 0x00},609	{0x6a, 0x00},610	{0x6b, 0x00},611	{0x6c, 0x00},612	{0x6d, 0x03},613	{0x6e, 0x01},614	{0x6f, 0x00},615	{0x70, 0x00},616	{0x71, 0x00},617	{0x72, 0x00},618	{0x73, 0x00},619	{0x74, 0x00},620	{0x75, 0x00},621	{0x76, 0x00},622	{0x77, 0x00},623	{0x78, 0x00},624	{0x79, 0x00},625	{0x7a, 0x00},626	{0x7b, 0x00},627	{0x7c, 0x00},628	{0x7d, 0x00},629	{0x7e, 0x00},630	{0x7f, 0x00},631	{0x80, 0x89},632	{0x81, 0x00},633	{0x82, 0x0e},634	{0x83, 0x00},635	{0x84, 0x00},636	{0x85, 0x00},637	{0x86, 0x00},638	{0x87, 0x00},639	{0x88, 0x08},640	{0x89, 0x00},641	{0x8a, 0x0e},642	{0x8b, 0xa7},643	{0x8c, 0x88},644	{0x8d, 0x47},645	{0x8e, 0xaa},646	{0x8f, 0x02},647	{0x90, 0x23},648	{0x91, 0x0c},649	{0x92, 0x06},650	{0x93, 0x08},651	{0x94, 0x00},652	{0x95, 0x00},653	{0x96, 0x00},654	{0x97, 0xeb},655	{0x98, 0x00},656	{0x99, 0x00},657	{0x9a, 0x00},658	{0x9b, 0x00},659	{0x9c, 0x00},660	{0x9d, 0x00},661	{0x9e, 0x00},662	{0x9f, 0x00},663	{0xa0, 0x00},664	{0xa1, 0x00},665	{0xa2, 0x00},666	{0xa3, 0xcd},667	{0xa4, 0x07},668	{0xa5, 0x33},669	{0xa6, 0x18},670	{0xa7, 0x00},671	{0xa8, 0x18},672	{0xa9, 0x00},673	{0xaa, 0x28},674	{0xab, 0x00},675	{0xac, 0x00},676	{0xad, 0x00},677	{0xae, 0x00},678	{0xaf, 0x18},679	{0xb0, 0x38},680	{0xb1, 0x30},681	{0xb2, 0x00},682	{0xb3, 0x00},683	{0xb4, 0x00},684	{0xb5, 0x00},685	{0xb6, 0x84},686	{0xb7, 0xfd},687	{0xb8, 0x00},688	{0xb9, 0x00},689	{0xba, 0x00},690	{0xbb, 0x03},691	{0xbc, 0x00},692	{0xbd, 0x00},693	{0xbe, 0x00},694	{0xbf, 0x00},695	{0xc0, 0x10},696	{0xc1, 0x20},697	{0xc2, 0x18},698	{0xc3, 0x20},699	{0xc4, 0x10},700	{0xc5, 0x2c},701	{0xc6, 0x1e},702	{0xc7, 0x10},703	{0xc8, 0x12},704	{0xc9, 0x01},705	{0xca, 0x6f},706	{0xcb, 0xa7},707	{0xcc, 0x3c},708	{0xcd, 0x10},709	{0xce, 0x00},710	{0xcf, 0x22},711	{0xd0, 0x00},712	{0xd1, 0x10},713	{0xd2, 0x00},714	{0xd3, 0x00},715	{0xd4, 0x10},716	{0xd5, 0x33},717	{0xd6, 0x80},718	{0xd7, 0x21},719	{0xd8, 0x00},720	{0xd9, 0x00},721	{0xda, 0x00},722	{0xdb, 0x00},723	{0xdc, 0x00},724	{0xdd, 0x00},725	{0xde, 0x00},726	{0xdf, 0x00},727	{0xe0, 0x00},728	{0xe1, 0xB3},729	{0xe2, 0x00},730	{0xe3, 0x00},731	{0xe4, 0x00},732	{0xe5, 0x10},733	{0xe6, 0x00},734	{0xe7, 0x18},735	{0xe8, 0x08},736	{0xe9, 0xd4},737	{0xea, 0x00},738	{0xeb, 0xff},739	{0xec, 0x79},740	{0xed, 0x10},741	{0xee, 0x30},742	{0xef, 0x02},743	{0xf0, 0x00},744	{0xf1, 0x09},745	{0xf2, 0x00},746	{0xf3, 0x00},747	{0xf4, 0x00},748	{0xf5, 0x00},749	{0xf6, 0x00},750	{0xf7, 0x00},751	{0xf8, 0x00},752	{0xf9, 0x00},753	{0xfa, 0x00},754	{0xfb, 0x00},755	{0xfc, 0x00},756	{0xfd, 0x00},757	{0xfe, 0x00},758	{0xff, 0x00},759};760 761#define CB_VT3253B0_AGC_FOR_RFMD2959 195762/* For RFMD2959 */763static764unsigned char vt3253b0_agc4_rfmd2959[CB_VT3253B0_AGC_FOR_RFMD2959][2] = {765	{0xF0, 0x00},766	{0xF1, 0x3E},767	{0xF0, 0x80},768	{0xF0, 0x00},769	{0xF1, 0x3E},770	{0xF0, 0x81},771	{0xF0, 0x01},772	{0xF1, 0x3E},773	{0xF0, 0x82},774	{0xF0, 0x02},775	{0xF1, 0x3E},776	{0xF0, 0x83},777	{0xF0, 0x03},778	{0xF1, 0x3B},779	{0xF0, 0x84},780	{0xF0, 0x04},781	{0xF1, 0x39},782	{0xF0, 0x85},783	{0xF0, 0x05},784	{0xF1, 0x38},785	{0xF0, 0x86},786	{0xF0, 0x06},787	{0xF1, 0x37},788	{0xF0, 0x87},789	{0xF0, 0x07},790	{0xF1, 0x36},791	{0xF0, 0x88},792	{0xF0, 0x08},793	{0xF1, 0x35},794	{0xF0, 0x89},795	{0xF0, 0x09},796	{0xF1, 0x35},797	{0xF0, 0x8A},798	{0xF0, 0x0A},799	{0xF1, 0x34},800	{0xF0, 0x8B},801	{0xF0, 0x0B},802	{0xF1, 0x34},803	{0xF0, 0x8C},804	{0xF0, 0x0C},805	{0xF1, 0x33},806	{0xF0, 0x8D},807	{0xF0, 0x0D},808	{0xF1, 0x32},809	{0xF0, 0x8E},810	{0xF0, 0x0E},811	{0xF1, 0x31},812	{0xF0, 0x8F},813	{0xF0, 0x0F},814	{0xF1, 0x30},815	{0xF0, 0x90},816	{0xF0, 0x10},817	{0xF1, 0x2F},818	{0xF0, 0x91},819	{0xF0, 0x11},820	{0xF1, 0x2F},821	{0xF0, 0x92},822	{0xF0, 0x12},823	{0xF1, 0x2E},824	{0xF0, 0x93},825	{0xF0, 0x13},826	{0xF1, 0x2D},827	{0xF0, 0x94},828	{0xF0, 0x14},829	{0xF1, 0x2C},830	{0xF0, 0x95},831	{0xF0, 0x15},832	{0xF1, 0x2B},833	{0xF0, 0x96},834	{0xF0, 0x16},835	{0xF1, 0x2B},836	{0xF0, 0x97},837	{0xF0, 0x17},838	{0xF1, 0x2A},839	{0xF0, 0x98},840	{0xF0, 0x18},841	{0xF1, 0x29},842	{0xF0, 0x99},843	{0xF0, 0x19},844	{0xF1, 0x28},845	{0xF0, 0x9A},846	{0xF0, 0x1A},847	{0xF1, 0x27},848	{0xF0, 0x9B},849	{0xF0, 0x1B},850	{0xF1, 0x26},851	{0xF0, 0x9C},852	{0xF0, 0x1C},853	{0xF1, 0x25},854	{0xF0, 0x9D},855	{0xF0, 0x1D},856	{0xF1, 0x24},857	{0xF0, 0x9E},858	{0xF0, 0x1E},859	{0xF1, 0x24},860	{0xF0, 0x9F},861	{0xF0, 0x1F},862	{0xF1, 0x23},863	{0xF0, 0xA0},864	{0xF0, 0x20},865	{0xF1, 0x22},866	{0xF0, 0xA1},867	{0xF0, 0x21},868	{0xF1, 0x21},869	{0xF0, 0xA2},870	{0xF0, 0x22},871	{0xF1, 0x20},872	{0xF0, 0xA3},873	{0xF0, 0x23},874	{0xF1, 0x20},875	{0xF0, 0xA4},876	{0xF0, 0x24},877	{0xF1, 0x1F},878	{0xF0, 0xA5},879	{0xF0, 0x25},880	{0xF1, 0x1E},881	{0xF0, 0xA6},882	{0xF0, 0x26},883	{0xF1, 0x1D},884	{0xF0, 0xA7},885	{0xF0, 0x27},886	{0xF1, 0x1C},887	{0xF0, 0xA8},888	{0xF0, 0x28},889	{0xF1, 0x1B},890	{0xF0, 0xA9},891	{0xF0, 0x29},892	{0xF1, 0x1B},893	{0xF0, 0xAA},894	{0xF0, 0x2A},895	{0xF1, 0x1A},896	{0xF0, 0xAB},897	{0xF0, 0x2B},898	{0xF1, 0x1A},899	{0xF0, 0xAC},900	{0xF0, 0x2C},901	{0xF1, 0x19},902	{0xF0, 0xAD},903	{0xF0, 0x2D},904	{0xF1, 0x18},905	{0xF0, 0xAE},906	{0xF0, 0x2E},907	{0xF1, 0x17},908	{0xF0, 0xAF},909	{0xF0, 0x2F},910	{0xF1, 0x16},911	{0xF0, 0xB0},912	{0xF0, 0x30},913	{0xF1, 0x15},914	{0xF0, 0xB1},915	{0xF0, 0x31},916	{0xF1, 0x15},917	{0xF0, 0xB2},918	{0xF0, 0x32},919	{0xF1, 0x15},920	{0xF0, 0xB3},921	{0xF0, 0x33},922	{0xF1, 0x14},923	{0xF0, 0xB4},924	{0xF0, 0x34},925	{0xF1, 0x13},926	{0xF0, 0xB5},927	{0xF0, 0x35},928	{0xF1, 0x12},929	{0xF0, 0xB6},930	{0xF0, 0x36},931	{0xF1, 0x11},932	{0xF0, 0xB7},933	{0xF0, 0x37},934	{0xF1, 0x10},935	{0xF0, 0xB8},936	{0xF0, 0x38},937	{0xF1, 0x0F},938	{0xF0, 0xB9},939	{0xF0, 0x39},940	{0xF1, 0x0E},941	{0xF0, 0xBA},942	{0xF0, 0x3A},943	{0xF1, 0x0D},944	{0xF0, 0xBB},945	{0xF0, 0x3B},946	{0xF1, 0x0C},947	{0xF0, 0xBC},948	{0xF0, 0x3C},949	{0xF1, 0x0B},950	{0xF0, 0xBD},951	{0xF0, 0x3D},952	{0xF1, 0x0B},953	{0xF0, 0xBE},954	{0xF0, 0x3E},955	{0xF1, 0x0A},956	{0xF0, 0xBF},957	{0xF0, 0x3F},958	{0xF1, 0x09},959	{0xF0, 0x00},960};961 962#define CB_VT3253B0_INIT_FOR_AIROHA2230 256963/* For AIROHA */964static965unsigned char vt3253b0_airoha2230[CB_VT3253B0_INIT_FOR_AIROHA2230][2] = {966	{0x00, 0x31},967	{0x01, 0x00},968	{0x02, 0x00},969	{0x03, 0x00},970	{0x04, 0x00},971	{0x05, 0x80},972	{0x06, 0x00},973	{0x07, 0x00},974	{0x08, 0x70},975	{0x09, 0x41},976	{0x0a, 0x2A},977	{0x0b, 0x76},978	{0x0c, 0x00},979	{0x0d, 0x00},980	{0x0e, 0x80},981	{0x0f, 0x00},982	{0x10, 0x00},983	{0x11, 0x00},984	{0x12, 0x00},985	{0x13, 0x00},986	{0x14, 0x00},987	{0x15, 0x00},988	{0x16, 0x00},989	{0x17, 0x00},990	{0x18, 0x00},991	{0x19, 0x00},992	{0x1a, 0x00},993	{0x1b, 0x8f},994	{0x1c, 0x09},995	{0x1d, 0x00},996	{0x1e, 0x00},997	{0x1f, 0x00},998	{0x20, 0x00},999	{0x21, 0x00},1000	{0x22, 0x00},1001	{0x23, 0x00},1002	{0x24, 0x00},1003	{0x25, 0x4a},1004	{0x26, 0x00},1005	{0x27, 0x00},1006	{0x28, 0x00},1007	{0x29, 0x00},1008	{0x2a, 0x00},1009	{0x2b, 0x00},1010	{0x2c, 0x00},1011	{0x2d, 0x4a},1012	{0x2e, 0x00},1013	{0x2f, 0x0a},1014	{0x30, 0x26},1015	{0x31, 0x5b},1016	{0x32, 0x00},1017	{0x33, 0x00},1018	{0x34, 0x00},1019	{0x35, 0x00},1020	{0x36, 0xaa},1021	{0x37, 0xaa},1022	{0x38, 0xff},1023	{0x39, 0xff},1024	{0x3a, 0x79},1025	{0x3b, 0x00},1026	{0x3c, 0x00},1027	{0x3d, 0x0b},1028	{0x3e, 0x48},1029	{0x3f, 0x04},1030	{0x40, 0x00},1031	{0x41, 0x08},1032	{0x42, 0x00},1033	{0x43, 0x08},1034	{0x44, 0x08},1035	{0x45, 0x14},1036	{0x46, 0x05},1037	{0x47, 0x09},1038	{0x48, 0x00},1039	{0x49, 0x00},1040	{0x4a, 0x00},1041	{0x4b, 0x00},1042	{0x4c, 0x09},1043	{0x4d, 0x73},1044	{0x4e, 0x00},1045	{0x4f, 0xc5},1046	{0x50, 0x15},1047	{0x51, 0x19},1048	{0x52, 0x00},1049	{0x53, 0x00},1050	{0x54, 0x00},1051	{0x55, 0x00},1052	{0x56, 0x00},1053	{0x57, 0x00},1054	{0x58, 0x00},1055	{0x59, 0xb0},1056	{0x5a, 0x00},1057	{0x5b, 0x00},1058	{0x5c, 0x00},1059	{0x5d, 0x00},1060	{0x5e, 0x00},1061	{0x5f, 0x00},1062	{0x60, 0xe4},1063	{0x61, 0x80},1064	{0x62, 0x00},1065	{0x63, 0x00},1066	{0x64, 0x00},1067	{0x65, 0x00},1068	{0x66, 0x98},1069	{0x67, 0x0a},1070	{0x68, 0x00},1071	{0x69, 0x00},1072	{0x6a, 0x00},1073	{0x6b, 0x00},1074	{0x6c, 0x00}, /* RobertYu:20050125, request by JJSue */1075	{0x6d, 0x03},1076	{0x6e, 0x01},1077	{0x6f, 0x00},1078	{0x70, 0x00},1079	{0x71, 0x00},1080	{0x72, 0x00},1081	{0x73, 0x00},1082	{0x74, 0x00},1083	{0x75, 0x00},1084	{0x76, 0x00},1085	{0x77, 0x00},1086	{0x78, 0x00},1087	{0x79, 0x00},1088	{0x7a, 0x00},1089	{0x7b, 0x00},1090	{0x7c, 0x00},1091	{0x7d, 0x00},1092	{0x7e, 0x00},1093	{0x7f, 0x00},1094	{0x80, 0x8c},1095	{0x81, 0x01},1096	{0x82, 0x09},1097	{0x83, 0x00},1098	{0x84, 0x00},1099	{0x85, 0x00},1100	{0x86, 0x00},1101	{0x87, 0x00},1102	{0x88, 0x08},1103	{0x89, 0x00},1104	{0x8a, 0x0f},1105	{0x8b, 0xb7},1106	{0x8c, 0x88},1107	{0x8d, 0x47},1108	{0x8e, 0xaa},1109	{0x8f, 0x02},1110	{0x90, 0x22},1111	{0x91, 0x00},1112	{0x92, 0x00},1113	{0x93, 0x00},1114	{0x94, 0x00},1115	{0x95, 0x00},1116	{0x96, 0x00},1117	{0x97, 0xeb},1118	{0x98, 0x00},1119	{0x99, 0x00},1120	{0x9a, 0x00},1121	{0x9b, 0x00},1122	{0x9c, 0x00},1123	{0x9d, 0x00},1124	{0x9e, 0x00},1125	{0x9f, 0x01},1126	{0xa0, 0x00},1127	{0xa1, 0x00},1128	{0xa2, 0x00},1129	{0xa3, 0x00},1130	{0xa4, 0x00},1131	{0xa5, 0x00},1132	{0xa6, 0x10},1133	{0xa7, 0x00},1134	{0xa8, 0x18},1135	{0xa9, 0x00},1136	{0xaa, 0x00},1137	{0xab, 0x00},1138	{0xac, 0x00},1139	{0xad, 0x00},1140	{0xae, 0x00},1141	{0xaf, 0x18},1142	{0xb0, 0x38},1143	{0xb1, 0x30},1144	{0xb2, 0x00},1145	{0xb3, 0x00},1146	{0xb4, 0xff},1147	{0xb5, 0x0f},1148	{0xb6, 0xe4},1149	{0xb7, 0xe2},1150	{0xb8, 0x00},1151	{0xb9, 0x00},1152	{0xba, 0x00},1153	{0xbb, 0x03},1154	{0xbc, 0x01},1155	{0xbd, 0x00},1156	{0xbe, 0x00},1157	{0xbf, 0x00},1158	{0xc0, 0x18},1159	{0xc1, 0x20},1160	{0xc2, 0x07},1161	{0xc3, 0x18},1162	{0xc4, 0xff},1163	{0xc5, 0x2c},1164	{0xc6, 0x0c},1165	{0xc7, 0x0a},1166	{0xc8, 0x0e},1167	{0xc9, 0x01},1168	{0xca, 0x68},1169	{0xcb, 0xa7},1170	{0xcc, 0x3c},1171	{0xcd, 0x10},1172	{0xce, 0x00},1173	{0xcf, 0x25},1174	{0xd0, 0x40},1175	{0xd1, 0x12},1176	{0xd2, 0x00},1177	{0xd3, 0x00},1178	{0xd4, 0x10},1179	{0xd5, 0x28},1180	{0xd6, 0x80},1181	{0xd7, 0x2A},1182	{0xd8, 0x00},1183	{0xd9, 0x00},1184	{0xda, 0x00},1185	{0xdb, 0x00},1186	{0xdc, 0x00},1187	{0xdd, 0x00},1188	{0xde, 0x00},1189	{0xdf, 0x00},1190	{0xe0, 0x00},1191	{0xe1, 0xB3},1192	{0xe2, 0x00},1193	{0xe3, 0x00},1194	{0xe4, 0x00},1195	{0xe5, 0x10},1196	{0xe6, 0x00},1197	{0xe7, 0x1C},1198	{0xe8, 0x00},1199	{0xe9, 0xf4},1200	{0xea, 0x00},1201	{0xeb, 0xff},1202	{0xec, 0x79},1203	{0xed, 0x20},1204	{0xee, 0x30},1205	{0xef, 0x01},1206	{0xf0, 0x00},1207	{0xf1, 0x3e},1208	{0xf2, 0x00},1209	{0xf3, 0x00},1210	{0xf4, 0x00},1211	{0xf5, 0x00},1212	{0xf6, 0x00},1213	{0xf7, 0x00},1214	{0xf8, 0x00},1215	{0xf9, 0x00},1216	{0xfa, 0x00},1217	{0xfb, 0x00},1218	{0xfc, 0x00},1219	{0xfd, 0x00},1220	{0xfe, 0x00},1221	{0xff, 0x00},1222};1223 1224#define CB_VT3253B0_INIT_FOR_UW2451 2561225/* For UW2451 */1226static unsigned char vt3253b0_uw2451[CB_VT3253B0_INIT_FOR_UW2451][2] = {1227	{0x00, 0x31},1228	{0x01, 0x00},1229	{0x02, 0x00},1230	{0x03, 0x00},1231	{0x04, 0x00},1232	{0x05, 0x81},1233	{0x06, 0x00},1234	{0x07, 0x00},1235	{0x08, 0x38},1236	{0x09, 0x45},1237	{0x0a, 0x28},1238	{0x0b, 0x76},1239	{0x0c, 0x00},1240	{0x0d, 0x00},1241	{0x0e, 0x80},1242	{0x0f, 0x00},1243	{0x10, 0x00},1244	{0x11, 0x00},1245	{0x12, 0x00},1246	{0x13, 0x00},1247	{0x14, 0x00},1248	{0x15, 0x00},1249	{0x16, 0x00},1250	{0x17, 0x00},1251	{0x18, 0x00},1252	{0x19, 0x00},1253	{0x1a, 0x00},1254	{0x1b, 0x8f},1255	{0x1c, 0x0f},1256	{0x1d, 0x00},1257	{0x1e, 0x00},1258	{0x1f, 0x00},1259	{0x20, 0x00},1260	{0x21, 0x00},1261	{0x22, 0x00},1262	{0x23, 0x00},1263	{0x24, 0x00},1264	{0x25, 0x4a},1265	{0x26, 0x00},1266	{0x27, 0x00},1267	{0x28, 0x00},1268	{0x29, 0x00},1269	{0x2a, 0x00},1270	{0x2b, 0x00},1271	{0x2c, 0x00},1272	{0x2d, 0x18},1273	{0x2e, 0x00},1274	{0x2f, 0x0a},1275	{0x30, 0x26},1276	{0x31, 0x5b},1277	{0x32, 0x00},1278	{0x33, 0x00},1279	{0x34, 0x00},1280	{0x35, 0x00},1281	{0x36, 0xaa},1282	{0x37, 0xaa},1283	{0x38, 0xff},1284	{0x39, 0xff},1285	{0x3a, 0x00},1286	{0x3b, 0x00},1287	{0x3c, 0x00},1288	{0x3d, 0x03},1289	{0x3e, 0x1d},1290	{0x3f, 0x04},1291	{0x40, 0x00},1292	{0x41, 0x08},1293	{0x42, 0x00},1294	{0x43, 0x08},1295	{0x44, 0x08},1296	{0x45, 0x14},1297	{0x46, 0x05},1298	{0x47, 0x09},1299	{0x48, 0x00},1300	{0x49, 0x00},1301	{0x4a, 0x00},1302	{0x4b, 0x00},1303	{0x4c, 0x09},1304	{0x4d, 0x90},1305	{0x4e, 0x00},1306	{0x4f, 0xc5},1307	{0x50, 0x15},1308	{0x51, 0x19},1309	{0x52, 0x00},1310	{0x53, 0x00},1311	{0x54, 0x00},1312	{0x55, 0x00},1313	{0x56, 0x00},1314	{0x57, 0x00},1315	{0x58, 0x00},1316	{0x59, 0xb0},1317	{0x5a, 0x00},1318	{0x5b, 0x00},1319	{0x5c, 0x00},1320	{0x5d, 0x00},1321	{0x5e, 0x00},1322	{0x5f, 0x00},1323	{0x60, 0xb3},1324	{0x61, 0x81},1325	{0x62, 0x00},1326	{0x63, 0x00},1327	{0x64, 0x00},1328	{0x65, 0x00},1329	{0x66, 0x57},1330	{0x67, 0x6c},1331	{0x68, 0x00},1332	{0x69, 0x00},1333	{0x6a, 0x00},1334	{0x6b, 0x00},1335	{0x6c, 0x00}, /* RobertYu:20050125, request by JJSue */1336	{0x6d, 0x03},1337	{0x6e, 0x01},1338	{0x6f, 0x00},1339	{0x70, 0x00},1340	{0x71, 0x00},1341	{0x72, 0x00},1342	{0x73, 0x00},1343	{0x74, 0x00},1344	{0x75, 0x00},1345	{0x76, 0x00},1346	{0x77, 0x00},1347	{0x78, 0x00},1348	{0x79, 0x00},1349	{0x7a, 0x00},1350	{0x7b, 0x00},1351	{0x7c, 0x00},1352	{0x7d, 0x00},1353	{0x7e, 0x00},1354	{0x7f, 0x00},1355	{0x80, 0x8c},1356	{0x81, 0x00},1357	{0x82, 0x0e},1358	{0x83, 0x00},1359	{0x84, 0x00},1360	{0x85, 0x00},1361	{0x86, 0x00},1362	{0x87, 0x00},1363	{0x88, 0x08},1364	{0x89, 0x00},1365	{0x8a, 0x0e},1366	{0x8b, 0xa7},1367	{0x8c, 0x88},1368	{0x8d, 0x47},1369	{0x8e, 0xaa},1370	{0x8f, 0x02},1371	{0x90, 0x00},1372	{0x91, 0x00},1373	{0x92, 0x00},1374	{0x93, 0x00},1375	{0x94, 0x00},1376	{0x95, 0x00},1377	{0x96, 0x00},1378	{0x97, 0xe3},1379	{0x98, 0x00},1380	{0x99, 0x00},1381	{0x9a, 0x00},1382	{0x9b, 0x00},1383	{0x9c, 0x00},1384	{0x9d, 0x00},1385	{0x9e, 0x00},1386	{0x9f, 0x00},1387	{0xa0, 0x00},1388	{0xa1, 0x00},1389	{0xa2, 0x00},1390	{0xa3, 0x00},1391	{0xa4, 0x00},1392	{0xa5, 0x00},1393	{0xa6, 0x10},1394	{0xa7, 0x00},1395	{0xa8, 0x18},1396	{0xa9, 0x00},1397	{0xaa, 0x00},1398	{0xab, 0x00},1399	{0xac, 0x00},1400	{0xad, 0x00},1401	{0xae, 0x00},1402	{0xaf, 0x18},1403	{0xb0, 0x18},1404	{0xb1, 0x30},1405	{0xb2, 0x00},1406	{0xb3, 0x00},1407	{0xb4, 0x00},1408	{0xb5, 0x00},1409	{0xb6, 0x00},1410	{0xb7, 0x00},1411	{0xb8, 0x00},1412	{0xb9, 0x00},1413	{0xba, 0x00},1414	{0xbb, 0x03},1415	{0xbc, 0x01},1416	{0xbd, 0x00},1417	{0xbe, 0x00},1418	{0xbf, 0x00},1419	{0xc0, 0x10},1420	{0xc1, 0x20},1421	{0xc2, 0x00},1422	{0xc3, 0x20},1423	{0xc4, 0x00},1424	{0xc5, 0x2c},1425	{0xc6, 0x1c},1426	{0xc7, 0x10},1427	{0xc8, 0x10},1428	{0xc9, 0x01},1429	{0xca, 0x68},1430	{0xcb, 0xa7},1431	{0xcc, 0x3c},1432	{0xcd, 0x09},1433	{0xce, 0x00},1434	{0xcf, 0x20},1435	{0xd0, 0x40},1436	{0xd1, 0x10},1437	{0xd2, 0x00},1438	{0xd3, 0x00},1439	{0xd4, 0x20},1440	{0xd5, 0x28},1441	{0xd6, 0xa0},1442	{0xd7, 0x2a},1443	{0xd8, 0x00},1444	{0xd9, 0x00},1445	{0xda, 0x00},1446	{0xdb, 0x00},1447	{0xdc, 0x00},1448	{0xdd, 0x00},1449	{0xde, 0x00},1450	{0xdf, 0x00},1451	{0xe0, 0x00},1452	{0xe1, 0xd3},1453	{0xe2, 0xc0},1454	{0xe3, 0x00},1455	{0xe4, 0x00},1456	{0xe5, 0x10},1457	{0xe6, 0x00},1458	{0xe7, 0x12},1459	{0xe8, 0x12},1460	{0xe9, 0x34},1461	{0xea, 0x00},1462	{0xeb, 0xff},1463	{0xec, 0x79},1464	{0xed, 0x20},1465	{0xee, 0x30},1466	{0xef, 0x01},1467	{0xf0, 0x00},1468	{0xf1, 0x3e},1469	{0xf2, 0x00},1470	{0xf3, 0x00},1471	{0xf4, 0x00},1472	{0xf5, 0x00},1473	{0xf6, 0x00},1474	{0xf7, 0x00},1475	{0xf8, 0x00},1476	{0xf9, 0x00},1477	{0xfa, 0x00},1478	{0xfb, 0x00},1479	{0xfc, 0x00},1480	{0xfd, 0x00},1481	{0xfe, 0x00},1482	{0xff, 0x00},1483};1484 1485#define CB_VT3253B0_AGC 1931486/* For AIROHA */1487static unsigned char vt3253b0_agc[CB_VT3253B0_AGC][2] = {1488	{0xF0, 0x00},1489	{0xF1, 0x00},1490	{0xF0, 0x80},1491	{0xF0, 0x01},1492	{0xF1, 0x00},1493	{0xF0, 0x81},1494	{0xF0, 0x02},1495	{0xF1, 0x02},1496	{0xF0, 0x82},1497	{0xF0, 0x03},1498	{0xF1, 0x04},1499	{0xF0, 0x83},1500	{0xF0, 0x03},1501	{0xF1, 0x04},1502	{0xF0, 0x84},1503	{0xF0, 0x04},1504	{0xF1, 0x06},1505	{0xF0, 0x85},1506	{0xF0, 0x05},1507	{0xF1, 0x06},1508	{0xF0, 0x86},1509	{0xF0, 0x06},1510	{0xF1, 0x06},1511	{0xF0, 0x87},1512	{0xF0, 0x07},1513	{0xF1, 0x08},1514	{0xF0, 0x88},1515	{0xF0, 0x08},1516	{0xF1, 0x08},1517	{0xF0, 0x89},1518	{0xF0, 0x09},1519	{0xF1, 0x0A},1520	{0xF0, 0x8A},1521	{0xF0, 0x0A},1522	{0xF1, 0x0A},1523	{0xF0, 0x8B},1524	{0xF0, 0x0B},1525	{0xF1, 0x0C},1526	{0xF0, 0x8C},1527	{0xF0, 0x0C},1528	{0xF1, 0x0C},1529	{0xF0, 0x8D},1530	{0xF0, 0x0D},1531	{0xF1, 0x0E},1532	{0xF0, 0x8E},1533	{0xF0, 0x0E},1534	{0xF1, 0x0E},1535	{0xF0, 0x8F},1536	{0xF0, 0x0F},1537	{0xF1, 0x10},1538	{0xF0, 0x90},1539	{0xF0, 0x10},1540	{0xF1, 0x10},1541	{0xF0, 0x91},1542	{0xF0, 0x11},1543	{0xF1, 0x12},1544	{0xF0, 0x92},1545	{0xF0, 0x12},1546	{0xF1, 0x12},1547	{0xF0, 0x93},1548	{0xF0, 0x13},1549	{0xF1, 0x14},1550	{0xF0, 0x94},1551	{0xF0, 0x14},1552	{0xF1, 0x14},1553	{0xF0, 0x95},1554	{0xF0, 0x15},1555	{0xF1, 0x16},1556	{0xF0, 0x96},1557	{0xF0, 0x16},1558	{0xF1, 0x16},1559	{0xF0, 0x97},1560	{0xF0, 0x17},1561	{0xF1, 0x18},1562	{0xF0, 0x98},1563	{0xF0, 0x18},1564	{0xF1, 0x18},1565	{0xF0, 0x99},1566	{0xF0, 0x19},1567	{0xF1, 0x1A},1568	{0xF0, 0x9A},1569	{0xF0, 0x1A},1570	{0xF1, 0x1A},1571	{0xF0, 0x9B},1572	{0xF0, 0x1B},1573	{0xF1, 0x1C},1574	{0xF0, 0x9C},1575	{0xF0, 0x1C},1576	{0xF1, 0x1C},1577	{0xF0, 0x9D},1578	{0xF0, 0x1D},1579	{0xF1, 0x1E},1580	{0xF0, 0x9E},1581	{0xF0, 0x1E},1582	{0xF1, 0x1E},1583	{0xF0, 0x9F},1584	{0xF0, 0x1F},1585	{0xF1, 0x20},1586	{0xF0, 0xA0},1587	{0xF0, 0x20},1588	{0xF1, 0x20},1589	{0xF0, 0xA1},1590	{0xF0, 0x21},1591	{0xF1, 0x22},1592	{0xF0, 0xA2},1593	{0xF0, 0x22},1594	{0xF1, 0x22},1595	{0xF0, 0xA3},1596	{0xF0, 0x23},1597	{0xF1, 0x24},1598	{0xF0, 0xA4},1599	{0xF0, 0x24},1600	{0xF1, 0x24},1601	{0xF0, 0xA5},1602	{0xF0, 0x25},1603	{0xF1, 0x26},1604	{0xF0, 0xA6},1605	{0xF0, 0x26},1606	{0xF1, 0x26},1607	{0xF0, 0xA7},1608	{0xF0, 0x27},1609	{0xF1, 0x28},1610	{0xF0, 0xA8},1611	{0xF0, 0x28},1612	{0xF1, 0x28},1613	{0xF0, 0xA9},1614	{0xF0, 0x29},1615	{0xF1, 0x2A},1616	{0xF0, 0xAA},1617	{0xF0, 0x2A},1618	{0xF1, 0x2A},1619	{0xF0, 0xAB},1620	{0xF0, 0x2B},1621	{0xF1, 0x2C},1622	{0xF0, 0xAC},1623	{0xF0, 0x2C},1624	{0xF1, 0x2C},1625	{0xF0, 0xAD},1626	{0xF0, 0x2D},1627	{0xF1, 0x2E},1628	{0xF0, 0xAE},1629	{0xF0, 0x2E},1630	{0xF1, 0x2E},1631	{0xF0, 0xAF},1632	{0xF0, 0x2F},1633	{0xF1, 0x30},1634	{0xF0, 0xB0},1635	{0xF0, 0x30},1636	{0xF1, 0x30},1637	{0xF0, 0xB1},1638	{0xF0, 0x31},1639	{0xF1, 0x32},1640	{0xF0, 0xB2},1641	{0xF0, 0x32},1642	{0xF1, 0x32},1643	{0xF0, 0xB3},1644	{0xF0, 0x33},1645	{0xF1, 0x34},1646	{0xF0, 0xB4},1647	{0xF0, 0x34},1648	{0xF1, 0x34},1649	{0xF0, 0xB5},1650	{0xF0, 0x35},1651	{0xF1, 0x36},1652	{0xF0, 0xB6},1653	{0xF0, 0x36},1654	{0xF1, 0x36},1655	{0xF0, 0xB7},1656	{0xF0, 0x37},1657	{0xF1, 0x38},1658	{0xF0, 0xB8},1659	{0xF0, 0x38},1660	{0xF1, 0x38},1661	{0xF0, 0xB9},1662	{0xF0, 0x39},1663	{0xF1, 0x3A},1664	{0xF0, 0xBA},1665	{0xF0, 0x3A},1666	{0xF1, 0x3A},1667	{0xF0, 0xBB},1668	{0xF0, 0x3B},1669	{0xF1, 0x3C},1670	{0xF0, 0xBC},1671	{0xF0, 0x3C},1672	{0xF1, 0x3C},1673	{0xF0, 0xBD},1674	{0xF0, 0x3D},1675	{0xF1, 0x3E},1676	{0xF0, 0xBE},1677	{0xF0, 0x3E},1678	{0xF1, 0x3E},1679	{0xF0, 0xBF},1680	{0xF0, 0x00},1681};1682 1683static const unsigned short awc_frame_time[MAX_RATE] = {1684		10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 2161685};1686 1687/*---------------------  Export Variables  --------------------------*/1688/*1689 * Description: Calculate data frame transmitting time1690 *1691 * Parameters:1692 *  In:1693 *      preamble_type     - Preamble Type1694 *      by_pkt_type        - PK_TYPE_11A, PK_TYPE_11B, PK_TYPE_11GB, PK_TYPE_11GA1695 *      cb_frame_length   - Baseband Type1696 *      tx_rate           - Tx Rate1697 *  Out:1698 *1699 * Return Value: FrameTime1700 *1701 */1702unsigned int bb_get_frame_time(unsigned char preamble_type,1703			       unsigned char by_pkt_type,1704			       unsigned int cb_frame_length,1705			       unsigned short tx_rate)1706{1707	unsigned int frame_time;1708	unsigned int preamble;1709	unsigned int tmp;1710	unsigned int rate_idx = (unsigned int)tx_rate;1711	unsigned int rate = 0;1712 1713	if (rate_idx > RATE_54M)1714		return 0;1715 1716	rate = (unsigned int)awc_frame_time[rate_idx];1717 1718	if (rate_idx <= 3) {		    /* CCK mode */1719		if (preamble_type == PREAMBLE_SHORT)1720			preamble = 96;1721		else1722			preamble = 192;1723		frame_time = (cb_frame_length * 80) / rate;  /* ????? */1724		tmp = (frame_time * rate) / 80;1725		if (cb_frame_length != tmp)1726			frame_time++;1727 1728		return preamble + frame_time;1729	}1730	frame_time = (cb_frame_length * 8 + 22) / rate; /* ???????? */1731	tmp = ((frame_time * rate) - 22) / 8;1732	if (cb_frame_length != tmp)1733		frame_time++;1734 1735	frame_time = frame_time * 4;    /* ??????? */1736	if (by_pkt_type != PK_TYPE_11A)1737		frame_time += 6;     /* ?????? */1738 1739	return 20 + frame_time; /* ?????? */1740}1741 1742/*1743 * Description: Calculate Length, Service, and Signal fields of Phy for Tx1744 *1745 * Parameters:1746 *  In:1747 *      priv         - Device Structure1748 *      frame_length   - Tx Frame Length1749 *      tx_rate           - Tx Rate1750 *  Out:1751 *	struct vnt_phy_field *phy1752 *		- pointer to Phy Length field1753 *		- pointer to Phy Service field1754 *		- pointer to Phy Signal field1755 *1756 * Return Value: none1757 *1758 */1759void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,1760		       u16 tx_rate, u8 pkt_type, struct vnt_phy_field *phy)1761{1762	u32 bit_count;1763	u32 count = 0;1764	u32 tmp;1765	int ext_bit;1766	u8 preamble_type = priv->preamble_type;1767 1768	bit_count = frame_length * 8;1769	ext_bit = false;1770 1771	switch (tx_rate) {1772	case RATE_1M:1773		count = bit_count;1774 1775		phy->signal = 0x00;1776 1777		break;1778	case RATE_2M:1779		count = bit_count / 2;1780 1781		if (preamble_type == PREAMBLE_SHORT)1782			phy->signal = 0x09;1783		else1784			phy->signal = 0x01;1785 1786		break;1787	case RATE_5M:1788		count = (bit_count * 10) / 55;1789		tmp = (count * 55) / 10;1790 1791		if (tmp != bit_count)1792			count++;1793 1794		if (preamble_type == PREAMBLE_SHORT)1795			phy->signal = 0x0a;1796		else1797			phy->signal = 0x02;1798 1799		break;1800	case RATE_11M:1801		count = bit_count / 11;1802		tmp = count * 11;1803 1804		if (tmp != bit_count) {1805			count++;1806 1807			if ((bit_count - tmp) <= 3)1808				ext_bit = true;1809		}1810 1811		if (preamble_type == PREAMBLE_SHORT)1812			phy->signal = 0x0b;1813		else1814			phy->signal = 0x03;1815 1816		break;1817	case RATE_6M:1818		if (pkt_type == PK_TYPE_11A)1819			phy->signal = 0x9b;1820		else1821			phy->signal = 0x8b;1822 1823		break;1824	case RATE_9M:1825		if (pkt_type == PK_TYPE_11A)1826			phy->signal = 0x9f;1827		else1828			phy->signal = 0x8f;1829 1830		break;1831	case RATE_12M:1832		if (pkt_type == PK_TYPE_11A)1833			phy->signal = 0x9a;1834		else1835			phy->signal = 0x8a;1836 1837		break;1838	case RATE_18M:1839		if (pkt_type == PK_TYPE_11A)1840			phy->signal = 0x9e;1841		else1842			phy->signal = 0x8e;1843 1844		break;1845	case RATE_24M:1846		if (pkt_type == PK_TYPE_11A)1847			phy->signal = 0x99;1848		else1849			phy->signal = 0x89;1850 1851		break;1852	case RATE_36M:1853		if (pkt_type == PK_TYPE_11A)1854			phy->signal = 0x9d;1855		else1856			phy->signal = 0x8d;1857 1858		break;1859	case RATE_48M:1860		if (pkt_type == PK_TYPE_11A)1861			phy->signal = 0x98;1862		else1863			phy->signal = 0x88;1864 1865		break;1866	case RATE_54M:1867		if (pkt_type == PK_TYPE_11A)1868			phy->signal = 0x9c;1869		else1870			phy->signal = 0x8c;1871		break;1872	default:1873		if (pkt_type == PK_TYPE_11A)1874			phy->signal = 0x9c;1875		else1876			phy->signal = 0x8c;1877		break;1878	}1879 1880	if (pkt_type == PK_TYPE_11B) {1881		phy->service = 0x00;1882		if (ext_bit)1883			phy->service |= 0x80;1884		phy->len = cpu_to_le16((u16)count);1885	} else {1886		phy->service = 0x00;1887		phy->len = cpu_to_le16((u16)frame_length);1888	}1889}1890 1891/*1892 * Description: Read a byte from BASEBAND, by embedded programming1893 *1894 * Parameters:1895 *  In:1896 *      iobase      - I/O base address1897 *      by_bb_addr  - address of register in Baseband1898 *  Out:1899 *      pby_data    - data read1900 *1901 * Return Value: true if succeeded; false if failed.1902 *1903 */1904bool bb_read_embedded(struct vnt_private *priv, unsigned char by_bb_addr,1905		      unsigned char *pby_data)1906{1907	void __iomem *iobase = priv->port_offset;1908	unsigned short ww;1909	unsigned char by_value;1910 1911	/* BB reg offset */1912	iowrite8(by_bb_addr, iobase + MAC_REG_BBREGADR);1913 1914	/* turn on REGR */1915	vt6655_mac_reg_bits_on(iobase, MAC_REG_BBREGCTL, BBREGCTL_REGR);1916	/* W_MAX_TIMEOUT is the timeout period */1917	for (ww = 0; ww < W_MAX_TIMEOUT; ww++) {1918		by_value = ioread8(iobase + MAC_REG_BBREGCTL);1919		if (by_value & BBREGCTL_DONE)1920			break;1921	}1922 1923	/* get BB data */1924	*pby_data = ioread8(iobase + MAC_REG_BBREGDATA);1925 1926	if (ww == W_MAX_TIMEOUT) {1927		pr_debug(" DBG_PORT80(0x30)\n");1928		return false;1929	}1930	return true;1931}1932 1933/*1934 * Description: Write a Byte to BASEBAND, by embedded programming1935 *1936 * Parameters:1937 *  In:1938 *      iobase      - I/O base address1939 *      by_bb_addr  - address of register in Baseband1940 *      by_data     - data to write1941 *  Out:1942 *      none1943 *1944 * Return Value: true if succeeded; false if failed.1945 *1946 */1947bool bb_write_embedded(struct vnt_private *priv, unsigned char by_bb_addr,1948		       unsigned char by_data)1949{1950	void __iomem *iobase = priv->port_offset;1951	unsigned short ww;1952	unsigned char by_value;1953 1954	/* BB reg offset */1955	iowrite8(by_bb_addr, iobase + MAC_REG_BBREGADR);1956	/* set BB data */1957	iowrite8(by_data, iobase + MAC_REG_BBREGDATA);1958 1959	/* turn on BBREGCTL_REGW */1960	vt6655_mac_reg_bits_on(iobase, MAC_REG_BBREGCTL, BBREGCTL_REGW);1961	/* W_MAX_TIMEOUT is the timeout period */1962	for (ww = 0; ww < W_MAX_TIMEOUT; ww++) {1963		by_value = ioread8(iobase + MAC_REG_BBREGCTL);1964		if (by_value & BBREGCTL_DONE)1965			break;1966	}1967 1968	if (ww == W_MAX_TIMEOUT) {1969		pr_debug(" DBG_PORT80(0x31)\n");1970		return false;1971	}1972	return true;1973}1974 1975/*1976 * Description: VIA VT3253 Baseband chip init function1977 *1978 * Parameters:1979 *  In:1980 *      iobase      - I/O base address1981 *      byRevId     - Revision ID1982 *      rf_type     - RF type1983 *  Out:1984 *      none1985 *1986 * Return Value: true if succeeded; false if failed.1987 *1988 */1989 1990bool bb_vt3253_init(struct vnt_private *priv)1991{1992	bool result = true;1993	int        ii;1994	void __iomem *iobase = priv->port_offset;1995	unsigned char rf_type = priv->rf_type;1996	unsigned char by_local_id = priv->local_id;1997 1998	if (rf_type == RF_RFMD2959) {1999		if (by_local_id <= REV_ID_VT3253_A1) {2000			for (ii = 0; ii < CB_VT3253_INIT_FOR_RFMD; ii++)2001				result &= bb_write_embedded(priv,2002					by_vt3253_init_tab_rfmd[ii][0],2003					by_vt3253_init_tab_rfmd[ii][1]);2004 2005		} else {2006			for (ii = 0; ii < CB_VT3253B0_INIT_FOR_RFMD; ii++)2007				result &= bb_write_embedded(priv,2008					vt3253b0_rfmd[ii][0],2009					vt3253b0_rfmd[ii][1]);2010 2011			for (ii = 0; ii < CB_VT3253B0_AGC_FOR_RFMD2959; ii++)2012				result &= bb_write_embedded(priv,2013					vt3253b0_agc4_rfmd2959[ii][0],2014					vt3253b0_agc4_rfmd2959[ii][1]);2015 2016			iowrite32(0x23, iobase + MAC_REG_ITRTMSET);2017			vt6655_mac_reg_bits_on(iobase, MAC_REG_PAPEDELAY, BIT(0));2018		}2019		priv->bbvga[0] = 0x18;2020		priv->bbvga[1] = 0x0A;2021		priv->bbvga[2] = 0x0;2022		priv->bbvga[3] = 0x0;2023		priv->dbm_threshold[0] = -70;2024		priv->dbm_threshold[1] = -50;2025		priv->dbm_threshold[2] = 0;2026		priv->dbm_threshold[3] = 0;2027	} else if ((rf_type == RF_AIROHA) || (rf_type == RF_AL2230S)) {2028		for (ii = 0; ii < CB_VT3253B0_INIT_FOR_AIROHA2230; ii++)2029			result &= bb_write_embedded(priv,2030				vt3253b0_airoha2230[ii][0],2031				vt3253b0_airoha2230[ii][1]);2032 2033		for (ii = 0; ii < CB_VT3253B0_AGC; ii++)2034			result &= bb_write_embedded(priv,2035				vt3253b0_agc[ii][0], vt3253b0_agc[ii][1]);2036 2037		priv->bbvga[0] = 0x1C;2038		priv->bbvga[1] = 0x10;2039		priv->bbvga[2] = 0x0;2040		priv->bbvga[3] = 0x0;2041		priv->dbm_threshold[0] = -70;2042		priv->dbm_threshold[1] = -48;2043		priv->dbm_threshold[2] = 0;2044		priv->dbm_threshold[3] = 0;2045	} else if (rf_type == RF_UW2451) {2046		for (ii = 0; ii < CB_VT3253B0_INIT_FOR_UW2451; ii++)2047			result &= bb_write_embedded(priv,2048				vt3253b0_uw2451[ii][0],2049				vt3253b0_uw2451[ii][1]);2050 2051		for (ii = 0; ii < CB_VT3253B0_AGC; ii++)2052			result &= bb_write_embedded(priv,2053				vt3253b0_agc[ii][0],2054				vt3253b0_agc[ii][1]);2055 2056		iowrite8(0x23, iobase + MAC_REG_ITRTMSET);2057		vt6655_mac_reg_bits_on(iobase, MAC_REG_PAPEDELAY, BIT(0));2058 2059		priv->bbvga[0] = 0x14;2060		priv->bbvga[1] = 0x0A;2061		priv->bbvga[2] = 0x0;2062		priv->bbvga[3] = 0x0;2063		priv->dbm_threshold[0] = -60;2064		priv->dbm_threshold[1] = -50;2065		priv->dbm_threshold[2] = 0;2066		priv->dbm_threshold[3] = 0;2067	} else if (rf_type == RF_VT3226) {2068		for (ii = 0; ii < CB_VT3253B0_INIT_FOR_AIROHA2230; ii++)2069			result &= bb_write_embedded(priv,2070				vt3253b0_airoha2230[ii][0],2071				vt3253b0_airoha2230[ii][1]);2072 2073		for (ii = 0; ii < CB_VT3253B0_AGC; ii++)2074			result &= bb_write_embedded(priv,2075				vt3253b0_agc[ii][0], vt3253b0_agc[ii][1]);2076 2077		priv->bbvga[0] = 0x1C;2078		priv->bbvga[1] = 0x10;2079		priv->bbvga[2] = 0x0;2080		priv->bbvga[3] = 0x0;2081		priv->dbm_threshold[0] = -70;2082		priv->dbm_threshold[1] = -48;2083		priv->dbm_threshold[2] = 0;2084		priv->dbm_threshold[3] = 0;2085		/* Fix VT3226 DFC system timing issue */2086		vt6655_mac_word_reg_bits_on(iobase, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_RFLEOPT);2087		/* {{ RobertYu: 20050104 */2088	} else {2089		/* No VGA Table now */2090		priv->update_bbvga = false;2091		priv->bbvga[0] = 0x1C;2092	}2093 2094	if (by_local_id > REV_ID_VT3253_A1) {2095		bb_write_embedded(priv, 0x04, 0x7F);2096		bb_write_embedded(priv, 0x0D, 0x01);2097	}2098 2099	return result;2100}2101 2102/*2103 * Description: Set ShortSlotTime mode2104 *2105 * Parameters:2106 *  In:2107 *      priv     - Device Structure2108 *  Out:2109 *      none2110 *2111 * Return Value: none2112 *2113 */2114void2115bb_set_short_slot_time(struct vnt_private *priv)2116{2117	unsigned char by_bb_rx_conf = 0;2118	unsigned char by_bb_vga = 0;2119 2120	bb_read_embedded(priv, 0x0A, &by_bb_rx_conf); /* CR10 */2121 2122	if (priv->short_slot_time)2123		by_bb_rx_conf &= 0xDF; /* 1101 1111 */2124	else2125		by_bb_rx_conf |= 0x20; /* 0010 0000 */2126 2127	/* patch for 3253B0 Baseband with Cardbus module */2128	bb_read_embedded(priv, 0xE7, &by_bb_vga);2129	if (by_bb_vga == priv->bbvga[0])2130		by_bb_rx_conf |= 0x20; /* 0010 0000 */2131 2132	bb_write_embedded(priv, 0x0A, by_bb_rx_conf); /* CR10 */2133}2134 2135void bb_set_vga_gain_offset(struct vnt_private *priv, unsigned char by_data)2136{2137	unsigned char by_bb_rx_conf = 0;2138 2139	bb_write_embedded(priv, 0xE7, by_data);2140 2141	bb_read_embedded(priv, 0x0A, &by_bb_rx_conf); /* CR10 */2142	/* patch for 3253B0 Baseband with Cardbus module */2143	if (by_data == priv->bbvga[0])2144		by_bb_rx_conf |= 0x20; /* 0010 0000 */2145	else if (priv->short_slot_time)2146		by_bb_rx_conf &= 0xDF; /* 1101 1111 */2147	else2148		by_bb_rx_conf |= 0x20; /* 0010 0000 */2149	priv->bbvga_current = by_data;2150	bb_write_embedded(priv, 0x0A, by_bb_rx_conf); /* CR10 */2151}2152 2153/*2154 * Description: Baseband SoftwareReset2155 *2156 * Parameters:2157 *  In:2158 *      iobase      - I/O base address2159 *  Out:2160 *      none2161 *2162 * Return Value: none2163 *2164 */2165void2166bb_software_reset(struct vnt_private *priv)2167{2168	bb_write_embedded(priv, 0x50, 0x40);2169	bb_write_embedded(priv, 0x50, 0);2170	bb_write_embedded(priv, 0x9C, 0x01);2171	bb_write_embedded(priv, 0x9C, 0);2172}2173 2174/*2175 * Description: Set Tx Antenna mode2176 *2177 * Parameters:2178 *  In:2179 *      priv          - Device Structure2180 *      by_antenna_mode    - Antenna Mode2181 *  Out:2182 *      none2183 *2184 * Return Value: none2185 *2186 */2187 2188void2189bb_set_tx_antenna_mode(struct vnt_private *priv, unsigned char by_antenna_mode)2190{2191	unsigned char by_bb_tx_conf;2192 2193	bb_read_embedded(priv, 0x09, &by_bb_tx_conf); /* CR09 */2194	if (by_antenna_mode == ANT_DIVERSITY) {2195		/* bit 1 is diversity */2196		by_bb_tx_conf |= 0x02;2197	} else if (by_antenna_mode == ANT_A) {2198		/* bit 2 is ANTSEL */2199		by_bb_tx_conf &= 0xF9; /* 1111 1001 */2200	} else if (by_antenna_mode == ANT_B) {2201		by_bb_tx_conf &= 0xFD; /* 1111 1101 */2202		by_bb_tx_conf |= 0x04;2203	}2204	bb_write_embedded(priv, 0x09, by_bb_tx_conf); /* CR09 */2205}2206 2207/*2208 * Description: Set Rx Antenna mode2209 *2210 * Parameters:2211 *  In:2212 *      priv          - Device Structure2213 *      by_antenna_mode   - Antenna Mode2214 *  Out:2215 *      none2216 *2217 * Return Value: none2218 *2219 */2220 2221void2222bb_set_rx_antenna_mode(struct vnt_private *priv, unsigned char by_antenna_mode)2223{2224	unsigned char by_bb_rx_conf;2225 2226	bb_read_embedded(priv, 0x0A, &by_bb_rx_conf); /* CR10 */2227	if (by_antenna_mode == ANT_DIVERSITY) {2228		by_bb_rx_conf |= 0x01;2229 2230	} else if (by_antenna_mode == ANT_A) {2231		by_bb_rx_conf &= 0xFC; /* 1111 1100 */2232	} else if (by_antenna_mode == ANT_B) {2233		by_bb_rx_conf &= 0xFE; /* 1111 1110 */2234		by_bb_rx_conf |= 0x02;2235	}2236	bb_write_embedded(priv, 0x0A, by_bb_rx_conf); /* CR10 */2237}2238 2239/*2240 * Description: bb_set_deep_sleep2241 *2242 * Parameters:2243 *  In:2244 *      priv          - Device Structure2245 *  Out:2246 *      none2247 *2248 * Return Value: none2249 *2250 */2251void2252bb_set_deep_sleep(struct vnt_private *priv, unsigned char by_local_id)2253{2254	bb_write_embedded(priv, 0x0C, 0x17); /* CR12 */2255	bb_write_embedded(priv, 0x0D, 0xB9); /* CR13 */2256}2257 2258