Skip to contentSkip to conversation

rt2x00: uncomment get_tsf

PATCH New Ivo van Doorn 1 participant 3 messages Feb 15, 2009 1 message not in the archive Networking drivers (wireless)

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

PATCH 1/3 rt2x00: uncomment get_tsf

The atomic requirement for get_tsf() has been removed by mac80211. This means the USB drivers can add support for the callback function again.

---
 drivers/net/wireless/rt2x00/rt73usb.c |   10 ----------
 1 files changed, 0 insertions(+), 10 deletions(-)
drivers/net/wireless/rt2x00/rt73usb.c +0 -10
index 6521dac..8f52234 100644
@@ -2241,13 +2241,6 @@ static int rt73usb_conf_tx(struct ieee80211_hw *hw, u16 queue_idx,
 	return 0;
 }
 
-#if 0
-/*
- * Mac80211 demands get_tsf must be atomic.
- * This is not possible for rt73usb since all register access
- * functions require sleeping. Untill mac80211 no longer needs
- * get_tsf to be atomic, this function should be disabled.
- */
 static u64 rt73usb_get_tsf(struct ieee80211_hw *hw)
 {
 	struct rt2x00_dev *rt2x00dev = hw->priv;
@@ -2261,9 +2254,6 @@ static u64 rt73usb_get_tsf(struct ieee80211_hw *hw)
 
 	return tsf;
 }
