Skip to contentSkip to conversation

b43: remove leftover code from old devices support

PATCH New Rafał Miłecki 2 participants 5 messages Jun 20, 2014 – Jun 22, 2014 Networking drivers (wireless)

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 b43: remove leftover code from old devices support

Old devices (A-PHY or B-PHY) are supposed to be supported by b43legacy. We keep phy_a.c as it's needed for G-PHY which shares some design.

---
 drivers/net/wireless/b43/main.c       | 9 ---------
 drivers/net/wireless/b43/phy_a.h      | 4 ----
 drivers/net/wireless/b43/phy_common.c | 3 ---
 3 files changed, 16 deletions(-)
drivers/net/wireless/b43/main.c +0 -9
index 4b662d0..4164afa 100644
@@ -4306,15 +4306,6 @@ static int b43_phy_versioning(struct b43_wldev *dev)
 	phy_type = (tmp & B43_PHYVER_TYPE) >> B43_PHYVER_TYPE_SHIFT;
 	phy_rev = (tmp & B43_PHYVER_VERSION);
 	switch (phy_type) {
-	case B43_PHYTYPE_A:
-		if (phy_rev >= 4)
-			unsupported = 1;
-		break;
-	case B43_PHYTYPE_B:
-		if (phy_rev != 2 && phy_rev != 4 && phy_rev != 6
-		    && phy_rev != 7)
-			unsupported = 1;
-		break;
 	case B43_PHYTYPE_G:
 		if (phy_rev > 9)
 			unsupported = 1;
drivers/net/wireless/b43/phy_a.h +0 -4
index 5cfaab7..f7d0d92 100644
@@ -123,8 +123,4 @@ struct b43_phy_a {
  */
 void b43_phy_inita(struct b43_wldev *dev);
 
-
-struct b43_phy_operations;
-extern const struct b43_phy_operations b43_phyops_a;
-
 #endif /* LINUX_B43_PHY_A_H_ */
drivers/net/wireless/b43/phy_common.c +0 -3
index 2d05b59..ce486ee 100644
@@ -45,9 +45,6 @@ int b43_phy_allocate(struct b43_wldev *dev)
 	phy->ops = NULL;
 
 	switch (phy->type) {
-	case B43_PHYTYPE_A:
-		phy->ops = &b43_phyops_a;
-		break;
 	case B43_PHYTYPE_G:
 		phy->ops = &b43_phyops_g;
 		break;
Signature · 1 line
1.8.4.5
#1 lore raw

PATCH 2/2 b43: add config for (en|dis)abling G-PHY support

This allows new devices users to save some space.

---
 drivers/net/wireless/b43/Kconfig      | 9 +++++++++
 drivers/net/wireless/b43/Makefile     | 6 +-----
 drivers/net/wireless/b43/main.c       | 2 ++
 drivers/net/wireless/b43/phy_common.c | 2 ++
 4 files changed, 14 insertions(+), 5 deletions(-)
drivers/net/wireless/b43/Kconfig +9 -0
index e3f67b8..037a4e3 100644
@@ -122,6 +122,15 @@ config B43_PIO
 	select SSB_BLOCKIO
 	default y
 
+config B43_PHY_G
+	bool "Support for G-PHY (802.11g) devices"
+	depends on B43 && B43_SSB
+	default y
+	---help---
+	  This PHY type can be found in the following chipsets:
+	  PCI: BCM4306, BCM4311, BCM4318
+	  SoC: BCM4712, BCM5352E
+
 config B43_PHY_N
 	bool "Support for 802.11n (N-PHY) devices"
 	depends on B43
drivers/net/wireless/b43/Makefile +1 -5
index 098fe9e..6e00b88 100644
@@ -1,13 +1,11 @@
 b43-y				+= main.o
 b43-y				+= bus.o
-b43-y				+= tables.o
+b43-$(CONFIG_B43_PHY_G)		+= phy_a.o phy_g.o tables.o lo.o wa.o
 b43-$(CONFIG_B43_PHY_N)		+= tables_nphy.o
 b43-$(CONFIG_B43_PHY_N)		+= radio_2055.o
 b43-$(CONFIG_B43_PHY_N)		+= radio_2056.o
 b43-$(CONFIG_B43_PHY_N)		+= radio_2057.o
 b43-y				+= phy_common.o
-b43-y				+= phy_g.o
-b43-y				+= phy_a.o
 b43-$(CONFIG_B43_PHY_N)		+= phy_n.o
 b43-$(CONFIG_B43_PHY_LP)	+= phy_lp.o
 b43-$(CONFIG_B43_PHY_LP)	+= tables_lpphy.o
@@ -17,8 +15,6 @@ b43-$(CONFIG_B43_PHY_HT)	+= radio_2059.o
 b43-$(CONFIG_B43_PHY_LCN)	+= phy_lcn.o tables_phy_lcn.o
 b43-y				+= sysfs.o
 b43-y				+= xmit.o
-b43-y				+= lo.o
-b43-y				+= wa.o
 b43-y				+= dma.o
 b43-y				+= pio.o
 b43-y				+= rfkill.o
drivers/net/wireless/b43/main.c +2 -0
index 4164afa..9cf07bb 100644
@@ -4306,10 +4306,12 @@ static int b43_phy_versioning(struct b43_wldev *dev)
 	phy_type = (tmp & B43_PHYVER_TYPE) >> B43_PHYVER_TYPE_SHIFT;
 	phy_rev = (tmp & B43_PHYVER_VERSION);
 	switch (phy_type) {
+#ifdef CONFIG_B43_PHY_G
 	case B43_PHYTYPE_G:
 		if (phy_rev > 9)
 			unsupported = 1;
 		break;
+#endif
 #ifdef CONFIG_B43_PHY_N
 	case B43_PHYTYPE_N:
 		if (phy_rev > 9)
drivers/net/wireless/b43/phy_common.c +2 -0
index ce486ee..3cbef21 100644
@@ -46,7 +46,9 @@ int b43_phy_allocate(struct b43_wldev *dev)
 
 	switch (phy->type) {
 	case B43_PHYTYPE_G:
+#ifdef CONFIG_B43_PHY_G
 		phy->ops = &b43_phyops_g;
+#endif
 		break;
 	case B43_PHYTYPE_N:
 #ifdef CONFIG_B43_PHY_N
Signature · 1 line
1.8.4.5
#2 lore raw

PATCH 1/2 b43: remove leftover code from old devices support

In reply to Rafał Miłecki
Quoted 4 lines · Rafa? Mi?ecki

Old devices (A-PHY or B-PHY) are supposed to be supported by b43legacy. We keep phy_a.c as it's needed for G-PHY which shares some design.

Wouldn't it make sense to move the relevant pieces of phy_a.c to phy_g.c and then remove phy_a.c entirely?

There are pieces in phy_a.c which can be removed entirely, e.g. b43_phyops_a and things only used by this struct.

- Felix

#3 lore raw

PATCH 1/2 b43: remove leftover code from old devices support

Quoted 10 lines · Felix Fietkau
Quoted 4 lines · Rafa? Mi?ecki

Old devices (A-PHY or B-PHY) are supposed to be supported by b43legacy. We keep phy_a.c as it's needed for G-PHY which shares some design.

Wouldn't it make sense to move the relevant pieces of phy_a.c to phy_g.c and then remove phy_a.c entirely?

There are pieces in phy_a.c which can be removed entirely, e.g. b43_phyops_a and things only used by this struct.

Absolutely, however it needs some effort and time. I'm currently quite busy with other things in b43.

One could remove b43_phyops_a, then remove newly-unused functions. Then see what code is not used by G-PHY. However you should keep in mind, that 5 GHz support for G-PHY may need some functions that are not called at this moment. So I'd suggest looking at 5 GHz support in G-PHY first to avoid removing sth that may be needed in the future.

Signature · 1 line
Rafa?
#4 lore raw

PATCH 1/2 b43: remove leftover code from old devices support

Quoted 12 lines · Rafa? Mi?ecki
Quoted 10 lines · Felix Fietkau
Quoted 4 lines · Rafa? Mi?ecki

Old devices (A-PHY or B-PHY) are supposed to be supported by b43legacy. We keep phy_a.c as it's needed for G-PHY which shares some design.

Wouldn't it make sense to move the relevant pieces of phy_a.c to phy_g.c and then remove phy_a.c entirely?

There are pieces in phy_a.c which can be removed entirely, e.g. b43_phyops_a and things only used by this struct.

Quoted 8 lines

Absolutely, however it needs some effort and time. I'm currently quite busy with other things in b43.

One could remove b43_phyops_a, then remove newly-unused functions. Then see what code is not used by G-PHY. However you should keep in mind, that 5 GHz support for G-PHY may need some functions that are not called at this moment. So I'd suggest looking at 5 GHz support in G-PHY first to avoid removing sth that may be needed in the future.

Makes sense.

- Felix