From patchwork Wed Feb 28 15:06:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liviu Dudau X-Patchwork-Id: 130007 Delivered-To: patch@linaro.org Received: by 10.46.66.2 with SMTP id p2csp1176361lja; Wed, 28 Feb 2018 07:52:19 -0800 (PST) X-Google-Smtp-Source: AG47ELvkjWNZlhg0590/DhlocwxMJOCNFbcdMIRsML8ROknSIFx2OoIkHSsYnZtub5411dn5O/iX X-Received: by 2002:a17:902:4025:: with SMTP id b34-v6mr10316320pld.359.1519833138783; Wed, 28 Feb 2018 07:52:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519833138; cv=none; d=google.com; s=arc-20160816; b=XPi1gBZVdvTnBn6pe2dIVJhUzCHrlQBlrb6Ac/RFJXBa3DmqzqihKKLLYgk3o2QaDQ sVT/Hblf7vdRtV1kVsmi3+pIMewjJUMDq3YqLL/BOa0QASJ2aP9dD2uoNdA3+3GLlGfV 8WdtKyPcUSoKoWg4SwXUV0DeYr4MesR7iNHGvRBUOACmfVuUJZGLWBoLCTOwNhUdAAk0 9SOY+UHjgUO2tT/Gn2VqTcSvXPHxkBrKaBNgot4kd7AUf6hDqw9Vj52SNG2QTnbF7THI DZIX0aQ8NNMjM5myxJqtjnZYgN2E+NSn9/+Qi/fKYmfoiRQ60TGHILAq5bMXkv4FtaE3 cvvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:message-id:date:subject:to:from:delivered-to :arc-authentication-results; bh=85E1wTMTk3qzdWlFz7x9XFEwdZZL8bf1kuRiHRA2Vhs=; b=l3+VA6oT/IdWhiOYKx+gyqbTGq/9A352dj5IjHrb+IMEWmTc5iollT9D23bt1ym+tB fRyWZwjI3NSbQ/GzNKDrXyb1YpOKS1R85Vluqg6RY+Yn3xHIfNUEWPZ9pO6oVQO2Lyx8 lo6nH47muKBL+Czf/VKayHxCQ+K+1tyrXdpohEtmwplboC+vyvi/7VgunTms1CMY3NCz LljY+5g8Xc2xIwIvAVOcIegzxDZ+lkqd0dCxATazyPp7JrqTf9zZkIKV7390SL5NyW9K gLrFw9KEs4TJf1mo/B7wyIzvuW+ZGlbcAMNl+UNlwNL7e+re0y77g6j81MgC+PdOnO8K 2Amg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 131.252.210.177 as permitted sender) smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Return-Path: Received: from gabe.freedesktop.org (gabe.freedesktop.org. [131.252.210.177]) by mx.google.com with ESMTPS id r20si1436986pfk.125.2018.02.28.07.52.18 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 28 Feb 2018 07:52:18 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 131.252.210.177 as permitted sender) client-ip=131.252.210.177; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 131.252.210.177 as permitted sender) smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6810A6EAAF; Wed, 28 Feb 2018 15:51:46 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from cam-smtp0.cambridge.arm.com (fw-tnat.cambridge.arm.com [217.140.96.140]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3E7B36EAAF for ; Wed, 28 Feb 2018 15:51:45 +0000 (UTC) Received: from e110455-lin.cambridge.arm.com (e110455-lin.cambridge.arm.com [10.2.131.15]) by cam-smtp0.cambridge.arm.com (8.13.8/8.13.8) with ESMTP id w1SF6R72032695; Wed, 28 Feb 2018 15:06:27 GMT From: Liviu Dudau To: DRI-devel Subject: [PATCH 01/23] drm/mali-dp: Rotated planes need a larger pitch size. Date: Wed, 28 Feb 2018 15:06:27 +0000 Message-Id: <20180228150627.20769-1-Liviu.Dudau@arm.com> X-Mailer: git-send-email 2.16.2 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ayan Halder , Liviu Dudau , Alexandru-Cosmin Gheorghe , Mali DP Maintainers MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Rotated planes need a pitch size that is aligned to 8 bytes for older DP500 and DP550 and at least 64 bytes for DP650. Replace the malidp_hw_pitch_valid() function with one that calculates the correct pitch alignment to take into account rotation. Signed-off-by: Liviu Dudau --- drivers/gpu/drm/arm/malidp_hw.h | 12 +++++++++--- drivers/gpu/drm/arm/malidp_planes.c | 4 +++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/arm/malidp_hw.h b/drivers/gpu/drm/arm/malidp_hw.h index b0690ebb3565..42d3e7b9ba98 100644 --- a/drivers/gpu/drm/arm/malidp_hw.h +++ b/drivers/gpu/drm/arm/malidp_hw.h @@ -285,10 +285,16 @@ void malidp_se_irq_fini(struct drm_device *drm); u8 malidp_hw_get_format_id(const struct malidp_hw_regmap *map, u8 layer_id, u32 format); -static inline bool malidp_hw_pitch_valid(struct malidp_hw_device *hwdev, - unsigned int pitch) +static inline u8 malidp_hw_get_pitch_align(struct malidp_hw_device *hwdev, bool rotated) { - return !(pitch & (hwdev->hw->map.bus_align_bytes - 1)); + /* + * only hardware that cannot do 8 bytes bus alignments have further + * constraints on rotated planes + */ + if (hwdev->hw->map.bus_align_bytes == 8) + return 8; + else + return hwdev->hw->map.bus_align_bytes << (rotated ? 2 : 0); } /* U16.16 */ diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c index 2885d69af456..6f05c6421ba8 100644 --- a/drivers/gpu/drm/arm/malidp_planes.c +++ b/drivers/gpu/drm/arm/malidp_planes.c @@ -180,6 +180,7 @@ static int malidp_de_plane_check(struct drm_plane *plane, { struct malidp_plane *mp = to_malidp_plane(plane); struct malidp_plane_state *ms = to_malidp_plane_state(state); + bool rotated = state->rotation & MALIDP_ROTATED_MASK; struct drm_framebuffer *fb; int i, ret; @@ -196,7 +197,8 @@ static int malidp_de_plane_check(struct drm_plane *plane, ms->n_planes = fb->format->num_planes; for (i = 0; i < ms->n_planes; i++) { - if (!malidp_hw_pitch_valid(mp->hwdev, fb->pitches[i])) { + u8 alignment = malidp_hw_get_pitch_align(mp->hwdev, rotated); + if (fb->pitches[i] & (alignment - 1)) { DRM_DEBUG_KMS("Invalid pitch %u for plane %d\n", fb->pitches[i], i); return -EINVAL;