From: Dan Williams <dcbw@redhat.com>
To: Holger Schurig <hs4233@mail.mn-solutions.de>
Cc: libertas-dev@lists.infradead.org, linux-wireless@vger.kernel.org,
"John W. Linville" <linville@tuxdriver.com>
Subject: Re: [PATCH, take 2] libertas: convert GET_LOG to a direct command
Date: Mon, 17 Mar 2008 17:32:54 -0400 [thread overview]
Message-ID: <1205789574.9583.13.camel@localhost.localdomain> (raw)
In-Reply-To: <200803171245.58490.hs4233@mail.mn-solutions.de>
On Mon, 2008-03-17 at 12:45 +0100, Holger Schurig wrote:
> [PATCH] libertas: convert GET_LOG to a direct command
>
> Now uses __lbs_cmd() to get the "log" (it's actually more a snapshot of
> various counters, not a sequential log). Besides the "mechanical" convertion
> the patch add the following logical changes:
>
> * Removes the priv->logmsg variable, it was only used in one place anyway,
> also don't blindly get the counters when associating. Getting the
> counters then the user asks via WEXT for them is good enought.
> * don't set wstats.discard.fragment with log.rxfrag, because the latter is
> a counter for successfully received packets, not for fragmented packets.
>
> Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
> Index: wireless-testing/drivers/net/wireless/libertas/wext.c
> ===================================================================
> --- wireless-testing.orig/drivers/net/wireless/libertas/wext.c 2008-03-17 11:21:02.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/libertas/wext.c 2008-03-17 11:38:04.000000000 +0100
> @@ -820,6 +821,7 @@ static struct iw_statistics *lbs_get_wir
> int stats_valid = 0;
> u8 rssi;
> u32 tx_retries;
> + struct cmd_ds_802_11_get_log log;
>
> lbs_deb_enter(LBS_DEB_WEXT);
>
> @@ -863,7 +865,11 @@ static struct iw_statistics *lbs_get_wir
> /* Quality by TX errors */
> priv->wstats.discard.retries = priv->stats.tx_errors;
>
> - tx_retries = le32_to_cpu(priv->logmsg.retry);
> + memset(&log, 0, sizeof(log));
> + log.hdr.size = cpu_to_le16(sizeof(log));
> + lbs_cmd_with_response(priv, CMD_802_11_GET_LOG, &log);
> +
> + tx_retries = le32_to_cpu(log.retry);
>
> if (tx_retries > 75)
> tx_qual = (90 - tx_retries) * POOR / 15;
> @@ -879,10 +885,9 @@ static struct iw_statistics *lbs_get_wir
> (PERFECT - VERY_GOOD) / 50 + VERY_GOOD;
> quality = min(quality, tx_qual);
>
> - priv->wstats.discard.code = le32_to_cpu(priv->logmsg.wepundecryptable);
> - priv->wstats.discard.fragment = le32_to_cpu(priv->logmsg.rxfrag);
> + priv->wstats.discard.code = le32_to_cpu(log.wepundecryptable);
> priv->wstats.discard.retries = tx_retries;
> - priv->wstats.discard.misc = le32_to_cpu(priv->logmsg.ackfailure);
> + priv->wstats.discard.misc = le32_to_cpu(log.ackfailure);
>
> /* Calculate quality */
> priv->wstats.qual.qual = min_t(u8, quality, 100);
> @@ -892,8 +897,6 @@ static struct iw_statistics *lbs_get_wir
> /* update stats asynchronously for future calls */
> lbs_prepare_and_send_command(priv, CMD_802_11_RSSI, 0,
> 0, 0, NULL);
> - lbs_prepare_and_send_command(priv, CMD_802_11_GET_LOG, 0,
> - 0, 0, NULL);
> out:
> if (!stats_valid) {
> priv->wstats.miss.beacon = 0;
> Index: wireless-testing/drivers/net/wireless/libertas/assoc.c
> ===================================================================
> --- wireless-testing.orig/drivers/net/wireless/libertas/assoc.c 2008-03-17 11:21:02.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/libertas/assoc.c 2008-03-17 11:21:29.000000000 +0100
> @@ -628,10 +628,6 @@ void lbs_association_worker(struct work_
> lbs_prepare_and_send_command(priv,
> CMD_802_11_RSSI,
> 0, CMD_OPTION_WAITFORRSP, 0, NULL);
> -
> - lbs_prepare_and_send_command(priv,
> - CMD_802_11_GET_LOG,
> - 0, CMD_OPTION_WAITFORRSP, 0, NULL);
> } else {
> ret = -1;
> }
> Index: wireless-testing/drivers/net/wireless/libertas/cmd.c
> ===================================================================
> --- wireless-testing.orig/drivers/net/wireless/libertas/cmd.c 2008-03-17 11:21:02.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/libertas/cmd.c 2008-03-17 11:22:06.000000000 +0100
> @@ -454,18 +454,6 @@ static int lbs_cmd_802_11_reset(struct l
> return 0;
> }
>
> -static int lbs_cmd_802_11_get_log(struct lbs_private *priv,
> - struct cmd_ds_command *cmd)
> -{
> - lbs_deb_enter(LBS_DEB_CMD);
> - cmd->command = cpu_to_le16(CMD_802_11_GET_LOG);
> - cmd->size =
> - cpu_to_le16(sizeof(struct cmd_ds_802_11_get_log) + S_DS_GEN);
> -
> - lbs_deb_leave(LBS_DEB_CMD);
> - return 0;
> -}
> -
> static int lbs_cmd_802_11_get_stat(struct lbs_private *priv,
> struct cmd_ds_command *cmd)
> {
> @@ -1384,10 +1372,6 @@ int lbs_prepare_and_send_command(struct
> ret = lbs_cmd_802_11_reset(priv, cmdptr, cmd_action);
> break;
>
> - case CMD_802_11_GET_LOG:
> - ret = lbs_cmd_802_11_get_log(priv, cmdptr);
> - break;
> -
> case CMD_802_11_AUTHENTICATE:
> ret = lbs_cmd_80211_authenticate(priv, cmdptr, pdata_buf);
> break;
> Index: wireless-testing/drivers/net/wireless/libertas/cmdresp.c
> ===================================================================
> --- wireless-testing.orig/drivers/net/wireless/libertas/cmdresp.c 2008-03-17 11:21:02.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/libertas/cmdresp.c 2008-03-17 11:21:29.000000000 +0100
> @@ -303,20 +303,6 @@ static int lbs_ret_802_11_eeprom_access(
> return 0;
> }
>
> -static int lbs_ret_get_log(struct lbs_private *priv,
> - struct cmd_ds_command *resp)
> -{
> - struct cmd_ds_802_11_get_log *logmessage = &resp->params.glog;
> -
> - lbs_deb_enter(LBS_DEB_CMD);
> -
> - /* Stored little-endian */
> - memcpy(&priv->logmsg, logmessage, sizeof(struct cmd_ds_802_11_get_log));
> -
> - lbs_deb_leave(LBS_DEB_CMD);
> - return 0;
> -}
> -
> static int lbs_ret_802_11_bcn_ctrl(struct lbs_private * priv,
> struct cmd_ds_command *resp)
> {
> @@ -352,10 +338,6 @@ static inline int handle_cmd_response(st
> ret = lbs_ret_reg_access(priv, respcmd, resp);
> break;
>
> - case CMD_RET(CMD_802_11_GET_LOG):
> - ret = lbs_ret_get_log(priv, resp);
> - break;
> -
> case CMD_RET_802_11_ASSOCIATE:
> case CMD_RET(CMD_802_11_ASSOCIATE):
> case CMD_RET(CMD_802_11_REASSOCIATE):
> Index: wireless-testing/drivers/net/wireless/libertas/dev.h
> ===================================================================
> --- wireless-testing.orig/drivers/net/wireless/libertas/dev.h 2008-03-17 11:21:02.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/libertas/dev.h 2008-03-17 11:21:29.000000000 +0100
> @@ -323,8 +323,6 @@ struct lbs_private {
> u8 *prdeeprom;
> struct lbs_offset_value offsetvalue;
>
> - struct cmd_ds_802_11_get_log logmsg;
> -
> u32 monitormode;
> u8 fw_ready;
> };
> Index: wireless-testing/drivers/net/wireless/libertas/hostcmd.h
> ===================================================================
> --- wireless-testing.orig/drivers/net/wireless/libertas/hostcmd.h 2008-03-17 11:21:02.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/libertas/hostcmd.h 2008-03-17 11:21:29.000000000 +0100
> @@ -195,6 +195,8 @@ struct cmd_ds_802_11_scan_rsp {
> };
>
> struct cmd_ds_802_11_get_log {
> + struct cmd_header hdr;
> +
> __le32 mcasttxframe;
> __le32 failed;
> __le32 retry;
> @@ -701,7 +703,6 @@ struct cmd_ds_command {
> struct cmd_ds_802_11_ad_hoc_start ads;
> struct cmd_ds_802_11_reset reset;
> struct cmd_ds_802_11_ad_hoc_result result;
> - struct cmd_ds_802_11_get_log glog;
> struct cmd_ds_802_11_authenticate auth;
> struct cmd_ds_802_11_get_stat gstat;
> struct cmd_ds_802_3_get_stat gstat_8023;
>
prev parent reply other threads:[~2008-03-17 21:38 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-13 9:10 [PATCH, take 2] libertas: convert GET_LOG to a direct command Holger Schurig
2008-03-13 14:37 ` Dan Williams
2008-03-13 15:04 ` Holger Schurig
2008-03-13 15:23 ` Dan Williams
2008-03-17 11:45 ` Holger Schurig
2008-03-17 21:32 ` Dan Williams [this message]
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=1205789574.9583.13.camel@localhost.localdomain \
--to=dcbw@redhat.com \
--cc=hs4233@mail.mn-solutions.de \
--cc=libertas-dev@lists.infradead.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
/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