All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver
@ 2012-04-11  9:52 Arend van Spriel
  2012-04-11  9:52 ` [PATCH 1/9] brcm80211: fmac: make brcmf_net_attach() static Arend van Spriel
                   ` (9 more replies)
  0 siblings, 10 replies; 15+ messages in thread
From: Arend van Spriel @ 2012-04-11  9:52 UTC (permalink / raw)
  To: John W. Linville; +Cc: Linux Wireless List, Arend van Spriel

The series contains a number of patches to resolve some issues found
in our brcmfmac regression testing. The brcmsmac changes are adressing
a problem reported by several people within the community. Last patch
in this series has been marked for stable tree.

This series is based on wireless-next repository and depends on the
following patch message:

Message-ID: <1334098954-7556-2-git-send-email-jim.cromie@gmail.com>

Arend van Spriel (6):
  brcm80211: fmac: make brcmf_net_attach() static
  brcm80211: fmac: remove primary mac address handling from
    brcmf_net_attach
  brcm80211: fmac: register primary net device with device mac address
  brcm80211: smac: do not use US as fallback regulatory hint
  brcm80211: smac: only provide valid regulatory hint
  brcm80211: smac: resume transmit fifo upon receiving frames

Franky Lin (3):
  brcm80211: fmac: add frame header extension support
  brcm80211: fmac: postpone dongle RF enabling.
  brcm80211: fmac: clean up chip id table

 drivers/net/wireless/brcm80211/brcmfmac/dhd.h      |    1 -
 drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c  |    1 +
 .../net/wireless/brcm80211/brcmfmac/dhd_common.c   |    4 -
 .../net/wireless/brcm80211/brcmfmac/dhd_linux.c    |  127 +++++++++++---------
 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c |    6 -
 drivers/net/wireless/brcm80211/brcmfmac/usb.c      |    8 --
 drivers/net/wireless/brcm80211/brcmsmac/channel.c  |   36 ++++++-
 .../net/wireless/brcm80211/brcmsmac/mac80211_if.c  |    6 +-
 drivers/net/wireless/brcm80211/brcmsmac/main.c     |    8 ++
 .../net/wireless/brcm80211/include/brcm_hw_ids.h   |   40 ++-----
 10 files changed, 124 insertions(+), 113 deletions(-)

