Skip to contentSkip to conversation

staging: vt6655: Create one base function for four macros

PATCH Superseded Philipp Hortmann 2 participants 8 messages Jul 30, 2022 – Aug 1, 2022 Staging

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover staging: vt6655: Create one base function for four macros

Create one base function vt6655_mac_en_dis_bits_u32_reg with parameters for four multiline macros. Multiline macros are not liked by kernel community.

Tested with vt6655 on mini PCI Module Transferred this patch over wlan connection of vt6655

Philipp Hortmann (6):
staging: vt6655: Convert macro MACvEnableProtectMD to function
staging: vt6655: Create one function for four macros
staging: vt6655: Rename function MACvEnableProtectMD
staging: vt6655: Convert macro MACvDisableProtectMD
staging: vt6655: Convert macro MACvEnableBarkerPreambleMd
staging: vt6655: Convert macro MACvDisableBarkerPreambleMd

 drivers/staging/vt6655/device_main.c | 40 +++++++++++++++++++++++++---
 drivers/staging/vt6655/mac.h         | 37 +++----------------------
 2 files changed, 40 insertions(+), 37 deletions(-)
Signature · 1 line
2.37.1
#1 lore raw

PATCH 1/6 staging: vt6655: Convert macro MACvEnableProtectMD to function

Convert macro to static function. Multiline macros are not liked by kernel community. Rename variable dwOrgValue to reg_value to avoid CamelCase which is not accepted by checkpatch.pl. Change variable declaration to u32 as this improves readability.

---
 drivers/staging/vt6655/device_main.c | 9 +++++++++
 drivers/staging/vt6655/mac.h         | 8 --------
 2 files changed, 9 insertions(+), 8 deletions(-)
drivers/staging/vt6655/device_main.c +9 -0
index 1fc8bdf8a311..3565aa53f007 100644
@@ -216,6 +216,15 @@ static void vt6655_mac_dma_ctl(void __iomem *iobase, u8 reg_index)
 		iowrite32(DMACTL_RUN, iobase + reg_index);
 }
 
+static void MACvEnableProtectMD(void __iomem *iobase)
+{
+	u32 reg_value;
+
+	reg_value = ioread32(iobase + MAC_REG_ENCFG);
+	reg_value = reg_value | ENCFG_PROTECTMD;
+	iowrite32(reg_value, iobase + MAC_REG_ENCFG);
+}
+
 /*
  * Initialisation of MAC & BBP registers
  */
drivers/staging/vt6655/mac.h +0 -8
index 467c599a3289..84d203c56b1f 100644
@@ -543,14 +543,6 @@
 #define MACvSelectPage1(iobase)				\
 	iowrite8(1, iobase + MAC_REG_PAGE1SEL)
 
-#define MACvEnableProtectMD(iobase)					\
-do {									\
-	unsigned long dwOrgValue;					\
-	dwOrgValue = ioread32(iobase + MAC_REG_ENCFG);			\
-	dwOrgValue = dwOrgValue | ENCFG_PROTECTMD;			\
-	iowrite32((u32)dwOrgValue, iobase + MAC_REG_ENCFG);		\
-} while (0)
-
 #define MACvDisableProtectMD(iobase)					\
 do {									\
 	unsigned long dwOrgValue;					\
Signature · 1 line
2.37.1
#2 lore raw

PATCH 2/6 staging: vt6655: Create one function for four macros

In reply to Philipp Hortmann

Create function vt6655_mac_en_dis_bits_u32_reg with three parameters to cover functionality of four macros.

---
 drivers/staging/vt6655/device_main.c | 12 ++++++++++--
 drivers/staging/vt6655/mac.h         |  3 +++
 2 files changed, 13 insertions(+), 2 deletions(-)
drivers/staging/vt6655/device_main.c +10 -2
index 3565aa53f007..5f64204dc312 100644
@@ -216,15 +216,23 @@ static void vt6655_mac_dma_ctl(void __iomem *iobase, u8 reg_index)
 		iowrite32(DMACTL_RUN, iobase + reg_index);
 }
 
-static void MACvEnableProtectMD(void __iomem *iobase)
+static void vt6655_mac_en_dis_bits_u32_reg(void __iomem *iobase, bool en_not_dis, u32 bit_mask)
 {
 	u32 reg_value;
 
 	reg_value = ioread32(iobase + MAC_REG_ENCFG);
-	reg_value = reg_value | ENCFG_PROTECTMD;
+	if (en_not_dis)
+		reg_value = reg_value | bit_mask;
+	else
+		reg_value = reg_value & ~bit_mask;
 	iowrite32(reg_value, iobase + MAC_REG_ENCFG);
 }
 
