lkml.org 
[lkml]   [2019]   [Jun]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH 1/4] b43legacy: remove b43legacy_dma_set_mask
From
Date
On 6/25/19 5:29 AM, Christoph Hellwig wrote:
> These days drivers are not required to fallback to smaller DMA masks,
> but can just set the largest mask they support, removing the need for
> this trial and error logic.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> drivers/net/wireless/broadcom/b43legacy/dma.c | 39 +------------------
> 1 file changed, 1 insertion(+), 38 deletions(-)

The patches work for PPC32 for both b43legacy and b43.

Tested-by: Larry Finger <Larry.Finger@lwfinger.net>

Thanks,

Larry

>
> diff --git a/drivers/net/wireless/broadcom/b43legacy/dma.c b/drivers/net/wireless/broadcom/b43legacy/dma.c
> index 2ce1537d983c..0c2de20622e3 100644
> --- a/drivers/net/wireless/broadcom/b43legacy/dma.c
> +++ b/drivers/net/wireless/broadcom/b43legacy/dma.c
> @@ -797,43 +797,6 @@ void b43legacy_dma_free(struct b43legacy_wldev *dev)
> dma->tx_ring0 = NULL;
> }
>
> -static int b43legacy_dma_set_mask(struct b43legacy_wldev *dev, u64 mask)
> -{
> - u64 orig_mask = mask;
> - bool fallback = false;
> - int err;
> -
> - /* Try to set the DMA mask. If it fails, try falling back to a
> - * lower mask, as we can always also support a lower one. */
> - while (1) {
> - err = dma_set_mask_and_coherent(dev->dev->dma_dev, mask);
> - if (!err)
> - break;
> - if (mask == DMA_BIT_MASK(64)) {
> - mask = DMA_BIT_MASK(32);
> - fallback = true;
> - continue;
> - }
> - if (mask == DMA_BIT_MASK(32)) {
> - mask = DMA_BIT_MASK(30);
> - fallback = true;
> - continue;
> - }
> - b43legacyerr(dev->wl, "The machine/kernel does not support "
> - "the required %u-bit DMA mask\n",
> - (unsigned int)dma_mask_to_engine_type(orig_mask));
> - return -EOPNOTSUPP;
> - }
> - if (fallback) {
> - b43legacyinfo(dev->wl, "DMA mask fallback from %u-bit to %u-"
> - "bit\n",
> - (unsigned int)dma_mask_to_engine_type(orig_mask),
> - (unsigned int)dma_mask_to_engine_type(mask));
> - }
> -
> - return 0;
> -}
> -
> int b43legacy_dma_init(struct b43legacy_wldev *dev)
> {
> struct b43legacy_dma *dma = &dev->dma;
> @@ -844,7 +807,7 @@ int b43legacy_dma_init(struct b43legacy_wldev *dev)
>
> dmamask = supported_dma_mask(dev);
> type = dma_mask_to_engine_type(dmamask);
> - err = b43legacy_dma_set_mask(dev, dmamask);
> + err = dma_set_mask_and_coherent(dev->dev->dma_dev, dmamask);
> if (err) {
> #ifdef CONFIG_B43LEGACY_PIO
> b43legacywarn(dev->wl, "DMA for this device not supported. "
>

\
 
 \ /
  Last update: 2019-06-25 23:47    [W:0.042 / U:13.240 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site