void enable_sys_LED(struct rtl8192cd_priv *priv) { #ifdef RTLWIFINIC_GPIO_CONTROL RTLWIFINIC_GPIO_config(4, 0x10); #endif root_priv = priv; }
void enable_sys_LED(struct rtl8192cd_priv *priv) { RTLWIFINIC_GPIO_config(4, 0x10); root_priv = priv; }
void enable_sw_LED(struct rtl8192cd_priv *priv, int init) { #if (defined(HW_ANT_SWITCH) || defined(SW_ANT_SWITCH))&&( defined(CONFIG_RTL_92C_SUPPORT) || defined(CONFIG_RTL_92D_SUPPORT)) int b23 = RTL_R32(LEDCFG) & BIT(23); #endif if (LED_TYPE == LEDTYPE_SW_LED2_GPIO8_ASOCTXRXDATA) if (!(OPMODE & WIFI_STATION_STATE)) // if it is not Client mode , then run orignal 12 type LED_TYPE = LEDTYPE_SW_LED2_GPIO8_ENABLETXRXDATA ; // configure mac to use SW LED #if defined(CONFIG_RTL_88E_SUPPORT) || defined(CONFIG_WLAN_HAL_8192EE) //mark_ecos if ((GET_CHIP_VER(priv) == VERSION_8188E)||(GET_CHIP_VER(priv) == VERSION_8192E)) { #ifdef RTLWIFINIC_GPIO_CONTROL RTLWIFINIC_GPIO_config(5, 0x10); #endif } else #endif if (GET_CHIP_VER(priv) == VERSION_8812E) RTL_W32(LEDCFG, BIT(13) | LED1SV); else if (GET_CHIP_VER(priv) == VERSION_8881A) { writel(readl(0xb8000044) | BIT(15) | BIT(16), 0xb8000044); writel(readl(0xb8003500) & ~BIT(24), 0xb8003500); writel(readl(0xb8003508) | BIT(24), 0xb8003508); writel(readl(0xb800350c) | BIT(24), 0xb800350c); } else { if (LED_TYPE == LEDTYPE_SW_LED2_GPIO10_LINKTXRX) RTL_W32(LEDCFG, (RTL_R32(LEDCFG)&0xFF00FFFF) | LED2EN | LED2SV); else if (LED_TYPE == LEDTYPE_SW_LED2_GPIO10_ENABLETXRXDATA) RTL_W32(LEDCFG, (RTL_R32(LEDCFG)&0xFF00FFFF) | LED2EN | LED2SV); #ifdef CONFIG_RTL_92D_SUPPORT else if ((LED_TYPE == LEDTYPE_SW_LED2_GPIO10_LINKTXRX_92D) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO10_ENABLETXRXDATA_92D)) RTL_W32(LEDCFG,(RTL_R32(LEDCFG)&0xFF00FFFF)| LED2DIS_92D | LED2SV_92D); else if (LED_TYPE == LEDTYPE_SW_LED1_GPIO9_LINKTXRX_92D) RTL_W32(LEDCFG, (RTL_R32(LEDCFG)&0xFFFF00FF)|LED1DIS_92D | LED1SV_92D); #endif else if ((LED_TYPE == LEDTYPE_SW_LED2_GPIO8_LINKTXRX) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO8_ENABLETXRXDATA) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO8_ASOCTXRXDATA) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO8_LINKTXRXDATA)) RTL_W32(LEDCFG, (RTL_R32(LEDCFG)&0xFF00FFFF) | GP8_LED | LED2EN | LED2SV); else RTL_W32(LEDCFG, LED2SV | LED1SV | LED0SV); } priv->pshare->LED_Interval = LED_INTERVAL_TIME; priv->pshare->LED_Toggle = 0; priv->pshare->LED_ToggleStart = LED_OFF; priv->pshare->LED_tx_cnt_log = 0; priv->pshare->LED_rx_cnt_log = 0; priv->pshare->LED_tx_cnt = 0; priv->pshare->LED_rx_cnt = 0; if ((LED_TYPE == LEDTYPE_SW_ENABLE_TXRXDATA) || (LED_TYPE == LEDTYPE_SW_ENABLETXRXDATA)) { set_sw_LED0(priv, LED_ON); set_sw_LED1(priv, LED_OFF); if (LED_TYPE == LEDTYPE_SW_ENABLETXRXDATA) priv->pshare->LED_ToggleStart = LED_ON; } else if ((LED_TYPE == LEDTYPE_SW_LED2_GPIO10_ENABLETXRXDATA) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO10_ENABLETXRXDATA_92D)) { set_sw_LED2(priv, LED_ON); priv->pshare->LED_ToggleStart = LED_ON; } else if (LED_TYPE == LEDTYPE_SW_ADATA_GDATA) { priv->pshare->LED_ToggleStart = LED_ON; if (priv->pshare->curr_band == BAND_5G) { set_sw_LED0(priv, LED_ON); set_sw_LED1(priv, LED_OFF); } else { // 11G set_sw_LED0(priv, LED_OFF); set_sw_LED1(priv, LED_ON); } } else if (LED_TYPE == LEDTYPE_SW_ENABLETXRXDATA_1) { set_sw_LED0(priv, LED_OFF); set_sw_LED1(priv, LED_ON); priv->pshare->LED_ToggleStart = LED_ON; } else if ((LED_TYPE == LEDTYPE_SW_LED2_GPIO8_ENABLETXRXDATA) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO8_ASOCTXRXDATA) ) { set_sw_LED2(priv, LED_ON); priv->pshare->LED_ToggleStart = LED_ON; } else if ((LED_TYPE == LEDTYPE_SW_LED2_GPIO8_LINKTXRX) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO10_LINKTXRX) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO8_LINKTXRXDATA)) { set_sw_LED2(priv, LED_OFF); } else { set_sw_LED0(priv, LED_OFF); set_sw_LED1(priv, LED_OFF); set_sw_LED2(priv, LED_OFF); } #if (defined(HW_ANT_SWITCH) || defined(SW_ANT_SWITCH))&&( defined(CONFIG_RTL_92C_SUPPORT) || defined(CONFIG_RTL_92D_SUPPORT)) RTL_W32(LEDCFG, b23 | RTL_R32(LEDCFG)); #endif if (init) { #ifdef __KERNEL__ init_timer(&priv->pshare->LED_Timer); priv->pshare->LED_Timer.data = (unsigned long) priv; priv->pshare->LED_Timer.function = &LED_Interval_timeout; #elif defined(__ECOS) init_timer(&priv->pshare->LED_Timer, (unsigned long)priv, LED_Interval_timeout); #endif mod_timer(&priv->pshare->LED_Timer, jiffies + priv->pshare->LED_Interval); } }
void enable_sw_LED(struct rtl8192cd_priv *priv, int init) { #if defined(HW_ANT_SWITCH) || defined(SW_ANT_SWITCH) int b23 = RTL_R32(LEDCFG) & BIT(23); #endif if (LED_TYPE == LEDTYPE_SW_LED2_GPIO8_ASOCTXRXDATA) if (!(OPMODE & WIFI_STATION_STATE)) // if it is not Client mode , then run orignal 12 type LED_TYPE = LEDTYPE_SW_LED2_GPIO8_ENABLETXRXDATA ; // configure mac to use SW LED #if defined(CONFIG_RTL_92C_SUPPORT) || defined(CONFIG_RTL_92D_SUPPORT) if (LED_TYPE == LEDTYPE_SW_LED2_GPIO10_LINKTXRX) RTL_W32(LEDCFG, (RTL_R32(LEDCFG)&0xFF00FFFF) | LED2EN | LED2SV); #ifdef CONFIG_RTL_92D_SUPPORT else if ((LED_TYPE == LEDTYPE_SW_LED2_GPIO10_LINKTXRX_92D) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO10_ENABLETXRXDATA)) RTL_W32(LEDCFG, LED2DIS_92D | LED2SV_92D); else if (LED_TYPE == LEDTYPE_SW_LED1_GPIO9_LINKTXRX_92D) RTL_W32(LEDCFG, LED1DIS_92D | LED1SV_92D); #endif else if ((LED_TYPE == LEDTYPE_SW_LED2_GPIO8_LINKTXRX) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO8_ENABLETXRXDATA) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO8_ASOCTXRXDATA) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO8_LINKTXRXDATA)) RTL_W32(LEDCFG, (RTL_R32(LEDCFG)&0xFF00FFFF) | GP8_LED | LED2EN | LED2SV); else RTL_W32(LEDCFG, LED2SV | LED1SV | LED0SV); #elif defined(CONFIG_RTL_88E_SUPPORT) RTLWIFINIC_GPIO_config(5, 0x10); #endif priv->pshare->LED_Interval = LED_INTERVAL_TIME; priv->pshare->LED_Toggle = 0; priv->pshare->LED_ToggleStart = LED_OFF; priv->pshare->LED_tx_cnt_log = 0; priv->pshare->LED_rx_cnt_log = 0; priv->pshare->LED_tx_cnt = 0; priv->pshare->LED_rx_cnt = 0; if ((LED_TYPE == LEDTYPE_SW_ENABLE_TXRXDATA) || (LED_TYPE == LEDTYPE_SW_ENABLETXRXDATA)) { set_sw_LED0(priv, LED_ON); set_sw_LED1(priv, LED_OFF); if (LED_TYPE == LEDTYPE_SW_ENABLETXRXDATA) priv->pshare->LED_ToggleStart = LED_ON; } else if (LED_TYPE == LEDTYPE_SW_LED2_GPIO10_ENABLETXRXDATA) { set_sw_LED2(priv, LED_ON); priv->pshare->LED_ToggleStart = LED_ON; } else if (LED_TYPE == LEDTYPE_SW_ADATA_GDATA) { priv->pshare->LED_ToggleStart = LED_ON; if (priv->pshare->curr_band == BAND_5G) { set_sw_LED0(priv, LED_ON); set_sw_LED1(priv, LED_OFF); } else { // 11G set_sw_LED0(priv, LED_OFF); set_sw_LED1(priv, LED_ON); } } else if (LED_TYPE == LEDTYPE_SW_ENABLETXRXDATA_1) { set_sw_LED0(priv, LED_OFF); set_sw_LED1(priv, LED_ON); priv->pshare->LED_ToggleStart = LED_ON; } else if ((LED_TYPE == LEDTYPE_SW_LED2_GPIO8_ENABLETXRXDATA) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO8_ASOCTXRXDATA) ) { set_sw_LED2(priv, LED_ON); priv->pshare->LED_ToggleStart = LED_ON; } else if ((LED_TYPE == LEDTYPE_SW_LED2_GPIO8_LINKTXRX) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO10_LINKTXRX) || (LED_TYPE == LEDTYPE_SW_LED2_GPIO8_LINKTXRXDATA)) { set_sw_LED2(priv, LED_OFF); } else { set_sw_LED0(priv, LED_OFF); set_sw_LED1(priv, LED_OFF); set_sw_LED2(priv, LED_OFF); } #if defined(HW_ANT_SWITCH) || defined(SW_ANT_SWITCH) RTL_W32(LEDCFG, b23 | RTL_R32(LEDCFG)); #endif if (init) { #ifdef __KERNEL__ init_timer(&priv->pshare->LED_Timer); priv->pshare->LED_Timer.expires = jiffies + priv->pshare->LED_Interval; priv->pshare->LED_Timer.data = (unsigned long) priv; priv->pshare->LED_Timer.function = &LED_Interval_timeout; #elif defined(__ECOS) init_timer(&priv->pshare->LED_Timer, (unsigned long)priv, LED_Interval_timeout); #endif mod_timer(&priv->pshare->LED_Timer, jiffies + priv->pshare->LED_Interval); } }