diff --git a/drivers/net/wireless/bcm4329_204/dhd_cdc.c b/drivers/net/wireless/bcm4329_204/dhd_cdc.c index c62d82fd..2412e886 100644 --- a/drivers/net/wireless/bcm4329_204/dhd_cdc.c +++ b/drivers/net/wireless/bcm4329_204/dhd_cdc.c @@ -870,6 +870,7 @@ dhd_preinit_ioctls(dhd_pub_t *dhd) uint32 dongle_align = DHD_SDALIGN; uint32 glom = 0; + uint32 nmode = 0; uint bcn_timeout = 5; /* Disable ARP off-load first */ @@ -944,6 +945,12 @@ dhd_preinit_ioctls(dhd_pub_t *dhd) bcm_mkiovar("roam_off", (char *)&roamvar, 4, iovbuf, sizeof(iovbuf)); dhdcdc_set_ioctl(dhd, 0, WLC_SET_VAR, iovbuf, sizeof(iovbuf)); + if(!wifi_get_dot11n_enable()) { + /* Disable nmode as default */ + bcm_mkiovar("nmode", (char *)&nmode, 4, iovbuf, sizeof(iovbuf)); + dhdcdc_set_ioctl(dhd, 0, WLC_SET_VAR, iovbuf, sizeof(iovbuf)); + myprintf("wifi: Disable 802.11n\n"); + } /* Force STA UP */ dhdcdc_set_ioctl(dhd, 0, WLC_UP, (char *)&up, sizeof(up)); diff --git a/drivers/net/wireless/bcm4329_204/dhd_linux.c b/drivers/net/wireless/bcm4329_204/dhd_linux.c index 06e38429..44da2c7c 100644 --- a/drivers/net/wireless/bcm4329_204/dhd_linux.c +++ b/drivers/net/wireless/bcm4329_204/dhd_linux.c @@ -93,7 +93,10 @@ int wifi_get_irq_number(unsigned long *irq_flags_ptr) int wifi_get_dot11n_enable(void) { - return 1; + if (wifi_control_data && wifi_control_data->dot11n_enable) { + return wifi_control_data->dot11n_enable; + } + return 0; } int wifi_set_carddetect(int on)