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

Commit 33e33495 authored by David S. Miller's avatar David S. Miller
Browse files
parents ad619800 3e2236c1
Loading
Loading
Loading
Loading
+51 −47
Original line number Diff line number Diff line
@@ -14,18 +14,49 @@ config IWLWIFI_LEDS
	default n

config IWLWIFI_RFKILL
	boolean "IWLWIFI RF kill support"
	boolean "Iwlwifi RF kill support"
	depends on IWLCORE

config IWL4965
	tristate "Intel Wireless WiFi 4965AGN"
config IWLWIFI_DEBUG
	bool "Enable full debugging output in iwlagn driver"
	depends on IWLCORE
	---help---
	  This option will enable debug tracing output for the iwlwifi drivers

	  This will result in the kernel module being ~100k larger.  You can
	  control which debug output is sent to the kernel log by setting the
	  value in

		/sys/class/net/wlan0/device/debug_level

	  This entry will only exist if this option is enabled.

	  To set a value, simply echo an 8-byte hex value to the same file:

		  % echo 0x43fff > /sys/class/net/wlan0/device/debug_level

	  You can find the list of debug mask values in:
		  drivers/net/wireless/iwlwifi/iwl-debug.h

	  If this is your first time using this driver, you should say Y here
	  as the debug information can assist others in helping you resolve
	  any problems you may encounter.

config IWLWIFI_DEBUGFS
        bool "Iwlwifi debugfs support"
        depends on IWLCORE && IWLWIFI_DEBUG && MAC80211_DEBUGFS
        ---help---
	  Enable creation of debugfs files for the iwlwifi drivers.

config IWLAGN
	tristate "Intel Wireless WiFi Next Gen AGN"
	depends on PCI && MAC80211 && WLAN_80211 && EXPERIMENTAL
	select FW_LOADER
	select IWLCORE
	---help---
	  Select to build the driver supporting the:

	  Intel Wireless WiFi Link 4965AGN
	  Intel Wireless WiFi Link Next-Gen AGN

	  This driver uses the kernel's mac80211 subsystem.

@@ -42,60 +73,33 @@ config IWL4965
	  If you want to compile the driver as a module ( = code which can be
	  inserted in and removed from the running kernel whenever you want),
	  say M here and read <file:Documentation/kbuild/modules.txt>.  The
	  module will be called iwl4965.ko.

config IWL4965_LEDS
	bool "Enable LEDS features in iwl4965 driver"
	depends on IWL4965
	select IWLWIFI_LEDS
	---help---
	  This option enables LEDS for the iwlwifi drivers
	  module will be called iwlagn.ko.


config IWL4965_SPECTRUM_MEASUREMENT
	bool "Enable Spectrum Measurement in iwl4965 driver"
	depends on IWL4965
config IWLAGN_SPECTRUM_MEASUREMENT
	bool "Enable Spectrum Measurement in iwlagn driver"
	depends on IWLAGN
	---help---
	  This option will enable spectrum measurement for the iwl4965 driver.
	  This option will enable spectrum measurement for the iwlagn driver.

config IWLWIFI_DEBUG
	bool "Enable full debugging output in iwl4965 driver"
	depends on IWL4965
config IWLAGN_LEDS
	bool "Enable LEDS features in iwlagn driver"
	depends on IWLAGN
	select IWLWIFI_LEDS
	---help---
	  This option will enable debug tracing output for the iwl4965
	  driver.

	  This will result in the kernel module being ~100k larger.  You can
	  control which debug output is sent to the kernel log by setting the
	  value in

		/sys/class/net/wlan0/device/debug_level

	  This entry will only exist if this option is enabled.

	  To set a value, simply echo an 8-byte hex value to the same file:

		  % echo 0x43fff > /sys/class/net/wlan0/device/debug_level
	  This option enables LEDS for the iwlagn drivers

	  You can find the list of debug mask values in:
		  drivers/net/wireless/iwlwifi/iwl-4965-debug.h

	  If this is your first time using this driver, you should say Y here
	  as the debug information can assist others in helping you resolve
	  any problems you may encounter.
config IWL4965
	bool "Intel Wireless WiFi 4965AGN"
	depends on IWLAGN
	---help---
	  This option enables support for Intel Wireless WiFi Link 4965AGN

