[PATCH] staging: brcm80211: simplify pci_config_read/write osl routines.

Greg KH greg at kroah.com
Sat Nov 13 00:15:26 UTC 2010


On Fri, Nov 12, 2010 at 03:28:30PM -0800, Brett Rudley wrote:
> Start simplifying osl with goal of purging it entirely.
> 
> Signed-off-by: Brett Rudley <brudley at broadcom.com>
> ---
>  drivers/staging/brcm80211/util/linux_osl.c |   47 +++-------------------------
>  1 files changed, 5 insertions(+), 42 deletions(-)
> 
> diff --git a/drivers/staging/brcm80211/util/linux_osl.c b/drivers/staging/brcm80211/util/linux_osl.c
> index 7211f8a..461ecba 100644
> --- a/drivers/staging/brcm80211/util/linux_osl.c
> +++ b/drivers/staging/brcm80211/util/linux_osl.c
> @@ -30,8 +30,6 @@
>  #include <pcicfg.h>
>  
>  
> -#define PCI_CFG_RETRY 		10
> -
>  #define OS_HANDLE_MAGIC		0x1234abcd	/* Magic # to recognise osh */
>  #define BCM_MEM_FILENAME_LEN 	24	/* Mem. filename length */
>  
> @@ -139,51 +137,16 @@ void BCMFASTPATH osl_pktfree(osl_t *osh, void *p, bool send)
>  
>  u32 osl_pci_read_config(osl_t *osh, uint offset, uint size)
>  {
> -	uint val = 0;
> -	uint retry = PCI_CFG_RETRY;
> -
> -	ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
> -
> -	/* only 4byte access supported */
> -	ASSERT(size == 4);
> -
> -	do {
> -		pci_read_config_dword(osh->pdev, offset, &val);
> -		if (val != 0xffffffff)
> -			break;
> -	} while (retry--);
> -
> -#ifdef BCMDBG
> -	if (retry < PCI_CFG_RETRY)
> -		printk("PCI CONFIG READ access to %d required %d retries\n",
> -		       offset, (PCI_CFG_RETRY - retry));
> -#endif				/* BCMDBG */
> -
> +	uint val;
> +	pci_read_config_dword(osh->pdev, offset, &val);
>  	return val;

Heh, that's funny.  Someone went through a lot of work for no reason.

>  }
>  
>  void osl_pci_write_config(osl_t *osh, uint offset, uint size, uint val)
>  {
> -	uint retry = PCI_CFG_RETRY;
> -
> -	ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
> -
> -	/* only 4byte access supported */
> -	ASSERT(size == 4);
> -
> -	do {
> -		pci_write_config_dword(osh->pdev, offset, val);
> -		if (offset != PCI_BAR0_WIN)
> -			break;
> -		if (osl_pci_read_config(osh, offset, size) == val)
> -			break;
> -	} while (retry--);
> -
> -#if defined(BCMDBG) && !defined(BRCM_FULLMAC)
> -	if (retry < PCI_CFG_RETRY)
> -		printk("PCI CONFIG WRITE access to %d required %d retries\n",
> -		       offset, (PCI_CFG_RETRY - retry));
> -#endif				/* BCMDBG */
> +	pci_write_config_dword(osh->pdev, offset, val);
> +	if (offset == PCI_BAR0_WIN)
> +		ASSERT(osl_pci_read_config(osh, offset, size) == val);

Do you really want to read every write that happens here for one
specific offset?  Why?

And ASSERTs should be removed anyway, right?

I'll queue up the patch.

thanks,

greg k-h



More information about the devel mailing list