diff options
Diffstat (limited to 'drivers/net/wireless/ti/wl18xx/main.c')
-rw-r--r-- | drivers/net/wireless/ti/wl18xx/main.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c index d0daca1d23bc..ec37b16585df 100644 --- a/drivers/net/wireless/ti/wl18xx/main.c +++ b/drivers/net/wireless/ti/wl18xx/main.c | |||
@@ -456,11 +456,11 @@ static struct wlcore_conf wl18xx_conf = { | |||
456 | .always = 0, | 456 | .always = 0, |
457 | }, | 457 | }, |
458 | .fwlog = { | 458 | .fwlog = { |
459 | .mode = WL12XX_FWLOG_ON_DEMAND, | 459 | .mode = WL12XX_FWLOG_CONTINUOUS, |
460 | .mem_blocks = 2, | 460 | .mem_blocks = 2, |
461 | .severity = 0, | 461 | .severity = 0, |
462 | .timestamp = WL12XX_FWLOG_TIMESTAMP_DISABLED, | 462 | .timestamp = WL12XX_FWLOG_TIMESTAMP_DISABLED, |
463 | .output = WL12XX_FWLOG_OUTPUT_HOST, | 463 | .output = WL12XX_FWLOG_OUTPUT_DBG_PINS, |
464 | .threshold = 0, | 464 | .threshold = 0, |
465 | }, | 465 | }, |
466 | .rate = { | 466 | .rate = { |
@@ -505,7 +505,7 @@ static struct wlcore_conf wl18xx_conf = { | |||
505 | 505 | ||
506 | static struct wl18xx_priv_conf wl18xx_default_priv_conf = { | 506 | static struct wl18xx_priv_conf wl18xx_default_priv_conf = { |
507 | .ht = { | 507 | .ht = { |
508 | .mode = HT_MODE_DEFAULT, | 508 | .mode = HT_MODE_WIDE, |
509 | }, | 509 | }, |
510 | .phy = { | 510 | .phy = { |
511 | .phy_standalone = 0x00, | 511 | .phy_standalone = 0x00, |
@@ -516,7 +516,7 @@ static struct wl18xx_priv_conf wl18xx_default_priv_conf = { | |||
516 | .auto_detect = 0x00, | 516 | .auto_detect = 0x00, |
517 | .dedicated_fem = FEM_NONE, | 517 | .dedicated_fem = FEM_NONE, |
518 | .low_band_component = COMPONENT_3_WAY_SWITCH, | 518 | .low_band_component = COMPONENT_3_WAY_SWITCH, |
519 | .low_band_component_type = 0x04, | 519 | .low_band_component_type = 0x05, |
520 | .high_band_component = COMPONENT_2_WAY_SWITCH, | 520 | .high_band_component = COMPONENT_2_WAY_SWITCH, |
521 | .high_band_component_type = 0x09, | 521 | .high_band_component_type = 0x09, |
522 | .tcxo_ldo_voltage = 0x00, | 522 | .tcxo_ldo_voltage = 0x00, |
@@ -556,15 +556,15 @@ static struct wl18xx_priv_conf wl18xx_default_priv_conf = { | |||
556 | .per_chan_pwr_limit_arr_11p = { 0xff, 0xff, 0xff, 0xff, | 556 | .per_chan_pwr_limit_arr_11p = { 0xff, 0xff, 0xff, 0xff, |
557 | 0xff, 0xff, 0xff }, | 557 | 0xff, 0xff, 0xff }, |
558 | .psat = 0, | 558 | .psat = 0, |
559 | .low_power_val = 0x08, | ||
560 | .med_power_val = 0x12, | ||
561 | .high_power_val = 0x18, | ||
562 | .low_power_val_2nd = 0x05, | ||
563 | .med_power_val_2nd = 0x0a, | ||
564 | .high_power_val_2nd = 0x14, | ||
565 | .external_pa_dc2dc = 0, | 559 | .external_pa_dc2dc = 0, |
566 | .number_of_assembled_ant2_4 = 2, | 560 | .number_of_assembled_ant2_4 = 2, |
567 | .number_of_assembled_ant5 = 1, | 561 | .number_of_assembled_ant5 = 1, |
562 | .low_power_val = 0xff, | ||
563 | .med_power_val = 0xff, | ||
564 | .high_power_val = 0xff, | ||
565 | .low_power_val_2nd = 0xff, | ||
566 | .med_power_val_2nd = 0xff, | ||
567 | .high_power_val_2nd = 0xff, | ||
568 | .tx_rf_margin = 1, | 568 | .tx_rf_margin = 1, |
569 | }, | 569 | }, |
570 | }; | 570 | }; |
@@ -686,6 +686,9 @@ static int wl18xx_identify_chip(struct wl1271 *wl) | |||
686 | goto out; | 686 | goto out; |
687 | } | 687 | } |
688 | 688 | ||
689 | wl->fw_mem_block_size = 272; | ||
690 | wl->fwlog_end = 0x40000000; | ||
691 | |||
689 | wl->scan_templ_id_2_4 = CMD_TEMPL_CFG_PROBE_REQ_2_4; | 692 | wl->scan_templ_id_2_4 = CMD_TEMPL_CFG_PROBE_REQ_2_4; |
690 | wl->scan_templ_id_5 = CMD_TEMPL_CFG_PROBE_REQ_5; | 693 | wl->scan_templ_id_5 = CMD_TEMPL_CFG_PROBE_REQ_5; |
691 | wl->sched_scan_templ_id_2_4 = CMD_TEMPL_PROBE_REQ_2_4_PERIODIC; | 694 | wl->sched_scan_templ_id_2_4 = CMD_TEMPL_PROBE_REQ_2_4_PERIODIC; |
@@ -988,10 +991,11 @@ static int wl18xx_boot(struct wl1271 *wl) | |||
988 | BA_SESSION_RX_CONSTRAINT_EVENT_ID | | 991 | BA_SESSION_RX_CONSTRAINT_EVENT_ID | |
989 | REMAIN_ON_CHANNEL_COMPLETE_EVENT_ID | | 992 | REMAIN_ON_CHANNEL_COMPLETE_EVENT_ID | |
990 | INACTIVE_STA_EVENT_ID | | 993 | INACTIVE_STA_EVENT_ID | |
991 | MAX_TX_FAILURE_EVENT_ID | | ||
992 | CHANNEL_SWITCH_COMPLETE_EVENT_ID | | 994 | CHANNEL_SWITCH_COMPLETE_EVENT_ID | |
993 | DFS_CHANNELS_CONFIG_COMPLETE_EVENT; | 995 | DFS_CHANNELS_CONFIG_COMPLETE_EVENT; |
994 | 996 | ||
997 | wl->ap_event_mask = MAX_TX_FAILURE_EVENT_ID; | ||
998 | |||
995 | ret = wlcore_boot_run_firmware(wl); | 999 | ret = wlcore_boot_run_firmware(wl); |
996 | if (ret < 0) | 1000 | if (ret < 0) |
997 | goto out; | 1001 | goto out; |
@@ -1604,6 +1608,11 @@ static bool wl18xx_lnk_low_prio(struct wl1271 *wl, u8 hlid, | |||
1604 | return lnk->allocated_pkts < thold; | 1608 | return lnk->allocated_pkts < thold; |
1605 | } | 1609 | } |
1606 | 1610 | ||
1611 | static u32 wl18xx_convert_hwaddr(struct wl1271 *wl, u32 hwaddr) | ||
1612 | { | ||
1613 | return hwaddr & ~0x80000000; | ||
1614 | } | ||
1615 | |||
1607 | static int wl18xx_setup(struct wl1271 *wl); | 1616 | static int wl18xx_setup(struct wl1271 *wl); |
1608 | 1617 | ||
1609 | static struct wlcore_ops wl18xx_ops = { | 1618 | static struct wlcore_ops wl18xx_ops = { |
@@ -1641,6 +1650,7 @@ static struct wlcore_ops wl18xx_ops = { | |||
1641 | .pre_pkt_send = wl18xx_pre_pkt_send, | 1650 | .pre_pkt_send = wl18xx_pre_pkt_send, |
1642 | .sta_rc_update = wl18xx_sta_rc_update, | 1651 | .sta_rc_update = wl18xx_sta_rc_update, |
1643 | .set_peer_cap = wl18xx_set_peer_cap, | 1652 | .set_peer_cap = wl18xx_set_peer_cap, |
1653 | .convert_hwaddr = wl18xx_convert_hwaddr, | ||
1644 | .lnk_high_prio = wl18xx_lnk_high_prio, | 1654 | .lnk_high_prio = wl18xx_lnk_high_prio, |
1645 | .lnk_low_prio = wl18xx_lnk_low_prio, | 1655 | .lnk_low_prio = wl18xx_lnk_low_prio, |
1646 | }; | 1656 | }; |