Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 61c93f4e authored by Jeff Garzik's avatar Jeff Garzik
Browse files

Merge branch 'fixes-jgarzik' of...

Merge branch 'fixes-jgarzik' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into upstream-fixes
parents 9914cad5 412e9e78
Loading
Loading
Loading
Loading
+51 −0
Original line number Diff line number Diff line
@@ -587,15 +587,66 @@ config ADM8211
config P54_COMMON
	tristate "Softmac Prism54 support"
	depends on MAC80211 && WLAN_80211 && FW_LOADER && EXPERIMENTAL
	---help---
	  This is common code for isl38xx based cards.
	  This module does nothing by itself - the USB/PCI frontends
	  also need to be enabled in order to support any devices.

	  These devices require softmac firmware which can be found at
	  http://prism54.org/

	  If you choose to build a module, it'll be called p54common.

config P54_USB
	tristate "Prism54 USB support"
	depends on P54_COMMON && USB
	select CRC32
	---help---
	  This driver is for USB isl38xx based wireless cards.
	  These are USB based adapters found in devices such as:

	  3COM 3CRWE254G72
	  SMC 2862W-G
	  Accton 802.11g WN4501 USB
	  Siemens Gigaset USB
	  Netgear WG121
	  Netgear WG111
	  Medion 40900, Roper Europe
	  Shuttle PN15, Airvast WM168g, IOGear GWU513
	  Linksys WUSB54G
	  Linksys WUSB54G Portable
	  DLink DWL-G120 Spinnaker
	  DLink DWL-G122
	  Belkin F5D7050 ver 1000
	  Cohiba Proto board
	  SMC 2862W-G version 2
	  U.S. Robotics U5 802.11g Adapter
	  FUJITSU E-5400 USB D1700
	  Sagem XG703A
	  DLink DWL-G120 Cohiba
	  Spinnaker Proto board
	  Linksys WUSB54AG
	  Inventel UR054G
	  Spinnaker DUT

	  These devices require softmac firmware which can be found at
	  http://prism54.org/

	  If you choose to build a module, it'll be called p54usb.

config P54_PCI
	tristate "Prism54 PCI support"
	depends on P54_COMMON && PCI
	---help---
	  This driver is for PCI isl38xx based wireless cards.
	  This driver supports most devices that are supported by the
	  fullmac prism54 driver plus many devices which are not
	  supported by the fullmac driver/firmware.

	  This driver requires softmac firmware which can be found at
	  http://prism54.org/

	  If you choose to build a module, it'll be called p54pci.

source "drivers/net/wireless/iwlwifi/Kconfig"
source "drivers/net/wireless/hostap/Kconfig"
+12 −1
Original line number Diff line number Diff line
@@ -1233,9 +1233,19 @@ static ssize_t show_event_log(struct device *d,
{
	struct ipw_priv *priv = dev_get_drvdata(d);
	u32 log_len = ipw_get_event_log_len(priv);
	struct ipw_event log[log_len];
	u32 log_size;
	struct ipw_event *log;
	u32 len = 0, i;

	/* not using min() because of its strict type checking */
	log_size = PAGE_SIZE / sizeof(*log) > log_len ?
			sizeof(*log) * log_len : PAGE_SIZE;
	log = kzalloc(log_size, GFP_KERNEL);
	if (!log) {
		IPW_ERROR("Unable to allocate memory for log\n");
		return 0;
	}
	log_len = log_size / sizeof(*log);
	ipw_capture_event_log(priv, log_len, log);

	len += snprintf(buf + len, PAGE_SIZE - len, "%08X", log_len);
@@ -1244,6 +1254,7 @@ static ssize_t show_event_log(struct device *d,
				"\n%08X%08X%08X",
				log[i].time, log[i].event, log[i].data);
	len += snprintf(buf + len, PAGE_SIZE - len, "\n");
	kfree(log);
	return len;
}

+5 −13
Original line number Diff line number Diff line
@@ -6246,8 +6246,6 @@ static void __iwl_down(struct iwl_priv *priv)
	/* Unblock any waiting calls */
	wake_up_interruptible_all(&priv->wait_command_queue);

	iwl_cancel_deferred_work(priv);

	/* Wipe out the EXIT_PENDING status bit if we are not actually
	 * exiting the module */
	if (!exit_pending)
@@ -6322,6 +6320,8 @@ static void iwl_down(struct iwl_priv *priv)
	mutex_lock(&priv->mutex);
	__iwl_down(priv);
	mutex_unlock(&priv->mutex);

	iwl_cancel_deferred_work(priv);
}

