Received: by 10.223.185.116 with SMTP id b49csp402562wrg; Tue, 20 Feb 2018 01:05:54 -0800 (PST) X-Google-Smtp-Source: AH8x227/HeuG6bOLciJZApVGhRDJ1oTunnStR0/VFCTJI9IgTTSNPOLDe2eMvsH6jf3ZHzjPJ2Ce X-Received: by 10.101.81.2 with SMTP id f2mr14434414pgq.361.1519117553992; Tue, 20 Feb 2018 01:05:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519117553; cv=none; d=google.com; s=arc-20160816; b=IuYbOPQFusaq2GxkMtDP91aMBsp50PXtQQ8s2LjiBIiaVoAEG9G0d6CTsbXQErv4Go ABq9Yv6hJXPmG79kEJE5kfUnx2rBNhm6YWCiUO0J2YrFV871ey1TLBdFtPWXKZh15miM Bo66y8ODJnaeL+5U5H9hlWXhRG6vbaGvn2qn74tjnjNK/podiFAPKl8mqmHWMcu2sH+g zQuScPGDrPa0OEoWA+3jiGvxPWPAAyQ4SYjUpMOdmJc7Y3yZAM5DAgzXk7IzCZ4A5w4E qMur8Mvm+Dz5of5k4Vzn0GXndswIxHnRtr+MMHYJaVyjsNtoyStwfXAXipmEaf+vTOMU 3B9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:from:references:to:subject:dkim-signature :arc-authentication-results; bh=YsoprI2MrxDBwKVO5ssL0bR9g8XTZitmknDb4DCAVBM=; b=pYhCWgACwIftO5dhNE7EsuPsw2HwxxSXqLq2c4zXi7Lrfwa1LJ5DVKxyGYigfYnc41 ZVuwmFQ1cQXJTrqoSXhziNRKaiYannyg49wG7axTTjYnyQURSDEz87oi3VgeenGKuajX R8DJk0Lg8NR+K9pdnCF/CxpwJ3bQRLYSTDAin+QPAMvHTDUzsklbb7ksijBAtLLRWSAM cZORvyGExXCzscLQ/ufZ0ZR6zLV5KxkDVuR1ENkyMx4hSp3o6WiKhrToNxBfXSGD97aQ zt/7LLDE3EjaBd5LtqLYI6FrbFaiQM6gBNSnemO6a5i5wfhLALIKx6ZiTbBBEmC9YzVS Ntyg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=QtO0hrWm; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p9-v6si7124619plo.538.2018.02.20.01.05.39; Tue, 20 Feb 2018 01:05:53 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=QtO0hrWm; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751252AbeBTJFA (ORCPT + 99 others); Tue, 20 Feb 2018 04:05:00 -0500 Received: from mail-wr0-f194.google.com ([209.85.128.194]:40613 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750998AbeBTJE5 (ORCPT ); Tue, 20 Feb 2018 04:04:57 -0500 Received: by mail-wr0-f194.google.com with SMTP id o76so12210604wrb.7 for ; Tue, 20 Feb 2018 01:04:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:organization:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=YsoprI2MrxDBwKVO5ssL0bR9g8XTZitmknDb4DCAVBM=; b=QtO0hrWmiE6SQomz1maldIxV74gNLsUx3h/9EllTG2H8WSD9DNGH3HCgI2yOUT2S1a tThOZXOWKvSzLvSsnanEDnGys+F5DslsA61jkAzVRTsC6n917BGpLWtvQwuvHbyIXUHg rMBaV4ZtGd8Mw8RjyFsHVQf5tJ5qDdmqWi9dx0ERyY0NmoCkkNyCNtjwWk2jesyJCNIy pQJtGdmJKlf37WnuWlDySIJG3m1QPHHMk7df5OqTv5KVwz3M+4GnLXRaEktBlvkHsuoe fQiHwXmMIvJ9bbnzSsWv9yX7Y806nYKeeT+6n1lDrrlDKrTPgnbVqYifEzolOjhS1PSI Xdlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=YsoprI2MrxDBwKVO5ssL0bR9g8XTZitmknDb4DCAVBM=; b=Oq6ClJojDDmvO7LZgD362DWDwy3I/Of9RkQ/SRUCsV2CACpur1A+WC2sTDi1rfDM11 HKYCE3MnpOHBULuvCTXm1buroNM5VZthCs//R/R6Wh4o6XfydoEJgCc7O8bAWwctRTia RiiyXVER4lNLXVKyfcwns5EDXmwK2GphxMAXkpgop1XL7Vv4YrJOK4hP6txjU2NN60Dw bqpvTrEEVtgdy8iqLOsMg8DnjK1d+BRaCG60sBgTdCNFGs60cKD+pg3F0r8Unc3KF4NL tit2KYv8cZBa9zbq0uVNdt7Lag0PzasKvNnqhC/bnsLGu1P3n/05Pl+kHe5ro0qFCdon ILjA== X-Gm-Message-State: APf1xPBbSOAf7uTMwk0bSAeKNt7ngxyNb0MvPdQNv+S+qCr1kmBNRdTb dt1rKZYnas3xT5LXqIrvTOiJT0cAz2g= X-Received: by 10.223.134.68 with SMTP id 4mr14919140wrw.218.1519117495511; Tue, 20 Feb 2018 01:04:55 -0800 (PST) Received: from [10.1.2.12] ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id u20sm1646564wru.94.2018.02.20.01.04.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Feb 2018 01:04:54 -0800 (PST) Subject: Re: [PATCH] drm/meson: fix vsync buffer update To: airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Michal Lazo , linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org References: <1518689976-23292-1-git-send-email-narmstrong@baylibre.com> <20180219151900.GP22199@phenom.ffwll.local> From: Neil Armstrong Organization: Baylibre Message-ID: <261b72e2-554c-6fcc-34ea-1e4f8201d21e@baylibre.com> Date: Tue, 20 Feb 2018 10:04:54 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180219151900.GP22199@phenom.ffwll.local> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 19/02/2018 16:19, Daniel Vetter wrote: > On Thu, Feb 15, 2018 at 11:19:36AM +0100, Neil Armstrong wrote: >> The plane buffer address/stride/height was incorrectly updated in the >> plane_atomic_update operation instead of the vsync irq. >> This patch delays this operation in the vsync irq along with the >> other plane delayed setup. >> >> This issue was masked using legacy framebuffer and X11 modesetting, but >> is clearly visible using gbm rendering when buffer is submitted late after >> vblank, like using software decoding and OpenGL rendering in Kodi. >> With this patch, tearing and other artifacts disappears completely. > > You mean the frontbuffer rendering nature of X11 with all it's tearing > made the issue not noticeable? I'm also not clear what you mean with > legacy framebuffer ... Yeah I don't have to correct technical terms, sorry. > > Either way looks reasonable: > Acked-by: Daniel Vetter Thanks, Pushed to drm-misc-fixes. Neil > >> Cc: Michal Lazo >> Fixes: bbbe775ec5b5 ("drm: Add support for Amlogic Meson Graphic Controller") >> Signed-off-by: Neil Armstrong >> --- >> drivers/gpu/drm/meson/meson_crtc.c | 6 ++++++ >> drivers/gpu/drm/meson/meson_drv.h | 3 +++ >> drivers/gpu/drm/meson/meson_plane.c | 7 +++---- >> 3 files changed, 12 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/gpu/drm/meson/meson_crtc.c b/drivers/gpu/drm/meson/meson_crtc.c >> index 5155f01..0552020 100644 >> --- a/drivers/gpu/drm/meson/meson_crtc.c >> +++ b/drivers/gpu/drm/meson/meson_crtc.c >> @@ -36,6 +36,7 @@ >> #include "meson_venc.h" >> #include "meson_vpp.h" >> #include "meson_viu.h" >> +#include "meson_canvas.h" >> #include "meson_registers.h" >> >> /* CRTC definition */ >> @@ -192,6 +193,11 @@ void meson_crtc_irq(struct meson_drm *priv) >> } else >> meson_vpp_disable_interlace_vscaler_osd1(priv); >> >> + meson_canvas_setup(priv, MESON_CANVAS_ID_OSD1, >> + priv->viu.osd1_addr, priv->viu.osd1_stride, >> + priv->viu.osd1_height, MESON_CANVAS_WRAP_NONE, >> + MESON_CANVAS_BLKMODE_LINEAR); >> + >> /* Enable OSD1 */ >> writel_bits_relaxed(VPP_OSD1_POSTBLEND, VPP_OSD1_POSTBLEND, >> priv->io_base + _REG(VPP_MISC)); >> diff --git a/drivers/gpu/drm/meson/meson_drv.h b/drivers/gpu/drm/meson/meson_drv.h >> index 5e8b392..8450d6ac 100644 >> --- a/drivers/gpu/drm/meson/meson_drv.h >> +++ b/drivers/gpu/drm/meson/meson_drv.h >> @@ -43,6 +43,9 @@ struct meson_drm { >> bool osd1_commit; >> uint32_t osd1_ctrl_stat; >> uint32_t osd1_blk0_cfg[5]; >> + uint32_t osd1_addr; >> + uint32_t osd1_stride; >> + uint32_t osd1_height; >> } viu; >> >> struct { >> diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c >> index d0a6ac8..27bd350 100644 >> --- a/drivers/gpu/drm/meson/meson_plane.c >> +++ b/drivers/gpu/drm/meson/meson_plane.c >> @@ -164,10 +164,9 @@ static void meson_plane_atomic_update(struct drm_plane *plane, >> /* Update Canvas with buffer address */ >> gem = drm_fb_cma_get_gem_obj(fb, 0); >> >> - meson_canvas_setup(priv, MESON_CANVAS_ID_OSD1, >> - gem->paddr, fb->pitches[0], >> - fb->height, MESON_CANVAS_WRAP_NONE, >> - MESON_CANVAS_BLKMODE_LINEAR); >> + priv->viu.osd1_addr = gem->paddr; >> + priv->viu.osd1_stride = fb->pitches[0]; >> + priv->viu.osd1_height = fb->height; >> >> spin_unlock_irqrestore(&priv->drm->event_lock, flags); >> } >> -- >> 2.7.4 >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel >