From patchwork Wed Feb 28 15:07:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liviu Dudau X-Patchwork-Id: 130008 Delivered-To: patch@linaro.org Received: by 10.46.66.2 with SMTP id p2csp1176394lja; Wed, 28 Feb 2018 07:52:20 -0800 (PST) X-Google-Smtp-Source: AH8x224Qk+/5TndJBSN47Yu9q2wNitY/ohGQXvGdl2QJfEKAPLhCiG4gfY0MzuHorrk0jejvMipc X-Received: by 10.101.101.138 with SMTP id u10mr14196476pgv.299.1519833140766; Wed, 28 Feb 2018 07:52:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519833140; cv=none; d=google.com; s=arc-20160816; b=lQwufUgMXZKkZEHB5TOfKc9y755684G6dw/0enixwQwjdp4cvS+p8P8KljYG+vhRnq QSjTUP6vJSkR31hz5rUI1YKtKC9OnHfeeSyHxvbsU9KQb9NYfwlw3ZZbR0iSWnYN1O6x M7Nzf7CunJCAe0MCrKRQGe86ItRqeo3wQ9nmwn3e9k93wa8OxiXi2JxPGgBDM7tgwdt5 e7Mg8S/8nghp3KG9rPZADlKJAvY6fXc0ZtbYErWS6MH1/6j3BquqqwTL1N/heTKMqwx1 tb+3aSXcUFRXDSMhkB53H+VmSKROH+CG72F8YqYKhh4vpsX3MiR9rajw8Y4FVdNhqzqf YgqA== 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=JSba3BhGKSKU//vw4t4Vref9ENaKZwfgsbIk1a7vUaQ=; b=hxzwgsKMzLzbouk8LCUfCQhVEwcgYq0gmRig4HQ+mIMU2fag4KjvlXBd5jgZ6tZfnD KGGYSC24ImcTx4ZOM75LHgSvCFazB4/bJpYJZp603dfAKdhT8jgjeYOK9fZ+GQwJduzK 9PUSn5es+Ww75CE9L126HLfw59l8dIMQTZf5c7lgZrtAH6IANJ1vrFOJZ4fTID4/VLG2 5Twc4dD3JR9n9ukWWEOWTOEROGFWIyC0VSGOSdjGsU3K0apL2y8qNLZvv/Pvkr2j8oyE wU4fyTCTYUXX2Js5I6ZsD3Yjk181NcNqOoWSvt5UyKPXolQV0k5J7hSeYBVrbZP9Zah+ szXg== 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 g16-v6si1448641plo.369.2018.02.28.07.52.20 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 28 Feb 2018 07:52:20 -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 1346B6EAB4; Wed, 28 Feb 2018 15:51:49 +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 5B3C86EAA7 for ; Wed, 28 Feb 2018 15:51:44 +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 w1SF7YJf001272; Wed, 28 Feb 2018 15:07:34 GMT From: Liviu Dudau To: DRI-devel Subject: [PATCH 02/23] drm/mali-dp: Align pitch size to be multiple of bus burst read size. Date: Wed, 28 Feb 2018 15:07:33 +0000 Message-Id: <20180228150733.20874-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" Mali DP hardware needs pitch line sizes aligned to the bus burst size for reads, so take that into consideration when allocating dumb buffers. If the layer is rotated then the stride size requirement is even larger for some hardware versions, so allocate for the worst case scenario. Update the ->dumb_create() hook to a driver specific function that sets the correct pitch size. Reported-by: Ayan Halder Signed-off-by: Liviu Dudau --- drivers/gpu/drm/arm/malidp_drv.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c index 3d82712d8002..d88a3b9d59cc 100644 --- a/drivers/gpu/drm/arm/malidp_drv.c +++ b/drivers/gpu/drm/arm/malidp_drv.c @@ -312,13 +312,26 @@ static int malidp_irq_init(struct platform_device *pdev) DEFINE_DRM_GEM_CMA_FOPS(fops); +static int malidp_dumb_create(struct drm_file *file_priv, + struct drm_device *drm, + struct drm_mode_create_dumb *args) +{ + struct malidp_drm *malidp = drm->dev_private; + /* allocate for the worst case scenario, i.e. rotated buffers */ + u8 alignment = malidp_hw_get_pitch_align(malidp->dev, 1); + + args->pitch = ALIGN(DIV_ROUND_UP(args->width * args->bpp, 8), alignment); + + return drm_gem_cma_dumb_create_internal(file_priv, drm, args); +} + static struct drm_driver malidp_driver = { .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC | DRIVER_PRIME, .lastclose = drm_fb_helper_lastclose, .gem_free_object_unlocked = drm_gem_cma_free_object, .gem_vm_ops = &drm_gem_cma_vm_ops, - .dumb_create = drm_gem_cma_dumb_create, + .dumb_create = malidp_dumb_create, .prime_handle_to_fd = drm_gem_prime_handle_to_fd, .prime_fd_to_handle = drm_gem_prime_fd_to_handle, .gem_prime_export = drm_gem_prime_export,