Loading arch/arm/mach-omap2/board-omap3pandora.c +9 −23 Original line number Diff line number Diff line Loading @@ -642,31 +642,13 @@ static void __init omap3pandora_init_irq(void) omap_gpio_init(); } static void pandora_wl1251_set_power(bool enable) { /* * Keep power always on until wl1251_sdio driver learns to re-init * the chip after powering it down and back up. */ } static struct wl12xx_platform_data pandora_wl1251_pdata = { .set_power = pandora_wl1251_set_power, .use_eeprom = true, }; static struct platform_device pandora_wl1251_data = { .name = "wl1251_data", .id = -1, .dev = { .platform_data = &pandora_wl1251_pdata, }, }; static void pandora_wl1251_init(void) static void __init pandora_wl1251_init(void) { struct wl12xx_platform_data pandora_wl1251_pdata; int ret; memset(&pandora_wl1251_pdata, 0, sizeof(pandora_wl1251_pdata)); ret = gpio_request(PANDORA_WIFI_IRQ_GPIO, "wl1251 irq"); if (ret < 0) goto fail; Loading @@ -679,6 +661,11 @@ static void pandora_wl1251_init(void) if (pandora_wl1251_pdata.irq < 0) goto fail_irq; pandora_wl1251_pdata.use_eeprom = true; ret = wl12xx_set_platform_data(&pandora_wl1251_pdata); if (ret < 0) goto fail_irq; return; fail_irq: Loading @@ -691,7 +678,6 @@ static struct platform_device *omap3pandora_devices[] __initdata = { &pandora_leds_gpio, &pandora_keys_gpio, &pandora_dss_device, &pandora_wl1251_data, &pandora_vwlan_device, }; Loading drivers/net/wireless/ath/ath5k/base.c +21 −3 Original line number Diff line number Diff line Loading @@ -566,7 +566,7 @@ static void ath_do_set_opmode(struct ath5k_softc *sc) sc->opmode, ath_opmode_to_string(sc->opmode)); } void ath5k_update_bssid_mask_and_opmode(struct ath5k_softc *sc, static void ath5k_update_bssid_mask_and_opmode(struct ath5k_softc *sc, struct ieee80211_vif *vif) { struct ath_common *common = ath5k_hw_common(sc->ah); Loading Loading @@ -3206,6 +3206,9 @@ static int ath5k_get_survey(struct ieee80211_hw *hw, int idx, { struct ath5k_softc *sc = hw->priv; struct ieee80211_conf *conf = &hw->conf; struct ath_common *common = ath5k_hw_common(sc->ah); struct ath_cycle_counters *cc = &common->cc_survey; unsigned int div = common->clockrate * 1000; if (idx != 0) return -ENOENT; Loading @@ -3214,6 +3217,21 @@ static int ath5k_get_survey(struct ieee80211_hw *hw, int idx, survey->filled = SURVEY_INFO_NOISE_DBM; survey->noise = sc->ah->ah_noise_floor; spin_lock_bh(&common->cc_lock); ath_hw_cycle_counters_update(common); if (cc->cycles > 0) { survey->filled |= SURVEY_INFO_CHANNEL_TIME | SURVEY_INFO_CHANNEL_TIME_BUSY | SURVEY_INFO_CHANNEL_TIME_RX | SURVEY_INFO_CHANNEL_TIME_TX; survey->channel_time += cc->cycles / div; survey->channel_time_busy += cc->rx_busy / div; survey->channel_time_rx += cc->rx_frame / div; survey->channel_time_tx += cc->tx_frame / div; } memset(cc, 0, sizeof(*cc)); spin_unlock_bh(&common->cc_lock); return 0; } Loading drivers/net/wireless/ath/ath5k/debug.c +15 −15 Original line number Diff line number Diff line Loading @@ -554,63 +554,63 @@ static ssize_t read_file_frameerrors(struct file *file, char __user *user_buf, len += snprintf(buf+len, sizeof(buf)-len, "RX\n---------------------\n"); len += snprintf(buf+len, sizeof(buf)-len, "CRC\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "CRC\t%u\t(%u%%)\n", st->rxerr_crc, st->rx_all_count > 0 ? st->rxerr_crc*100/st->rx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "PHY\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "PHY\t%u\t(%u%%)\n", st->rxerr_phy, st->rx_all_count > 0 ? st->rxerr_phy*100/st->rx_all_count : 0); for (i = 0; i < 32; i++) { if (st->rxerr_phy_code[i]) len += snprintf(buf+len, sizeof(buf)-len, " phy_err[%d]\t%d\n", " phy_err[%u]\t%u\n", i, st->rxerr_phy_code[i]); } len += snprintf(buf+len, sizeof(buf)-len, "FIFO\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "FIFO\t%u\t(%u%%)\n", st->rxerr_fifo, st->rx_all_count > 0 ? st->rxerr_fifo*100/st->rx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "decrypt\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "decrypt\t%u\t(%u%%)\n", st->rxerr_decrypt, st->rx_all_count > 0 ? st->rxerr_decrypt*100/st->rx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "MIC\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "MIC\t%u\t(%u%%)\n", st->rxerr_mic, st->rx_all_count > 0 ? st->rxerr_mic*100/st->rx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "process\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "process\t%u\t(%u%%)\n", st->rxerr_proc, st->rx_all_count > 0 ? st->rxerr_proc*100/st->rx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "jumbo\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "jumbo\t%u\t(%u%%)\n", st->rxerr_jumbo, st->rx_all_count > 0 ? st->rxerr_jumbo*100/st->rx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "[RX all\t%d]\n", len += snprintf(buf+len, sizeof(buf)-len, "[RX all\t%u]\n", st->rx_all_count); len += snprintf(buf+len, sizeof(buf)-len, "RX-all-bytes\t%d\n", len += snprintf(buf+len, sizeof(buf)-len, "RX-all-bytes\t%u\n", st->rx_bytes_count); len += snprintf(buf+len, sizeof(buf)-len, "\nTX\n---------------------\n"); len += snprintf(buf+len, sizeof(buf)-len, "retry\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "retry\t%u\t(%u%%)\n", st->txerr_retry, st->tx_all_count > 0 ? st->txerr_retry*100/st->tx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "FIFO\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "FIFO\t%u\t(%u%%)\n", st->txerr_fifo, st->tx_all_count > 0 ? st->txerr_fifo*100/st->tx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "filter\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "filter\t%u\t(%u%%)\n", st->txerr_filt, st->tx_all_count > 0 ? st->txerr_filt*100/st->tx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "[TX all\t%d]\n", len += snprintf(buf+len, sizeof(buf)-len, "[TX all\t%u]\n", st->tx_all_count); len += snprintf(buf+len, sizeof(buf)-len, "TX-all-bytes\t%d\n", len += snprintf(buf+len, sizeof(buf)-len, "TX-all-bytes\t%u\n", st->tx_bytes_count); if (len > sizeof(buf)) Loading drivers/net/wireless/ath/ath5k/desc.h +9 −9 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ struct ath5k_hw_rx_ctl { u32 rx_control_0; /* RX control word 0 */ u32 rx_control_1; /* RX control word 1 */ } __packed; } __packed __aligned(4); /* RX control word 1 fields/flags */ #define AR5K_DESC_RX_CTL1_BUF_LEN 0x00000fff /* data buffer length */ Loading @@ -39,7 +39,7 @@ struct ath5k_hw_rx_ctl { struct ath5k_hw_rx_status { u32 rx_status_0; /* RX status word 0 */ u32 rx_status_1; /* RX status word 1 */ } __packed; } __packed __aligned(4); /* 5210/5211 */ /* RX status word 0 fields/flags */ Loading Loading @@ -129,7 +129,7 @@ enum ath5k_phy_error_code { struct ath5k_hw_2w_tx_ctl { u32 tx_control_0; /* TX control word 0 */ u32 tx_control_1; /* TX control word 1 */ } __packed; } __packed __aligned(4); /* TX control word 0 fields/flags */ #define AR5K_2W_TX_DESC_CTL0_FRAME_LEN 0x00000fff /* frame length */ Loading Loading @@ -185,7 +185,7 @@ struct ath5k_hw_4w_tx_ctl { u32 tx_control_1; /* TX control word 1 */ u32 tx_control_2; /* TX control word 2 */ u32 tx_control_3; /* TX control word 3 */ } __packed; } __packed __aligned(4); /* TX control word 0 fields/flags */ #define AR5K_4W_TX_DESC_CTL0_FRAME_LEN 0x00000fff /* frame length */ Loading Loading @@ -244,7 +244,7 @@ struct ath5k_hw_4w_tx_ctl { struct ath5k_hw_tx_status { u32 tx_status_0; /* TX status word 0 */ u32 tx_status_1; /* TX status word 1 */ } __packed; } __packed __aligned(4); /* TX status word 0 fields/flags */ #define AR5K_DESC_TX_STATUS0_FRAME_XMIT_OK 0x00000001 /* TX success */ Loading Loading @@ -282,7 +282,7 @@ struct ath5k_hw_tx_status { struct ath5k_hw_5210_tx_desc { struct ath5k_hw_2w_tx_ctl tx_ctl; struct ath5k_hw_tx_status tx_stat; } __packed; } __packed __aligned(4); /* * 5212 hardware TX descriptor Loading @@ -290,7 +290,7 @@ struct ath5k_hw_5210_tx_desc { struct ath5k_hw_5212_tx_desc { struct ath5k_hw_4w_tx_ctl tx_ctl; struct ath5k_hw_tx_status tx_stat; } __packed; } __packed __aligned(4); /* * Common hardware RX descriptor Loading @@ -298,7 +298,7 @@ struct ath5k_hw_5212_tx_desc { struct ath5k_hw_all_rx_desc { struct ath5k_hw_rx_ctl rx_ctl; struct ath5k_hw_rx_status rx_stat; } __packed; } __packed __aligned(4); /* * Atheros hardware DMA descriptor Loading @@ -313,7 +313,7 @@ struct ath5k_desc { struct ath5k_hw_5212_tx_desc ds_tx5212; struct ath5k_hw_all_rx_desc ds_rx; } ud; } __packed; } __packed __aligned(4); #define AR5K_RXDESC_INTREQ 0x0020 Loading drivers/net/wireless/ath/ath5k/phy.c +1 −7 Original line number Diff line number Diff line Loading @@ -1102,18 +1102,12 @@ int ath5k_hw_channel(struct ath5k_hw *ah, struct ieee80211_channel *channel) PHY calibration \*****************/ static int sign_extend(int val, const int nbits) { int order = BIT(nbits-1); return (val ^ order) - order; } static s32 ath5k_hw_read_measured_noise_floor(struct ath5k_hw *ah) { s32 val; val = ath5k_hw_reg_read(ah, AR5K_PHY_NF); return sign_extend(AR5K_REG_MS(val, AR5K_PHY_NF_MINCCA_PWR), 9); return sign_extend32(AR5K_REG_MS(val, AR5K_PHY_NF_MINCCA_PWR), 8); } void ath5k_hw_init_nfcal_hist(struct ath5k_hw *ah) Loading Loading
arch/arm/mach-omap2/board-omap3pandora.c +9 −23 Original line number Diff line number Diff line Loading @@ -642,31 +642,13 @@ static void __init omap3pandora_init_irq(void) omap_gpio_init(); } static void pandora_wl1251_set_power(bool enable) { /* * Keep power always on until wl1251_sdio driver learns to re-init * the chip after powering it down and back up. */ } static struct wl12xx_platform_data pandora_wl1251_pdata = { .set_power = pandora_wl1251_set_power, .use_eeprom = true, }; static struct platform_device pandora_wl1251_data = { .name = "wl1251_data", .id = -1, .dev = { .platform_data = &pandora_wl1251_pdata, }, }; static void pandora_wl1251_init(void) static void __init pandora_wl1251_init(void) { struct wl12xx_platform_data pandora_wl1251_pdata; int ret; memset(&pandora_wl1251_pdata, 0, sizeof(pandora_wl1251_pdata)); ret = gpio_request(PANDORA_WIFI_IRQ_GPIO, "wl1251 irq"); if (ret < 0) goto fail; Loading @@ -679,6 +661,11 @@ static void pandora_wl1251_init(void) if (pandora_wl1251_pdata.irq < 0) goto fail_irq; pandora_wl1251_pdata.use_eeprom = true; ret = wl12xx_set_platform_data(&pandora_wl1251_pdata); if (ret < 0) goto fail_irq; return; fail_irq: Loading @@ -691,7 +678,6 @@ static struct platform_device *omap3pandora_devices[] __initdata = { &pandora_leds_gpio, &pandora_keys_gpio, &pandora_dss_device, &pandora_wl1251_data, &pandora_vwlan_device, }; Loading
drivers/net/wireless/ath/ath5k/base.c +21 −3 Original line number Diff line number Diff line Loading @@ -566,7 +566,7 @@ static void ath_do_set_opmode(struct ath5k_softc *sc) sc->opmode, ath_opmode_to_string(sc->opmode)); } void ath5k_update_bssid_mask_and_opmode(struct ath5k_softc *sc, static void ath5k_update_bssid_mask_and_opmode(struct ath5k_softc *sc, struct ieee80211_vif *vif) { struct ath_common *common = ath5k_hw_common(sc->ah); Loading Loading @@ -3206,6 +3206,9 @@ static int ath5k_get_survey(struct ieee80211_hw *hw, int idx, { struct ath5k_softc *sc = hw->priv; struct ieee80211_conf *conf = &hw->conf; struct ath_common *common = ath5k_hw_common(sc->ah); struct ath_cycle_counters *cc = &common->cc_survey; unsigned int div = common->clockrate * 1000; if (idx != 0) return -ENOENT; Loading @@ -3214,6 +3217,21 @@ static int ath5k_get_survey(struct ieee80211_hw *hw, int idx, survey->filled = SURVEY_INFO_NOISE_DBM; survey->noise = sc->ah->ah_noise_floor; spin_lock_bh(&common->cc_lock); ath_hw_cycle_counters_update(common); if (cc->cycles > 0) { survey->filled |= SURVEY_INFO_CHANNEL_TIME | SURVEY_INFO_CHANNEL_TIME_BUSY | SURVEY_INFO_CHANNEL_TIME_RX | SURVEY_INFO_CHANNEL_TIME_TX; survey->channel_time += cc->cycles / div; survey->channel_time_busy += cc->rx_busy / div; survey->channel_time_rx += cc->rx_frame / div; survey->channel_time_tx += cc->tx_frame / div; } memset(cc, 0, sizeof(*cc)); spin_unlock_bh(&common->cc_lock); return 0; } Loading
drivers/net/wireless/ath/ath5k/debug.c +15 −15 Original line number Diff line number Diff line Loading @@ -554,63 +554,63 @@ static ssize_t read_file_frameerrors(struct file *file, char __user *user_buf, len += snprintf(buf+len, sizeof(buf)-len, "RX\n---------------------\n"); len += snprintf(buf+len, sizeof(buf)-len, "CRC\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "CRC\t%u\t(%u%%)\n", st->rxerr_crc, st->rx_all_count > 0 ? st->rxerr_crc*100/st->rx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "PHY\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "PHY\t%u\t(%u%%)\n", st->rxerr_phy, st->rx_all_count > 0 ? st->rxerr_phy*100/st->rx_all_count : 0); for (i = 0; i < 32; i++) { if (st->rxerr_phy_code[i]) len += snprintf(buf+len, sizeof(buf)-len, " phy_err[%d]\t%d\n", " phy_err[%u]\t%u\n", i, st->rxerr_phy_code[i]); } len += snprintf(buf+len, sizeof(buf)-len, "FIFO\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "FIFO\t%u\t(%u%%)\n", st->rxerr_fifo, st->rx_all_count > 0 ? st->rxerr_fifo*100/st->rx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "decrypt\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "decrypt\t%u\t(%u%%)\n", st->rxerr_decrypt, st->rx_all_count > 0 ? st->rxerr_decrypt*100/st->rx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "MIC\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "MIC\t%u\t(%u%%)\n", st->rxerr_mic, st->rx_all_count > 0 ? st->rxerr_mic*100/st->rx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "process\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "process\t%u\t(%u%%)\n", st->rxerr_proc, st->rx_all_count > 0 ? st->rxerr_proc*100/st->rx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "jumbo\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "jumbo\t%u\t(%u%%)\n", st->rxerr_jumbo, st->rx_all_count > 0 ? st->rxerr_jumbo*100/st->rx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "[RX all\t%d]\n", len += snprintf(buf+len, sizeof(buf)-len, "[RX all\t%u]\n", st->rx_all_count); len += snprintf(buf+len, sizeof(buf)-len, "RX-all-bytes\t%d\n", len += snprintf(buf+len, sizeof(buf)-len, "RX-all-bytes\t%u\n", st->rx_bytes_count); len += snprintf(buf+len, sizeof(buf)-len, "\nTX\n---------------------\n"); len += snprintf(buf+len, sizeof(buf)-len, "retry\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "retry\t%u\t(%u%%)\n", st->txerr_retry, st->tx_all_count > 0 ? st->txerr_retry*100/st->tx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "FIFO\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "FIFO\t%u\t(%u%%)\n", st->txerr_fifo, st->tx_all_count > 0 ? st->txerr_fifo*100/st->tx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "filter\t%d\t(%d%%)\n", len += snprintf(buf+len, sizeof(buf)-len, "filter\t%u\t(%u%%)\n", st->txerr_filt, st->tx_all_count > 0 ? st->txerr_filt*100/st->tx_all_count : 0); len += snprintf(buf+len, sizeof(buf)-len, "[TX all\t%d]\n", len += snprintf(buf+len, sizeof(buf)-len, "[TX all\t%u]\n", st->tx_all_count); len += snprintf(buf+len, sizeof(buf)-len, "TX-all-bytes\t%d\n", len += snprintf(buf+len, sizeof(buf)-len, "TX-all-bytes\t%u\n", st->tx_bytes_count); if (len > sizeof(buf)) Loading
drivers/net/wireless/ath/ath5k/desc.h +9 −9 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ struct ath5k_hw_rx_ctl { u32 rx_control_0; /* RX control word 0 */ u32 rx_control_1; /* RX control word 1 */ } __packed; } __packed __aligned(4); /* RX control word 1 fields/flags */ #define AR5K_DESC_RX_CTL1_BUF_LEN 0x00000fff /* data buffer length */ Loading @@ -39,7 +39,7 @@ struct ath5k_hw_rx_ctl { struct ath5k_hw_rx_status { u32 rx_status_0; /* RX status word 0 */ u32 rx_status_1; /* RX status word 1 */ } __packed; } __packed __aligned(4); /* 5210/5211 */ /* RX status word 0 fields/flags */ Loading Loading @@ -129,7 +129,7 @@ enum ath5k_phy_error_code { struct ath5k_hw_2w_tx_ctl { u32 tx_control_0; /* TX control word 0 */ u32 tx_control_1; /* TX control word 1 */ } __packed; } __packed __aligned(4); /* TX control word 0 fields/flags */ #define AR5K_2W_TX_DESC_CTL0_FRAME_LEN 0x00000fff /* frame length */ Loading Loading @@ -185,7 +185,7 @@ struct ath5k_hw_4w_tx_ctl { u32 tx_control_1; /* TX control word 1 */ u32 tx_control_2; /* TX control word 2 */ u32 tx_control_3; /* TX control word 3 */ } __packed; } __packed __aligned(4); /* TX control word 0 fields/flags */ #define AR5K_4W_TX_DESC_CTL0_FRAME_LEN 0x00000fff /* frame length */ Loading Loading @@ -244,7 +244,7 @@ struct ath5k_hw_4w_tx_ctl { struct ath5k_hw_tx_status { u32 tx_status_0; /* TX status word 0 */ u32 tx_status_1; /* TX status word 1 */ } __packed; } __packed __aligned(4); /* TX status word 0 fields/flags */ #define AR5K_DESC_TX_STATUS0_FRAME_XMIT_OK 0x00000001 /* TX success */ Loading Loading @@ -282,7 +282,7 @@ struct ath5k_hw_tx_status { struct ath5k_hw_5210_tx_desc { struct ath5k_hw_2w_tx_ctl tx_ctl; struct ath5k_hw_tx_status tx_stat; } __packed; } __packed __aligned(4); /* * 5212 hardware TX descriptor Loading @@ -290,7 +290,7 @@ struct ath5k_hw_5210_tx_desc { struct ath5k_hw_5212_tx_desc { struct ath5k_hw_4w_tx_ctl tx_ctl; struct ath5k_hw_tx_status tx_stat; } __packed; } __packed __aligned(4); /* * Common hardware RX descriptor Loading @@ -298,7 +298,7 @@ struct ath5k_hw_5212_tx_desc { struct ath5k_hw_all_rx_desc { struct ath5k_hw_rx_ctl rx_ctl; struct ath5k_hw_rx_status rx_stat; } __packed; } __packed __aligned(4); /* * Atheros hardware DMA descriptor Loading @@ -313,7 +313,7 @@ struct ath5k_desc { struct ath5k_hw_5212_tx_desc ds_tx5212; struct ath5k_hw_all_rx_desc ds_rx; } ud; } __packed; } __packed __aligned(4); #define AR5K_RXDESC_INTREQ 0x0020 Loading
drivers/net/wireless/ath/ath5k/phy.c +1 −7 Original line number Diff line number Diff line Loading @@ -1102,18 +1102,12 @@ int ath5k_hw_channel(struct ath5k_hw *ah, struct ieee80211_channel *channel) PHY calibration \*****************/ static int sign_extend(int val, const int nbits) { int order = BIT(nbits-1); return (val ^ order) - order; } static s32 ath5k_hw_read_measured_noise_floor(struct ath5k_hw *ah) { s32 val; val = ath5k_hw_reg_read(ah, AR5K_PHY_NF); return sign_extend(AR5K_REG_MS(val, AR5K_PHY_NF_MINCCA_PWR), 9); return sign_extend32(AR5K_REG_MS(val, AR5K_PHY_NF_MINCCA_PWR), 8); } void ath5k_hw_init_nfcal_hist(struct ath5k_hw *ah) Loading