Browse Source

prism54: fix regression with missing carrier in AP-mode

This fixes a regression introduced by commit 7b463ced6 (prism54: set
carrier flags correctly) which causes the device to come up without
a carrier in AP-mode.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Luis R. Rodriguez 17 years ago
parent
commit
85b442e378
1 changed files with 9 additions and 2 deletions
  1. 9 2
      drivers/net/wireless/prism54/islpci_dev.c

+ 9 - 2
drivers/net/wireless/prism54/islpci_dev.c

@@ -388,8 +388,15 @@ islpci_open(struct net_device *ndev)
 
 
 	netif_start_queue(ndev);
 	netif_start_queue(ndev);
 
 
-	/* Turn off carrier unless we know we have associated */
-	netif_carrier_off(ndev);
+	/* Turn off carrier if in STA or Ad-hoc mode. It will be turned on
+	 * once the firmware receives a trap of being associated
+	 * (GEN_OID_LINKSTATE). In other modes (AP or WDS or monitor) we
+	 * should just leave the carrier on as its expected the firmware
+	 * won't send us a trigger. */
+	if (priv->iw_mode == IW_MODE_INFRA || priv->iw_mode == IW_MODE_ADHOC)
+		netif_carrier_off(ndev);
+	else
+		netif_carrier_on(ndev);
 
 
 	return 0;
 	return 0;
 }
 }