linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: inki.dae@samsung.com (Inki Dae)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] exynos-drm: Fix display manager failing to start without IOMMU problem
Date: Thu, 11 Aug 2016 07:59:57 +0900	[thread overview]
Message-ID: <57ABB1ED.1080301@samsung.com> (raw)
In-Reply-To: <1470850251-9150-1-git-send-email-shuahkh@osg.samsung.com>

Hi Shuah,

2016? 08? 11? 02:30? Shuah Khan ?(?) ? ?:
> Fix exynos_drm_gem_create_ioctl() attempts to allocate non-contiguous GEM
> memory without IOMMU. In this case, there is no point in attempting to

DRM gem can be used for Non-DRM drivers such as GPU, V4L2 based Multimedia device and other DMA devices.
Even though IOMMU support is disabled, other framework based DMA drivers can use IOMMU - i.e., GPU driver -
and they can use non-contiguous GEM buffer through UMM. (DMABUF) 

So GEM allocation type is not dependent on IOMMU.

Thanks,
Inki Dae

> allocate non-contiguous memory, only to return error during the next step
> from exynos_drm_framebuffer_init() which leads to display manager failing
> to start.
> 
> Check if non-contiguous GEM memory is requested without IOMMU. If so,
> allocate contiguous GEM memory to help display manager start.
> 
> Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
> ---
>  drivers/gpu/drm/exynos/exynos_drm_gem.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c
> index 4c4cb0e..4719116 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
> @@ -266,6 +266,20 @@ int exynos_drm_gem_create_ioctl(struct drm_device *dev, void *data,
>  	struct exynos_drm_gem *exynos_gem;
>  	int ret;
>  
> +	/*
> +	 * Check if non-contiguous GEM memory is requested without IOMMU.
> +	 * If so, allocate contiguous GEM memory.
> +	 *
> +	 * There is no point in attempting to allocate non-contiguous memory,
> +	 * only to return error from exynos_drm_framebuffer_init() which leads
> +	 * to display manager failing to start.
> +	*/
> +	if (!is_drm_iommu_supported(dev) &&
> +	    (args->flags & EXYNOS_BO_NONCONTIG)) {
> +		args->flags &= ~EXYNOS_BO_NONCONTIG;
> +		args->flags |= EXYNOS_BO_CONTIG;
> +	}
> +
>  	exynos_gem = exynos_drm_gem_create(dev, args->flags, args->size);
>  	if (IS_ERR(exynos_gem))
>  		return PTR_ERR(exynos_gem);
> 

  parent reply	other threads:[~2016-08-10 22:59 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20160810214111epcas1p4dd2a581353b550a1992fc7695e846da7@epcas1p4.samsung.com>
2016-08-10 17:30 ` [PATCH] exynos-drm: Fix display manager failing to start without IOMMU problem Shuah Khan
2016-08-10 17:41   ` Javier Martinez Canillas
2016-08-10 22:59   ` Inki Dae [this message]
2016-08-10 23:05     ` Shuah Khan
2016-08-12 17:28       ` Shuah Khan
2016-08-12 17:52         ` Shuah Khan
2016-08-16  4:40           ` Inki Dae
2016-10-12 23:11             ` Shuah Khan
2016-10-12 23:15               ` Shuah Khan
     [not found]                 ` <2173cc13-7c77-1a38-501d-2c0f522ff5d5@osg.samsung.com>
2016-10-19 16:23                   ` exynos-drm: display manager fails " Tobias Jakobi
2016-10-19 22:56                     ` Shuah Khan
2016-10-19 14:16               ` [PATCH] exynos-drm: Fix display manager failing " Inki Dae
2016-10-19 22:27                 ` Shuah Khan
2016-10-25 16:37                   ` Shuah Khan
2016-10-25 17:57                     ` Tobias Jakobi
2016-10-25 18:53                       ` Shuah Khan

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=57ABB1ED.1080301@samsung.com \
    --to=inki.dae@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).