* [PATCH 1/4] ath: Add a driver_info bitmask field
@ 2010-11-19 11:23 Rajkumar Manoharan
2010-11-19 11:23 ` [PATCH 2/4] ath9k_htc: Add driver_info in usb device list Rajkumar Manoharan
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Rajkumar Manoharan @ 2010-11-19 11:23 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Rajkumar Manoharan
The driver_info stores the device category information which
is used to load appropriate device firmware, select firmware offset
and eeprom starting location. The driver_info is accessed across
ath9k_htc and ath9k_hw. Hence placed under common structure.
Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
---
drivers/net/wireless/ath/ath.h | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
index 501050c..20ea68c 100644
--- a/drivers/net/wireless/ath/ath.h
+++ b/drivers/net/wireless/ath/ath.h
@@ -104,6 +104,11 @@ enum ath_cipher {
ATH_CIPHER_MIC = 127
};
+enum ath_drv_info {
+ AR7010_DEVICE = BIT(0),
+ AR9287_DEVICE = BIT(1),
+};
+
/**
* struct ath_ops - Register read/write operations
*
@@ -147,6 +152,7 @@ struct ath_common {
u8 rx_chainmask;
u32 rx_bufsize;
+ u32 driver_info;
u32 keymax;
DECLARE_BITMAP(keymap, ATH_KEYMAX);
--
1.7.3.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/4] ath9k_htc: Add driver_info in usb device list
2010-11-19 11:23 [PATCH 1/4] ath: Add a driver_info bitmask field Rajkumar Manoharan
@ 2010-11-19 11:23 ` Rajkumar Manoharan
2010-11-19 11:23 ` [PATCH 3/4] ath9k_hw: Fix eeprom offset for AR9287 devices (PCI/USB) Rajkumar Manoharan
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Rajkumar Manoharan @ 2010-11-19 11:23 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Rajkumar Manoharan
Added driver_info to identify AR7010, R9287 HTC devices.
Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
---
drivers/net/wireless/ath/ath9k/hif_usb.c | 20 +++++++++++++++-----
1 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
index dfb6560..6a0dbd1 100644
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -28,10 +28,16 @@ MODULE_FIRMWARE(FIRMWARE_AR9271);
static struct usb_device_id ath9k_hif_usb_ids[] = {
{ USB_DEVICE(0x0cf3, 0x9271) }, /* Atheros */
{ USB_DEVICE(0x0cf3, 0x1006) }, /* Atheros */
- { USB_DEVICE(0x0cf3, 0x7010) }, /* Atheros */
- { USB_DEVICE(0x0cf3, 0x7015) }, /* Atheros */
+ { USB_DEVICE(0x0cf3, 0x7010),
+ .driver_info = AR7010_DEVICE },
+ /* Atheros */
+ { USB_DEVICE(0x0cf3, 0x7015),
+ .driver_info = AR7010_DEVICE | AR9287_DEVICE },
+ /* Atheros */
{ USB_DEVICE(0x0846, 0x9030) }, /* Netgear N150 */
- { USB_DEVICE(0x0846, 0x9018) }, /* Netgear WNDA3200 */
+ { USB_DEVICE(0x0846, 0x9018),
+ .driver_info = AR7010_DEVICE },
+ /* Netgear WNDA3200 */
{ USB_DEVICE(0x07D1, 0x3A10) }, /* Dlink Wireless 150 */
{ USB_DEVICE(0x13D3, 0x3327) }, /* Azurewave */
{ USB_DEVICE(0x13D3, 0x3328) }, /* Azurewave */
@@ -40,9 +46,13 @@ static struct usb_device_id ath9k_hif_usb_ids[] = {
{ USB_DEVICE(0x13D3, 0x3349) }, /* Azurewave */
{ USB_DEVICE(0x13D3, 0x3350) }, /* Azurewave */
{ USB_DEVICE(0x04CA, 0x4605) }, /* Liteon */
- { USB_DEVICE(0x083A, 0xA704) }, /* SMC Networks */
+ { USB_DEVICE(0x083A, 0xA704),
+ .driver_info = AR7010_DEVICE },
+ /* SMC Networks */
{ USB_DEVICE(0x040D, 0x3801) }, /* VIA */
- { USB_DEVICE(0x1668, 0x1200) }, /* Verizon */
+ { USB_DEVICE(0x1668, 0x1200),
+ .driver_info = AR7010_DEVICE | AR9287_DEVICE },
+ /* Verizon */
{ },
};
--
1.7.3.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/4] ath9k_hw: Fix eeprom offset for AR9287 devices (PCI/USB)
2010-11-19 11:23 [PATCH 1/4] ath: Add a driver_info bitmask field Rajkumar Manoharan
2010-11-19 11:23 ` [PATCH 2/4] ath9k_htc: Add driver_info in usb device list Rajkumar Manoharan
@ 2010-11-19 11:23 ` Rajkumar Manoharan
2010-11-19 11:23 ` [PATCH 4/4] ath9k_htc: Identify devices using driver_info Rajkumar Manoharan
2010-11-22 21:23 ` [PATCH 1/4] ath: Add a driver_info bitmask field Bob Copeland
3 siblings, 0 replies; 7+ messages in thread
From: Rajkumar Manoharan @ 2010-11-19 11:23 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Rajkumar Manoharan
AR9287 devices (PCI/USB) use different eeprom start location
to read nvram. New devices might endup with same devid. So use
driver_info to set offset, instead of devid. driver_info is
valid for HTC devices alone which is filled in usb_device_id.
Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
---
drivers/net/wireless/ath/ath9k/eeprom_9287.c | 6 +++---
drivers/net/wireless/ath/ath9k/reg.h | 4 ----
2 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/eeprom_9287.c b/drivers/net/wireless/ath/ath9k/eeprom_9287.c
index 3ad1de2..353085b 100644
--- a/drivers/net/wireless/ath/ath9k/eeprom_9287.c
+++ b/drivers/net/wireless/ath/ath9k/eeprom_9287.c
@@ -37,10 +37,10 @@ static bool ath9k_hw_ar9287_fill_eeprom(struct ath_hw *ah)
int addr, eep_start_loc;
eep_data = (u16 *)eep;
- if (AR9287_HTC_DEVID(ah))
- eep_start_loc = AR9287_HTC_EEP_START_LOC;
- else
+ if (!common->driver_info)
eep_start_loc = AR9287_EEP_START_LOC;
+ else
+ eep_start_loc = AR9287_HTC_EEP_START_LOC;
if (!ath9k_hw_use_flash(ah)) {
ath_print(common, ATH_DBG_EEPROM,
diff --git a/drivers/net/wireless/ath/ath9k/reg.h b/drivers/net/wireless/ath/ath9k/reg.h
index 443407d..f444a37 100644
--- a/drivers/net/wireless/ath/ath9k/reg.h
+++ b/drivers/net/wireless/ath/ath9k/reg.h
@@ -870,10 +870,6 @@
((_ah)->hw_version.devid == 0xA704) || \
((_ah)->hw_version.devid == 0x1200))
-#define AR9287_HTC_DEVID(_ah) \
- (((_ah)->hw_version.devid == 0x7015) || \
- ((_ah)->hw_version.devid == 0x1200))
-
#define AR_RADIO_SREV_MAJOR 0xf0
#define AR_RAD5133_SREV_MAJOR 0xc0
#define AR_RAD2133_SREV_MAJOR 0xd0
--
1.7.3.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/4] ath9k_htc: Identify devices using driver_info
2010-11-19 11:23 [PATCH 1/4] ath: Add a driver_info bitmask field Rajkumar Manoharan
2010-11-19 11:23 ` [PATCH 2/4] ath9k_htc: Add driver_info in usb device list Rajkumar Manoharan
2010-11-19 11:23 ` [PATCH 3/4] ath9k_hw: Fix eeprom offset for AR9287 devices (PCI/USB) Rajkumar Manoharan
@ 2010-11-19 11:23 ` Rajkumar Manoharan
2010-11-22 21:23 ` [PATCH 1/4] ath: Add a driver_info bitmask field Bob Copeland
3 siblings, 0 replies; 7+ messages in thread
From: Rajkumar Manoharan @ 2010-11-19 11:23 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Rajkumar Manoharan
Categorize AR7010 & AR9287 devices based on driver_info
of usb_device_id, instead of PIDs. This avoids per-device cases
and minimize code changes for new device addition.
Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
---
drivers/net/wireless/ath/ath9k/hif_usb.c | 41 ++++++++----------------
drivers/net/wireless/ath/ath9k/htc.h | 2 +-
drivers/net/wireless/ath/ath9k/htc_drv_init.c | 35 ++++++++++-----------
drivers/net/wireless/ath/ath9k/htc_hst.c | 5 ++-
drivers/net/wireless/ath/ath9k/htc_hst.h | 3 +-
drivers/net/wireless/ath/ath9k/reg.h | 6 +---
6 files changed, 37 insertions(+), 55 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
index 6a0dbd1..ae842db 100644
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -786,7 +786,8 @@ static void ath9k_hif_usb_dealloc_urbs(struct hif_device_usb *hif_dev)
ath9k_hif_usb_dealloc_rx_urbs(hif_dev);
}
-static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev)
+static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev,
+ u32 drv_info)
{
int transfer, err;
const void *data = hif_dev->firmware->data;
@@ -817,18 +818,10 @@ static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev)
}
kfree(buf);
- switch (hif_dev->device_id) {
- case 0x7010:
- case 0x7015:
- case 0x9018:
- case 0xA704:
- case 0x1200:
+ if (drv_info & AR7010_DEVICE)
firm_offset = AR7010_FIRMWARE_TEXT;
- break;
- default:
+ else
firm_offset = AR9271_FIRMWARE_TEXT;
- break;
- }
/*
* Issue FW download complete command to firmware.
@@ -846,7 +839,7 @@ static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev)
return 0;
}
-static int ath9k_hif_usb_dev_init(struct hif_device_usb *hif_dev)
+static int ath9k_hif_usb_dev_init(struct hif_device_usb *hif_dev, u32 drv_info)
{
int ret, idx;
struct usb_host_interface *alt = &hif_dev->interface->altsetting[0];
@@ -862,7 +855,7 @@ static int ath9k_hif_usb_dev_init(struct hif_device_usb *hif_dev)
}
/* Download firmware */
- ret = ath9k_hif_usb_download_fw(hif_dev);
+ ret = ath9k_hif_usb_download_fw(hif_dev, drv_info);
if (ret) {
dev_err(&hif_dev->udev->dev,
"ath9k_htc: Firmware - %s download failed\n",
@@ -941,23 +934,15 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
/* Find out which firmware to load */
- switch(hif_dev->device_id) {
- case 0x7010:
- case 0x7015:
- case 0x9018:
- case 0xA704:
- case 0x1200:
+ if (id->driver_info & AR7010_DEVICE)
if (le16_to_cpu(udev->descriptor.bcdDevice) == 0x0202)
hif_dev->fw_name = FIRMWARE_AR7010_1_1;
else
hif_dev->fw_name = FIRMWARE_AR7010;
- break;
- default:
+ else
hif_dev->fw_name = FIRMWARE_AR9271;
- break;
- }
- ret = ath9k_hif_usb_dev_init(hif_dev);
+ ret = ath9k_hif_usb_dev_init(hif_dev, id->driver_info);
if (ret) {
ret = -EINVAL;
goto err_hif_init_usb;
@@ -965,7 +950,7 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
ret = ath9k_htc_hw_init(hif_dev->htc_handle,
&hif_dev->udev->dev, hif_dev->device_id,
- hif_dev->udev->product);
+ hif_dev->udev->product, id->driver_info);
if (ret) {
ret = -EINVAL;
goto err_htc_hw_init;
@@ -1043,6 +1028,7 @@ static int ath9k_hif_usb_resume(struct usb_interface *interface)
{
struct hif_device_usb *hif_dev =
(struct hif_device_usb *) usb_get_intfdata(interface);
+ struct htc_target *htc_handle = hif_dev->htc_handle;
int ret;
ret = ath9k_hif_usb_alloc_urbs(hif_dev);
@@ -1050,7 +1036,8 @@ static int ath9k_hif_usb_resume(struct usb_interface *interface)
return ret;
if (hif_dev->firmware) {
- ret = ath9k_hif_usb_download_fw(hif_dev);
+ ret = ath9k_hif_usb_download_fw(hif_dev,
+ htc_handle->drv_priv->ah->common.driver_info);
if (ret)
goto fail_resume;
} else {
@@ -1060,7 +1047,7 @@ static int ath9k_hif_usb_resume(struct usb_interface *interface)
mdelay(100);
- ret = ath9k_htc_resume(hif_dev->htc_handle);
+ ret = ath9k_htc_resume(htc_handle);
if (ret)
goto fail_resume;
diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h
index db00289..afe39a9 100644
--- a/drivers/net/wireless/ath/ath9k/htc.h
+++ b/drivers/net/wireless/ath/ath9k/htc.h
@@ -461,7 +461,7 @@ void ath9k_init_leds(struct ath9k_htc_priv *priv);
void ath9k_deinit_leds(struct ath9k_htc_priv *priv);
int ath9k_htc_probe_device(struct htc_target *htc_handle, struct device *dev,
- u16 devid, char *product);
+ u16 devid, char *product, u32 drv_info);
void ath9k_htc_disconnect_device(struct htc_target *htc_handle, bool hotunplug);
#ifdef CONFIG_PM
int ath9k_htc_resume(struct htc_target *htc_handle);
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
index 7c8a38d..8e6a9a8 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
@@ -181,7 +181,8 @@ static inline int ath9k_htc_connect_svc(struct ath9k_htc_priv *priv,
return htc_connect_service(priv->htc, &req, ep_id);
}
-static int ath9k_init_htc_services(struct ath9k_htc_priv *priv, u16 devid)
+static int ath9k_init_htc_services(struct ath9k_htc_priv *priv, u16 devid,
+ u32 drv_info)
{
int ret;
@@ -245,17 +246,10 @@ static int ath9k_init_htc_services(struct ath9k_htc_priv *priv, u16 devid)
* the HIF layer, shouldn't matter much.
*/
- switch(devid) {
- case 0x7010:
- case 0x7015:
- case 0x9018:
- case 0xA704:
- case 0x1200:
+ if (drv_info & AR7010_DEVICE)
priv->htc->credits = 45;
- break;
- default:
+ else
priv->htc->credits = 33;
- }
ret = htc_init(priv->htc);
if (ret)
@@ -627,7 +621,8 @@ static void ath9k_init_btcoex(struct ath9k_htc_priv *priv)
}
static int ath9k_init_priv(struct ath9k_htc_priv *priv,
- u16 devid, char *product)
+ u16 devid, char *product,
+ u32 drv_info)
{
struct ath_hw *ah = NULL;
struct ath_common *common;
@@ -650,6 +645,7 @@ static int ath9k_init_priv(struct ath9k_htc_priv *priv,
common->hw = priv->hw;
common->priv = priv;
common->debug_mask = ath9k_debug;
+ common->driver_info = drv_info;
spin_lock_init(&priv->wmi->wmi_lock);
spin_lock_init(&priv->beacon_lock);
@@ -762,7 +758,7 @@ static void ath9k_set_hw_capab(struct ath9k_htc_priv *priv,
}
static int ath9k_init_device(struct ath9k_htc_priv *priv,
- u16 devid, char *product)
+ u16 devid, char *product, u32 drv_info)
{
struct ieee80211_hw *hw = priv->hw;
struct ath_common *common;
@@ -771,7 +767,7 @@ static int ath9k_init_device(struct ath9k_htc_priv *priv,
struct ath_regulatory *reg;
/* Bring up device */
- error = ath9k_init_priv(priv, devid, product);
+ error = ath9k_init_priv(priv, devid, product, drv_info);
if (error != 0)
goto err_init;
@@ -829,7 +825,7 @@ err_init:
}
int ath9k_htc_probe_device(struct htc_target *htc_handle, struct device *dev,
- u16 devid, char *product)
+ u16 devid, char *product, u32 drv_info)
{
struct ieee80211_hw *hw;
struct ath9k_htc_priv *priv;
@@ -856,14 +852,14 @@ int ath9k_htc_probe_device(struct htc_target *htc_handle, struct device *dev,
goto err_free;
}
- ret = ath9k_init_htc_services(priv, devid);
+ ret = ath9k_init_htc_services(priv, devid, drv_info);
if (ret)
goto err_init;
/* The device may have been unplugged earlier. */
priv->op_flags &= ~OP_UNPLUGGED;
- ret = ath9k_init_device(priv, devid, product);
+ ret = ath9k_init_device(priv, devid, product, drv_info);
if (ret)
goto err_init;
@@ -893,14 +889,15 @@ void ath9k_htc_disconnect_device(struct htc_target *htc_handle, bool hotunplug)
#ifdef CONFIG_PM
int ath9k_htc_resume(struct htc_target *htc_handle)
{
+ struct ath9k_htc_priv *priv = htc_handle->drv_priv;
int ret;
- ret = ath9k_htc_wait_for_target(htc_handle->drv_priv);
+ ret = ath9k_htc_wait_for_target(priv);
if (ret)
return ret;
- ret = ath9k_init_htc_services(htc_handle->drv_priv,
- htc_handle->drv_priv->ah->hw_version.devid);
+ ret = ath9k_init_htc_services(priv, priv->ah->hw_version.devid,
+ priv->ah->common.driver_info);
return ret;
}
#endif
diff --git a/drivers/net/wireless/ath/ath9k/htc_hst.c b/drivers/net/wireless/ath/ath9k/htc_hst.c
index 861ec92..c41ab8c 100644
--- a/drivers/net/wireless/ath/ath9k/htc_hst.c
+++ b/drivers/net/wireless/ath/ath9k/htc_hst.c
@@ -462,9 +462,10 @@ void ath9k_htc_hw_free(struct htc_target *htc)
}
int ath9k_htc_hw_init(struct htc_target *target,
- struct device *dev, u16 devid, char *product)
+ struct device *dev, u16 devid,
+ char *product, u32 drv_info)
{
- if (ath9k_htc_probe_device(target, dev, devid, product)) {
+ if (ath9k_htc_probe_device(target, dev, devid, product, drv_info)) {
printk(KERN_ERR "Failed to initialize the device\n");
return -ENODEV;
}
diff --git a/drivers/net/wireless/ath/ath9k/htc_hst.h b/drivers/net/wireless/ath/ath9k/htc_hst.h
index 07b6509..6fc1b21 100644
--- a/drivers/net/wireless/ath/ath9k/htc_hst.h
+++ b/drivers/net/wireless/ath/ath9k/htc_hst.h
@@ -239,7 +239,8 @@ struct htc_target *ath9k_htc_hw_alloc(void *hif_handle,
struct device *dev);
void ath9k_htc_hw_free(struct htc_target *htc);
int ath9k_htc_hw_init(struct htc_target *target,
- struct device *dev, u16 devid, char *product);
+ struct device *dev, u16 devid, char *product,
+ u32 drv_info);
void ath9k_htc_hw_deinit(struct htc_target *target, bool hot_unplug);
#endif /* HTC_HST_H */
diff --git a/drivers/net/wireless/ath/ath9k/reg.h b/drivers/net/wireless/ath/ath9k/reg.h
index f444a37..556e2ca 100644
--- a/drivers/net/wireless/ath/ath9k/reg.h
+++ b/drivers/net/wireless/ath/ath9k/reg.h
@@ -864,11 +864,7 @@
((REG_READ(_ah, AR_AN_SYNTH9) & 0x7) == 0x1))
#define AR_DEVID_7010(_ah) \
- (((_ah)->hw_version.devid == 0x7010) || \
- ((_ah)->hw_version.devid == 0x7015) || \
- ((_ah)->hw_version.devid == 0x9018) || \
- ((_ah)->hw_version.devid == 0xA704) || \
- ((_ah)->hw_version.devid == 0x1200))
+ ((_ah)->common.driver_info & AR7010_DEVICE)
#define AR_RADIO_SREV_MAJOR 0xf0
#define AR_RAD5133_SREV_MAJOR 0xc0
--
1.7.3.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/4] ath: Add a driver_info bitmask field
2010-11-19 11:23 [PATCH 1/4] ath: Add a driver_info bitmask field Rajkumar Manoharan
` (2 preceding siblings ...)
2010-11-19 11:23 ` [PATCH 4/4] ath9k_htc: Identify devices using driver_info Rajkumar Manoharan
@ 2010-11-22 21:23 ` Bob Copeland
2010-11-22 21:33 ` Christian Lamparter
2010-11-23 5:35 ` Rajkumar Manoharan
3 siblings, 2 replies; 7+ messages in thread
From: Bob Copeland @ 2010-11-22 21:23 UTC (permalink / raw)
To: Rajkumar Manoharan; +Cc: linville, linux-wireless
On Fri, Nov 19, 2010 at 6:23 AM, Rajkumar Manoharan
<rmanoharan@atheros.com> wrote:
> The driver_info stores the device category information which
> is used to load appropriate device firmware, select firmware offset
> and eeprom starting location. The driver_info is accessed across
> ath9k_htc and ath9k_hw. Hence placed under common structure.
> /**
> * struct ath_ops - Register read/write operations
> *
> @@ -147,6 +152,7 @@ struct ath_common {
> u8 rx_chainmask;
>
> u32 rx_bufsize;
> + u32 driver_info;
u32 for 2 bits?
--
Bob Copeland %% www.bobcopeland.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/4] ath: Add a driver_info bitmask field
2010-11-22 21:23 ` [PATCH 1/4] ath: Add a driver_info bitmask field Bob Copeland
@ 2010-11-22 21:33 ` Christian Lamparter
2010-11-23 5:35 ` Rajkumar Manoharan
1 sibling, 0 replies; 7+ messages in thread
From: Christian Lamparter @ 2010-11-22 21:33 UTC (permalink / raw)
To: Bob Copeland; +Cc: Rajkumar Manoharan, linville, linux-wireless
On Monday 22 November 2010 22:23:36 Bob Copeland wrote:
> On Fri, Nov 19, 2010 at 6:23 AM, Rajkumar Manoharan
> <rmanoharan@atheros.com> wrote:
> > The driver_info stores the device category information which
> > is used to load appropriate device firmware, select firmware offset
> > and eeprom starting location. The driver_info is accessed across
> > ath9k_htc and ath9k_hw. Hence placed under common structure.
>
> > /**
> > * struct ath_ops - Register read/write operations
> > *
> > @@ -147,6 +152,7 @@ struct ath_common {
> > u8 rx_chainmask;
> >
> > u32 rx_bufsize;
> > + u32 driver_info;
>
>
> u32 for 2 bits?
well, if you take in account that mod_devicetable.h specifies
driver_info to be kernel_ulong_t... (to store pointers of course)
I would say we need "even" more.
Best regards,
Chr
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/4] ath: Add a driver_info bitmask field
2010-11-22 21:23 ` [PATCH 1/4] ath: Add a driver_info bitmask field Bob Copeland
2010-11-22 21:33 ` Christian Lamparter
@ 2010-11-23 5:35 ` Rajkumar Manoharan
1 sibling, 0 replies; 7+ messages in thread
From: Rajkumar Manoharan @ 2010-11-23 5:35 UTC (permalink / raw)
To: Bob Copeland; +Cc: Rajkumar Manoharan, linville, linux-wireless
On Tue, Nov 23, 2010 at 02:53:36AM +0530, Bob Copeland wrote:
> On Fri, Nov 19, 2010 at 6:23 AM, Rajkumar Manoharan
> <rmanoharan@atheros.com> wrote:
> > The driver_info stores the device category information which
> > is used to load appropriate device firmware, select firmware offset
> > and eeprom starting location. The driver_info is accessed across
> > ath9k_htc and ath9k_hw. Hence placed under common structure.
>
> > /**
> > * struct ath_ops - Register read/write operations
> > *
> > @@ -147,6 +152,7 @@ struct ath_common {
> > u8 rx_chainmask;
> >
> > u32 rx_bufsize;
> > + u32 driver_info;
>
>
> u32 for 2 bits?
Just to avoid a hole in 4-byte packing. Nothing spl.
--
Rajkumar
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2010-11-23 5:27 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-19 11:23 [PATCH 1/4] ath: Add a driver_info bitmask field Rajkumar Manoharan
2010-11-19 11:23 ` [PATCH 2/4] ath9k_htc: Add driver_info in usb device list Rajkumar Manoharan
2010-11-19 11:23 ` [PATCH 3/4] ath9k_hw: Fix eeprom offset for AR9287 devices (PCI/USB) Rajkumar Manoharan
2010-11-19 11:23 ` [PATCH 4/4] ath9k_htc: Identify devices using driver_info Rajkumar Manoharan
2010-11-22 21:23 ` [PATCH 1/4] ath: Add a driver_info bitmask field Bob Copeland
2010-11-22 21:33 ` Christian Lamparter
2010-11-23 5:35 ` Rajkumar Manoharan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.