+static void MACvEnableProtectMD(void __iomem *iobase)
+{
+	vt6655_mac_en_dis_bits_u32_reg(iobase, ENABLE, ENCFG_PROTECTMD);
+}
+
 /*
  * Initialisation of MAC & BBP registers
  */
drivers/staging/vt6655/mac.h +3 -0
index 84d203c56b1f..31e75df5f02f 100644
@@ -21,6 +21,9 @@
 #include "device.h"
 
 /*---------------------  Export Definitions -------------------------*/
+#define ENABLE 1
+#define DISABLE 0
+
 /* Registers in the MAC */
 #define MAC_MAX_CONTEXT_SIZE_PAGE0  256
 #define MAC_MAX_CONTEXT_SIZE_PAGE1  128
Signature · 1 line
2.37.1
#4 lore raw

PATCH 3/6 staging: vt6655: Rename function MACvEnableProtectMD

In reply to Philipp Hortmann

Rename MACvEnableProtectMD function to vt6655_mac_en_protect_md to avoid CamelCase which is not accepted by checkpatch.pl and to clean up namespace.

---
 drivers/staging/vt6655/device_main.c | 4 ++--
 drivers/staging/vt6655/mac.h         | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
drivers/staging/vt6655/device_main.c +2 -2
index 5f64204dc312..7633602e47c1 100644
@@ -228,7 +228,7 @@ static void vt6655_mac_en_dis_bits_u32_reg(void __iomem *iobase, bool en_not_dis
 	iowrite32(reg_value, iobase + MAC_REG_ENCFG);
 }
 
-static void MACvEnableProtectMD(void __iomem *iobase)
+static void vt6655_mac_en_protect_md(void __iomem *iobase)
 {
 	vt6655_mac_en_dis_bits_u32_reg(iobase, ENABLE, ENCFG_PROTECTMD);
 }
@@ -1478,7 +1478,7 @@ static void vnt_bss_info_changed(struct ieee80211_hw *hw,
 
 	if (changed & BSS_CHANGED_ERP_CTS_PROT) {
 		if (conf->use_cts_prot)
-			MACvEnableProtectMD(priv->port_offset);
+			vt6655_mac_en_protect_md(priv->port_offset);
 		else
 			MACvDisableProtectMD(priv->port_offset);
 	}
drivers/staging/vt6655/mac.h +1 -1
index 31e75df5f02f..66e03e8173ea 100644
@@ -12,7 +12,7 @@
  * Revision History:
  *      07-01-2003 Bryan YC Fan:  Re-write codes to support VT3253 spec.
  *      08-25-2003 Kyle Hsu:      Porting MAC functions from sim53.
- *      09-03-2003 Bryan YC Fan:  Add MACvDisableProtectMD & MACvEnableProtectMD
+ *      09-03-2003 Bryan YC Fan:  Add MACvDisableProtectMD & vt6655_mac_en_protect_md
  */
 
 #ifndef __MAC_H__
Signature · 1 line
2.37.1
#5 lore raw

PATCH 4/6 staging: vt6655: Convert macro MACvDisableProtectMD

In reply to Philipp Hortmann

Convert macro MACvDisableProtectMD to static function which calls the common static function vt6655_mac_en_dis_bits_u32_reg. This saves codelines and multiline macros are not liked by kernel community. Function name is also changed to avoid CamelCase which is not accepted by checkpatch.pl and to clean up namespace.

---
 drivers/staging/vt6655/device_main.c |  7 ++++++-
 drivers/staging/vt6655/mac.h         | 10 +---------
 2 files changed, 7 insertions(+), 10 deletions(-)
drivers/staging/vt6655/device_main.c +6 -1
index 7633602e47c1..c09d80effc3f 100644
@@ -233,6 +233,11 @@ static void vt6655_mac_en_protect_md(void __iomem *iobase)
 	vt6655_mac_en_dis_bits_u32_reg(iobase, ENABLE, ENCFG_PROTECTMD);
 }
 
+static void vt6655_mac_dis_protect_md(void __iomem *iobase)
+{
+	vt6655_mac_en_dis_bits_u32_reg(iobase, DISABLE, ENCFG_PROTECTMD);
+}
+
 /*
  * Initialisation of MAC & BBP registers
  */