config IWL5000
	bool "Intel Wireless WiFi 5000AGN"
	depends on IWL4965
	depends on IWLAGN
	---help---
	  This option enables support for Intel Wireless WiFi Link 5000AGN Family
	  Dependency on 4965 is temporary

config IWLWIFI_DEBUGFS
        bool "Iwlwifi debugfs support"
        depends on IWLCORE && IWLWIFI_DEBUG && MAC80211_DEBUGFS
        ---help---
	  Enable creation of debugfs files for the iwlwifi drivers.

config IWL3945
	tristate "Intel PRO/Wireless 3945ABG/BG Network Connection"
+6 −7
Original line number Diff line number Diff line
@@ -6,15 +6,14 @@ iwlcore-$(CONFIG_IWLWIFI_DEBUGFS) += iwl-debugfs.o
iwlcore-$(CONFIG_IWLWIFI_LEDS) += iwl-led.o
iwlcore-$(CONFIG_IWLWIFI_RFKILL) += iwl-rfkill.o

obj-$(CONFIG_IWLAGN)	+= iwlagn.o
iwlagn-objs		:= iwl-agn.o iwl-agn-rs.o

iwlagn-$(CONFIG_IWL4965) += iwl-4965.o
iwlagn-$(CONFIG_IWL5000) += iwl-5000.o

obj-$(CONFIG_IWL3945)	+= iwl3945.o
iwl3945-objs		:= iwl3945-base.o iwl-3945.o iwl-3945-rs.o
iwl3945-$(CONFIG_IWL3945_LEDS) += iwl-3945-led.o

obj-$(CONFIG_IWL4965)	+= iwl4965.o
iwl4965-objs		:= iwl4965-base.o iwl-4965.o iwl-4965-rs.o

ifeq ($(CONFIG_IWL5000),y)
	iwl4965-objs += iwl-5000.o
endif

