All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Michael Walle <michael@walle.cc>
Cc: etnaviv@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org,
	"Lukas F . Hartmann" <lukas@mntre.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Christian Gmeiner <christian.gmeiner@gmail.com>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>
Subject: Re: [PATCH 3/3] drm/etnaviv: use a 32 bit mask as coherent DMA mask
Date: Thu, 26 Aug 2021 13:19:17 +0100	[thread overview]
Message-ID: <20210826121917.GS22278@shell.armlinux.org.uk> (raw)
In-Reply-To: <20210826121006.685257-4-michael@walle.cc>

On Thu, Aug 26, 2021 at 02:10:06PM +0200, Michael Walle wrote:
> -	pdev->dev.coherent_dma_mask = DMA_BIT_MASK(40);
> -	pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask;
> +	/*
> +	 * PTA and MTLB can have 40 bit base addresses, but
> +	 * unfortunately, an entry in the MTLB can only point to a
> +	 * 32 bit base address of a STLB. Moreover, to initialize the
> +	 * MMU we need a command buffer with a 32 bit address because
> +	 * without an MMU there is only an indentity mapping between
> +	 * the internal 32 bit addresses and the bus addresses.
> +	 *
> +	 * To make things easy, we set the dma_coherent_mask to 32
> +	 * bit to make sure we are allocating the command buffers and
> +	 * TLBs in the lower 4 GiB address space.
> +	 */
> +	if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(40)) ||
> +	    dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32))) {
> +		dev_dbg(&pdev->dev, "No suitable DMA available\n");
> +		return -ENODEV;
> +	}

This makes no sense. In the previous patch, you initialised
pdev->dev.dma_mask ot point at the coherent mask, implying that
it wasn't already set - for which dma_coerce_mask_and_coherent()
should be used. Now you're just calling dma_set_mask(), which will
fail if pdev->dev.dma_mask hasn't already been set to point at
something.

If it's already been initialised to point at something, then you
shouldn't be overwriting it in the driver, and you should've used
dma_set_mask_and_coherent() in your previous patch.

Confused.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

  reply	other threads:[~2021-08-26 12:25 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-26 12:10 [PATCH 0/3] drm/etnaviv: IOMMU related fixes Michael Walle
2021-08-26 12:10 ` [PATCH 1/3] drm/etnaviv: use PLATFORM_DEVID_NONE Michael Walle
2021-08-26 12:59   ` Christian Gmeiner
2021-08-26 12:10 ` [PATCH 2/3] drm/etnaviv: fix dma configuration of the virtual device Michael Walle
2021-08-26 12:14   ` Russell King (Oracle)
2021-08-26 12:17     ` Michael Walle
2021-08-26 15:00   ` Robin Murphy
2021-08-26 15:17     ` Lucas Stach
2021-08-26 20:15       ` Robin Murphy
2021-08-26 12:10 ` [PATCH 3/3] drm/etnaviv: use a 32 bit mask as coherent DMA mask Michael Walle
2021-08-26 12:19   ` Russell King (Oracle) [this message]
2021-08-26 12:25     ` Michael Walle
2021-08-26 12:43   ` Michael Walle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210826121917.GS22278@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=airlied@linux.ie \
    --cc=christian.gmeiner@gmail.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=etnaviv@lists.freedesktop.org \
    --cc=l.stach@pengutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lukas@mntre.com \
    --cc=marek.vasut@gmail.com \
    --cc=michael@walle.cc \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.