From: Pavel Roskin <proski@gnu.org>
To: linux-wireless@vger.kernel.org
Subject: [PATCH 10/35] Add minimal support to 505AMX
Date: Sat, 01 Sep 2007 00:35:11 -0400 [thread overview]
Message-ID: <20070901043511.2498.30700.stgit@dv.roinet.com> (raw)
In-Reply-To: <20070901043233.2498.95850.stgit@dv.roinet.com>
Use inline functions for board classification. Drop "_2958" from
BOARD_505A_2958, it's implied.
Signed-off-by: Pavel Roskin <proski@gnu.org>
---
drivers/net/wireless/at76_usb.c | 65 +++++++++++++++++++--------------------
drivers/net/wireless/at76_usb.h | 2 +
2 files changed, 32 insertions(+), 35 deletions(-)
diff --git a/drivers/net/wireless/at76_usb.c b/drivers/net/wireless/at76_usb.c
index 41f28dc..206fa90 100644
--- a/drivers/net/wireless/at76_usb.c
+++ b/drivers/net/wireless/at76_usb.c
@@ -56,7 +56,7 @@ static struct fwentry firmwares[] = {
[BOARD_503_ACC] = {"atmel_at76c503-rfmd-acc.bin"},
[BOARD_505] = {"atmel_at76c505-rfmd.bin"},
[BOARD_505_2958] = {"atmel_at76c505-rfmd2958.bin"},
- [BOARD_505A_2958] = {"atmel_at76c505a-rfmd2958.bin"},
+ [BOARD_505A] = {"atmel_at76c505a-rfmd2958.bin"},
[BOARD_505AMX] = {"atmel_at76c505amx-rfmd.bin"},
};
@@ -171,11 +171,11 @@ static struct usb_device_id dev_table[] = {
* at76c505a-rfmd2958
*/
/* Generic AT76C505A device */
- {USB_DEVICE(VID_ATMEL, 0x7614), .driver_info = BOARD_505A_2958},
+ {USB_DEVICE(VID_ATMEL, 0x7614), .driver_info = BOARD_505A},
/* Generic AT76C505AS device */
- {USB_DEVICE(VID_ATMEL, 0x7617), .driver_info = BOARD_505A_2958},
+ {USB_DEVICE(VID_ATMEL, 0x7617), .driver_info = BOARD_505A},
/* Siemens Gigaset USB WLAN Adapter 11 */
- {USB_DEVICE(VID_GIGASET, 0x0701), .driver_info = BOARD_505A_2958},
+ {USB_DEVICE(VID_GIGASET, 0x0701), .driver_info = BOARD_505A},
/*
* at76c505amx-rfmd
*/
@@ -241,6 +241,21 @@ struct dfu_status {
unsigned char string;
} __attribute__((packed));
+static inline int at76_is_intersil(enum board_type board)
+{
+ return (board == BOARD_503_ISL3861 || board == BOARD_503_ISL3863);
+}
+
+static inline int at76_is_503rfmd(enum board_type board)
+{
+ return (board == BOARD_503 || board == BOARD_503_ACC);
+}
+
+static inline int at76_is_505a(enum board_type board)
+{
+ return (board == BOARD_505A || board == BOARD_505AMX);
+}
+
/* Load a block of the first (internal) part of the firmware */
static int at76_load_int_fw_block(struct usb_device *udev, int blockno,
void *block, int size)
@@ -618,45 +633,29 @@ static int at76_get_hw_config(struct at76_priv *priv)
if (!hwcfg)
return -ENOMEM;
- switch (priv->board_type) {
-
- case BOARD_503_ISL3861:
- case BOARD_503_ISL3863:
+ if (at76_is_intersil(priv->board_type)) {
ret = at76_get_hw_cfg_intersil(priv->udev, hwcfg,
sizeof(hwcfg->i));
if (ret < 0)
- break;
+ goto exit;
memcpy(priv->mac_addr, hwcfg->i.mac_addr, ETH_ALEN);
priv->regulatory_domain = hwcfg->i.regulatory_domain;
- break;
-
- case BOARD_503:
- case BOARD_503_ACC:
+ } else if (at76_is_503rfmd(priv->board_type)) {
ret = at76_get_hw_cfg(priv->udev, hwcfg, sizeof(hwcfg->r3));
if (ret < 0)
- break;
+ goto exit;
memcpy(priv->mac_addr, hwcfg->r3.mac_addr, ETH_ALEN);
priv->regulatory_domain = hwcfg->r3.regulatory_domain;
- break;
-
- case BOARD_505:
- case BOARD_505_2958:
- case BOARD_505A_2958:
+ } else {
ret = at76_get_hw_cfg(priv->udev, hwcfg, sizeof(hwcfg->r5));
if (ret < 0)
- break;
+ goto exit;
memcpy(priv->mac_addr, hwcfg->r5.mac_addr, ETH_ALEN);
priv->regulatory_domain = hwcfg->r5.regulatory_domain;
- break;
-
- default:
- err("Bad board type set (%d). Unable to get hardware config.",
- priv->board_type);
- ret = -EINVAL;
}
+exit:
kfree(hwcfg);
-
if (ret < 0)
err("Get HW Config failed (%d)", ret);
@@ -2445,8 +2444,7 @@ static int at76_iw_handler_get_scan(struct net_device *netdev,
iwe->u.qual.level = (curr_bss->rssi * 100 / 42);
if (iwe->u.qual.level > 100)
iwe->u.qual.level = 100;
- if ((priv->board_type == BOARD_503_ISL3861) ||
- (priv->board_type == BOARD_503_ISL3863))
+ if (at76_is_intersil(priv->board_type))
iwe->u.qual.qual = curr_bss->link_qual;
else {
iwe->u.qual.qual = 0;
@@ -3596,8 +3594,8 @@ static int at76_load_external_fw(struct usb_device *udev, struct fwentry *fwe)
blockno++;
} while (bsize > 0);
- if (fwe->board_type == BOARD_505A_2958) {
- at76_dbg(DBG_DEVSTART, "200 ms delay for board type 7");
+ if (at76_is_505a(fwe->board_type)) {
+ at76_dbg(DBG_DEVSTART, "200 ms delay for 505a");
schedule_timeout_interruptible(HZ / 5 + 1);
}
@@ -3612,7 +3610,7 @@ exit:
static int at76_load_internal_fw(struct usb_device *udev, struct fwentry *fwe)
{
int ret;
- int need_remap = (fwe->board_type != BOARD_505A_2958);
+ int need_remap = !at76_is_505a(fwe->board_type);
ret = at76_usbdfu_download(udev, fwe->intfw, fwe->intfw_size,
need_remap ? 0 : 2000);
@@ -4688,8 +4686,7 @@ static void at76_calc_level(struct at76_priv *priv, struct at76_rx_buffer *buf,
static void at76_calc_qual(struct at76_priv *priv, struct at76_rx_buffer *buf,
struct iw_quality *qual)
{
- if ((priv->board_type == BOARD_503_ISL3861) ||
- (priv->board_type == BOARD_503_ISL3863))
+ if (at76_is_intersil(priv->board_type))
qual->qual = buf->link_quality;
else {
unsigned long msec;
diff --git a/drivers/net/wireless/at76_usb.h b/drivers/net/wireless/at76_usb.h
index 71b7c22..fbae175 100644
--- a/drivers/net/wireless/at76_usb.h
+++ b/drivers/net/wireless/at76_usb.h
@@ -70,7 +70,7 @@ enum board_type {
BOARD_503_ACC = 4,
BOARD_505 = 5,
BOARD_505_2958 = 6,
- BOARD_505A_2958 = 7,
+ BOARD_505A = 7,
BOARD_505AMX = 8
};
next prev parent reply other threads:[~2007-09-01 4:35 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-01 4:34 [PATCH 00/35] Update at76_usb to the start of mac80211 port Pavel Roskin
2007-09-01 4:34 ` [PATCH 01/35] Protect at76_get_op_mode() and at76_get_mib() against short reads Pavel Roskin
2007-09-01 4:34 ` [PATCH 02/35] Use existing macros to find bulk in and bulk out endpoints Pavel Roskin
2007-09-01 4:34 ` [PATCH 03/35] Rewrite at76_alloc_urbs() in a more linear fashion Pavel Roskin
2007-09-01 4:34 ` [PATCH 04/35] Avoid overuse of NULL Pavel Roskin
2007-09-01 4:34 ` [PATCH 05/35] Add myself to the author list Pavel Roskin
2007-09-01 4:34 ` [PATCH 06/35] Move (de)initialization functions closer to the end of file Pavel Roskin
2007-09-01 4:34 ` [PATCH 07/35] Don't use shift on numeric constants in usb_control_msg() arguments Pavel Roskin
2007-09-01 4:35 ` [PATCH 08/35] Merge at76_download_external_fw() into at76_load_external_fw() Pavel Roskin
2007-09-01 4:35 ` [PATCH 09/35] Simplify at76_usbdfu_download() Pavel Roskin
2007-09-01 4:35 ` Pavel Roskin [this message]
2007-09-01 4:35 ` [PATCH 11/35] Simplify logic in at76_get_reg_domain() Pavel Roskin
2007-09-01 4:35 ` [PATCH 12/35] Fix hex2str() and mac2str() to avoid buffer overlap Pavel Roskin
2007-09-01 4:35 ` [PATCH 13/35] Rename some long functions and fields Pavel Roskin
2007-09-01 4:35 ` [PATCH 14/35] Fix incorrect queue management in at76_tx_mgmt() Pavel Roskin
2007-09-01 4:35 ` [PATCH 15/35] Introduce at76_quiesce(), use it to stop network activity Pavel Roskin
2007-09-01 4:35 ` [PATCH 16/35] Don't disable and enable tasklets, it doesn't work as expected Pavel Roskin
2007-09-01 4:35 ` [PATCH 17/35] Start beacon timeout task when connected Pavel Roskin
2007-09-01 4:35 ` [PATCH 18/35] Only cancel correct timeouts for Auth and Assoc replies Pavel Roskin
2007-09-01 9:17 ` Johannes Berg
2007-09-01 10:54 ` Pavel Roskin
2007-09-01 11:04 ` Johannes Berg
2007-09-01 13:16 ` John W. Linville
2007-09-01 20:09 ` Pavel Roskin
2007-09-01 4:36 ` [PATCH 19/35] Improve output of the regdomain id Pavel Roskin
2007-09-01 4:36 ` [PATCH 20/35] Protect at76_iw_handler_set_scan() with mutex Pavel Roskin
2007-09-01 4:36 ` [PATCH 21/35] Eliminate vendor IDs Pavel Roskin
2007-09-01 4:36 ` [PATCH 22/35] Only retry resubmitting rx_urb once Pavel Roskin
2007-09-01 4:36 ` [PATCH 23/35] Simplify at76_get_mib_mdomain() Pavel Roskin
2007-09-01 4:36 ` [PATCH 24/35] Do implicit scanning only with current ESSID Pavel Roskin
2007-09-01 4:36 ` [PATCH 25/35] Don't dump mib_mdomain while scanning, it's done on device startup Pavel Roskin
2007-09-01 4:36 ` [PATCH 26/35] Improve dump of MAC_ADDR Pavel Roskin
2007-09-01 4:36 ` [PATCH 27/35] Remove unneeded braces, found by checkpatch.pl Pavel Roskin
2007-09-01 4:36 ` [PATCH 28/35] Convert dbg() to at76_dbg() or remove it Pavel Roskin
2007-09-01 4:37 ` [PATCH 29/35] Eliminate at76_dbg_dumpbuf() in favor of hex2str() Pavel Roskin
2007-09-01 4:37 ` [PATCH 30/35] Eliminate pr_debug() in favor of at76_dbg() Pavel Roskin
2007-09-01 4:37 ` [PATCH 31/35] Simplify logic in at76_is_hidden_ssid() Pavel Roskin
2007-09-01 4:37 ` [PATCH 32/35] Massive cleanup of dump functions Pavel Roskin
2007-09-01 4:37 ` [PATCH 33/35] Remove international roaming support Pavel Roskin
2007-09-01 4:37 ` [PATCH 34/35] Don't do additional MIB dumps if DEBUG is defined Pavel Roskin
2007-09-01 4:37 ` [PATCH 35/35] Replace scan_runs with scan_need_any Pavel Roskin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070901043511.2498.30700.stgit@dv.roinet.com \
--to=proski@gnu.org \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).