Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: vt6655: remove antenna diversity functions

The vendor had disabled these functions in their last version.

On test this can be troublesome, so remove this from the driver along
with its macros and timers.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Malcolm Priestley and committed by
Greg Kroah-Hartman
e6f534bc 63e8d787

-442
-340
drivers/staging/vt6655/baseband.c
··· 1699 1699 10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216 1700 1700 }; 1701 1701 1702 - /*--------------------- Static Functions --------------------------*/ 1703 - 1704 - static 1705 - unsigned long 1706 - s_ulGetRatio(struct vnt_private *priv); 1707 - 1708 - static 1709 - void 1710 - s_vChangeAntenna( 1711 - struct vnt_private *priv 1712 - ); 1713 - 1714 - static 1715 - void 1716 - s_vChangeAntenna( 1717 - struct vnt_private *priv 1718 - ) 1719 - { 1720 - if (priv->dwRxAntennaSel == 0) { 1721 - priv->dwRxAntennaSel = 1; 1722 - if (priv->bTxRxAntInv == true) 1723 - BBvSetRxAntennaMode(priv, ANT_A); 1724 - else 1725 - BBvSetRxAntennaMode(priv, ANT_B); 1726 - } else { 1727 - priv->dwRxAntennaSel = 0; 1728 - if (priv->bTxRxAntInv == true) 1729 - BBvSetRxAntennaMode(priv, ANT_B); 1730 - else 1731 - BBvSetRxAntennaMode(priv, ANT_A); 1732 - } 1733 - if (priv->dwTxAntennaSel == 0) { 1734 - priv->dwTxAntennaSel = 1; 1735 - BBvSetTxAntennaMode(priv, ANT_B); 1736 - } else { 1737 - priv->dwTxAntennaSel = 0; 1738 - BBvSetTxAntennaMode(priv, ANT_A); 1739 - } 1740 - } 1741 - 1742 1702 /*--------------------- Export Variables --------------------------*/ 1743 1703 /* 1744 1704 * Description: Calculate data frame transmitting time ··· 2372 2412 { 2373 2413 BBbWriteEmbedded(priv, 0x0C, 0x00); /* CR12 */ 2374 2414 BBbWriteEmbedded(priv, 0x0D, 0x01); /* CR13 */ 2375 - } 2376 - 2377 - static 2378 - unsigned long 2379 - s_ulGetRatio(struct vnt_private *priv) 2380 - { 2381 - unsigned long ulRatio = 0; 2382 - unsigned long ulMaxPacket; 2383 - unsigned long ulPacketNum; 2384 - 2385 - /* This is a thousand-ratio */ 2386 - ulMaxPacket = priv->uNumSQ3[RATE_54M]; 2387 - if (priv->uNumSQ3[RATE_54M] != 0) { 2388 - ulPacketNum = priv->uNumSQ3[RATE_54M]; 2389 - ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt); 2390 - ulRatio += TOP_RATE_54M; 2391 - } 2392 - if (priv->uNumSQ3[RATE_48M] > ulMaxPacket) { 2393 - ulPacketNum = priv->uNumSQ3[RATE_54M] + priv->uNumSQ3[RATE_48M]; 2394 - ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt); 2395 - ulRatio += TOP_RATE_48M; 2396 - ulMaxPacket = priv->uNumSQ3[RATE_48M]; 2397 - } 2398 - if (priv->uNumSQ3[RATE_36M] > ulMaxPacket) { 2399 - ulPacketNum = priv->uNumSQ3[RATE_54M] + priv->uNumSQ3[RATE_48M] + 2400 - priv->uNumSQ3[RATE_36M]; 2401 - ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt); 2402 - ulRatio += TOP_RATE_36M; 2403 - ulMaxPacket = priv->uNumSQ3[RATE_36M]; 2404 - } 2405 - if (priv->uNumSQ3[RATE_24M] > ulMaxPacket) { 2406 - ulPacketNum = priv->uNumSQ3[RATE_54M] + priv->uNumSQ3[RATE_48M] + 2407 - priv->uNumSQ3[RATE_36M] + priv->uNumSQ3[RATE_24M]; 2408 - ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt); 2409 - ulRatio += TOP_RATE_24M; 2410 - ulMaxPacket = priv->uNumSQ3[RATE_24M]; 2411 - } 2412 - if (priv->uNumSQ3[RATE_18M] > ulMaxPacket) { 2413 - ulPacketNum = priv->uNumSQ3[RATE_54M] + priv->uNumSQ3[RATE_48M] + 2414 - priv->uNumSQ3[RATE_36M] + priv->uNumSQ3[RATE_24M] + 2415 - priv->uNumSQ3[RATE_18M]; 2416 - ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt); 2417 - ulRatio += TOP_RATE_18M; 2418 - ulMaxPacket = priv->uNumSQ3[RATE_18M]; 2419 - } 2420 - if (priv->uNumSQ3[RATE_12M] > ulMaxPacket) { 2421 - ulPacketNum = priv->uNumSQ3[RATE_54M] + priv->uNumSQ3[RATE_48M] + 2422 - priv->uNumSQ3[RATE_36M] + priv->uNumSQ3[RATE_24M] + 2423 - priv->uNumSQ3[RATE_18M] + priv->uNumSQ3[RATE_12M]; 2424 - ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt); 2425 - ulRatio += TOP_RATE_12M; 2426 - ulMaxPacket = priv->uNumSQ3[RATE_12M]; 2427 - } 2428 - if (priv->uNumSQ3[RATE_11M] > ulMaxPacket) { 2429 - ulPacketNum = priv->uDiversityCnt - priv->uNumSQ3[RATE_1M] - 2430 - priv->uNumSQ3[RATE_2M] - priv->uNumSQ3[RATE_5M] - 2431 - priv->uNumSQ3[RATE_6M] - priv->uNumSQ3[RATE_9M]; 2432 - ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt); 2433 - ulRatio += TOP_RATE_11M; 2434 - ulMaxPacket = priv->uNumSQ3[RATE_11M]; 2435 - } 2436 - if (priv->uNumSQ3[RATE_9M] > ulMaxPacket) { 2437 - ulPacketNum = priv->uDiversityCnt - priv->uNumSQ3[RATE_1M] - 2438 - priv->uNumSQ3[RATE_2M] - priv->uNumSQ3[RATE_5M] - 2439 - priv->uNumSQ3[RATE_6M]; 2440 - ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt); 2441 - ulRatio += TOP_RATE_9M; 2442 - ulMaxPacket = priv->uNumSQ3[RATE_9M]; 2443 - } 2444 - if (priv->uNumSQ3[RATE_6M] > ulMaxPacket) { 2445 - ulPacketNum = priv->uDiversityCnt - priv->uNumSQ3[RATE_1M] - 2446 - priv->uNumSQ3[RATE_2M] - priv->uNumSQ3[RATE_5M]; 2447 - ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt); 2448 - ulRatio += TOP_RATE_6M; 2449 - ulMaxPacket = priv->uNumSQ3[RATE_6M]; 2450 - } 2451 - if (priv->uNumSQ3[RATE_5M] > ulMaxPacket) { 2452 - ulPacketNum = priv->uDiversityCnt - priv->uNumSQ3[RATE_1M] - 2453 - priv->uNumSQ3[RATE_2M]; 2454 - ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt); 2455 - ulRatio += TOP_RATE_55M; 2456 - ulMaxPacket = priv->uNumSQ3[RATE_5M]; 2457 - } 2458 - if (priv->uNumSQ3[RATE_2M] > ulMaxPacket) { 2459 - ulPacketNum = priv->uDiversityCnt - priv->uNumSQ3[RATE_1M]; 2460 - ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt); 2461 - ulRatio += TOP_RATE_2M; 2462 - ulMaxPacket = priv->uNumSQ3[RATE_2M]; 2463 - } 2464 - if (priv->uNumSQ3[RATE_1M] > ulMaxPacket) { 2465 - ulPacketNum = priv->uDiversityCnt; 2466 - ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt); 2467 - ulRatio += TOP_RATE_1M; 2468 - } 2469 - 2470 - return ulRatio; 2471 - } 2472 - 2473 - void 2474 - BBvClearAntDivSQ3Value(struct vnt_private *priv) 2475 - { 2476 - unsigned int ii; 2477 - 2478 - priv->uDiversityCnt = 0; 2479 - for (ii = 0; ii < MAX_RATE; ii++) 2480 - priv->uNumSQ3[ii] = 0; 2481 - } 2482 - 2483 - /* 2484 - * Description: Antenna Diversity 2485 - * 2486 - * Parameters: 2487 - * In: 2488 - * priv - Device Structure 2489 - * byRSR - RSR from received packet 2490 - * bySQ3 - SQ3 value from received packet 2491 - * Out: 2492 - * none 2493 - * 2494 - * Return Value: none 2495 - * 2496 - */ 2497 - 2498 - void BBvAntennaDiversity(struct vnt_private *priv, 2499 - unsigned char byRxRate, unsigned char bySQ3) 2500 - { 2501 - if ((byRxRate >= MAX_RATE) || (priv->wAntDiversityMaxRate >= MAX_RATE)) 2502 - return; 2503 - 2504 - priv->uDiversityCnt++; 2505 - 2506 - priv->uNumSQ3[byRxRate]++; 2507 - 2508 - if (priv->byAntennaState == 0) { 2509 - if (priv->uDiversityCnt > priv->ulDiversityNValue) { 2510 - pr_debug("ulDiversityNValue=[%d],54M-[%d]\n", 2511 - (int)priv->ulDiversityNValue, 2512 - (int)priv->uNumSQ3[(int)priv->wAntDiversityMaxRate]); 2513 - 2514 - if (priv->uNumSQ3[priv->wAntDiversityMaxRate] < priv->uDiversityCnt/2) { 2515 - priv->ulRatio_State0 = s_ulGetRatio(priv); 2516 - pr_debug("SQ3_State0, rate = [%08x]\n", 2517 - (int)priv->ulRatio_State0); 2518 - 2519 - if (priv->byTMax == 0) 2520 - return; 2521 - pr_debug("1.[%08x], uNumSQ3[%d]=%d, %d\n", 2522 - (int)priv->ulRatio_State0, 2523 - (int)priv->wAntDiversityMaxRate, 2524 - (int)priv->uNumSQ3[(int)priv->wAntDiversityMaxRate], 2525 - (int)priv->uDiversityCnt); 2526 - 2527 - s_vChangeAntenna(priv); 2528 - priv->byAntennaState = 1; 2529 - del_timer(&priv->TimerSQ3Tmax3); 2530 - del_timer(&priv->TimerSQ3Tmax2); 2531 - priv->TimerSQ3Tmax1.expires = RUN_AT(priv->byTMax * HZ); 2532 - add_timer(&priv->TimerSQ3Tmax1); 2533 - 2534 - } else { 2535 - priv->TimerSQ3Tmax3.expires = RUN_AT(priv->byTMax3 * HZ); 2536 - add_timer(&priv->TimerSQ3Tmax3); 2537 - } 2538 - BBvClearAntDivSQ3Value(priv); 2539 - 2540 - } 2541 - } else { /* byAntennaState == 1 */ 2542 - 2543 - if (priv->uDiversityCnt > priv->ulDiversityMValue) { 2544 - del_timer(&priv->TimerSQ3Tmax1); 2545 - 2546 - priv->ulRatio_State1 = s_ulGetRatio(priv); 2547 - pr_debug("RX:SQ3_State1, rate0 = %08x,rate1 = %08x\n", 2548 - (int)priv->ulRatio_State0, 2549 - (int)priv->ulRatio_State1); 2550 - 2551 - if (priv->ulRatio_State1 < priv->ulRatio_State0) { 2552 - pr_debug("2.[%08x][%08x], uNumSQ3[%d]=%d, %d\n", 2553 - (int)priv->ulRatio_State0, 2554 - (int)priv->ulRatio_State1, 2555 - (int)priv->wAntDiversityMaxRate, 2556 - (int)priv->uNumSQ3[(int)priv->wAntDiversityMaxRate], 2557 - (int)priv->uDiversityCnt); 2558 - 2559 - s_vChangeAntenna(priv); 2560 - priv->TimerSQ3Tmax3.expires = RUN_AT(priv->byTMax3 * HZ); 2561 - priv->TimerSQ3Tmax2.expires = RUN_AT(priv->byTMax2 * HZ); 2562 - add_timer(&priv->TimerSQ3Tmax3); 2563 - add_timer(&priv->TimerSQ3Tmax2); 2564 - } 2565 - priv->byAntennaState = 0; 2566 - BBvClearAntDivSQ3Value(priv); 2567 - } 2568 - } /* byAntennaState */ 2569 - } 2570 - 2571 - /*+ 2572 - * 2573 - * Description: 2574 - * Timer for SQ3 antenna diversity 2575 - * 2576 - * Parameters: 2577 - * In: 2578 - * Out: 2579 - * none 2580 - * 2581 - * Return Value: none 2582 - * 2583 - -*/ 2584 - 2585 - void 2586 - TimerSQ3CallBack( 2587 - unsigned long data 2588 - ) 2589 - { 2590 - struct vnt_private *priv = (struct vnt_private *)data; 2591 - unsigned long flags; 2592 - 2593 - pr_debug("TimerSQ3CallBack...\n"); 2594 - 2595 - spin_lock_irqsave(&priv->lock, flags); 2596 - 2597 - pr_debug("3.[%08x][%08x], %d\n", 2598 - (int)priv->ulRatio_State0, (int)priv->ulRatio_State1, 2599 - (int)priv->uDiversityCnt); 2600 - 2601 - s_vChangeAntenna(priv); 2602 - priv->byAntennaState = 0; 2603 - BBvClearAntDivSQ3Value(priv); 2604 - 2605 - priv->TimerSQ3Tmax3.expires = RUN_AT(priv->byTMax3 * HZ); 2606 - priv->TimerSQ3Tmax2.expires = RUN_AT(priv->byTMax2 * HZ); 2607 - add_timer(&priv->TimerSQ3Tmax3); 2608 - add_timer(&priv->TimerSQ3Tmax2); 2609 - 2610 - spin_unlock_irqrestore(&priv->lock, flags); 2611 - } 2612 - 2613 - /*+ 2614 - * 2615 - * Description: 2616 - * Timer for SQ3 antenna diversity 2617 - * 2618 - * Parameters: 2619 - * In: 2620 - * pvSysSpec1 2621 - * hDeviceContext - Pointer to the adapter 2622 - * pvSysSpec2 2623 - * pvSysSpec3 2624 - * Out: 2625 - * none 2626 - * 2627 - * Return Value: none 2628 - * 2629 - -*/ 2630 - 2631 - void 2632 - TimerState1CallBack( 2633 - unsigned long data 2634 - ) 2635 - { 2636 - struct vnt_private *priv = (struct vnt_private *)data; 2637 - unsigned long flags; 2638 - 2639 - pr_debug("TimerState1CallBack...\n"); 2640 - 2641 - spin_lock_irqsave(&priv->lock, flags); 2642 - 2643 - if (priv->uDiversityCnt < priv->ulDiversityMValue/100) { 2644 - s_vChangeAntenna(priv); 2645 - priv->TimerSQ3Tmax3.expires = RUN_AT(priv->byTMax3 * HZ); 2646 - priv->TimerSQ3Tmax2.expires = RUN_AT(priv->byTMax2 * HZ); 2647 - add_timer(&priv->TimerSQ3Tmax3); 2648 - add_timer(&priv->TimerSQ3Tmax2); 2649 - } else { 2650 - priv->ulRatio_State1 = s_ulGetRatio(priv); 2651 - pr_debug("SQ3_State1, rate0 = %08x,rate1 = %08x\n", 2652 - (int)priv->ulRatio_State0, 2653 - (int)priv->ulRatio_State1); 2654 - 2655 - if (priv->ulRatio_State1 < priv->ulRatio_State0) { 2656 - pr_debug("2.[%08x][%08x], uNumSQ3[%d]=%d, %d\n", 2657 - (int)priv->ulRatio_State0, 2658 - (int)priv->ulRatio_State1, 2659 - (int)priv->wAntDiversityMaxRate, 2660 - (int)priv->uNumSQ3[(int)priv->wAntDiversityMaxRate], 2661 - (int)priv->uDiversityCnt); 2662 - 2663 - s_vChangeAntenna(priv); 2664 - 2665 - priv->TimerSQ3Tmax3.expires = RUN_AT(priv->byTMax3 * HZ); 2666 - priv->TimerSQ3Tmax2.expires = RUN_AT(priv->byTMax2 * HZ); 2667 - add_timer(&priv->TimerSQ3Tmax3); 2668 - add_timer(&priv->TimerSQ3Tmax2); 2669 - } 2670 - } 2671 - priv->byAntennaState = 0; 2672 - BBvClearAntDivSQ3Value(priv); 2673 - 2674 - spin_unlock_irqrestore(&priv->lock, flags); 2675 2415 }
-17
drivers/staging/vt6655/baseband.h
··· 93 93 void BBvSetDeepSleep(struct vnt_private *, unsigned char byLocalID); 94 94 void BBvExitDeepSleep(struct vnt_private *, unsigned char byLocalID); 95 95 96 - /* timer for antenna diversity */ 97 - 98 - void 99 - TimerSQ3CallBack( 100 - unsigned long 101 - ); 102 - 103 - void 104 - TimerState1CallBack( 105 - unsigned long 106 - ); 107 - 108 - void BBvAntennaDiversity(struct vnt_private *, 109 - unsigned char byRxRate, unsigned char bySQ3); 110 - void 111 - BBvClearAntDivSQ3Value(struct vnt_private *); 112 - 113 96 #endif /* __BASEBAND_H__ */
-23
drivers/staging/vt6655/device.h
··· 407 407 unsigned char byBBCR88; 408 408 unsigned char byBBCR09; 409 409 410 - bool bDiversityRegCtlON; 411 - bool bDiversityEnable; 412 - unsigned long ulDiversityNValue; 413 - unsigned long ulDiversityMValue; 414 - unsigned char byTMax; 415 - unsigned char byTMax2; 416 - unsigned char byTMax3; 417 - unsigned long ulSQ3TH; 418 - 419 - /* ANT diversity */ 420 - unsigned long uDiversityCnt; 421 - unsigned char byAntennaState; 422 - unsigned long ulRatio_State0; 423 - unsigned long ulRatio_State1; 424 - 425 - /* SQ3 functions for antenna diversity */ 426 - struct timer_list TimerSQ3Tmax1; 427 - struct timer_list TimerSQ3Tmax2; 428 - struct timer_list TimerSQ3Tmax3; 429 - 430 - unsigned long uNumSQ3[MAX_RATE]; 431 - unsigned short wAntDiversityMaxRate; 432 - 433 410 unsigned char abyEEPROM[EEP_MAX_CONTEXT_SIZE]; /* unsigned long alignment */ 434 411 435 412 unsigned short wBeaconInterval;
-56
drivers/staging/vt6655/device_main.c
··· 126 126 127 127 DEVICE_PARAM(BasebandType, "baseband type"); 128 128 129 - #define DIVERSITY_ANT_DEF 0 130 - 131 - DEVICE_PARAM(bDiversityANTEnable, "ANT diversity mode"); 132 - 133 129 // 134 130 // Static vars definitions 135 131 // ··· 148 152 static void device_free_info(struct vnt_private *pDevice); 149 153 static bool device_get_pci_info(struct vnt_private *, struct pci_dev *pcid); 150 154 static void device_print_info(struct vnt_private *pDevice); 151 - static void device_init_diversity_timer(struct vnt_private *pDevice); 152 155 static irqreturn_t device_intr(int irq, void *dev_instance); 153 156 154 157 #ifdef CONFIG_PM ··· 211 216 pOpts->short_retry = SHORT_RETRY_DEF; 212 217 pOpts->long_retry = LONG_RETRY_DEF; 213 218 pOpts->bbp_type = BBP_TYPE_DEF; 214 - pOpts->flags |= DEVICE_FLAGS_DiversityANT; 215 219 } 216 220 217 221 static void ··· 218 224 { 219 225 pDevice->byShortRetryLimit = pDevice->sOpts.short_retry; 220 226 pDevice->byLongRetryLimit = pDevice->sOpts.long_retry; 221 - pDevice->bDiversityRegCtlON = (pDevice->sOpts.flags & DEVICE_FLAGS_DiversityANT) ? 1 : 0; 222 227 pDevice->byBBType = pDevice->sOpts.bbp_type; 223 228 pDevice->byPacketType = pDevice->byBBType; 224 229 pDevice->byAutoFBCtrl = AUTO_FB_0; ··· 229 236 pr_debug(" byPreambleType= %d\n", (int)pDevice->byPreambleType); 230 237 pr_debug(" byShortPreamble= %d\n", (int)pDevice->byShortPreamble); 231 238 pr_debug(" byBBType= %d\n", (int)pDevice->byBBType); 232 - pr_debug(" pDevice->bDiversityRegCtlON= %d\n", 233 - (int)pDevice->bDiversityRegCtlON); 234 239 } 235 240 236 241 // ··· 240 249 unsigned long flags; 241 250 unsigned int ii; 242 251 unsigned char byValue; 243 - unsigned char byValue1; 244 252 unsigned char byCCKPwrdBm = 0; 245 253 unsigned char byOFDMPwrdBm = 0; 246 254 ··· 291 301 if (byValue == 0) 292 302 byValue = (EEP_ANTENNA_AUX | EEP_ANTENNA_MAIN); 293 303 294 - pDevice->ulDiversityNValue = 100*260; 295 - pDevice->ulDiversityMValue = 100*16; 296 - pDevice->byTMax = 1; 297 - pDevice->byTMax2 = 4; 298 - pDevice->ulSQ3TH = 0; 299 - pDevice->byTMax3 = 64; 300 - 301 304 if (byValue == (EEP_ANTENNA_AUX | EEP_ANTENNA_MAIN)) { 302 305 pDevice->byAntennaCount = 2; 303 306 pDevice->byTxAntennaMode = ANT_B; ··· 301 318 pDevice->byRxAntennaMode = ANT_A; 302 319 else 303 320 pDevice->byRxAntennaMode = ANT_B; 304 - 305 - byValue1 = SROMbyReadEmbedded(pDevice->PortOffset, 306 - EEP_OFS_ANTENNA); 307 - 308 - if ((byValue1 & 0x08) == 0) 309 - pDevice->bDiversityEnable = false; 310 - else 311 - pDevice->bDiversityEnable = true; 312 321 } else { 313 - pDevice->bDiversityEnable = false; 314 322 pDevice->byAntennaCount = 1; 315 323 pDevice->dwTxAntennaSel = 0; 316 324 pDevice->dwRxAntennaSel = 0; ··· 322 348 pDevice->byRxAntennaMode = ANT_B; 323 349 } 324 350 } 325 - 326 - pr_debug("bDiversityEnable=[%d],NValue=[%d],MValue=[%d],TMax=[%d],TMax2=[%d]\n", 327 - pDevice->bDiversityEnable, (int)pDevice->ulDiversityNValue, 328 - (int)pDevice->ulDiversityMValue, pDevice->byTMax, 329 - pDevice->byTMax2); 330 351 331 352 /* zonetype initial */ 332 353 pDevice->byOriginalZonetype = pDevice->abyEEPROM[EEP_OFS_ZONETYPE]; ··· 460 491 461 492 /* start the adapter */ 462 493 MACvStart(pDevice->PortOffset); 463 - } 464 - 465 - static void device_init_diversity_timer(struct vnt_private *pDevice) 466 - { 467 - init_timer(&pDevice->TimerSQ3Tmax1); 468 - pDevice->TimerSQ3Tmax1.data = (unsigned long) pDevice; 469 - pDevice->TimerSQ3Tmax1.function = TimerSQ3CallBack; 470 - pDevice->TimerSQ3Tmax1.expires = RUN_AT(HZ); 471 - 472 - init_timer(&pDevice->TimerSQ3Tmax2); 473 - pDevice->TimerSQ3Tmax2.data = (unsigned long) pDevice; 474 - pDevice->TimerSQ3Tmax2.function = TimerSQ3CallBack; 475 - pDevice->TimerSQ3Tmax2.expires = RUN_AT(HZ); 476 - 477 - init_timer(&pDevice->TimerSQ3Tmax3); 478 - pDevice->TimerSQ3Tmax3.data = (unsigned long) pDevice; 479 - pDevice->TimerSQ3Tmax3.function = TimerState1CallBack; 480 - pDevice->TimerSQ3Tmax3.expires = RUN_AT(HZ); 481 494 } 482 495 483 496 static void device_print_info(struct vnt_private *pDevice) ··· 1299 1348 1300 1349 switch (vif->type) { 1301 1350 case NL80211_IFTYPE_STATION: 1302 - if (priv->bDiversityRegCtlON) 1303 - device_init_diversity_timer(priv); 1304 1351 break; 1305 1352 case NL80211_IFTYPE_ADHOC: 1306 1353 MACvRegBitsOff(priv->PortOffset, MAC_REG_RCR, RCR_UNICAST); ··· 1328 1379 1329 1380 switch (vif->type) { 1330 1381 case NL80211_IFTYPE_STATION: 1331 - if (priv->bDiversityRegCtlON) { 1332 - del_timer(&priv->TimerSQ3Tmax1); 1333 - del_timer(&priv->TimerSQ3Tmax2); 1334 - del_timer(&priv->TimerSQ3Tmax3); 1335 - } 1336 1382 break; 1337 1383 case NL80211_IFTYPE_ADHOC: 1338 1384 MACvRegBitsOff(priv->PortOffset, MAC_REG_TCR, TCR_AUTOBCNTX);
-6
drivers/staging/vt6655/dpc.c
··· 116 116 rx_status.flag = RX_FLAG_DECRYPTED; 117 117 } 118 118 119 - if (priv->vif && priv->bDiversityEnable) { 120 - if (ieee80211_is_data(fc) && 121 - (frame_size > 50) && priv->vif->bss_conf.assoc) 122 - BBvAntennaDiversity(priv, priv->rx_rate, 0); 123 - } 124 - 125 119 memcpy(IEEE80211_SKB_RXCB(skb), &rx_status, sizeof(rx_status)); 126 120 127 121 ieee80211_rx_irqsafe(priv->hw, skb);