#define MAX_HW_RESTARTS 5
@@ -8580,10 +8580,9 @@ static void iwl_pci_remove(struct pci_dev *pdev)

	IWL_DEBUG_INFO("*** UNLOAD DRIVER ***\n");

	mutex_lock(&priv->mutex);
	set_bit(STATUS_EXIT_PENDING, &priv->status);
	__iwl_down(priv);
	mutex_unlock(&priv->mutex);

	iwl_down(priv);

	/* Free MAC hash list for ADHOC */
	for (i = 0; i < IWL_IBSS_MAC_HASH_SIZE; i++) {
@@ -8642,12 +8641,10 @@ static int iwl_pci_suspend(struct pci_dev *pdev, pm_message_t state)
{
	struct iwl_priv *priv = pci_get_drvdata(pdev);

	mutex_lock(&priv->mutex);

	set_bit(STATUS_IN_SUSPEND, &priv->status);

	/* Take down the device; powers it off, etc. */
	__iwl_down(priv);
	iwl_down(priv);

	if (priv->mac80211_registered)
		ieee80211_stop_queues(priv->hw);
@@ -8656,8 +8653,6 @@ static int iwl_pci_suspend(struct pci_dev *pdev, pm_message_t state)
	pci_disable_device(pdev);
	pci_set_power_state(pdev, PCI_D3hot);

	mutex_unlock(&priv->mutex);

	return 0;
}

@@ -8715,8 +8710,6 @@ static int iwl_pci_resume(struct pci_dev *pdev)

	printk(KERN_INFO "Coming out of suspend...\n");

	mutex_lock(&priv->mutex);

	pci_set_power_state(pdev, PCI_D0);
	err = pci_enable_device(pdev);
	pci_restore_state(pdev);
@@ -8730,7 +8723,6 @@ static int iwl_pci_resume(struct pci_dev *pdev)
	pci_write_config_byte(pdev, 0x41, 0x00);

	iwl_resume(priv);
	mutex_unlock(&priv->mutex);

	return 0;
}
+5 −13
Original line number Diff line number Diff line
@@ -6601,8 +6601,6 @@ static void __iwl_down(struct iwl_priv *priv)
	/* Unblock any waiting calls */
	wake_up_interruptible_all(&priv->wait_command_queue);

	iwl_cancel_deferred_work(priv);

	/* Wipe out the EXIT_PENDING status bit if we are not actually
	 * exiting the module */
	if (!exit_pending)
@@ -6677,6 +6675,8 @@ static void iwl_down(struct iwl_priv *priv)
	mutex_lock(&priv->mutex);
	__iwl_down(priv);
	mutex_unlock(&priv->mutex);

	iwl_cancel_deferred_work(priv);
}

#define MAX_HW_RESTARTS 5
@@ -9174,10 +9174,9 @@ static void iwl_pci_remove(struct pci_dev *pdev)

	IWL_DEBUG_INFO("*** UNLOAD DRIVER ***\n");

	mutex_lock(&priv->mutex);
	set_bit(STATUS_EXIT_PENDING, &priv->status);
	__iwl_down(priv);
	mutex_unlock(&priv->mutex);

	iwl_down(priv);

	/* Free MAC hash list for ADHOC */
	for (i = 0; i < IWL_IBSS_MAC_HASH_SIZE; i++) {
@@ -9236,12 +9235,10 @@ static int iwl_pci_suspend(struct pci_dev *pdev, pm_message_t state)
{
	struct iwl_priv *priv = pci_get_drvdata(pdev);

	mutex_lock(&priv->mutex);

	set_bit(STATUS_IN_SUSPEND, &priv->status);

	/* Take down the device; powers it off, etc. */
	__iwl_down(priv);
	iwl_down(priv);

	if (priv->mac80211_registered)
		ieee80211_stop_queues(priv->hw);
@@ -9250,8 +9247,6 @@ static int iwl_pci_suspend(struct pci_dev *pdev, pm_message_t state)
	pci_disable_device(pdev);
	pci_set_power_state(pdev, PCI_D3hot);

	mutex_unlock(&priv->mutex);

	return 0;
}

@@ -9309,8 +9304,6 @@ static int iwl_pci_resume(struct pci_dev *pdev)

	printk(KERN_INFO "Coming out of suspend...\n");

	mutex_lock(&priv->mutex);

	pci_set_power_state(pdev, PCI_D0);
	err = pci_enable_device(pdev);
	pci_restore_state(pdev);
@@ -9324,7 +9317,6 @@ static int iwl_pci_resume(struct pci_dev *pdev)
	pci_write_config_byte(pdev, 0x41, 0x00);

	iwl_resume(priv);
	mutex_unlock(&priv->mutex);

	return 0;
}
+2 −0
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ static struct usb_device_id rtl8187_table[] __devinitdata = {
	{USB_DEVICE(0x0846, 0x6a00)},
	/* HP */
	{USB_DEVICE(0x03f0, 0xca02)},
	/* Sitecom */
	{USB_DEVICE(0x0df6, 0x000d)},
	{}
};