[PATCH] rt2x00: Reorganize rt2x00dev->flags
The rt2x00dev->flags has become a chaos over time, this will reorganize the flags by renaming, deleting, adding and properly implement the flags. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
		
							parent
							
								
									12dadb9009
								
							
						
					
					
						commit
						066cb637b1
					
				| @ -1374,7 +1374,7 @@ static int rt2400pci_init_eeprom(struct rt2x00_dev *rt2x00dev) | ||||
| 	 * Detect if this device has an hardware controlled radio. | ||||
| 	 */ | ||||
| 	if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_HARDWARE_RADIO)) | ||||
| 		__set_bit(DEVICE_SUPPORT_HW_BUTTON, &rt2x00dev->flags); | ||||
| 		__set_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Check if the BBP tuning should be enabled. | ||||
| @ -1469,7 +1469,7 @@ static int rt2400pci_probe_hw(struct rt2x00_dev *rt2x00dev) | ||||
| 	/*
 | ||||
| 	 * This device requires the beacon ring | ||||
| 	 */ | ||||
| 	__set_bit(REQUIRE_BEACON_RING, &rt2x00dev->flags); | ||||
| 	__set_bit(DRIVER_REQUIRE_BEACON_RING, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Set the rssi offset. | ||||
|  | ||||
| @ -1545,7 +1545,7 @@ static int rt2500pci_init_eeprom(struct rt2x00_dev *rt2x00dev) | ||||
| 	 * Detect if this device has an hardware controlled radio. | ||||
| 	 */ | ||||
| 	if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_HARDWARE_RADIO)) | ||||
| 		__set_bit(DEVICE_SUPPORT_HW_BUTTON, &rt2x00dev->flags); | ||||
| 		__set_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Check if the BBP tuning should be enabled. | ||||
| @ -1801,7 +1801,7 @@ static int rt2500pci_probe_hw(struct rt2x00_dev *rt2x00dev) | ||||
| 	/*
 | ||||
| 	 * This device requires the beacon ring | ||||
| 	 */ | ||||
| 	__set_bit(REQUIRE_BEACON_RING, &rt2x00dev->flags); | ||||
| 	__set_bit(DRIVER_REQUIRE_BEACON_RING, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Set the rssi offset. | ||||
|  | ||||
| @ -1573,7 +1573,7 @@ static int rt2500usb_probe_hw(struct rt2x00_dev *rt2x00dev) | ||||
| 	/*
 | ||||
| 	 * This device requires the beacon ring | ||||
| 	 */ | ||||
| 	__set_bit(REQUIRE_BEACON_RING, &rt2x00dev->flags); | ||||
| 	__set_bit(DRIVER_REQUIRE_BEACON_RING, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Set the rssi offset. | ||||
|  | ||||
| @ -493,24 +493,21 @@ struct rt2x00_dev { | ||||
| 	 * of the device capabilities are stored. | ||||
| 	 */ | ||||
| 	unsigned long flags; | ||||
| #define DEVICE_ENABLED_RADIO		1 | ||||
| #define DEVICE_ENABLED_RADIO_HW		2 | ||||
| #define DEVICE_PRESENT			1 | ||||
| #define DEVICE_REGISTERED_HW		2 | ||||
| #define DEVICE_INITIALIZED		3 | ||||
| #define DEVICE_INITIALIZED_HW		4 | ||||
| #define REQUIRE_FIRMWARE		5 | ||||
| /* Hole: Add new Flag here */ | ||||
| #define INTERFACE_RESUME		8 | ||||
| #define INTERFACE_ENABLED		9 | ||||
| /* Hole: Add new Flag here */ | ||||
| #define REQUIRE_BEACON_RING		11 | ||||
| #define DEVICE_SUPPORT_HW_BUTTON	12 | ||||
| #define CONFIG_FRAME_TYPE		13 | ||||
| #define CONFIG_RF_SEQUENCE		14 | ||||
| /* Hole: Add new Flag here */ | ||||
| #define CONFIG_EXTERNAL_LNA_A		16 | ||||
| #define CONFIG_EXTERNAL_LNA_BG		17 | ||||
| #define CONFIG_DOUBLE_ANTENNA		18 | ||||
| #define CONFIG_DISABLE_LINK_TUNING	19 | ||||
| #define DEVICE_STARTED			4 | ||||
| #define DEVICE_ENABLED_RADIO		5 | ||||
| #define DEVICE_ENABLED_RADIO_HW		6 | ||||
| #define DRIVER_REQUIRE_FIRMWARE		7 | ||||
| #define DRIVER_REQUIRE_BEACON_RING	8 | ||||
| #define CONFIG_SUPPORT_HW_BUTTON	9 | ||||
| #define CONFIG_FRAME_TYPE		10 | ||||
| #define CONFIG_RF_SEQUENCE		11 | ||||
| #define CONFIG_EXTERNAL_LNA_A		12 | ||||
| #define CONFIG_EXTERNAL_LNA_BG		13 | ||||
| #define CONFIG_DOUBLE_ANTENNA		14 | ||||
| #define CONFIG_DISABLE_LINK_TUNING	15 | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Chipset identification. | ||||
|  | ||||
| @ -48,33 +48,20 @@ void rt2x00lib_config_bssid(struct rt2x00_dev *rt2x00dev, u8 *bssid) | ||||
| 
 | ||||
| void rt2x00lib_config_type(struct rt2x00_dev *rt2x00dev, int type) | ||||
| { | ||||
| 	struct interface *intf = &rt2x00dev->interface; | ||||
| 
 | ||||
| 	if (!test_bit(INTERFACE_RESUME, &rt2x00dev->flags) && | ||||
| 	    (!!test_bit(INTERFACE_ENABLED, &rt2x00dev->flags) == | ||||
| 	     !!is_interface_present(intf))) | ||||
| 		return; | ||||
| 
 | ||||
| 	rt2x00dev->ops->lib->config_type(rt2x00dev, type); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Update the configuration flags. | ||||
| 	 */ | ||||
| 	if (is_interface_present(intf)) | ||||
| 		__set_bit(INTERFACE_ENABLED, &rt2x00dev->flags); | ||||
| 	else | ||||
| 		__clear_bit(INTERFACE_ENABLED, &rt2x00dev->flags); | ||||
| 	if (type != INVALID_INTERFACE) | ||||
| 		rt2x00dev->ops->lib->config_type(rt2x00dev, type); | ||||
| } | ||||
| 
 | ||||
| void rt2x00lib_config(struct rt2x00_dev *rt2x00dev, struct ieee80211_conf *conf) | ||||
| void rt2x00lib_config(struct rt2x00_dev *rt2x00dev, | ||||
| 		      struct ieee80211_conf *conf, const int force_config) | ||||
| { | ||||
| 	int flags = 0; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * If we are in RESUME state we should | ||||
| 	 * force all configuration options. | ||||
| 	 * In some situations we want to force all configurations | ||||
| 	 * to be reloaded (When resuming for instance). | ||||
| 	 */ | ||||
| 	if (test_bit(INTERFACE_RESUME, &rt2x00dev->flags)) { | ||||
| 	if (force_config) { | ||||
| 		flags = CONFIG_UPDATE_ALL; | ||||
| 		goto config; | ||||
| 	} | ||||
|  | ||||
| @ -40,7 +40,7 @@ | ||||
| struct data_ring *rt2x00lib_get_ring(struct rt2x00_dev *rt2x00dev, | ||||
| 				     const unsigned int queue) | ||||
| { | ||||
| 	int beacon = test_bit(REQUIRE_BEACON_RING, &rt2x00dev->flags); | ||||
| 	int beacon = test_bit(DRIVER_REQUIRE_BEACON_RING, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Check if we are requesting a reqular TX ring, | ||||
| @ -102,7 +102,7 @@ int rt2x00lib_enable_radio(struct rt2x00_dev *rt2x00dev) | ||||
| 	 * And check if the hardware button has been disabled. | ||||
| 	 */ | ||||
| 	if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags) || | ||||
| 	    (test_bit(DEVICE_SUPPORT_HW_BUTTON, &rt2x00dev->flags) && | ||||
| 	    (test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) && | ||||
| 	     !test_bit(DEVICE_ENABLED_RADIO_HW, &rt2x00dev->flags))) | ||||
| 		return 0; | ||||
| 
 | ||||
| @ -162,6 +162,9 @@ void rt2x00lib_toggle_rx(struct rt2x00_dev *rt2x00dev, int enable) | ||||
| { | ||||
| 	enum dev_state state = enable ? STATE_RADIO_RX_ON : STATE_RADIO_RX_OFF; | ||||
| 
 | ||||
| 	if (!test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags)) | ||||
| 		return; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * When we are disabling the RX, we should also stop the link tuner. | ||||
| 	 */ | ||||
| @ -721,7 +724,7 @@ exit: | ||||
| 
 | ||||
| static void rt2x00lib_remove_hw(struct rt2x00_dev *rt2x00dev) | ||||
| { | ||||
| 	if (test_bit(DEVICE_INITIALIZED_HW, &rt2x00dev->flags)) | ||||
| 	if (test_bit(DEVICE_REGISTERED_HW, &rt2x00dev->flags)) | ||||
| 		ieee80211_unregister_hw(rt2x00dev->hw); | ||||
| 
 | ||||
| 	if (likely(rt2x00dev->hwmodes)) { | ||||
| @ -753,7 +756,7 @@ static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev) | ||||
| 		return status; | ||||
| 	} | ||||
| 
 | ||||
| 	__set_bit(DEVICE_INITIALIZED_HW, &rt2x00dev->flags); | ||||
| 	__set_bit(DEVICE_REGISTERED_HW, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| @ -810,7 +813,7 @@ static int rt2x00lib_alloc_ring_entries(struct rt2x00_dev *rt2x00dev) | ||||
| 			return -ENOMEM; | ||||
| 	} | ||||
| 
 | ||||
| 	if (!test_bit(REQUIRE_BEACON_RING, &rt2x00dev->flags)) | ||||
| 	if (!test_bit(DRIVER_REQUIRE_BEACON_RING, &rt2x00dev->flags)) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	/*
 | ||||
| @ -919,7 +922,7 @@ static int rt2x00lib_alloc_rings(struct rt2x00_dev *rt2x00dev) | ||||
| 	 * Atim: 1 (if required) | ||||
| 	 */ | ||||
| 	rt2x00dev->data_rings = 1 + rt2x00dev->hw->queues + | ||||
| 	    (2 * test_bit(REQUIRE_BEACON_RING, &rt2x00dev->flags)); | ||||
| 	    (2 * test_bit(DRIVER_REQUIRE_BEACON_RING, &rt2x00dev->flags)); | ||||
| 
 | ||||
| 	ring = kzalloc(rt2x00dev->data_rings * sizeof(*ring), GFP_KERNEL); | ||||
| 	if (!ring) { | ||||
| @ -932,7 +935,7 @@ static int rt2x00lib_alloc_rings(struct rt2x00_dev *rt2x00dev) | ||||
| 	 */ | ||||
| 	rt2x00dev->rx = ring; | ||||
| 	rt2x00dev->tx = &rt2x00dev->rx[1]; | ||||
| 	if (test_bit(REQUIRE_BEACON_RING, &rt2x00dev->flags)) | ||||
| 	if (test_bit(DRIVER_REQUIRE_BEACON_RING, &rt2x00dev->flags)) | ||||
| 		rt2x00dev->bcn = &rt2x00dev->tx[rt2x00dev->hw->queues]; | ||||
| 
 | ||||
| 	/*
 | ||||
| @ -1011,6 +1014,8 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev) | ||||
| 	 */ | ||||
| 	rt2x00debug_register(rt2x00dev); | ||||
| 
 | ||||
| 	__set_bit(DEVICE_PRESENT, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	return 0; | ||||
| 
 | ||||
| exit: | ||||
| @ -1022,6 +1027,8 @@ EXPORT_SYMBOL_GPL(rt2x00lib_probe_dev); | ||||
| 
 | ||||
| void rt2x00lib_remove_dev(struct rt2x00_dev *rt2x00dev) | ||||
| { | ||||
| 	__clear_bit(DEVICE_PRESENT, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Disable radio. | ||||
| 	 */ | ||||
| @ -1068,6 +1075,13 @@ int rt2x00lib_suspend(struct rt2x00_dev *rt2x00dev, pm_message_t state) | ||||
| 	int retval; | ||||
| 
 | ||||
| 	NOTICE(rt2x00dev, "Going to sleep.\n"); | ||||
| 	__clear_bit(DEVICE_PRESENT, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Only continue if mac80211 has open interfaces. | ||||
| 	 */ | ||||
| 	if (!test_bit(DEVICE_STARTED, &rt2x00dev->flags)) | ||||
| 		goto exit; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Disable radio and unitialize all items | ||||
| @ -1077,6 +1091,7 @@ int rt2x00lib_suspend(struct rt2x00_dev *rt2x00dev, pm_message_t state) | ||||
| 	rt2x00lib_uninitialize(rt2x00dev); | ||||
| 	rt2x00debug_deregister(rt2x00dev); | ||||
| 
 | ||||
| exit: | ||||
| 	/*
 | ||||
| 	 * Set device mode to sleep for power management. | ||||
| 	 */ | ||||
| @ -1094,13 +1109,19 @@ int rt2x00lib_resume(struct rt2x00_dev *rt2x00dev) | ||||
| 	int retval; | ||||
| 
 | ||||
| 	NOTICE(rt2x00dev, "Waking up.\n"); | ||||
| 	__set_bit(INTERFACE_RESUME, &rt2x00dev->flags); | ||||
| 	__set_bit(DEVICE_PRESENT, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Open the debugfs entry. | ||||
| 	 */ | ||||
| 	rt2x00debug_register(rt2x00dev); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Only continue if mac80211 has open interfaces. | ||||
| 	 */ | ||||
| 	if (!test_bit(DEVICE_STARTED, &rt2x00dev->flags)) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Reinitialize device and all active interfaces. | ||||
| 	 */ | ||||
| @ -1111,14 +1132,22 @@ int rt2x00lib_resume(struct rt2x00_dev *rt2x00dev) | ||||
| 	/*
 | ||||
| 	 * Reconfigure device. | ||||
| 	 */ | ||||
| 	retval = rt2x00mac_config(rt2x00dev->hw, &rt2x00dev->hw->conf); | ||||
| 	if (retval) | ||||
| 		goto exit; | ||||
| 	rt2x00lib_config(rt2x00dev, &rt2x00dev->hw->conf, 1); | ||||
| 	if (!rt2x00dev->hw->conf.radio_enabled) | ||||
| 		rt2x00lib_disable_radio(rt2x00dev); | ||||
| 
 | ||||
| 	rt2x00lib_config_mac_addr(rt2x00dev, intf->mac); | ||||
| 	rt2x00lib_config_bssid(rt2x00dev, intf->bssid); | ||||
| 	rt2x00lib_config_type(rt2x00dev, intf->type); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * It is possible that during that mac80211 has attempted | ||||
| 	 * to send frames while we were suspending or resuming. | ||||
| 	 * In that case we have disabled the TX queue and should | ||||
| 	 * now enable it again | ||||
| 	 */ | ||||
| 	ieee80211_start_queues(rt2x00dev->hw); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * When in Master or Ad-hoc mode, | ||||
| 	 * restart Beacon transmitting by faking a beacondone event. | ||||
| @ -1127,8 +1156,6 @@ int rt2x00lib_resume(struct rt2x00_dev *rt2x00dev) | ||||
| 	    intf->type == IEEE80211_IF_TYPE_IBSS) | ||||
| 		rt2x00lib_beacondone(rt2x00dev); | ||||
| 
 | ||||
| 	__clear_bit(INTERFACE_RESUME, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	return 0; | ||||
| 
 | ||||
| exit: | ||||
| @ -1136,8 +1163,6 @@ exit: | ||||
| 	rt2x00lib_uninitialize(rt2x00dev); | ||||
| 	rt2x00debug_deregister(rt2x00dev); | ||||
| 
 | ||||
| 	__clear_bit(INTERFACE_RESUME, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	return retval; | ||||
| } | ||||
| EXPORT_SYMBOL_GPL(rt2x00lib_resume); | ||||
|  | ||||
| @ -52,7 +52,8 @@ void rt2x00lib_uninitialize(struct rt2x00_dev *rt2x00dev); | ||||
| void rt2x00lib_config_mac_addr(struct rt2x00_dev *rt2x00dev, u8 *mac); | ||||
| void rt2x00lib_config_bssid(struct rt2x00_dev *rt2x00dev, u8 *bssid); | ||||
| void rt2x00lib_config_type(struct rt2x00_dev *rt2x00dev, int type); | ||||
| void rt2x00lib_config(struct rt2x00_dev *rt2x00dev, struct ieee80211_conf *conf); | ||||
| void rt2x00lib_config(struct rt2x00_dev *rt2x00dev, | ||||
| 		      struct ieee80211_conf *conf, const int force_config); | ||||
| 
 | ||||
| /*
 | ||||
|  * Firmware handlers. | ||||
|  | ||||
| @ -81,6 +81,17 @@ int rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb, | ||||
| 	struct data_ring *ring; | ||||
| 	u16 frame_control; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Mac80211 might be calling this function while we are trying | ||||
| 	 * to remove the device or perhaps suspending it. | ||||
| 	 * Note that we can only stop the TX queues inside the TX path | ||||
| 	 * due to possible race conditions in mac80211. | ||||
| 	 */ | ||||
| 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags)) { | ||||
| 		ieee80211_stop_queues(hw); | ||||
| 		return 0; | ||||
| 	} | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Determine which ring to put packet on. | ||||
| 	 */ | ||||
| @ -126,14 +137,15 @@ int rt2x00mac_start(struct ieee80211_hw *hw) | ||||
| 	struct rt2x00_dev *rt2x00dev = hw->priv; | ||||
| 	int status; | ||||
| 
 | ||||
| 	if (test_bit(DEVICE_INITIALIZED, &rt2x00dev->flags)) | ||||
| 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags) || | ||||
| 	    test_bit(DEVICE_STARTED, &rt2x00dev->flags)) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * If this is the first interface which is added, | ||||
| 	 * we should load the firmware now. | ||||
| 	 */ | ||||
| 	if (test_bit(REQUIRE_FIRMWARE, &rt2x00dev->flags)) { | ||||
| 	if (test_bit(DRIVER_REQUIRE_FIRMWARE, &rt2x00dev->flags)) { | ||||
| 		status = rt2x00lib_load_firmware(rt2x00dev); | ||||
| 		if (status) | ||||
| 			return status; | ||||
| @ -155,6 +167,8 @@ int rt2x00mac_start(struct ieee80211_hw *hw) | ||||
| 		return status; | ||||
| 	} | ||||
| 
 | ||||
| 	__set_bit(DEVICE_STARTED, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| EXPORT_SYMBOL_GPL(rt2x00mac_start); | ||||
| @ -163,11 +177,16 @@ void rt2x00mac_stop(struct ieee80211_hw *hw) | ||||
| { | ||||
| 	struct rt2x00_dev *rt2x00dev = hw->priv; | ||||
| 
 | ||||
| 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags)) | ||||
| 		return; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Perhaps we can add something smarter here, | ||||
| 	 * but for now just disabling the radio should do. | ||||
| 	 */ | ||||
| 	rt2x00lib_disable_radio(rt2x00dev); | ||||
| 
 | ||||
| 	__clear_bit(DEVICE_STARTED, &rt2x00dev->flags); | ||||
| } | ||||
| EXPORT_SYMBOL_GPL(rt2x00mac_stop); | ||||
| 
 | ||||
| @ -178,9 +197,12 @@ int rt2x00mac_add_interface(struct ieee80211_hw *hw, | ||||
| 	struct interface *intf = &rt2x00dev->interface; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * We only support 1 non-monitor interface. | ||||
| 	 * Don't allow interfaces to be added while | ||||
| 	 * either the device has disappeared or when | ||||
| 	 * another interface is already present. | ||||
| 	 */ | ||||
| 	if (is_interface_present(intf)) | ||||
| 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags) || | ||||
| 	    is_interface_present(intf)) | ||||
| 		return -ENOBUFS; | ||||
| 
 | ||||
| 	intf->id = conf->if_id; | ||||
| @ -208,9 +230,12 @@ void rt2x00mac_remove_interface(struct ieee80211_hw *hw, | ||||
| 	struct interface *intf = &rt2x00dev->interface; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * We only support 1 non-monitor interface. | ||||
| 	 * Don't allow interfaces to be remove while | ||||
| 	 * either the device has disappeared or when | ||||
| 	 * no interface is present. | ||||
| 	 */ | ||||
| 	if (!is_interface_present(intf)) | ||||
| 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags) || | ||||
| 	    !is_interface_present(intf)) | ||||
| 		return; | ||||
| 
 | ||||
| 	intf->id = 0; | ||||
| @ -233,12 +258,10 @@ int rt2x00mac_config(struct ieee80211_hw *hw, struct ieee80211_conf *conf) | ||||
| 	struct rt2x00_dev *rt2x00dev = hw->priv; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * If the device is not initialized we shouldn't accept | ||||
| 	 * any configuration changes. Mac80211 might be calling | ||||
| 	 * this function while we are trying to remove the device | ||||
| 	 * or perhaps suspending it. | ||||
| 	 * Mac80211 might be calling this function while we are trying | ||||
| 	 * to remove the device or perhaps suspending it. | ||||
| 	 */ | ||||
| 	if (!test_bit(DEVICE_INITIALIZED, &rt2x00dev->flags)) | ||||
| 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags)) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	/*
 | ||||
| @ -252,7 +275,7 @@ int rt2x00mac_config(struct ieee80211_hw *hw, struct ieee80211_conf *conf) | ||||
| 			rt2x00lib_toggle_rx(rt2x00dev, 0); | ||||
| 	} | ||||
| 
 | ||||
| 	rt2x00lib_config(rt2x00dev, conf); | ||||
| 	rt2x00lib_config(rt2x00dev, conf, 0); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Reenable RX only if the radio should be on. | ||||
| @ -274,12 +297,10 @@ int rt2x00mac_config_interface(struct ieee80211_hw *hw, int if_id, | ||||
| 	int status; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * If the device is not initialized we shouldn't accept | ||||
| 	 * any configuration changes. Mac80211 might be calling | ||||
| 	 * this function while we are trying to remove the device | ||||
| 	 * or perhaps suspending it. | ||||
| 	 * Mac80211 might be calling this function while we are trying | ||||
| 	 * to remove the device or perhaps suspending it. | ||||
| 	 */ | ||||
| 	if (!test_bit(DEVICE_INITIALIZED, &rt2x00dev->flags)) | ||||
| 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags)) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	/*
 | ||||
|  | ||||
| @ -45,9 +45,9 @@ static int rt2x00rfkill_toggle_radio(void *data, enum rfkill_state state) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Only continue if we have an active interface. | ||||
| 	 * Only continue if there are enabled interfaces. | ||||
| 	 */ | ||||
| 	if (!is_interface_present(&rt2x00dev->interface)) | ||||
| 	if (!test_bit(DEVICE_STARTED, &rt2x00dev->flags)) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	if (state == RFKILL_STATE_ON) { | ||||
| @ -76,7 +76,7 @@ int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev) | ||||
| { | ||||
| 	int retval; | ||||
| 
 | ||||
| 	if (!test_bit(DEVICE_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) | ||||
| 	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	retval = rfkill_register(rt2x00dev->rfkill); | ||||
| @ -97,7 +97,7 @@ int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev) | ||||
| 
 | ||||
| void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev) | ||||
| { | ||||
| 	if (!test_bit(DEVICE_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) | ||||
| 	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) | ||||
| 		return; | ||||
| 
 | ||||
| 	input_unregister_polled_device(rt2x00dev->poll_dev); | ||||
| @ -108,7 +108,7 @@ int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev) | ||||
| { | ||||
| 	struct device *device = wiphy_dev(rt2x00dev->hw->wiphy); | ||||
| 
 | ||||
| 	if (!test_bit(DEVICE_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) | ||||
| 	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	rt2x00dev->rfkill = rfkill_allocate(device, RFKILL_TYPE_WLAN); | ||||
| @ -138,7 +138,7 @@ int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev) | ||||
| 
 | ||||
| void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev) | ||||
| { | ||||
| 	if (!test_bit(DEVICE_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) | ||||
| 	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) | ||||
| 		return; | ||||
| 
 | ||||
| 	input_free_polled_device(rt2x00dev->poll_dev); | ||||
|  | ||||
| @ -2105,7 +2105,7 @@ static int rt61pci_init_eeprom(struct rt2x00_dev *rt2x00dev) | ||||
| 	 * Detect if this device has an hardware controlled radio. | ||||
| 	 */ | ||||
| 	if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_HARDWARE_RADIO)) | ||||
| 		__set_bit(DEVICE_SUPPORT_HW_BUTTON, &rt2x00dev->flags); | ||||
| 		__set_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Read frequency offset and RF programming sequence. | ||||
| @ -2360,7 +2360,7 @@ static int rt61pci_probe_hw(struct rt2x00_dev *rt2x00dev) | ||||
| 	/*
 | ||||
| 	 * This device requires firmware | ||||
| 	 */ | ||||
| 	__set_bit(REQUIRE_FIRMWARE, &rt2x00dev->flags); | ||||
| 	__set_bit(DRIVER_REQUIRE_FIRMWARE, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Set the rssi offset. | ||||
|  | ||||
| @ -1827,7 +1827,7 @@ static int rt73usb_probe_hw(struct rt2x00_dev *rt2x00dev) | ||||
| 	/*
 | ||||
| 	 * This device requires firmware | ||||
| 	 */ | ||||
| 	__set_bit(REQUIRE_FIRMWARE, &rt2x00dev->flags); | ||||
| 	__set_bit(DRIVER_REQUIRE_FIRMWARE, &rt2x00dev->flags); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Set the rssi offset. | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user