Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1628890

[PATCH] staging: rtl8192u: Improve readability and fix sparse warnings: cast from restricted __le16

Path csiph.com!aioe.org!bofh.it!news.nic.it!robomod
From Tuomo Rinne <tuomo.rinne@gmail.com>
Newsgroups linux.kernel
Subject [PATCH] staging: rtl8192u: Improve readability and fix sparse warnings: cast from restricted __le16
Date Sun, 23 Apr 2017 01:00:01 +0200
Message-ID <tzcat-ib-1@gated-at.bofh.it> (permalink)
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=GOB45cpHaO82zrzhrn8WS4yFYZDZ2wXQ1O26sUVyiEc=; b=QeNmlhm2RogahJobHeA/wVfZ94Edq+Ex+/owUKmxdKoWR4puSUKYjmG+LMK6d11lP7 SteA4W5mGh4mV/OFD6PFQD9AJpmv4mD8KrrdVhnoC6j1mBphs7O/bRTkoBcW0Abqgvpe dx2ShbCxIiIzlTeUUvWpy3trV99uCsa3RpgXflAyp/soI10OE3yJaQA3iY34rYXcy6cm Ox+6RgfLV1OfGPx8E8oAiw2VqgIn31dLoYxqtdORS2N4u08zOttZl7RrujJmxz1nTf9T J5K3rwTMr9SD6CsUO7QK85m6jGcoPCGdpDoSHmR/AmosWJ85bgQBJvUAYBYD0ZJJjCsv CELg==
X-Google-Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=GOB45cpHaO82zrzhrn8WS4yFYZDZ2wXQ1O26sUVyiEc=; b=fIvja5RROZyxtDRM2EHYclp5/resBvDiyqvsIXMvAVYUW7T5U/1sp3M2Q5Q4dUmIot tvdjq1Rov15+bsdt0bIAIccz8BL1xz2tcKgzqDDfx9gsK2epoNjXGsFYk4mHXdkKRfQ1 6+PO0Zo/Att85uWUOYBfwfJhewHj6Zk8vhCUWOSmCj2biJPGGX40ZA7crI8DaFknGiZo EkIbH3VKOPzAbLwBG+G5UVLlMuQzlknuUzILVZvY0c/An9GNIbc6Q/n178KtjbLVOIf8 XBKUmPgZcG5pIN/Y6Zv2rKctdmStSRm36uOO47S2Wc44uini/bKMSJpwpltv4TLw3195 Lg4g==
X-Gm-Message-State AN3rC/4+l+uXf5a6UKLjq4YU6o8ftrIVsYUN3XzEzXNbMpSR+4NKuubx 6GrQhh/yjAcKwzoPazU=
X-Received by 10.107.6.134 with SMTP id f6mr3333878ioi.96.1492901727452; Sat, 22 Apr 2017 15:55:27 -0700 (PDT)
X-Mailer git-send-email 2.1.4
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 119
Organization linux.* mail to news gateway
X-Original-Cc devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org
X-Original-Date Sat, 22 Apr 2017 23:55:23 +0100
X-Original-Message-ID <1492901723-4442-1-git-send-email-tuomo.rinne@gmail.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1628890

Show key headers only | View raw


This patch fixes following sparse warnings:

drivers/staging/rtl8192u//r8192U_dm.c:2307:49: warning: cast from restricted __le16
drivers/staging/rtl8192u//r8192U_dm.c:2308:44: warning: cast from restricted __le16
drivers/staging/rtl8192u//r8192U_dm.c:2309:44: warning: cast from restricted __le16

In order to avoid the warnings the u4bAcParam variable is constructed
using the cpu's endianness and in case of big endian architectures the
variable is converted back to little endian before passed to write_nic_dword
function.

Also the patch improves readability by getting rid of unnecessary scope
and splitting complex variable construction to multiple lines.

Signed-off-by: Tuomo Rinne <tuomo.rinne@gmail.com>
---
 drivers/staging/rtl8192u/r8192U_dm.c | 77 ++++++++++++++++++++----------------
 1 file changed, 42 insertions(+), 35 deletions(-)

