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 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.