-#else
-#define rt73usb_get_tsf	NULL
-#endif
 
 static const struct ieee80211_ops rt73usb_mac80211_ops = {
 	.tx			= rt2x00mac_tx,
Signature · 1 line
1.5.6.1
#2 lore raw

PATCH 2/3 rt2x00: Remove check for rf word 0

The only way rf_write() can be called with word 0 is when the user sends the wrong word index through debugfs. However the values which are send through debugfs are validated using the RF_BASE and RF_SIZE macro values, the most logical solution is to increase RF_BASE with 4 and decrease RF_SIZE with 4 (RF_SIZE has always been 1 word too big)

---
 drivers/net/wireless/rt2x00/rt2400pci.c |    3 ---
 drivers/net/wireless/rt2x00/rt2400pci.h |    4 ++--
 drivers/net/wireless/rt2x00/rt2500pci.c |    3 ---
 drivers/net/wireless/rt2x00/rt2500pci.h |    4 ++--
 drivers/net/wireless/rt2x00/rt2500usb.c |    3 ---
 drivers/net/wireless/rt2x00/rt2500usb.h |    4 ++--
 drivers/net/wireless/rt2x00/rt61pci.c   |    3 ---
 drivers/net/wireless/rt2x00/rt61pci.h   |    4 ++--
 drivers/net/wireless/rt2x00/rt73usb.c   |    3 ---
 drivers/net/wireless/rt2x00/rt73usb.h   |    4 ++--
 10 files changed, 10 insertions(+), 25 deletions(-)
drivers/net/wireless/rt2x00/rt2400pci.c +0 -3
index b084825..0f08773 100644
@@ -114,9 +114,6 @@ static void rt2400pci_rf_write(struct rt2x00_dev *rt2x00dev,
 {
 	u32 reg;
 
-	if (!word)
-		return;
-
 	mutex_lock(&rt2x00dev->csr_mutex);
 
 	/*
drivers/net/wireless/rt2x00/rt2400pci.h +2 -2
index 72ac31c..ec3b004 100644
@@ -48,8 +48,8 @@
 #define EEPROM_SIZE			0x0100
 #define BBP_BASE			0x0000
 #define BBP_SIZE			0x0020
-#define RF_BASE				0x0000
-#define RF_SIZE				0x0010
+#define RF_BASE				0x0004
+#define RF_SIZE				0x000c
 
 /*
  * Number of TX queues.
drivers/net/wireless/rt2x00/rt2500pci.c +0 -3
index eb82860..276a823 100644
@@ -114,9 +114,6 @@ static void rt2500pci_rf_write(struct rt2x00_dev *rt2x00dev,
 {
 	u32 reg;
 
-	if (!word)
-		return;
-
 	mutex_lock(&rt2x00dev->csr_mutex);
 
 	/*
drivers/net/wireless/rt2x00/rt2500pci.h +2 -2
index 17a0c9c..ce2f065 100644
@@ -59,8 +59,8 @@
 #define EEPROM_SIZE			0x0200
 #define BBP_BASE			0x0000
 #define BBP_SIZE			0x0040
-#define RF_BASE				0x0000
-#define RF_SIZE				0x0014
+#define RF_BASE				0x0004
+#define RF_SIZE				0x0010
 
 /*
  * Number of TX queues.
drivers/net/wireless/rt2x00/rt2500usb.c +0 -3
index 270691a..ca28067 100644
@@ -204,9 +204,6 @@ static void rt2500usb_rf_write(struct rt2x00_dev *rt2x00dev,
 {
 	u16 reg;
 
-	if (!word)
-		return;
-
 	mutex_lock(&rt2x00dev->csr_mutex);
 
 	/*
drivers/net/wireless/rt2x00/rt2500usb.h +2 -2
index afce0e0..5bc46fe 100644
@@ -59,8 +59,8 @@
 #define EEPROM_SIZE			0x006a
 #define BBP_BASE			0x0000
 #define BBP_SIZE			0x0060
-#define RF_BASE				0x0000
-#define RF_SIZE				0x0014
+#define RF_BASE				0x0004
+#define RF_SIZE				0x0010
 
 /*
  * Number of TX queues.
drivers/net/wireless/rt2x00/rt61pci.c +0 -3
index 0be147f..2ca8b7a 100644
@@ -123,9 +123,6 @@ static void rt61pci_rf_write(struct rt2x00_dev *rt2x00dev,
 {
 	u32 reg;
 
-	if (!word)
-		return;
-
 	mutex_lock(&rt2x00dev->csr_mutex);
 
 	/*
drivers/net/wireless/rt2x00/rt61pci.h +2 -2
index 2f97fee..41e8959 100644
@@ -50,8 +50,8 @@
 #define EEPROM_SIZE			0x0100
 #define BBP_BASE			0x0000
 #define BBP_SIZE			0x0080
-#define RF_BASE				0x0000
-#define RF_SIZE				0x0014
+#define RF_BASE				0x0004
+#define RF_SIZE				0x0010
 
 /*
  * Number of TX queues.
drivers/net/wireless/rt2x00/rt73usb.c +0 -3
index 8f52234..846996c 100644
@@ -122,9 +122,6 @@ static void rt73usb_rf_write(struct rt2x00_dev *rt2x00dev,
 {
 	u32 reg;
 
-	if (!word)
-		return;
-
 	mutex_lock(&rt2x00dev->csr_mutex);
 
 	/*
drivers/net/wireless/rt2x00/rt73usb.h +2 -2
index 834b28c..c8016f6 100644
@@ -50,8 +50,8 @@
 #define EEPROM_SIZE			0x0100
 #define BBP_BASE			0x0000
 #define BBP_SIZE			0x0080
-#define RF_BASE				0x0000
-#define RF_SIZE				0x0014
+#define RF_BASE				0x0004
+#define RF_SIZE				0x0010
 
 /*
  * Number of TX queues.
Signature · 1 line
1.5.6.1
#3 lore raw

PATCH 3/3 rt2x00: Add various new USB IDs for rt73usb

---
 drivers/net/wireless/rt2x00/rt73usb.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
drivers/net/wireless/rt2x00/rt73usb.c +6 -0
index 846996c..90ace51 100644
@@ -2342,6 +2342,9 @@ static const struct rt2x00_ops rt73usb_ops = {
 static struct usb_device_id rt73usb_device_table[] = {
 	/* AboCom */
 	{ USB_DEVICE(0x07b8, 0xb21d), USB_DEVICE_DATA(&rt73usb_ops) },
+	/* Amigo */
+	{ USB_DEVICE(0x148f, 0x9021), USB_DEVICE_DATA(&rt73usb_ops) },
+	{ USB_DEVICE(0x0eb0, 0x9021), USB_DEVICE_DATA(&rt73usb_ops) },
 	/* Askey */
 	{ USB_DEVICE(0x1690, 0x0722), USB_DEVICE_DATA(&rt73usb_ops) },
 	/* ASUS */
@@ -2389,6 +2392,7 @@ static struct usb_device_id rt73usb_device_table[] = {
 	{ USB_DEVICE(0x0db0, 0xa861), USB_DEVICE_DATA(&rt73usb_ops) },
 	{ USB_DEVICE(0x0db0, 0xa874), USB_DEVICE_DATA(&rt73usb_ops) },
 	/* Ralink */
+	{ USB_DEVICE(0x04bb, 0x093d), USB_DEVICE_DATA(&rt73usb_ops) },
 	{ USB_DEVICE(0x148f, 0x2573), USB_DEVICE_DATA(&rt73usb_ops) },
 	{ USB_DEVICE(0x148f, 0x2671), USB_DEVICE_DATA(&rt73usb_ops) },
 	/* Qcom */
@@ -2405,6 +2409,8 @@ static struct usb_device_id rt73usb_device_table[] = {
 	/* Planex */
 	{ USB_DEVICE(0x2019, 0xab01), USB_DEVICE_DATA(&rt73usb_ops) },
 	{ USB_DEVICE(0x2019, 0xab50), USB_DEVICE_DATA(&rt73usb_ops) },
+	/* ZyXEL */
+	{ USB_DEVICE(0x0586, 0x3415), USB_DEVICE_DATA(&rt73usb_ops) },
 	{ 0, }
 };
 
Signature · 1 line
1.5.6.1