// // Description: // Turn on LED according to LedPin specified. // static void SwLedOn_8188EU( _adapter *padapter, PLED_USB pLed ) { u8 LedCfg; //HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); if (RTW_CANNOT_RUN(padapter)) return; LedCfg = rtw_read8(padapter, REG_LEDCFG2); switch(pLed->LedPin) { case LED_PIN_LED0: rtw_write8(padapter, REG_LEDCFG2, (LedCfg&0xf0)|BIT5|BIT6); // SW control led0 on. break; case LED_PIN_LED1: rtw_write8(padapter, REG_LEDCFG2, (LedCfg&0x0f)|BIT5); // SW control led1 on. break; default: break; } pLed->bLedOn = _TRUE; }
void usb_recv_tasklet(void *priv) { _pkt *pskb; _adapter *padapter = (_adapter *)priv; struct recv_priv *precvpriv = &padapter->recvpriv; struct recv_buf *precvbuf = NULL; while (NULL != (pskb = skb_dequeue(&precvpriv->rx_skb_queue))) { if (RTW_CANNOT_RUN(padapter)) { RTW_INFO("recv_tasklet => bDriverStopped(%s) OR bSurpriseRemoved(%s)\n" , rtw_is_drv_stopped(padapter) ? "True" : "False" , rtw_is_surprise_removed(padapter) ? "True" : "False"); #ifdef CONFIG_PREALLOC_RX_SKB_BUFFER if (rtw_free_skb_premem(pskb) != 0) #endif /* CONFIG_PREALLOC_RX_SKB_BUFFER */ rtw_skb_free(pskb); break; } recvbuf2recvframe(padapter, pskb); skb_reset_tail_pointer(pskb); pskb->len = 0; skb_queue_tail(&precvpriv->free_recv_skb_queue, pskb); precvbuf = rtw_dequeue_recvbuf(&precvpriv->recv_buf_pending_queue); if (NULL != precvbuf) { precvbuf->pskb = NULL; rtw_read_port(padapter, precvpriv->ff_hwaddr, 0, (unsigned char *)precvbuf); } } }
/* * Description: * Turn off LED according to LedPin specified. * */ static void SwLedOff_8812AE( _adapter *padapter, PLED_PCIE pLed ) { u16 LedReg = REG_LEDCFG0; HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); struct led_priv *ledpriv = &(padapter->ledpriv); if (RTW_CANNOT_RUN(padapter)) return; switch (pLed->LedPin) { case LED_PIN_LED0: if (ledpriv->LedStrategy == SW_LED_MODE10) LedReg = REG_LEDCFG0; else LedReg = REG_LEDCFG1; break; case LED_PIN_LED1: LedReg = REG_LEDCFG2; break; case LED_PIN_GPIO0: default: break; } /* RTW_INFO("In SwLedOff,LedAddr:%X LEDPIN=%d\n", LedReg, pLed->LedPin); */ if (pHalData->bLedOpenDrain == _TRUE) { /* Open-drain arrangement for controlling the LED */ u8 LedCfg = rtw_read8(padapter, LedReg); LedCfg &= 0xd0; /* Set to software control. */ rtw_write8(padapter, LedReg, (LedCfg | BIT3)); /* Open-drain arrangement */ LedCfg = rtw_read8(padapter, REG_MAC_PINMUX_CFG); LedCfg &= 0xFE;/* Set GPIO[8] to input mode */ rtw_write8(padapter, REG_MAC_PINMUX_CFG, LedCfg); } else rtw_write8(padapter, LedReg, 0x28); pLed->bLedOn = _FALSE; }
/* * Description: * Turn off LED according to LedPin specified. * */ VOID SwLedOff_8821AE( IN PADAPTER Adapter, IN PLED_PCIE pLed ) { u16 LedReg = REG_LEDCFG0; HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter); struct led_priv *ledpriv = &(Adapter->ledpriv); if (RTW_CANNOT_RUN(Adapter)) return; switch (pLed->LedPin) { case LED_PIN_LED0: if (ledpriv->LedStrategy == SW_LED_MODE10) LedReg = REG_LEDCFG0; else LedReg = REG_LEDCFG2; break; case LED_PIN_LED1: LedReg = REG_LEDCFG1; break; case LED_PIN_GPIO0: default: break; } /* RTW_INFO("In SwLedOff,LedAddr:%X LEDPIN=%d\n", LedReg, pLed->LedPin); */ if (pHalData->bLedOpenDrain == _TRUE) { /* Open-drain arrangement for controlling the LED */ u8 LedCfg = rtw_read8(Adapter, LedReg); LedCfg &= 0xd0; /* Set to software control and disable LED2 */ rtw_write8(Adapter, LedReg, (LedCfg | BIT3)); /* Open-drain arrangement */ LedCfg = rtw_read8(Adapter, REG_GPIO_EXT_CTRL + 2); LedCfg &= 0xFE; rtw_write8(Adapter, REG_GPIO_EXT_CTRL + 2, LedCfg); } else rtw_write8(Adapter, LedReg, 0x28); pLed->bLedOn = _FALSE; }
// // Description: // Turn off LED according to LedPin specified. // static void SwLedOff_8188EU( _adapter *padapter, PLED_USB pLed ) { u8 LedCfg; HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); if (RTW_CANNOT_RUN(padapter)) goto exit; LedCfg = rtw_read8(padapter, REG_LEDCFG2);//0x4E switch(pLed->LedPin) { case LED_PIN_LED0: if(pHalData->bLedOpenDrain == _TRUE) // Open-drain arrangement for controlling the LED) { LedCfg &= 0x90; // Set to software control. rtw_write8(padapter, REG_LEDCFG2, (LedCfg|BIT3)); LedCfg = rtw_read8(padapter, REG_MAC_PINMUX_CFG); LedCfg &= 0xFE; rtw_write8(padapter, REG_MAC_PINMUX_CFG, LedCfg); } else { rtw_write8(padapter, REG_LEDCFG2, (LedCfg|BIT3|BIT5|BIT6)); } break; case LED_PIN_LED1: LedCfg &= 0x0f; // Set to software control. rtw_write8(padapter, REG_LEDCFG2, (LedCfg|BIT3)); break; default: break; } exit: pLed->bLedOn = _FALSE; }
void usb_recv_tasklet(void *priv) { struct recv_buf *precvbuf = NULL; _adapter *padapter = (_adapter *)priv; struct recv_priv *precvpriv = &padapter->recvpriv; while (NULL != (precvbuf = rtw_dequeue_recvbuf(&precvpriv->recv_buf_pending_queue))) { if (RTW_CANNOT_RUN(padapter)) { RTW_INFO("recv_tasklet => bDriverStopped(%s) OR bSurpriseRemoved(%s)\n" , rtw_is_drv_stopped(padapter)? "True" : "False" , rtw_is_surprise_removed(padapter)? "True" : "False"); break; } recvbuf2recvframe(padapter, precvbuf); rtw_read_port(padapter, precvpriv->ff_hwaddr, 0, (unsigned char *)precvbuf); } }
/* * Description: * Turn on LED according to LedPin specified. * */ VOID SwLedOn_8821AE( IN PADAPTER Adapter, IN PLED_PCIE pLed ) { u16 LedReg = REG_LEDCFG0; u8 LedCfg = 0; HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter); struct led_priv *ledpriv = &(Adapter->ledpriv); if (RTW_CANNOT_RUN(Adapter)) return; switch (pLed->LedPin) { case LED_PIN_LED0: if (ledpriv->LedStrategy == SW_LED_MODE10) LedReg = REG_LEDCFG0; else LedReg = REG_LEDCFG2; break; case LED_PIN_LED1: LedReg = REG_LEDCFG1; break; case LED_PIN_GPIO0: default: break; } /* RTW_INFO("In SwLedOn, LedAddr:%X LEDPIN=%d\n", LedReg, pLed->LedPin); */ LedCfg = rtw_read8(Adapter, LedReg); LedCfg |= BIT5; /* Set 0x4c[21] */ LedCfg &= ~BIT3; /* Clear 0x4c[19] */ LedCfg &= ~(BIT6 | BIT2 | BIT1 | BIT0); /* Clear 0x4c[22] and 0x4c[18:16] */ rtw_write8(Adapter, LedReg, LedCfg); /* SW control led0 on. */ pLed->bLedOn = _TRUE; }