@@ -1480,7 +1485,7 @@ static void vnt_bss_info_changed(struct ieee80211_hw *hw,
 		if (conf->use_cts_prot)
 			vt6655_mac_en_protect_md(priv->port_offset);
 		else
-			MACvDisableProtectMD(priv->port_offset);
+			vt6655_mac_dis_protect_md(priv->port_offset);
 	}
 
 	if (changed & BSS_CHANGED_ERP_SLOT) {
drivers/staging/vt6655/mac.h +1 -9
index 66e03e8173ea..3a9721624cff 100644
@@ -12,7 +12,7 @@
  * Revision History:
  *      07-01-2003 Bryan YC Fan:  Re-write codes to support VT3253 spec.
  *      08-25-2003 Kyle Hsu:      Porting MAC functions from sim53.
- *      09-03-2003 Bryan YC Fan:  Add MACvDisableProtectMD & vt6655_mac_en_protect_md
+ *      09-03-2003 Bryan YC Fan:  Add vt6655_mac_dis_protect_md & vt6655_mac_en_protect_md
  */
 
 #ifndef __MAC_H__
@@ -546,14 +546,6 @@
 #define MACvSelectPage1(iobase)				\
 	iowrite8(1, iobase + MAC_REG_PAGE1SEL)
 
-#define MACvDisableProtectMD(iobase)					\
-do {									\
-	unsigned long dwOrgValue;					\
-	dwOrgValue = ioread32(iobase + MAC_REG_ENCFG);			\
-	dwOrgValue = dwOrgValue & ~ENCFG_PROTECTMD;			\
-	iowrite32((u32)dwOrgValue, iobase + MAC_REG_ENCFG);		\
-} while (0)
-
 #define MACvEnableBarkerPreambleMd(iobase)				\
 do {									\
 	unsigned long dwOrgValue;					\
Signature · 1 line
2.37.1
#6 lore raw

PATCH 5/6 staging: vt6655: Convert macro MACvEnableBarkerPreambleMd

In reply to Philipp Hortmann

Convert macro MACvEnableBarkerPreambleMd to static function which calls the common static function vt6655_mac_en_dis_bits_u32_reg. This saves codelines and multiline macros are not liked by kernel community. Function name is also changed to avoid CamelCase which is not accepted by checkpatch.pl and to clean up namespace.

---
 drivers/staging/vt6655/device_main.c | 7 ++++++-
 drivers/staging/vt6655/mac.h         | 8 --------
 2 files changed, 6 insertions(+), 9 deletions(-)
drivers/staging/vt6655/device_main.c +6 -1
index c09d80effc3f..5ca8a302011d 100644
@@ -238,6 +238,11 @@ static void vt6655_mac_dis_protect_md(void __iomem *iobase)
 	vt6655_mac_en_dis_bits_u32_reg(iobase, DISABLE, ENCFG_PROTECTMD);
 }
 
+static void vt6655_mac_en_barker_preamble_md(void __iomem *iobase)
+{
+	vt6655_mac_en_dis_bits_u32_reg(iobase, ENABLE, ENCFG_BARKERPREAM);
+}
+
 /*
  * Initialisation of MAC & BBP registers
  */
@@ -1473,7 +1478,7 @@ static void vnt_bss_info_changed(struct ieee80211_hw *hw,
 
 	if (changed & BSS_CHANGED_ERP_PREAMBLE) {
 		if (conf->use_short_preamble) {
-			MACvEnableBarkerPreambleMd(priv->port_offset);
+			vt6655_mac_en_barker_preamble_md(priv->port_offset);
 			priv->preamble_type = true;
 		} else {
 			MACvDisableBarkerPreambleMd(priv->port_offset);
drivers/staging/vt6655/mac.h +0 -8
index 3a9721624cff..fd95f49aa739 100644
@@ -546,14 +546,6 @@
 #define MACvSelectPage1(iobase)				\
 	iowrite8(1, iobase + MAC_REG_PAGE1SEL)
 
-#define MACvEnableBarkerPreambleMd(iobase)				\
-do {									\
-	unsigned long dwOrgValue;					\
-	dwOrgValue = ioread32(iobase + MAC_REG_ENCFG);			\
-	dwOrgValue = dwOrgValue | ENCFG_BARKERPREAM;			\
-	iowrite32((u32)dwOrgValue, iobase + MAC_REG_ENCFG);		\
-} while (0)
-
 #define MACvDisableBarkerPreambleMd(iobase)				\
 do {									\
 	unsigned long dwOrgValue;					\
Signature · 1 line
2.37.1
#7 lore raw

PATCH 6/6 staging: vt6655: Convert macro MACvDisableBarkerPreambleMd

In reply to Philipp Hortmann

Convert macro MACvDisableBarkerPreambleMd to static function which calls the common static function vt6655_mac_en_dis_bits_u32_reg. This saves codelines and multiline macros are not liked by kernel community. Function name is also changed to avoid CamelCase which is not accepted by checkpatch.pl and to clean up namespace.

---
 drivers/staging/vt6655/device_main.c | 7 ++++++-
 drivers/staging/vt6655/mac.h         | 8 --------
 2 files changed, 6 insertions(+), 9 deletions(-)
drivers/staging/vt6655/device_main.c +6 -1
index 5ca8a302011d..6efa79e8a651 100644
@@ -243,6 +243,11 @@ static void vt6655_mac_en_barker_preamble_md(void __iomem *iobase)
 	vt6655_mac_en_dis_bits_u32_reg(iobase, ENABLE, ENCFG_BARKERPREAM);
 }
 
+static void vt6655_mac_dis_barker_preamble_md(void __iomem *iobase)
+{
+	vt6655_mac_en_dis_bits_u32_reg(iobase, DISABLE, ENCFG_BARKERPREAM);
+}
+
 /*
  * Initialisation of MAC & BBP registers
  */
@@ -1481,7 +1486,7 @@ static void vnt_bss_info_changed(struct ieee80211_hw *hw,
 			vt6655_mac_en_barker_preamble_md(priv->port_offset);
 			priv->preamble_type = true;
 		} else {
-			MACvDisableBarkerPreambleMd(priv->port_offset);
+			vt6655_mac_dis_barker_preamble_md(priv->port_offset);
 			priv->preamble_type = false;
 		}
 	}
drivers/staging/vt6655/mac.h +0 -8
index fd95f49aa739..012388bf8d3b 100644
@@ -546,14 +546,6 @@
 #define MACvSelectPage1(iobase)				\
 	iowrite8(1, iobase + MAC_REG_PAGE1SEL)
 
-#define MACvDisableBarkerPreambleMd(iobase)				\
-do {									\
-	unsigned long dwOrgValue;					\
-	dwOrgValue = ioread32(iobase + MAC_REG_ENCFG);			\
-	dwOrgValue = dwOrgValue & ~ENCFG_BARKERPREAM;			\
-	iowrite32((u32)dwOrgValue, iobase + MAC_REG_ENCFG);		\
-} while (0)
-
 #define MACvSetBBType(iobase, byTyp)					\
 do {									\
 	unsigned long dwOrgValue;					\
Signature · 1 line
2.37.1
#3 lore raw

Re: [PATCH 2/6] staging: vt6655: Create one function for four macros

In reply to Philipp Hortmann
Quoted 14 lines · Philipp Hortmann

Create function vt6655_mac_en_dis_bits_u32_reg with three parameters to cover functionality of four macros.

---
 drivers/staging/vt6655/device_main.c | 12 ++++++++++--
 drivers/staging/vt6655/mac.h         |  3 +++
 2 files changed, 13 insertions(+), 2 deletions(-)
drivers/staging/vt6655/device_main.c +0 -0
index 3565aa53f007..5f64204dc312 100644

drivers/staging/vt6655/device_main.c static void vt6655_mac_dma_ctl(void __iomem *iobase, u8 reg_index) · line 219

Quoted 5 lines
drivers/staging/vt6655/device_main.c +1 -1
@@ -216,15 +216,23 @@ static void vt6655_mac_dma_ctl(void __iomem *iobase, u8 reg_index)
 		iowrite32(DMACTL_RUN, iobase + reg_index);
 }
 
-static void MACvEnableProtectMD(void __iomem *iobase)
+static void vt6655_mac_en_dis_bits_u32_reg(void __iomem *iobase, bool en_not_dis, u32 bit_mask)

Never have "not" in a variable name. Just make this two functions.

static void vt6655_mac_set_bits(void __iomem *iobase, u32 mask) static void vt6655_mac_clear_bits(void __iomem *iobase, u32 mask)

Rename "bit_mask" to "mask" or "bits" because bit masks are the only type of mask that there is in the kernel.

regards,
dan carpenter