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


Groups > linux.kernel > #1482371

[PATCH 1/2] staging: slicoss: slic.h: add several macros to fix sparse warnings

Path csiph.com!aioe.org!gothmog.csi.it!bofh.it!news.nic.it!robomod
From Peng Sun <sironhide0null@gmail.com>
Newsgroups linux.kernel
Subject [PATCH 1/2] staging: slicoss: slic.h: add several macros to fix sparse warnings
Date Tue, 13 Sep 2016 13:10:01 +0200
Message-ID <sgTLb-11k-5@gated-at.bofh.it> (permalink)
References <sgTLb-11k-7@gated-at.bofh.it>
X-Original-To liodot@gmail.com, charrer@alacritech.com, gregkh@linuxfoundation.org
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=5J7amhk2+4t6CXJVVUSlvRheBwcVty1XbE0uDugnxsQ=; b=AFHjgFuyPYkIScEXFDntGsoChLGcSi/61xQqCIeKQAeTCuujZugLi8rdqJMNDS7TRI Cql4Tfk3WR8V+kQutWgh/iUv2bPM8XDllT8gBKfUZB8PAAbPeKEz1DXXU+22xQbiI45r zN0WnzWeWxL5mmwMr8bXfPyuXOrK+zpyE2l8MqSH1d/egZLhOHYKEHvLyVxuaRMQl2Z2 DsTVG+8Tab7PGOne538huIECEOFYLzLHF/X7C2SJ5okzUtWK0d4gW58iW/3469JQDxnE xiKO9E/iE9nXgvaxaiZacnLEZ89+JuaHKdEr7MnOFQRhS7JZQOCv8awTPhnTYMzoq13U SRrQ==
X-Google-Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=5J7amhk2+4t6CXJVVUSlvRheBwcVty1XbE0uDugnxsQ=; b=HyDyxp4XeeCfR6cW+KeiOVEDRw5Ld388JV13vbTuJRhomR4TCTOaJ63MYzS81R/B+q DmmihFIdaf9hSV4TmwbWFu+rA9/TabLQHjk1DmluTaCYDz9tnSXJUEklssWv0Oibze/r PBoYX1ZES+V8wgBoxeeFEb/YJ2CKZESETJn5bcweqc8eIIGpBfFDoLB/waAj6ZKyZTMr nF6cRF7hD3yzVn0skAOXSgBVgUtAvHzGoc0OmtVTJhLlMonHVYoayo7BHHW0VGsJdVhI h4CBr4sggiSsJg/wOQbvCcXjChRiiONkTPc093DUrpsFCTkl8cLVL/Vx5tKcnvjjWmee l8Sw==
X-Gm-Message-State AE9vXwN8OxcbierJP2WR97Bzmxng88Ebf0scnrxFpWzArR9R8Kre5FBIIzoiw1MFqXxTfA==
X-Received by 10.66.81.201 with SMTP id c9mr236368pay.14.1473764443309; Tue, 13 Sep 2016 04:00:43 -0700 (PDT)
X-Mailer git-send-email 2.7.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 63
Organization linux.* mail to news gateway
X-Original-Cc linux-kernel@vger.kernel.org, Peng Sun <sironhide0null@gmail.com>
X-Original-Date Tue, 13 Sep 2016 04:00:21 -0700
X-Original-Message-ID <1347561039d52f50b973269e013aff4de27c3839.1473764379.git.sironhide0null@gmail.com>
X-Original-References <cover.1473764379.git.sironhide0null@gmail.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1482371

Show key headers only | View raw


Signed-off-by: Peng Sun <sironhide0null@gmail.com>
---
 drivers/staging/slicoss/slic.h | 45 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/drivers/staging/slicoss/slic.h b/drivers/staging/slicoss/slic.h
index fe1d2ce..cfed4ef 100644
--- a/drivers/staging/slicoss/slic.h
+++ b/drivers/staging/slicoss/slic.h
@@ -539,6 +539,51 @@ static inline void slic_flush_write(struct adapter *adapter)
 	ioread32(adapter->regs + SLIC_REG_HOSTID);
 }
 
+#define IOMEM_GET_FIELDADDR(base, member)				\
+({									\
+	char __iomem *_base = (char __iomem *)base;			\
+	_base += offsetof(typeof(*base), member);			\
+	(void __iomem *)_base;						\
+})
+
+#define IOMEM_GET_FIELD32(base, member)					\
+({									\
+	char __iomem *_base = (char __iomem *)base;			\
+	_base += offsetof(typeof(*base), member);			\
+	ioread32(_base);						\
+})
+
+#define IOMEM_SET_FIELD32(value, base, member)				\
+({									\
+	char __iomem *_base = (char __iomem *)base;			\
+	_base += offsetof(typeof(*base), member);			\
+	iowrite32(value, _base);					\
+})
+
+#ifdef CONFIG_64BIT
+#define IOMEM_GET_FIELD64(base, member)					\
+({									\
+	char __iomem *_base = (char __iomem *)base;			\
+	_base += offsetof(typeof(*base), member);			\
+	readq(_base);							\
+})
+#else
+#define IOMEM_GET_FIELD64(base, member)					\
+({									\
+	char __iomem *_base = (char __iomem *)base;			\
+	_base += offsetof(typeof(*base), member);			\
+	u64 val = ((u64)ioread8(_base + 7)) << 56;			\
+	val += ((u64)ioread8(_base + 6)) << 48;				\
+	val += ((u64)ioread8(_base + 5)) << 40;				\
+	val += ((u64)ioread8(_base + 4)) << 32;				\
+	val += ((u64)ioread8(_base + 3)) << 24;				\
+	val += ((u64)ioread8(_base + 2)) << 16;				\
+	val += ((u64)ioread8(_base + 1)) << 8;				\
+	val += ioread8(_base);						\
+	le64_to_cpu(val);						\
+})
+#endif
+
 #define UPDATE_STATS(largestat, newstat, oldstat)                        \
 {                                                                        \
 	if ((newstat) < (oldstat))                                       \
-- 
2.7.4

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


Thread

[PATCH 1/2] staging: slicoss: slic.h: add several macros to fix sparse warnings Peng Sun <sironhide0null@gmail.com> - 2016-09-13 13:10 +0200

csiph-web