-- 
1.7.5.4



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/9] brcm80211: fmac: make brcmf_net_attach() static
  2012-04-11  9:52 [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver Arend van Spriel
@ 2012-04-11  9:52 ` Arend van Spriel
  2012-04-11  9:52 ` [PATCH 2/9] brcm80211: fmac: remove primary mac address handling from brcmf_net_attach Arend van Spriel
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Arend van Spriel @ 2012-04-11  9:52 UTC (permalink / raw)
  To: John W. Linville; +Cc: Linux Wireless List, Arend van Spriel

The function brcmf_net_attach() is only used within dhd_linux.c so
it does not need to be extern. This patch makes the function static.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
 drivers/net/wireless/brcm80211/brcmfmac/dhd.h      |    1 -
 .../net/wireless/brcm80211/brcmfmac/dhd_linux.c    |  116 ++++++++++----------
 2 files changed, 58 insertions(+), 59 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd.h b/drivers/net/wireless/brcm80211/brcmfmac/dhd.h
index 07686a7..9f63701 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd.h
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd.h
@@ -632,7 +632,6 @@ extern const struct bcmevent_name bcmevent_names[];
 extern uint brcmf_c_mkiovar(char *name, char *data, uint datalen,
 			  char *buf, uint len);
 
-extern int brcmf_net_attach(struct brcmf_pub *drvr, int idx);
 extern int brcmf_netdev_wait_pend8021x(struct net_device *ndev);
 
 extern s32 brcmf_exec_dcmd(struct net_device *dev, u32 cmd, void *arg, u32 len);
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
index 2a1e5ae..153d369 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
@@ -843,6 +843,64 @@ static const struct net_device_ops brcmf_netdev_ops_pri = {
 	.ndo_set_rx_mode = brcmf_netdev_set_multicast_list
 };
 
+static int brcmf_net_attach(struct brcmf_pub *drvr, int ifidx)
+{
+	struct net_device *ndev;
+	u8 temp_addr[ETH_ALEN] = {
+		0x00, 0x90, 0x4c, 0x11, 0x22, 0x33};
+
+	brcmf_dbg(TRACE, "ifidx %d\n", ifidx);
+
+	ndev = drvr->iflist[ifidx]->ndev;
+	ndev->netdev_ops = &brcmf_netdev_ops_pri;
+
+	/*
+	 * We have to use the primary MAC for virtual interfaces
+	 */
+	if (ifidx != 0) {
+		/* for virtual interfaces use the primary MAC  */
+		memcpy(temp_addr, drvr->mac, ETH_ALEN);
+
+	}
+
+	if (ifidx == 1) {
+		brcmf_dbg(TRACE, "ACCESS POINT MAC:\n");
+		/*  ACCESSPOINT INTERFACE CASE */
+		temp_addr[0] |= 0X02;	/* set bit 2 ,
+			 - Locally Administered address  */
+
+	}
+	ndev->hard_header_len = ETH_HLEN + drvr->hdrlen;
+	ndev->ethtool_ops = &brcmf_ethtool_ops;
+
+	drvr->rxsz = ndev->mtu + ndev->hard_header_len +
+			      drvr->hdrlen;
+
+	memcpy(ndev->dev_addr, temp_addr, ETH_ALEN);
+
+	/* attach to cfg80211 for primary interface */
+	if (!ifidx) {
+		drvr->config = brcmf_cfg80211_attach(ndev, drvr->dev, drvr);
+		if (drvr->config == NULL) {
+			brcmf_dbg(ERROR, "wl_cfg80211_attach failed\n");
+			goto fail;
+		}
+	}
+
+	if (register_netdev(ndev) != 0) {
+		brcmf_dbg(ERROR, "couldn't register the net device\n");
+		goto fail;
+	}
+
+	brcmf_dbg(INFO, "%s: Broadcom Dongle Host Driver\n", ndev->name);
+
+	return 0;
+
+fail:
+	ndev->netdev_ops = NULL;
+	return -EBADE;
+}
+
 int
 brcmf_add_if(struct device *dev, int ifidx, char *name, u8 *mac_addr)
 {
@@ -1021,64 +1079,6 @@ int brcmf_bus_start(struct device *dev)
 	return 0;
 }
 
-int brcmf_net_attach(struct brcmf_pub *drvr, int ifidx)
-{
-	struct net_device *ndev;
-	u8 temp_addr[ETH_ALEN] = {
-		0x00, 0x90, 0x4c, 0x11, 0x22, 0x33};
-
-	brcmf_dbg(TRACE, "ifidx %d\n", ifidx);
-
-	ndev = drvr->iflist[ifidx]->ndev;
-	ndev->netdev_ops = &brcmf_netdev_ops_pri;
-
-	/*
-	 * We have to use the primary MAC for virtual interfaces
-	 */
-	if (ifidx != 0) {
-		/* for virtual interfaces use the primary MAC  */
-		memcpy(temp_addr, drvr->mac, ETH_ALEN);
-
-	}
-
-	if (ifidx == 1) {
-		brcmf_dbg(TRACE, "ACCESS POINT MAC:\n");
-		/*  ACCESSPOINT INTERFACE CASE */
-		temp_addr[0] |= 0X02;	/* set bit 2 ,
-			 - Locally Administered address  */
-
-	}
-	ndev->hard_header_len = ETH_HLEN + drvr->hdrlen;
-	ndev->ethtool_ops = &brcmf_ethtool_ops;
-
-	drvr->rxsz = ndev->mtu + ndev->hard_header_len +
-			      drvr->hdrlen;
-
-	memcpy(ndev->dev_addr, temp_addr, ETH_ALEN);
-
-	/* attach to cfg80211 for primary interface */
-	if (!ifidx) {
-		drvr->config = brcmf_cfg80211_attach(ndev, drvr->dev, drvr);
-		if (drvr->config == NULL) {
-			brcmf_dbg(ERROR, "wl_cfg80211_attach failed\n");
-			goto fail;
-		}
-	}
-
-	if (register_netdev(ndev) != 0) {
-		brcmf_dbg(ERROR, "couldn't register the net device\n");
-		goto fail;
-	}
-
-	brcmf_dbg(INFO, "%s: Broadcom Dongle Host Driver\n", ndev->name);
-
-	return 0;
-
-fail:
-	ndev->netdev_ops = NULL;
-	return -EBADE;
-}
-
 static void brcmf_bus_detach(struct brcmf_pub *drvr)
 {
 	brcmf_dbg(TRACE, "Enter\n");
-- 
1.7.5.4



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/9] brcm80211: fmac: remove primary mac address handling from brcmf_net_attach
  2012-04-11  9:52 [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver Arend van Spriel
  2012-04-11  9:52 ` [PATCH 1/9] brcm80211: fmac: make brcmf_net_attach() static Arend van Spriel
@ 2012-04-11  9:52 ` Arend van Spriel
  2012-04-11  9:52 ` [PATCH 3/9] brcm80211: fmac: register primary net device with device mac address Arend van Spriel
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Arend van Spriel @ 2012-04-11  9:52 UTC (permalink / raw)
  To: John W. Linville; +Cc: Linux Wireless List, Arend van Spriel

The mac address for the primary interface was handled different from
the other interfaces. The code has been restructured such that the
brcmf_net_attach function treats the interfaces equal.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
 .../net/wireless/brcm80211/brcmfmac/dhd_linux.c    |   25 +++++++++----------
 1 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
index 153d369..07836a8 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
@@ -843,27 +843,26 @@ static const struct net_device_ops brcmf_netdev_ops_pri = {
 	.ndo_set_rx_mode = brcmf_netdev_set_multicast_list
 };
 
-static int brcmf_net_attach(struct brcmf_pub *drvr, int ifidx)
+static int brcmf_net_attach(struct brcmf_if *ifp)
 {
+	struct brcmf_pub *drvr = ifp->drvr;
 	struct net_device *ndev;
-	u8 temp_addr[ETH_ALEN] = {
-		0x00, 0x90, 0x4c, 0x11, 0x22, 0x33};
+	u8 temp_addr[ETH_ALEN];
 
-	brcmf_dbg(TRACE, "ifidx %d\n", ifidx);
+	brcmf_dbg(TRACE, "ifidx %d\n", ifp->idx);
 
-	ndev = drvr->iflist[ifidx]->ndev;
+	ndev = drvr->iflist[ifp->idx]->ndev;
 	ndev->netdev_ops = &brcmf_netdev_ops_pri;
 
 	/*
-	 * We have to use the primary MAC for virtual interfaces
+	 * determine mac address to use
 	 */
-	if (ifidx != 0) {
-		/* for virtual interfaces use the primary MAC  */
+	if (is_valid_ether_addr(ifp->mac_addr))
+		memcpy(temp_addr, ifp->mac_addr, ETH_ALEN);
+	else
 		memcpy(temp_addr, drvr->mac, ETH_ALEN);
 
-	}
-
-	if (ifidx == 1) {
+	if (ifp->idx == 1) {
 		brcmf_dbg(TRACE, "ACCESS POINT MAC:\n");
 		/*  ACCESSPOINT INTERFACE CASE */
 		temp_addr[0] |= 0X02;	/* set bit 2 ,
@@ -879,7 +878,7 @@ static int brcmf_net_attach(struct brcmf_pub *drvr, int ifidx)
 	memcpy(ndev->dev_addr, temp_addr, ETH_ALEN);
 
 	/* attach to cfg80211 for primary interface */
-	if (!ifidx) {
+	if (!ifp->idx) {
 		drvr->config = brcmf_cfg80211_attach(ndev, drvr->dev, drvr);
 		if (drvr->config == NULL) {
 			brcmf_dbg(ERROR, "wl_cfg80211_attach failed\n");
@@ -940,7 +939,7 @@ brcmf_add_if(struct device *dev, int ifidx, char *name, u8 *mac_addr)
 	if (mac_addr != NULL)
 		memcpy(&ifp->mac_addr, mac_addr, ETH_ALEN);
 
-	if (brcmf_net_attach(drvr, ifp->idx)) {
+	if (brcmf_net_attach(ifp)) {
 		brcmf_dbg(ERROR, "brcmf_net_attach failed");
 		free_netdev(ifp->ndev);
 		drvr->iflist[ifidx] = NULL;
-- 
1.7.5.4



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 3/9] brcm80211: fmac: register primary net device with device mac address
  2012-04-11  9:52 [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver Arend van Spriel
  2012-04-11  9:52 ` [PATCH 1/9] brcm80211: fmac: make brcmf_net_attach() static Arend van Spriel
  2012-04-11  9:52 ` [PATCH 2/9] brcm80211: fmac: remove primary mac address handling from brcmf_net_attach Arend van Spriel
@ 2012-04-11  9:52 ` Arend van Spriel
  2012-04-11  9:52 ` [PATCH 4/9] brcm80211: fmac: add frame header extension support Arend van Spriel
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Arend van Spriel @ 2012-04-11  9:52 UTC (permalink / raw)
  To: John W. Linville; +Cc: Linux Wireless List, Arend van Spriel

The primary net device was registered with a primary mac address and
upon IFUP it was set to match the actual mac address from the device.
This patch changes that and moves the brcmf_add_if() call to the common
part of the driver.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
 .../net/wireless/brcm80211/brcmfmac/dhd_linux.c    |    5 +++++
 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c |    6 ------
 drivers/net/wireless/brcm80211/brcmfmac/usb.c      |    8 --------
 3 files changed, 5 insertions(+), 14 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
index 07836a8..00b6270 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
@@ -1073,6 +1073,11 @@ int brcmf_bus_start(struct device *dev)
 	if (ret < 0)
 		return ret;
 
+	/* add primary networking interface */
+	ret = brcmf_add_if(dev, 0, "wlan%d", drvr->mac);
+	if (ret < 0)
+		return ret;
+
 	/* signal bus ready */
 	bus_if->state = BRCMF_BUS_DATA;
 	return 0;
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
index 2bf5dda..a83fbea 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
@@ -3948,12 +3948,6 @@ void *brcmf_sdbrcm_probe(u32 regsva, struct brcmf_sdio_dev *sdiodev)
 		}
 	}
 
-	/* add interface and open for business */
-	if (brcmf_add_if(bus->sdiodev->dev, 0, "wlan%d", NULL)) {
-		brcmf_dbg(ERROR, "Add primary net device interface failed!!\n");
-		goto fail;
-	}
-
 	return bus;
 
 fail:
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/usb.c b/drivers/net/wireless/brcm80211/brcmfmac/usb.c
index 8236422..1d67ecf 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/usb.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/usb.c
@@ -1383,14 +1383,6 @@ static int brcmf_usb_probe_cb(struct device *dev, const char *desc,
 		goto fail;
 	}
 
-	/* add interface and open for business */
-	ret = brcmf_add_if(dev, 0, "wlan%d", NULL);
-	if (ret) {
-		brcmf_dbg(ERROR, "Add primary net device interface failed!!\n");
-		brcmf_detach(dev);
-		goto fail;
-	}
-
 	return 0;
 fail:
 	/* Release resources in reverse order */
-- 
1.7.5.4



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 4/9] brcm80211: fmac: add frame header extension support
  2012-04-11  9:52 [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver Arend van Spriel
                   ` (2 preceding siblings ...)
  2012-04-11  9:52 ` [PATCH 3/9] brcm80211: fmac: register primary net device with device mac address Arend van Spriel
@ 2012-04-11  9:52 ` Arend van Spriel
  2012-04-11  9:52 ` [PATCH 5/9] brcm80211: fmac: postpone dongle RF enabling Arend van Spriel
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Arend van Spriel @ 2012-04-11  9:52 UTC (permalink / raw)
  To: John W. Linville; +Cc: Linux Wireless List, Franky Lin, Arend van Spriel

From: Franky Lin <frankyl@broadcom.com>

A header extension is introduced in the received frame to provide
extra space for dongle information. This won't affect current
supported chipset since the data_offset is 0. But it's necessary for
adding support for future chipset.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
 drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c
index b3e3b7f..a5c15ca 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c
@@ -421,6 +421,7 @@ int brcmf_proto_hdrpull(struct device *dev, int *ifidx,
 	pktbuf->priority = h->priority & BDC_PRIORITY_MASK;
 
 	skb_pull(pktbuf, BDC_HEADER_LEN);
+	skb_pull(pktbuf, h->data_offset << 2);
 
 	return 0;
 }
-- 
1.7.5.4



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 5/9] brcm80211: fmac: postpone dongle RF enabling.
  2012-04-11  9:52 [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver Arend van Spriel
                   ` (3 preceding siblings ...)
  2012-04-11  9:52 ` [PATCH 4/9] brcm80211: fmac: add frame header extension support Arend van Spriel
@ 2012-04-11  9:52 ` Arend van Spriel
  2012-04-11  9:52 ` [PATCH 6/9] brcm80211: fmac: clean up chip id table Arend van Spriel
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Arend van Spriel @ 2012-04-11  9:52 UTC (permalink / raw)
  To: John W. Linville; +Cc: Linux Wireless List, Franky Lin, Arend van Spriel

From: Franky Lin <frankyl@broadcom.com>

BRCMF_C_UP is the command that asks the firmware to enable RF of
dongle. Some firmware initialization steps must be performed during
RF is down. Postpone BRCMF_C_UP firing until brcmf_netdev_open get
called to ensure firmware have enough time to finish
initialization.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
 .../net/wireless/brcm80211/brcmfmac/dhd_common.c   |    4 ----
 .../net/wireless/brcm80211/brcmfmac/dhd_linux.c    |    5 +++++
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c
index 4187435..236cb9f 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c
@@ -799,7 +799,6 @@ int brcmf_c_preinit_dcmds(struct brcmf_pub *drvr)
 {
 	char iovbuf[BRCMF_EVENTING_MASK_LEN + 12];	/*  Room for
 				 "event_msgs" + '\0' + bitvec  */
-	uint up = 0;
 	char buf[128], *ptr;
 	u32 dongle_align = drvr->bus_if->align;
 	u32 glom = 0;
@@ -853,9 +852,6 @@ int brcmf_c_preinit_dcmds(struct brcmf_pub *drvr)
 	brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_VAR, iovbuf,
 				  sizeof(iovbuf));
 
-	/* Force STA UP */
-	brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_UP, (char *)&up, sizeof(up));
-
 	/* Setup event_msgs */
 	brcmf_c_mkiovar("event_msgs", drvr->eventmask, BRCMF_EVENTING_MASK_LEN,
 		      iovbuf, sizeof(iovbuf));
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
index 00b6270..8933f9b 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
@@ -799,6 +799,7 @@ static int brcmf_netdev_open(struct net_device *ndev)
 	struct brcmf_bus *bus_if = drvr->bus_if;
 	u32 toe_ol;
 	s32 ret = 0;
+	uint up = 0;
 
 	brcmf_dbg(TRACE, "ifidx %d\n", ifp->idx);
 
@@ -822,6 +823,10 @@ static int brcmf_netdev_open(struct net_device *ndev)
 			drvr->iflist[ifp->idx]->ndev->features &=
 				~NETIF_F_IP_CSUM;
 	}
+
+	/* make sure RF is ready for work */
+	brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_UP, (char *)&up, sizeof(up));
+
 	/* Allow transmit calls */
 	netif_start_queue(ndev);
 	drvr->bus_if->drvr_up = true;
-- 
1.7.5.4



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 6/9] brcm80211: fmac: clean up chip id table
  2012-04-11  9:52 [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver Arend van Spriel
                   ` (4 preceding siblings ...)
  2012-04-11  9:52 ` [PATCH 5/9] brcm80211: fmac: postpone dongle RF enabling Arend van Spriel
@ 2012-04-11  9:52 ` Arend van Spriel
  2012-04-11  9:52 ` [PATCH 7/9] brcm80211: smac: do not use US as fallback regulatory hint Arend van Spriel
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Arend van Spriel @ 2012-04-11  9:52 UTC (permalink / raw)
  To: John W. Linville; +Cc: Linux Wireless List, Franky Lin, Arend van Spriel

From: Franky Lin <frankyl@broadcom.com>

Remove unsupported chip ID and rearrange the list in alphabetical
order

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
 .../net/wireless/brcm80211/include/brcm_hw_ids.h   |   40 +++++--------------
 1 files changed, 11 insertions(+), 29 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h b/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
index 5fb17d5..333193f 100644
--- a/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
+++ b/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
@@ -17,17 +17,7 @@
 #ifndef	_BRCM_HW_IDS_H_
 #define	_BRCM_HW_IDS_H_
 
-#define	BCM4325_D11DUAL_ID	0x431b
-#define	BCM4325_D11G_ID		0x431c
-#define	BCM4325_D11A_ID		0x431d
-
-#define BCM4329_D11N2G_ID	0x432f	/* 4329 802.11n 2.4G device */
-#define BCM4329_D11N5G_ID	0x4330	/* 4329 802.11n 5G device */
-#define BCM4329_D11NDUAL_ID	0x432e
-
-#define BCM4319_D11N_ID		0x4337	/* 4319 802.11n dualband device */
-#define BCM4319_D11N2G_ID	0x4338	/* 4319 802.11n 2.4G device */
-#define BCM4319_D11N5G_ID	0x4339	/* 4319 802.11n 5G device */
+#define BCM4313_D11N2G_ID	0x4727	/* 4313 802.11n 2.4G device */
 
 #define BCM43224_D11N_ID	0x4353	/* 43224 802.11n dualband device */
 #define BCM43224_D11N_ID_VEN1	0x0576	/* Vendor specific 43224 802.11n db */
@@ -37,23 +27,15 @@
 #define BCM43236_D11N_ID	0x4346	/* 43236 802.11n dualband device */
 #define BCM43236_D11N2G_ID	0x4347	/* 43236 802.11n 2.4GHz device */
 
-#define BCM4313_D11N2G_ID	0x4727	/* 4313 802.11n 2.4G device */
-
-/* Chip IDs */
-#define BCM4313_CHIP_ID		0x4313	/* 4313 chip id */
-#define	BCM4319_CHIP_ID		0x4319	/* 4319 chip id */
-
-#define	BCM43224_CHIP_ID	43224	/* 43224 chipcommon chipid */
-#define	BCM43225_CHIP_ID	43225	/* 43225 chipcommon chipid */
-#define	BCM43421_CHIP_ID	43421	/* 43421 chipcommon chipid */
-#define	BCM43235_CHIP_ID	43235	/* 43235 chipcommon chipid */
-#define	BCM43236_CHIP_ID	43236	/* 43236 chipcommon chipid */
-#define	BCM43238_CHIP_ID	43238	/* 43238 chipcommon chipid */
-#define	BCM4329_CHIP_ID		0x4329	/* 4329 chipcommon chipid */
-#define	BCM4325_CHIP_ID		0x4325	/* 4325 chipcommon chipid */
-#define	BCM4331_CHIP_ID		0x4331	/* 4331 chipcommon chipid */
-#define BCM4336_CHIP_ID		0x4336	/* 4336 chipcommon chipid */
-#define BCM4330_CHIP_ID		0x4330	/* 4330 chipcommon chipid */
-#define BCM6362_CHIP_ID		0x6362	/* 6362 chipcommon chipid */
+/* Chipcommon Core Chip IDs */
+#define BCM4313_CHIP_ID		0x4313
+#define BCM43224_CHIP_ID	43224
+#define BCM43225_CHIP_ID	43225
+#define BCM43235_CHIP_ID	43235
+#define BCM43236_CHIP_ID	43236
+#define BCM43238_CHIP_ID	43238
+#define BCM4329_CHIP_ID		0x4329
+#define BCM4330_CHIP_ID		0x4330
+#define BCM4331_CHIP_ID		0x4331
 
 #endif				/* _BRCM_HW_IDS_H_ */
-- 
1.7.5.4



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 7/9] brcm80211: smac: do not use US as fallback regulatory hint
  2012-04-11  9:52 [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver Arend van Spriel
                   ` (5 preceding siblings ...)
  2012-04-11  9:52 ` [PATCH 6/9] brcm80211: fmac: clean up chip id table Arend van Spriel
@ 2012-04-11  9:52 ` Arend van Spriel
  2012-04-13 14:48   ` Seth Forshee
  2012-04-11  9:52 ` [PATCH 8/9] brcm80211: smac: only provide valid " Arend van Spriel
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 15+ messages in thread
From: Arend van Spriel @ 2012-04-11  9:52 UTC (permalink / raw)
  To: John W. Linville; +Cc: Linux Wireless List, Arend van Spriel

The brcmsmac driver provides the country code from sprom as a regulatory
hint to cfg80211. When brcmsmac does not find a country code entry in
the sprom it passes 'US' as regulatory hint. Better approach is to rely
on the world regulatory domain in cfg80211/crda.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
 .../net/wireless/brcm80211/brcmsmac/mac80211_if.c  |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
index 569ab8a..aa15558 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
@@ -1069,11 +1069,7 @@ static struct brcms_info *brcms_attach(struct bcma_device *pdev)
 		wiphy_err(wl->wiphy, "%s: ieee80211_register_hw failed, status"
 			  "%d\n", __func__, err);
 
-	if (wl->pub->srom_ccode[0])
-		err = brcms_set_hint(wl, wl->pub->srom_ccode);
-	else
-		err = brcms_set_hint(wl, "US");
-	if (err)
+	if (wl->pub->srom_ccode[0] && brcms_set_hint(wl, wl->pub->srom_ccode))
 		wiphy_err(wl->wiphy, "%s: regulatory_hint failed, status %d\n",
 			  __func__, err);
 
-- 
1.7.5.4



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 8/9] brcm80211: smac: only provide valid regulatory hint
  2012-04-11  9:52 [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver Arend van Spriel
                   ` (6 preceding siblings ...)
  2012-04-11  9:52 ` [PATCH 7/9] brcm80211: smac: do not use US as fallback regulatory hint Arend van Spriel
@ 2012-04-11  9:52 ` Arend van Spriel
  2012-04-11  9:52 ` [PATCH 9/9] brcm80211: smac: resume transmit fifo upon receiving frames Arend van Spriel
  2012-04-13 17:57 ` [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver John W. Linville
  9 siblings, 0 replies; 15+ messages in thread
From: Arend van Spriel @ 2012-04-11  9:52 UTC (permalink / raw)
  To: John W. Linville; +Cc: Linux Wireless List, Arend van Spriel

The driver provides a regulatory hint to cfg80211 as obtained from the
SPROM. Mostly, this will be a two-letter ISO country code. However, it
may obtain special country code similar to the world regulatory domain
as used in cfg80211. This patch avoids setting these special codes as
the hint is lost to cfg80211.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
 drivers/net/wireless/brcm80211/brcmsmac/channel.c |   36 ++++++++++++++++++++-
 1 files changed, 35 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmsmac/channel.c b/drivers/net/wireless/brcm80211/brcmsmac/channel.c
index 55e9f45..0efe88e 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/channel.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/channel.c
@@ -628,6 +628,40 @@ brcms_c_country_aggregate_map(struct brcms_cm_info *wlc_cm, const char *ccode,
 	return false;
 }
 
+/*
+ * Indicates whether the country provided is valid to pass
+ * to cfg80211 or not.
+ *
+ * returns true if valid; false if not.
+ */
+static bool brcms_c_country_valid(const char *ccode)
+{
+	/*
+	 * only allow ascii alpha uppercase for the first 2
+	 * chars.
+	 */
+	if (!((0x80 & ccode[0]) == 0 && ccode[0] >= 0x41 && ccode[0] <= 0x5A &&
+	      (0x80 & ccode[1]) == 0 && ccode[1] >= 0x41 && ccode[1] <= 0x5A &&
+	      ccode[2] == '\0'))
+		return false;
+
+	/*
+	 * do not match ISO 3166-1 user assigned country codes
+	 * that may be in the driver table
+	 */
+	if (!strcmp("AA", ccode) ||        /* AA */
+	    !strcmp("ZZ", ccode) ||        /* ZZ */
+	    ccode[0] == 'X' ||             /* XA - XZ */
+	    (ccode[0] == 'Q' &&            /* QM - QZ */
+	     (ccode[1] >= 'M' && ccode[1] <= 'Z')))
+		return false;
+
+	if (!strcmp("NA", ccode))
+		return false;
+
+	return true;
+}
+
 /* Lookup a country info structure from a null terminated country
  * abbreviation and regrev directly with no translation.
  */
@@ -1089,7 +1123,7 @@ struct brcms_cm_info *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc)
 
 	/* store the country code for passing up as a regulatory hint */
 	ccode = getvar(wlc->hw->sih, BRCMS_SROM_CCODE);
-	if (ccode)
+	if (ccode && brcms_c_country_valid(ccode))
 		strncpy(wlc->pub->srom_ccode, ccode, BRCM_CNTRY_BUF_SZ - 1);
 
 	/*
-- 
1.7.5.4



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 9/9] brcm80211: smac: resume transmit fifo upon receiving frames
  2012-04-11  9:52 [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver Arend van Spriel
                   ` (7 preceding siblings ...)
  2012-04-11  9:52 ` [PATCH 8/9] brcm80211: smac: only provide valid " Arend van Spriel
@ 2012-04-11  9:52 ` Arend van Spriel
  2012-04-13 17:57 ` [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver John W. Linville
  9 siblings, 0 replies; 15+ messages in thread
From: Arend van Spriel @ 2012-04-11  9:52 UTC (permalink / raw)
  To: John W. Linville; +Cc: Linux Wireless List, Arend van Spriel, stable

There have been reports about not being able to use access-points
on channel 12 and 13 or having connectivity issues when these channels
were part of the selected regulatory domain. Upon switching to these
channels the brcmsmac driver suspends the transmit dma fifos. This
patch resumes them upon handing over the first received beacon to
mac80211.

This patch is to be applied to the stable tree for kernel versions
3.2 and 3.3.

Cc: stable@vger.kernel.org
Tested-by: Francesco Saverio Schiavarelli <fschiava@libero.it>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
 drivers/net/wireless/brcm80211/brcmsmac/main.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
index 231ddf4..7083db7 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
@@ -7614,6 +7614,7 @@ brcms_c_recvctl(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
 {
 	int len_mpdu;
 	struct ieee80211_rx_status rx_status;
+	struct ieee80211_hdr *hdr;
 
 	memset(&rx_status, 0, sizeof(rx_status));
 	prep_mac80211_status(wlc, rxh, p, &rx_status);
@@ -7623,6 +7624,13 @@ brcms_c_recvctl(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
 	skb_pull(p, D11_PHY_HDR_LEN);
 	__skb_trim(p, len_mpdu);
 
+	/* unmute transmit */
+	if (wlc->hw->suspended_fifos) {
+		hdr = (struct ieee80211_hdr *)p->data;
+		if (ieee80211_is_beacon(hdr->frame_control))
+			brcms_b_mute(wlc->hw, false);
+	}
+
 	memcpy(IEEE80211_SKB_RXCB(p), &rx_status, sizeof(rx_status));
 	ieee80211_rx_irqsafe(wlc->pub->ieee_hw, p);
 }
-- 
1.7.5.4



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 7/9] brcm80211: smac: do not use US as fallback regulatory hint
  2012-04-11  9:52 ` [PATCH 7/9] brcm80211: smac: do not use US as fallback regulatory hint Arend van Spriel
@ 2012-04-13 14:48   ` Seth Forshee
  2012-04-16  8:20     ` Arend van Spriel
  0 siblings, 1 reply; 15+ messages in thread
From: Seth Forshee @ 2012-04-13 14:48 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: John W. Linville, Linux Wireless List

On Wed, Apr 11, 2012 at 11:52:49AM +0200, Arend van Spriel wrote:
> The brcmsmac driver provides the country code from sprom as a regulatory
> hint to cfg80211. When brcmsmac does not find a country code entry in
> the sprom it passes 'US' as regulatory hint. Better approach is to rely
> on the world regulatory domain in cfg80211/crda.
> 
> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
> Reviewed-by: Brett Rudley <brudley@broadcom.com>
> Signed-off-by: Arend van Spriel <arend@broadcom.com>
> ---
>  .../net/wireless/brcm80211/brcmsmac/mac80211_if.c  |    6 +-----
>  1 files changed, 1 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
> index 569ab8a..aa15558 100644
> --- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
> +++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
> @@ -1069,11 +1069,7 @@ static struct brcms_info *brcms_attach(struct bcma_device *pdev)
>  		wiphy_err(wl->wiphy, "%s: ieee80211_register_hw failed, status"
>  			  "%d\n", __func__, err);
>  
> -	if (wl->pub->srom_ccode[0])
> -		err = brcms_set_hint(wl, wl->pub->srom_ccode);
> -	else
> -		err = brcms_set_hint(wl, "US");
> -	if (err)
> +	if (wl->pub->srom_ccode[0] && brcms_set_hint(wl, wl->pub->srom_ccode))
>  		wiphy_err(wl->wiphy, "%s: regulatory_hint failed, status %d\n",
>  			  __func__, err);

err no longer holds the return value from brcms_set_hint(), so it
doesn't make sense to print it in the error message. The value will
always be 0.

Seth


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver
  2012-04-11  9:52 [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver Arend van Spriel
                   ` (8 preceding siblings ...)
  2012-04-11  9:52 ` [PATCH 9/9] brcm80211: smac: resume transmit fifo upon receiving frames Arend van Spriel
@ 2012-04-13 17:57 ` John W. Linville
  2012-04-16  8:51   ` Arend van Spriel
  9 siblings, 1 reply; 15+ messages in thread
From: John W. Linville @ 2012-04-13 17:57 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: Linux Wireless List

On Wed, Apr 11, 2012 at 11:52:42AM +0200, Arend van Spriel wrote:
> The series contains a number of patches to resolve some issues found
> in our brcmfmac regression testing. The brcmsmac changes are adressing
> a problem reported by several people within the community. Last patch
> in this series has been marked for stable tree.
> 
> This series is based on wireless-next repository and depends on the
> following patch message:
> 
> Message-ID: <1334098954-7556-2-git-send-email-jim.cromie@gmail.com>

In general, when mixing fixes and features/updates into a single
series then the fixes should come at the beginning of the series.
This helps to avoid dependencies on non-fix patches.

I'll try to apply patch 9 to the wireless tree, and if that works I
won't complain about it... :-)

John
-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 7/9] brcm80211: smac: do not use US as fallback regulatory hint
  2012-04-13 14:48   ` Seth Forshee
@ 2012-04-16  8:20     ` Arend van Spriel
  0 siblings, 0 replies; 15+ messages in thread
From: Arend van Spriel @ 2012-04-16  8:20 UTC (permalink / raw)
  To: Seth Forshee; +Cc: John W. Linville, Linux Wireless List

On 04/13/2012 04:48 PM, Seth Forshee wrote:
> On Wed, Apr 11, 2012 at 11:52:49AM +0200, Arend van Spriel wrote:
>> The brcmsmac driver provides the country code from sprom as a regulatory
>> hint to cfg80211. When brcmsmac does not find a country code entry in
>> the sprom it passes 'US' as regulatory hint. Better approach is to rely
>> on the world regulatory domain in cfg80211/crda.
>>
>> Reviewed-by: Pieter-Paul Giesberts<pieterpg@broadcom.com>
>> Reviewed-by: Brett Rudley<brudley@broadcom.com>
>> Signed-off-by: Arend van Spriel<arend@broadcom.com>
>> ---
>>   .../net/wireless/brcm80211/brcmsmac/mac80211_if.c  |    6 +-----
>>   1 files changed, 1 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
>> index 569ab8a..aa15558 100644
>> --- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
>> +++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
>> @@ -1069,11 +1069,7 @@ static struct brcms_info *brcms_attach(struct bcma_device *pdev)
>>   		wiphy_err(wl->wiphy, "%s: ieee80211_register_hw failed, status"
>>   			  "%d\n", __func__, err);
>>
>> -	if (wl->pub->srom_ccode[0])
>> -		err = brcms_set_hint(wl, wl->pub->srom_ccode);
>> -	else
>> -		err = brcms_set_hint(wl, "US");
>> -	if (err)
>> +	if (wl->pub->srom_ccode[0]&&  brcms_set_hint(wl, wl->pub->srom_ccode))
>>   		wiphy_err(wl->wiphy, "%s: regulatory_hint failed, status %d\n",
>>   			  __func__, err);
>
> err no longer holds the return value from brcms_set_hint(), so it
> doesn't make sense to print it in the error message. The value will
> always be 0.
>
> Seth
>
>

Thanks, Seth

John already applied this patch so I will fix it in a separate one.

Gr. AvS


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver
  2012-04-13 17:57 ` [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver John W. Linville
@ 2012-04-16  8:51   ` Arend van Spriel
  2012-04-16 17:18     ` John W. Linville
  0 siblings, 1 reply; 15+ messages in thread
From: Arend van Spriel @ 2012-04-16  8:51 UTC (permalink / raw)
  To: John W. Linville; +Cc: Linux Wireless List, Greg KH

On 04/13/2012 07:57 PM, John W. Linville wrote:
> On Wed, Apr 11, 2012 at 11:52:42AM +0200, Arend van Spriel wrote:
>
> In general, when mixing fixes and features/updates into a single
> series then the fixes should come at the beginning of the series.
> This helps to avoid dependencies on non-fix patches.
>
> I'll try to apply patch 9 to the wireless tree, and if that works I
> won't complain about it... :-)
>
> John

Like mentioned on collaboration summit, we may need a bit more education 
on how to deal with stable fixes. I tagged the patch with cc to stable, 
but not sure if that is the correct way to do it. The stable rules are 
written in a generic way so I want know how the picture looks like when 
moving patches upstream via a maintainer tree.

So here is my understanding:

1. submit patch without CC'ing stable against your wireless tree.
2. patch moves upstream to Dave's net tree.
3. patch moves further upstream to Linus' tree.
4. submit patch to stable with upstream commit id.

Is adding the CC to stable in step 1. a shortcut or is step 4. still 
necessary in that case?

Gr. AvS


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver
  2012-04-16  8:51   ` Arend van Spriel
@ 2012-04-16 17:18     ` John W. Linville
  0 siblings, 0 replies; 15+ messages in thread
From: John W. Linville @ 2012-04-16 17:18 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: Linux Wireless List, Greg KH

On Mon, Apr 16, 2012 at 10:51:05AM +0200, Arend van Spriel wrote:
> On 04/13/2012 07:57 PM, John W. Linville wrote:
> >On Wed, Apr 11, 2012 at 11:52:42AM +0200, Arend van Spriel wrote:
> >
> >In general, when mixing fixes and features/updates into a single
> >series then the fixes should come at the beginning of the series.
> >This helps to avoid dependencies on non-fix patches.
> >
> >I'll try to apply patch 9 to the wireless tree, and if that works I
> >won't complain about it... :-)
> >
> >John
> 
> Like mentioned on collaboration summit, we may need a bit more
> education on how to deal with stable fixes. I tagged the patch with
> cc to stable, but not sure if that is the correct way to do it. The
> stable rules are written in a generic way so I want know how the
> picture looks like when moving patches upstream via a maintainer
> tree.
> 
> So here is my understanding:
> 
> 1. submit patch without CC'ing stable against your wireless tree.
> 2. patch moves upstream to Dave's net tree.
> 3. patch moves further upstream to Linus' tree.
> 4. submit patch to stable with upstream commit id.
> 
> Is adding the CC to stable in step 1. a shortcut or is step 4. still
> necessary in that case?

Adding the CC in Step 1 should be sufficient.  Step 4 is required if
the CC is missed in Step 1.

Hth!

John
-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2012-04-16 17:32 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-11  9:52 [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver Arend van Spriel
2012-04-11  9:52 ` [PATCH 1/9] brcm80211: fmac: make brcmf_net_attach() static Arend van Spriel
2012-04-11  9:52 ` [PATCH 2/9] brcm80211: fmac: remove primary mac address handling from brcmf_net_attach Arend van Spriel
2012-04-11  9:52 ` [PATCH 3/9] brcm80211: fmac: register primary net device with device mac address Arend van Spriel
2012-04-11  9:52 ` [PATCH 4/9] brcm80211: fmac: add frame header extension support Arend van Spriel
2012-04-11  9:52 ` [PATCH 5/9] brcm80211: fmac: postpone dongle RF enabling Arend van Spriel
2012-04-11  9:52 ` [PATCH 6/9] brcm80211: fmac: clean up chip id table Arend van Spriel
2012-04-11  9:52 ` [PATCH 7/9] brcm80211: smac: do not use US as fallback regulatory hint Arend van Spriel
2012-04-13 14:48   ` Seth Forshee
2012-04-16  8:20     ` Arend van Spriel
2012-04-11  9:52 ` [PATCH 8/9] brcm80211: smac: only provide valid " Arend van Spriel
2012-04-11  9:52 ` [PATCH 9/9] brcm80211: smac: resume transmit fifo upon receiving frames Arend van Spriel
2012-04-13 17:57 ` [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver John W. Linville
2012-04-16  8:51   ` Arend van Spriel
2012-04-16 17:18     ` John W. Linville

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.