Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp549096imm; Fri, 27 Jul 2018 01:40:08 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfsqlTcIhlgKv2dxRAPwO6yvDaa+3xxBLKFsjg2S1mcygKYAYNH6wv3AYqJb2uqMbcNc5y4 X-Received: by 2002:a62:ed5:: with SMTP id 82-v6mr5712620pfo.198.1532680808531; Fri, 27 Jul 2018 01:40:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532680808; cv=none; d=google.com; s=arc-20160816; b=RnuE9fXCYbBAmll3Q0JMGRUkGYpHDhhqIYgKCYIUoqn/odZqu1x0RRbwQB2n4pzjEz t/Abh+r0Dk48RFuq6RKo99xp7vIubQU3wu1Iipjjhz4ycC4dBren/wimIszkfk/pGHHp 2IBgbPeYzZdfO+yy86oX1+90SKpr+a9sFteIugUEEHBQwOmOKVK9yWV5zfBY2SNJdlb0 6FUoQuzYD0ZBGfCAuu0yBfjeOJ2vXY5lmSZUqA8MQd6mJwyPNyeJ6UhJ7LQB7jOoGl7P YPnLBB2unn6n6vSW/6M8oC4wZKnFCOp8vJ1jAxstqZiNFA99OqeXrCEMgF/NemYoQokn W9cw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:dlp-filter:cms-type:message-id :date:subject:cc:to:from:dkim-signature:dkim-filter :arc-authentication-results; bh=Q/Sz8QNq88iTG0a0b4FJ+xj37iMVNS+RaUoQPEle6ac=; b=glg65Vc4dNZtT6eCnl32ftdufDBjR8YoUIDOG2ljoO/SvkXizlua4Rcs/zSqFfoJ+8 3VfIKQiigYXgnBsnvee+sGJWS9TlQx2InxvHfnqujybhkn4F69q7Z5ARRPPtUwzDVxnc jUZI531cLkZE9JD68O1OdC+Y865L/UfsEABc2voih8ioTEgVNkKfhKxisSRt4YkvjeNy yIllGvEsgfli9QqEbn4MnTF5JBkiINslk6X1VpAprOwLqoXP50/SwA7bgql8fTwdI1i2 sExKd0TZ3iUhiB7bgjUZcl4KcMVgHJhzH9SjKpwtKikdn8K4hWh31LdH+biE2RsPfzgx K8CA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=A6y0Qn4n; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d33-v6si3217111pla.57.2018.07.27.01.39.51; Fri, 27 Jul 2018 01:40:08 -0700 (PDT) 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=@samsung.com header.s=mail20170921 header.b=A6y0Qn4n; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730291AbeG0J7F (ORCPT + 99 others); Fri, 27 Jul 2018 05:59:05 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:55293 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729420AbeG0J7F (ORCPT ); Fri, 27 Jul 2018 05:59:05 -0400 Received: from epcas5p4.samsung.com (unknown [182.195.41.42]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20180727083813epoutp04534675079aa284f264e2ff4570b5cdff~FLPh2Dtdd1084610846epoutp04L for ; Fri, 27 Jul 2018 08:38:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20180727083813epoutp04534675079aa284f264e2ff4570b5cdff~FLPh2Dtdd1084610846epoutp04L DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1532680693; bh=Q/Sz8QNq88iTG0a0b4FJ+xj37iMVNS+RaUoQPEle6ac=; h=From:To:Cc:Subject:Date:References:From; b=A6y0Qn4nd7ddUrVJ2ozcZuqZWAdzjlwBFJF9TFvD1lzGSJTNE/HQte7/k6tAtdttK /HnV/WXY5k5rekpZpVqLqPS5rP2hvzJbMwX0cmT5wpNVhbhkZakI/zTy2CQ4CPscdc 00xNDjZfVqxRus2hqZzT7ihTCnYKoB2AEZNgg7Ks= Received: from epsmges5p2new.samsung.com (unknown [182.195.40.192]) by epcas5p1.samsung.com (KnoxPortal) with ESMTP id 20180727083813epcas5p1c523add2d4d70016b5391bc9f63005e3~FLPhPnRCH1188211882epcas5p1N; Fri, 27 Jul 2018 08:38:13 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id D0.CB.04309.5F9DA5B5; Fri, 27 Jul 2018 17:38:13 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20180727083812epcas5p39f97180e85def2b4b4c1b68af2e83b41~FLPg9mkWQ2043620436epcas5p3U; Fri, 27 Jul 2018 08:38:12 +0000 (GMT) Received: from epsmgms1p2new.samsung.com (unknown [182.195.42.42]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20180727083812epsmtrp22f22b8706f3c992129921f88445ee0e0~FLPg8JbhL1071810718epsmtrp21; Fri, 27 Jul 2018 08:38:12 +0000 (GMT) X-AuditID: b6c32a4a-9b3ff700000010d5-28-5b5ad9f51c80 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p2new.samsung.com (Symantec Messaging Gateway) with SMTP id BA.D0.03889.4F9DA5B5; Fri, 27 Jul 2018 17:38:12 +0900 (KST) Received: from localhost.localdomain (unknown [107.108.161.94]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20180727083810epsmtip1414b65ec559ddb90b401eb7c44c372ae~FLPfHOETO0146801468epsmtip1D; Fri, 27 Jul 2018 08:38:10 +0000 (GMT) From: Satendra Singh Thakur To: Gustavo Padovan , Maarten Lankhorst , Sean Paul , David Airlie , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: vineet.j@samsung.com, hemanshu.s@samsung.com, sst2005@gmail.com, Satendra Singh Thakur Subject: [PATCH] drm/kms/atomic: Used existing func for checking fb geometry Date: Fri, 27 Jul 2018 14:08:02 +0530 X-Mailer: git-send-email 2.7.4 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDKsWRmVeSWpSXmKPExsWy7bCmlu7Xm1HRBgt+cVj0njvJZHHl63s2 i50PdrFbvDr/htni8q45bBYLP25lsVh7vpXF4u6Gs4wWy09fZ7Y4tvUSuwOXx+yGiyweO2fd ZffY/u0Bq8e8k4Ee97uPM3nsnLSXyaNvyypGj8+b5AI4olJtMlITU1KLFFLzkvNTMvPSbZW8 g+Od403NDAx1DS0tzJUU8hJzU22VXHwCdN0yc4BuVFIoS8wpBQoFJBYXK+nb2RTll5akKmTk F5fYKkUbGhrpGRqY6xkZAWnTWCsjU6CShNSMf50L2QvWSFZMfLycvYHxqEgXIyeHhICJRPOR 9+xdjFwcQgK7GSX+Te9lgnA+MUo8PviACaRKSOAbo8S6SeUwHd9uL2GEKNrLKPH55Bk2COcL o8Skd7PYQKrYgKqez5nBCpIQEXjJKHGz5QwrSIJZoFTiwc0mZhBbWMBH4sLGZ2BxFgFVifuX G5ggVshJ3DzXyQzSLCGwgU3i7YYWFpAEr0CZRNOzi2wQRS4Sy76uYISwhSVeHd/CDmFLSXx+ txeqZjKjRPNZP4hBqxklzl7shSqyl2iZcgBoKAfQRZoS63fpQxzHJ9H7+wkTSFhCgFeio00I olpFYuWLw8ww4/8s6GKFsD0kFi/7wAIJoliJyWuPME1glJmFMHQBI+MqRsnUguLc9NRi0wKj vNRyveLE3OLSvHS95PzcTYzglKbltYNx2TmfQ4wCHIxKPLwBryOjhVgTy4orcw8xSnAwK4nw rrkOFOJNSaysSi3Kjy8qzUktPsRoCgy0icxSosn5wHSbVxJvaGpkZmZgaWBqbGFmqCTO+8Ev OFpIID2xJDU7NbUgtQimj4mDU6qB8YB266u5+w//dVeJM3hjd2rKeT0hw+rOFXqZuXvzmbRK 37wu+6xQYvbr3E2XCXaOJ+MncjpLKv1s//H05kVHpQlX4+NWL16as7L7iMAsn6yjyvVd3gJX /x7Zde3NNGP7y1vk3ZymGby/vmxztnR6vfW7k1G1N3UOZOtMceg8eGZJ07pL/mlMZ5RYijMS DbWYi4oTAezk5WN/AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFLMWRmVeSWpSXmKPExsWy7bCSnO6Xm1HRBquP6Vn0njvJZHHl63s2 i50PdrFbvDr/htni8q45bBYLP25lsVh7vpXF4u6Gs4wWy09fZ7Y4tvUSuwOXx+yGiyweO2fd ZffY/u0Bq8e8k4Ee97uPM3nsnLSXyaNvyypGj8+b5AI4orhsUlJzMstSi/TtErgy/nUuZC9Y I1kx8fFy9gbGoyJdjJwcEgImEt9uL2HsYuTiEBLYzShxfMIjNoiElMSyN9ugbGGJlf+es0MU fWKUWLdiEyNIgg2o+/mcGawgCRGBt4wSrTtPs4AkmAUqJc49nwxWJCzgI3Fh4zNWEJtFQFXi /uUGJhCbV8BN4vrnm4wQG+Qkbp7rZJ7AyLOAkWEVo2RqQXFuem6xYYFRXmq5XnFibnFpXrpe cn7uJkZwCGpp7WA8cSL+EKMAB6MSD2/A68hoIdbEsuLK3EOMEhzMSiK8a64DhXhTEiurUovy 44tKc1KLDzFKc7AoifPK5x+LFBJITyxJzU5NLUgtgskycXBKNTC2youzdJ9Rvtty59mxy1WG zLu79H6umfV0dt0qn93BPh8WyB7Sbv+sNqvxv5nWA9V76m7rzpx8uWy+a7/mxDCDlLKrtuJb Si96zldhOfnKxO9hLJv3jwSplbF1IrzznI1f1ng+PcfWvuvfl8Vvd/xjEwgMj9jgcS75zSHX yL6yZK/uhX9+Wa1QYinOSDTUYi4qTgQAL9Ikgz0CAAA= Message-Id: <20180727083812epcas5p39f97180e85def2b4b4c1b68af2e83b41~FLPg9mkWQ2043620436epcas5p3U@epcas5p3.samsung.com> X-CMS-MailID: 20180727083812epcas5p39f97180e85def2b4b4c1b68af2e83b41 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20180727083812epcas5p39f97180e85def2b4b4c1b68af2e83b41 References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 1.In the func drm_atomic_plane_check, the fb geometry checking code can be replaced by func drm_framebuffer_check_src_coords, this will remove several redundant lines of code. 2. Currently, in the func drm_atomic_plane_check; there are 3 if statements in the beginning with total 5 conditions. these conditions are crtc is NULL but fb is non-NULL if (state->crtc && !state->fb) crtc is non-NULL but fb is NULL if (state->fb && !state->crtc) crtc is NULL (and fb is also NULL) if (!state->crtc) The same code can be re-written using 2 if statements and 4 conditions. first we check whether crtc and fb both are NULL if (!state->crtc && !state->fb) then we check either crtc or fb is NULL if (!state->crtc || !state->fb) Signed-off-by: Satendra Singh Thakur --- drivers/gpu/drm/drm_atomic.c | 37 +++++++++---------------------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index 895741e..1cddab8 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -909,22 +909,16 @@ plane_switching_crtc(struct drm_atomic_state *state, static int drm_atomic_plane_check(struct drm_plane *plane, struct drm_plane_state *state) { - unsigned int fb_width, fb_height; int ret; - /* either *both* CRTC and FB must be set, or neither */ - if (state->crtc && !state->fb) { - DRM_DEBUG_ATOMIC("CRTC set but no FB\n"); - return -EINVAL; - } else if (state->fb && !state->crtc) { - DRM_DEBUG_ATOMIC("FB set but no CRTC\n"); - return -EINVAL; - } - /* if disabled, we don't care about the rest of the state: */ - if (!state->crtc) + if (!state->crtc && !state->fb) return 0; - + /* both CRTC and FB must be set*/ + if (!state->crtc || !state->fb) { + DRM_DEBUG_ATOMIC("Either no CRTC or no FB\n"); + return -EINVAL; + } /* Check whether this plane is usable on this CRTC */ if (!(plane->possible_crtcs & drm_crtc_mask(state->crtc))) { DRM_DEBUG_ATOMIC("Invalid crtc for plane\n"); @@ -954,24 +948,11 @@ static int drm_atomic_plane_check(struct drm_plane *plane, return -ERANGE; } - fb_width = state->fb->width << 16; - fb_height = state->fb->height << 16; - /* Make sure source coordinates are inside the fb. */ - if (state->src_w > fb_width || - state->src_x > fb_width - state->src_w || - state->src_h > fb_height || - state->src_y > fb_height - state->src_h) { - DRM_DEBUG_ATOMIC("Invalid source coordinates " - "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n", - state->src_w >> 16, ((state->src_w & 0xffff) * 15625) >> 10, - state->src_h >> 16, ((state->src_h & 0xffff) * 15625) >> 10, - state->src_x >> 16, ((state->src_x & 0xffff) * 15625) >> 10, - state->src_y >> 16, ((state->src_y & 0xffff) * 15625) >> 10, - state->fb->width, state->fb->height); + ret = drm_framebuffer_check_src_coords(state->src_x, state->src_y, + state->src_w, state->src_h, state->fb); + if (ret) return -ENOSPC; - } - if (plane_switching_crtc(state->state, plane, state)) { DRM_DEBUG_ATOMIC("[PLANE:%d:%s] switching CRTC directly\n", plane->base.id, plane->name); -- 2.7.4