Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1216614ybz; Sat, 25 Apr 2020 13:42:47 -0700 (PDT) X-Google-Smtp-Source: APiQypI+/TfwF7goqvmfkGmCyYiehhDeEu3379lYCPRkLvZMMTVxO/A7BH3dgJO5a2E44UADf9Y0 X-Received: by 2002:a17:906:bcec:: with SMTP id op12mr13150211ejb.245.1587847367096; Sat, 25 Apr 2020 13:42:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587847367; cv=none; d=google.com; s=arc-20160816; b=qxcLst8zIeHAFCmOBaC5myVLG35Wfnul0hqPOX6Nn6zbOB9t4WgkUXBHvXMFBiJs4+ hfFd3bCqxxKk58cw+YrHXxyoHyLtgomcHiJGaaLhGLTs0WkAIJdmSEMe6z4rhXMuZKTb 2kjK/3aT+ogObqAxPM8PkXtrbAoikE8iUzzRU/ECqWvgFmkz1Ycr5CueXG088L3opoEr GSArILg0lcoRcir2xzqEHW0eV8Auqlv+yXU+riO0ehXyCzjhEfPamiwP7Onai4JHBDhm Ku9k5mF/pkRNMZQM5wnCJokQpziLjSeL1+/vGPRAE16I94tg0tl/Z2Q+7Er/BMYDL5lO pXBQ== 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:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=ImHIL2vKfBcIIT6MLP/ljPFS+7iiYKmixfDoPbU1l8g=; b=S3eaqTtOPQvxJfzEq0QgXeCi7FpZieYBjOlT+FwQ/6URFaX5odGbwE3wKyUFgWrFlK AddK/IqosMh1B+MUquahDOlw8MqGu68VbYo4u9UXXUq1vHjRDxC0TpOraUUY1KlX9dXM hXs4LK7i6pMuA570edcv8wL+gWkzDdZKmUhc1sz6yxo9CI7uQJtJAafwus5QqqEyPS/s obsTs++vSHB5mouP6ylzdipPrKOMf69PSXd8r2bKBcO0rtzYAC+afGpJqs49SetudV2V IDXE9N1sSJLCn+GdMlva7lYxYlMQ/PGDsqGmrG9UPPmG2/0YhNuWjOAKb1Num5yB11of jh4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=tLdWuHVF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a88si5720017edf.379.2020.04.25.13.42.24; Sat, 25 Apr 2020 13:42:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=tLdWuHVF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726373AbgDYUjy (ORCPT + 99 others); Sat, 25 Apr 2020 16:39:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41538 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726190AbgDYUjy (ORCPT ); Sat, 25 Apr 2020 16:39:54 -0400 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C2A41C09B04D for ; Sat, 25 Apr 2020 13:39:53 -0700 (PDT) Received: by mail-wr1-x441.google.com with SMTP id j1so15832259wrt.1 for ; Sat, 25 Apr 2020 13:39:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ImHIL2vKfBcIIT6MLP/ljPFS+7iiYKmixfDoPbU1l8g=; b=tLdWuHVFK7BH7PjywN96BGzSs07imqLs2JqVhvqLWZctk3p8om15aFXgRWLXYeSZPh ypzJ0aq6/FbYtr8m7ahAI6kXToXus/CXumtAg7JlNQdwPmuUtLvMhI61dnGtVXrtiv86 4ZjlUcCqFBR31TWg8g0n/SUGURK5DTLYR3J0hxIA+H0+LFkpiv3Fgg6qexfrxRrGX28E 9DVuG4gEouPf1nvXbVH+l3wxkeYRjFv8OYrj592LYwEegdGVk7n7RNwpfTu0cIUePo6u 61VFYCn9+9oMH1VRFcYJLKB3wMtU0PP1iKDDP5+5chZ0HcJEjTCjf1LoKQek7b/qFbQz ol4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ImHIL2vKfBcIIT6MLP/ljPFS+7iiYKmixfDoPbU1l8g=; b=TyqSwJTGeKYsfzvPtdpJ+gRVT+HqCeWxPdipTK68GV2QjHVr/L0ENS036jyIK1eKMF ZaIkmLEOnLLexBgPITEhhsf8jaA8DpVhBF1zVz09E8/cbf4/YHU6Sl1TZe+UwqhVrMN7 CixyywScoEDd5RCIvPMVDHej5V+6GZF2Z73aXiYJK1SIw1Qq1bAbcmwKsoMJNLArILMt 4tbIRJNkeGRyJqsaO2Al9oh0RhDvJ9YMKI6d6atTDOF/cNY9Qs3QL+C6nJMi9te+E7bV gBf9fOmV62cstOPqGf8Qn86i2oVQItbd/ys7z1nch9MOWCYmt72YQj+MWfWuwQfN6kyM B1yg== X-Gm-Message-State: AGi0PubGlEgBZNLs7riXZOxDFOGCzZkYYq/vlI8v8LuK9clhCO4wm+WL HigIxb6SIOcSrj/LXn79QGssuSCY9Pg= X-Received: by 2002:adf:f651:: with SMTP id x17mr18461448wrp.230.1587847192503; Sat, 25 Apr 2020 13:39:52 -0700 (PDT) Received: from localhost.localdomain (p200300F137142E00428D5CFFFEB99DB8.dip0.t-ipconnect.de. [2003:f1:3714:2e00:428d:5cff:feb9:9db8]) by smtp.googlemail.com with ESMTPSA id t67sm9267418wmg.40.2020.04.25.13.39.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 25 Apr 2020 13:39:51 -0700 (PDT) From: Martin Blumenstingl To: narmstrong@baylibre.com, jmasson@baylibre.com, linux-amlogic@lists.infradead.org Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Martin Blumenstingl Subject: [PATCH] drm/meson: viu: fix setting the OSD burst length in VIU_OSD1_FIFO_CTRL_STAT Date: Sat, 25 Apr 2020 22:39:41 +0200 Message-Id: <20200425203941.3188000-1-martin.blumenstingl@googlemail.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The burst length is configured in VIU_OSD1_FIFO_CTRL_STAT[31] and VIU_OSD1_FIFO_CTRL_STAT[11:10]. The public S905D3 datasheet describes this as: - 0x0 = up to 24 per burst - 0x1 = up to 32 per burst - 0x2 = up to 48 per burst - 0x3 = up to 64 per burst - 0x4 = up to 96 per burst - 0x5 = up to 128 per burst The lower two bits map to VIU_OSD1_FIFO_CTRL_STAT[11:10] while the upper bit maps to VIU_OSD1_FIFO_CTRL_STAT[31]. Replace meson_viu_osd_burst_length_reg() with pre-defined macros which set these values. meson_viu_osd_burst_length_reg() always returned 0 (for the two used values: 32 and 64 at least) and thus incorrectly set the burst size to 24. Fixes: 147ae1cbaa1842 ("drm: meson: viu: use proper macros instead of magic constants") Signed-off-by: Martin Blumenstingl --- drivers/gpu/drm/meson/meson_registers.h | 6 ++++++ drivers/gpu/drm/meson/meson_viu.c | 11 ++--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/meson/meson_registers.h b/drivers/gpu/drm/meson/meson_registers.h index 8ea00546cd4e..049c4bfe2a3a 100644 --- a/drivers/gpu/drm/meson/meson_registers.h +++ b/drivers/gpu/drm/meson/meson_registers.h @@ -261,6 +261,12 @@ #define VIU_OSD_FIFO_DEPTH_VAL(val) ((val & 0x7f) << 12) #define VIU_OSD_WORDS_PER_BURST(words) (((words & 0x4) >> 1) << 22) #define VIU_OSD_FIFO_LIMITS(size) ((size & 0xf) << 24) +#define VIU_OSD_BURST_LENGTH_24 (0x0 << 31 | 0x0 << 10) +#define VIU_OSD_BURST_LENGTH_32 (0x0 << 31 | 0x1 << 10) +#define VIU_OSD_BURST_LENGTH_48 (0x0 << 31 | 0x2 << 10) +#define VIU_OSD_BURST_LENGTH_64 (0x0 << 31 | 0x3 << 10) +#define VIU_OSD_BURST_LENGTH_96 (0x1 << 31 | 0x0 << 10) +#define VIU_OSD_BURST_LENGTH_128 (0x1 << 31 | 0x1 << 10) #define VD1_IF0_GEN_REG 0x1a50 #define VD1_IF0_CANVAS0 0x1a51 diff --git a/drivers/gpu/drm/meson/meson_viu.c b/drivers/gpu/drm/meson/meson_viu.c index 304f8ff1339c..aede0c67a57f 100644 --- a/drivers/gpu/drm/meson/meson_viu.c +++ b/drivers/gpu/drm/meson/meson_viu.c @@ -411,13 +411,6 @@ void meson_viu_gxm_disable_osd1_afbc(struct meson_drm *priv) priv->io_base + _REG(VIU_MISC_CTRL1)); } -static inline uint32_t meson_viu_osd_burst_length_reg(uint32_t length) -{ - uint32_t val = (((length & 0x80) % 24) / 12); - - return (((val & 0x3) << 10) | (((val & 0x4) >> 2) << 31)); -} - void meson_viu_init(struct meson_drm *priv) { uint32_t reg; @@ -444,9 +437,9 @@ void meson_viu_init(struct meson_drm *priv) VIU_OSD_FIFO_LIMITS(2); /* fifo_lim: 2*16=32 */ if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) - reg |= meson_viu_osd_burst_length_reg(32); + reg |= VIU_OSD_BURST_LENGTH_32; else - reg |= meson_viu_osd_burst_length_reg(64); + reg |= VIU_OSD_BURST_LENGTH_64; writel_relaxed(reg, priv->io_base + _REG(VIU_OSD1_FIFO_CTRL_STAT)); writel_relaxed(reg, priv->io_base + _REG(VIU_OSD2_FIFO_CTRL_STAT)); -- 2.26.2