mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 14:04:26 -04:00 
			
		
		
		
	It was described by Arend as: > This series is intended for 4.17 and includes following: > > * rework bus layer attach code. > * remove duplicate variable declaration. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
		
			
				
	
	
		
			191 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			191 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From de2a3027f6f15e2f6558dc4d178282ccc1f054db Mon Sep 17 00:00:00 2001
 | |
| From: Arend Van Spriel <arend.vanspriel@broadcom.com>
 | |
| Date: Tue, 20 Feb 2018 00:14:23 +0100
 | |
| Subject: [PATCH] brcmfmac: remove brcmf_bus_started() from bus api
 | |
| 
 | |
| No longer needed to call this in bus layer so make it static and call
 | |
| it in the last phase of brcmf_attach() instead.
 | |
| 
 | |
| Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
 | |
| Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
 | |
| Reviewed-by: Franky Lin <franky.lin@broadcom.com>
 | |
| Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
 | |
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
 | |
| ---
 | |
|  .../net/wireless/broadcom/brcm80211/brcmfmac/bus.h |  1 -
 | |
|  .../wireless/broadcom/brcm80211/brcmfmac/core.c    | 14 +++++++----
 | |
|  .../wireless/broadcom/brcm80211/brcmfmac/pcie.c    | 20 +---------------
 | |
|  .../wireless/broadcom/brcm80211/brcmfmac/sdio.c    | 10 ++------
 | |
|  .../net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 28 ++++------------------
 | |
|  5 files changed, 16 insertions(+), 57 deletions(-)
 | |
| 
 | |
| --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
 | |
| +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
 | |
| @@ -253,7 +253,6 @@ void brcmf_dev_reset(struct device *dev)
 | |
|  /* Configure the "global" bus state used by upper layers */
 | |
|  void brcmf_bus_change_state(struct brcmf_bus *bus, enum brcmf_bus_state state);
 | |
|  
 | |
| -int brcmf_bus_started(struct device *dev);
 | |
|  s32 brcmf_iovar_data_set(struct device *dev, char *name, void *data, u32 len);
 | |
|  void brcmf_bus_add_txhdrlen(struct device *dev, uint len);
 | |
|  
 | |
| --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
 | |
| +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
 | |
| @@ -1022,11 +1022,10 @@ static int brcmf_revinfo_read(struct seq
 | |
|  	return 0;
 | |
|  }
 | |
|  
 | |
| -int brcmf_bus_started(struct device *dev)
 | |
| +static int brcmf_bus_started(struct brcmf_pub *drvr)
 | |
|  {
 | |
|  	int ret = -1;
 | |
| -	struct brcmf_bus *bus_if = dev_get_drvdata(dev);
 | |
| -	struct brcmf_pub *drvr = bus_if->drvr;
 | |
| +	struct brcmf_bus *bus_if = drvr->bus_if;
 | |
|  	struct brcmf_if *ifp;
 | |
|  	struct brcmf_if *p2p_ifp;
 | |
|  
 | |
| @@ -1043,7 +1042,7 @@ int brcmf_bus_started(struct device *dev
 | |
|  	brcmf_bus_change_state(bus_if, BRCMF_BUS_UP);
 | |
|  
 | |
|  	/* do bus specific preinit here */
 | |
| -	ret = brcmf_bus_preinit(ifp->drvr->bus_if);
 | |
| +	ret = brcmf_bus_preinit(bus_if);
 | |
|  	if (ret < 0)
 | |
|  		goto fail;
 | |
|  
 | |
| @@ -1163,7 +1162,12 @@ int brcmf_attach(struct device *dev, str
 | |
|  	/* attach firmware event handler */
 | |
|  	brcmf_fweh_attach(drvr);
 | |
|  
 | |
| -	return ret;
 | |
| +	ret = brcmf_bus_started(drvr);
 | |
| +	if (ret != 0) {
 | |
| +		brcmf_err("dongle is not responding: err=%d\n", ret);
 | |
| +		goto fail;
 | |
| +	}
 | |
| +	return 0;
 | |
|  
 | |
|  fail:
 | |
|  	brcmf_detach(dev);
 | |
| --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
 | |
| +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
 | |
| @@ -1581,24 +1581,6 @@ static void brcmf_pcie_release_resource(
 | |
|  }
 | |
|  
 | |
|  
 | |
| -static int brcmf_pcie_attach_bus(struct brcmf_pciedev_info *devinfo)
 | |
| -{
 | |
| -	int ret;
 | |
| -
 | |
| -	/* Attach to the common driver interface */
 | |
| -	ret = brcmf_attach(&devinfo->pdev->dev, devinfo->settings);
 | |
| -	if (ret) {
 | |
| -		brcmf_err("brcmf_attach failed\n");
 | |
| -	} else {
 | |
| -		ret = brcmf_bus_started(&devinfo->pdev->dev);
 | |
| -		if (ret)
 | |
| -			brcmf_err("dongle is not responding\n");
 | |
| -	}
 | |
| -
 | |
| -	return ret;
 | |
| -}
 | |
| -
 | |
| -
 | |
|  static u32 brcmf_pcie_buscore_prep_addr(const struct pci_dev *pdev, u32 addr)
 | |
|  {
 | |
|  	u32 ret_addr;
 | |
| @@ -1735,7 +1717,7 @@ static void brcmf_pcie_setup(struct devi
 | |
|  	init_waitqueue_head(&devinfo->mbdata_resp_wait);
 | |
|  
 | |
|  	brcmf_pcie_intr_enable(devinfo);
 | |
| -	if (brcmf_pcie_attach_bus(devinfo) == 0)
 | |
| +	if (brcmf_attach(&devinfo->pdev->dev, devinfo->settings) == 0)
 | |
|  		return;
 | |
|  
 | |
|  	brcmf_pcie_bus_console_read(devinfo);
 | |
| --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
 | |
| +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
 | |
| @@ -3422,6 +3422,8 @@ static int brcmf_sdio_bus_preinit(struct
 | |
|  	if (bus->rxbuf)
 | |
|  		bus->rxblen = value;
 | |
|  
 | |
| +	brcmf_sdio_debugfs_create(bus);
 | |
| +
 | |
|  	/* the commands below use the terms tx and rx from
 | |
|  	 * a device perspective, ie. bus:txglom affects the
 | |
|  	 * bus transfers from device to host.
 | |
| @@ -4136,14 +4138,6 @@ static void brcmf_sdio_firmware_callback
 | |
|  		goto fail;
 | |
|  	}
 | |
|  
 | |
| -	brcmf_sdio_debugfs_create(bus);
 | |
| -
 | |
| -	err = brcmf_bus_started(dev);
 | |
| -	if (err != 0) {
 | |
| -		brcmf_err("dongle is not responding\n");
 | |
| -		goto fail;
 | |
| -	}
 | |
| -
 | |
|  	/* ready */
 | |
|  	return;
 | |
|  
 | |
| --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
 | |
| +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
 | |
| @@ -1155,27 +1155,6 @@ static const struct brcmf_bus_ops brcmf_
 | |
|  	.get_fwname = brcmf_usb_get_fwname,
 | |
|  };
 | |
|  
 | |
| -static int brcmf_usb_bus_setup(struct brcmf_usbdev_info *devinfo)
 | |
| -{
 | |
| -	int ret;
 | |
| -
 | |
| -	/* Attach to the common driver interface */
 | |
| -	ret = brcmf_attach(devinfo->dev, devinfo->settings);
 | |
| -	if (ret) {
 | |
| -		brcmf_err("brcmf_attach failed\n");
 | |
| -		return ret;
 | |
| -	}
 | |
| -
 | |
| -	ret = brcmf_bus_started(devinfo->dev);
 | |
| -	if (ret)
 | |
| -		goto fail;
 | |
| -
 | |
| -	return 0;
 | |
| -fail:
 | |
| -	brcmf_detach(devinfo->dev);
 | |
| -	return ret;
 | |
| -}
 | |
| -
 | |
|  static void brcmf_usb_probe_phase2(struct device *dev, int ret,
 | |
|  				   const struct firmware *fw,
 | |
|  				   void *nvram, u32 nvlen)
 | |
| @@ -1203,7 +1182,8 @@ static void brcmf_usb_probe_phase2(struc
 | |
|  	if (ret)
 | |
|  		goto error;
 | |
|  
 | |
| -	ret = brcmf_usb_bus_setup(devinfo);
 | |
| +	/* Attach to the common driver interface */
 | |
| +	ret = brcmf_attach(devinfo->dev, devinfo->settings);
 | |
|  	if (ret)
 | |
|  		goto error;
 | |
|  
 | |
| @@ -1253,7 +1233,7 @@ static int brcmf_usb_probe_cb(struct brc
 | |
|  	}
 | |
|  
 | |
|  	if (!brcmf_usb_dlneeded(devinfo)) {
 | |
| -		ret = brcmf_usb_bus_setup(devinfo);
 | |
| +		ret = brcmf_attach(devinfo->dev, devinfo->settings);
 | |
|  		if (ret)
 | |
|  			goto fail;
 | |
|  		/* we are done */
 | |
| @@ -1456,7 +1436,7 @@ static int brcmf_usb_resume(struct usb_i
 | |
|  
 | |
|  	brcmf_dbg(USB, "Enter\n");
 | |
|  	if (!devinfo->wowl_enabled)
 | |
| -		return brcmf_usb_bus_setup(devinfo);
 | |
| +		return brcmf_attach(devinfo->dev, devinfo->settings);
 | |
|  
 | |
|  	devinfo->bus_pub.state = BRCMFMAC_USB_STATE_UP;
 | |
|  	brcmf_usb_rx_fill_all(devinfo);
 |