diff --git a/drivers/staging/rtl8192u/r8192U_dm.c b/drivers/staging/rtl8192u/r8192U_dm.c
index 9209aad..c63974a 100644
--- a/drivers/staging/rtl8192u/r8192U_dm.c
+++ b/drivers/staging/rtl8192u/r8192U_dm.c
@@ -2189,7 +2189,7 @@ static	void dm_cs_ratio(
 	struct net_device *dev)
 {
 	struct r8192_priv *priv = ieee80211_priv(dev);
-	static u8				initialized, force_write;
+	static u8			initialized, force_write;
 	static u32			reset_cnt;
 
 	if (dm_digtable.dig_algorithm_switch) {
@@ -2295,43 +2295,50 @@ static void dm_check_edca_turbo(
 		 * Restore original EDCA according to the declaration of AP.
 		 */
 		if (priv->bcurrent_turbo_EDCA) {
+			u8	    u1bAIFS;
+			u32	    u4bAcParam, op_limit, cw_max, cw_min;
+
+			struct ieee80211_qos_parameters *qos_parameters = &priv->ieee80211->current_network.qos_data.parameters;
+			u8 mode = priv->ieee80211->mode;
+
+			/*  For Each time updating EDCA parameter, reset EDCA turbo mode status. */
+			dm_init_edca_turbo(dev);
+			u1bAIFS = qos_parameters->aifs[0] * ((mode & (IEEE_G | IEEE_N_24G)) ? 9 : 20) + aSifsTime;
+
+			op_limit = (u32)le16_to_cpu(qos_parameters->tx_op_limit[0]);
+			cw_max   = (u32)le16_to_cpu(qos_parameters->cw_max[0]);
+			cw_min   = (u32)le16_to_cpu(qos_parameters->cw_min[0]);
+
+			op_limit <<= AC_PARAM_TXOP_LIMIT_OFFSET;
+			cw_max   <<= AC_PARAM_ECW_MAX_OFFSET;
+			cw_min   <<= AC_PARAM_ECW_MIN_OFFSET;
+			u1bAIFS  <<= AC_PARAM_AIFS_OFFSET;
+
+			u4bAcParam = op_limit | cw_max | cw_min | u1bAIFS;
+
+			cpu_to_le32s(u4bAcParam);
+			write_nic_dword(dev, EDCAPARA_BE, u4bAcParam);
+
+			/*
+			 * Check ACM bit.
+			 * If it is set, immediately set ACM control bit to downgrading AC for passing WMM testplan. Annie, 2005-12-13.
+			 */
 			{
-				u8		u1bAIFS;
-				u32		u4bAcParam;
-				struct ieee80211_qos_parameters *qos_parameters = &priv->ieee80211->current_network.qos_data.parameters;
-				u8 mode = priv->ieee80211->mode;
-
-				/*  For Each time updating EDCA parameter, reset EDCA turbo mode status. */
-				dm_init_edca_turbo(dev);
-				u1bAIFS = qos_parameters->aifs[0] * ((mode&(IEEE_G|IEEE_N_24G)) ? 9 : 20) + aSifsTime;
-				u4bAcParam = (((u32)(qos_parameters->tx_op_limit[0])) << AC_PARAM_TXOP_LIMIT_OFFSET)|
-					(((u32)(qos_parameters->cw_max[0])) << AC_PARAM_ECW_MAX_OFFSET)|
-					(((u32)(qos_parameters->cw_min[0])) << AC_PARAM_ECW_MIN_OFFSET)|
-					((u32)u1bAIFS << AC_PARAM_AIFS_OFFSET);
-				/*write_nic_dword(dev, WDCAPARA_ADD[i], u4bAcParam);*/
-				write_nic_dword(dev, EDCAPARA_BE,  u4bAcParam);
-
-				/*
-				 * Check ACM bit.
-				 * If it is set, immediately set ACM control bit to downgrading AC for passing WMM testplan. Annie, 2005-12-13.
-				 */
-				{
-					/*  TODO:  Modified this part and try to set acm control in only 1 IO processing!! */
-
-					PACI_AIFSN	pAciAifsn = (PACI_AIFSN)&(qos_parameters->aifs[0]);
-					u8		AcmCtrl;
-
-					read_nic_byte(dev, AcmHwCtrl, &AcmCtrl);
-
-					if (pAciAifsn->f.ACM) { /*  ACM bit is 1. */
-						AcmCtrl |= AcmHw_BeqEn;
-					} else {	/* ACM bit is 0. */
-						AcmCtrl &= (~AcmHw_BeqEn);
-					}
+				/*  TODO:  Modified this part and try to set acm control in only 1 IO processing!! */
 
-					RT_TRACE(COMP_QOS, "SetHwReg8190pci(): [HW_VAR_ACM_CTRL] Write 0x%X\n", AcmCtrl);
-					write_nic_byte(dev, AcmHwCtrl, AcmCtrl);
+				PACI_AIFSN	pAciAifsn = (PACI_AIFSN)&(qos_parameters->aifs[0]);
+				u8		AcmCtrl;
+
+				read_nic_byte(dev, AcmHwCtrl, &AcmCtrl);
+
+				if (pAciAifsn->f.ACM) { /*  ACM bit is 1. */
+					AcmCtrl |= AcmHw_BeqEn;
+				} else {	/* ACM bit is 0. */
+					AcmCtrl &= (~AcmHw_BeqEn);
 				}
+
+				RT_TRACE(COMP_QOS, "SetHwReg8190pci(): [HW_VAR_ACM_CTRL] Write 0x%X\n", AcmCtrl);
+				write_nic_byte(dev, AcmHwCtrl, AcmCtrl);
 			}
 			priv->bcurrent_turbo_EDCA = false;
 		}
-- 
2.1.4

Back to linux.kernel | Previous | Next | Find similar | Unroll thread


Thread

[PATCH] staging: rtl8192u: Improve readability and fix sparse warnings: cast from restricted __le16 Tuomo Rinne <tuomo.rinne@gmail.com> - 2017-04-23 01:00 +0200

csiph-web