+17 −16
Original line number Diff line number Diff line
@@ -206,12 +206,12 @@ static void iwl3945_led_brightness_set(struct led_classdev *led_cdev,
static int iwl3945_led_register_led(struct iwl3945_priv *priv,
				   struct iwl3945_led *led,
				   enum led_type type, u8 set_led,
				   const char *name, char *trigger)
				   char *trigger)
{
	struct device *device = wiphy_dev(priv->hw->wiphy);
	int ret;

	led->led_dev.name = name;
	led->led_dev.name = led->name;
	led->led_dev.brightness_set = iwl3945_led_brightness_set;
	led->led_dev.default_trigger = trigger;

@@ -308,7 +308,6 @@ void iwl3945_led_background(struct iwl3945_priv *priv)
int iwl3945_led_register(struct iwl3945_priv *priv)
{
	char *trigger;
	char name[32];
	int ret;

	priv->last_blink_rate = 0;
@@ -318,7 +317,8 @@ int iwl3945_led_register(struct iwl3945_priv *priv)
	priv->allow_blinking = 0;

	trigger = ieee80211_get_radio_led_name(priv->hw);
	snprintf(name, sizeof(name), "iwl-%s:radio",
	snprintf(priv->led[IWL_LED_TRG_RADIO].name,
		 sizeof(priv->led[IWL_LED_TRG_RADIO].name), "iwl-%s:radio",
		 wiphy_name(priv->hw->wiphy));

	priv->led[IWL_LED_TRG_RADIO].led_on = iwl3945_led_on;
@@ -327,19 +327,20 @@ int iwl3945_led_register(struct iwl3945_priv *priv)

	ret = iwl3945_led_register_led(priv,
				   &priv->led[IWL_LED_TRG_RADIO],
				   IWL_LED_TRG_RADIO, 1,
				   name, trigger);
				   IWL_LED_TRG_RADIO, 1, trigger);

	if (ret)
		goto exit_fail;

	trigger = ieee80211_get_assoc_led_name(priv->hw);
	snprintf(name, sizeof(name), "iwl-%s:assoc",
	snprintf(priv->led[IWL_LED_TRG_ASSOC].name,
		 sizeof(priv->led[IWL_LED_TRG_ASSOC].name), "iwl-%s:assoc",
		 wiphy_name(priv->hw->wiphy));

	ret = iwl3945_led_register_led(priv,
				   &priv->led[IWL_LED_TRG_ASSOC],
				   IWL_LED_TRG_ASSOC, 0,
				   name, trigger);
				   IWL_LED_TRG_ASSOC, 0, trigger);

	/* for assoc always turn led on */
	priv->led[IWL_LED_TRG_ASSOC].led_on = iwl3945_led_on;
	priv->led[IWL_LED_TRG_ASSOC].led_off = iwl3945_led_on;
@@ -349,14 +350,13 @@ int iwl3945_led_register(struct iwl3945_priv *priv)
		goto exit_fail;

	trigger = ieee80211_get_rx_led_name(priv->hw);
	snprintf(name, sizeof(name), "iwl-%s:RX",
	snprintf(priv->led[IWL_LED_TRG_RX].name,
		 sizeof(priv->led[IWL_LED_TRG_RX].name), "iwl-%s:RX",
		 wiphy_name(priv->hw->wiphy));


	ret = iwl3945_led_register_led(priv,
				   &priv->led[IWL_LED_TRG_RX],
				   IWL_LED_TRG_RX, 0,
				   name, trigger);
				   IWL_LED_TRG_RX, 0, trigger);

	priv->led[IWL_LED_TRG_RX].led_on = iwl3945_led_associated;
	priv->led[IWL_LED_TRG_RX].led_off = iwl3945_led_associated;
@@ -366,13 +366,14 @@ int iwl3945_led_register(struct iwl3945_priv *priv)
		goto exit_fail;

	trigger = ieee80211_get_tx_led_name(priv->hw);
	snprintf(name, sizeof(name), "iwl-%s:TX",
	snprintf(priv->led[IWL_LED_TRG_TX].name,
		 sizeof(priv->led[IWL_LED_TRG_TX].name), "iwl-%s:TX",
		 wiphy_name(priv->hw->wiphy));

	ret = iwl3945_led_register_led(priv,
				   &priv->led[IWL_LED_TRG_TX],
				   IWL_LED_TRG_TX, 0,
				   name, trigger);
				   IWL_LED_TRG_TX, 0, trigger);

	priv->led[IWL_LED_TRG_TX].led_on = iwl3945_led_associated;
	priv->led[IWL_LED_TRG_TX].led_off = iwl3945_led_associated;
	priv->led[IWL_LED_TRG_TX].led_pattern = iwl3945_led_pattern;
+1 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ enum led_type {
struct iwl3945_led {
	struct iwl3945_priv *priv;
	struct led_classdev led_dev;
	char name[32];

	int (*led_on) (struct iwl3945_priv *priv, int led_id);
	int (*led_off) (struct iwl3945_priv *priv, int led_id);
+3 −4
Original line number Diff line number Diff line
@@ -795,8 +795,7 @@ static void iwl3945_rx_reply_rx(struct iwl3945_priv *priv,
					struct ieee80211_mgmt *mgmt =
					    (struct ieee80211_mgmt *)header;
					__le32 *pos;
					pos =
					    (__le32 *) & mgmt->u.beacon.
					pos = (__le32 *)&mgmt->u.beacon.
					    timestamp;
					priv->timestamp0 = le32_to_cpu(pos[0]);
					priv->timestamp1 = le32_to_cpu(pos[1]);
@@ -1509,7 +1508,7 @@ static int iwl3945_hw_reg_adjust_power_by_temp(int new_reading, int old_reading)
 */
static inline int iwl3945_hw_reg_temp_out_of_range(int temperature)
{
	return (((temperature < -260) || (temperature > 25)) ? 1 : 0);
	return ((temperature < -260) || (temperature > 25)) ? 1 : 0;
}

int iwl3945_hw_get_temperature(struct iwl3945_priv *priv)
@@ -2630,7 +2629,7 @@ unsigned int iwl3945_hw_get_beacon_cmd(struct iwl3945_priv *priv,
	tx_beacon_cmd->tx.supp_rates[1] =
		(IWL_CCK_BASIC_RATES_MASK & 0xF);

	return (sizeof(struct iwl3945_tx_beacon_cmd) + frame_size);
	return sizeof(struct iwl3945_tx_beacon_cmd) + frame_size;
}

void iwl3945_hw_rx_handler_setup(struct iwl3945_priv *priv)
Loading