From patchwork Fri Sep 8 03:05:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13376989 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 42202EC8747 for ; Fri, 8 Sep 2023 03:05:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235922AbjIHDFv (ORCPT ); Thu, 7 Sep 2023 23:05:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40784 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238039AbjIHDFq (ORCPT ); Thu, 7 Sep 2023 23:05:46 -0400 Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com [IPv6:2a00:1450:4864:20::22a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 196A01BDB for ; Thu, 7 Sep 2023 20:05:24 -0700 (PDT) Received: by mail-lj1-x22a.google.com with SMTP id 38308e7fff4ca-2bceca8a41aso26372901fa.0 for ; Thu, 07 Sep 2023 20:05:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694142323; x=1694747123; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=o883M3C8fvtCGweIidn/6JBt/oAPnlfkI17tGXxBy4Q=; b=ECNFxC3f2v3aKRcE9cNiL3G9kICzO/vx5FEmTBzipM7SaLojEcR8/l+6JzhYmsw4RD V03bK6cjDHaDxD9rCkLJRZDYkbr9Plsmh8Ab0R9iOW3ui52383cDaTedGUbxa9Kng6c0 OXBjjAzrxADFLTIADJiHipxJGmlr92naZDua9lp56VFEh9zKjYOzC8UEl7iqRUsxIky2 gtTyB2/43SdOQFQOV41bBQYck5Hpkl/L36Xkn4WcjQ5QtOuNkpKh7nmOAEaVnv76eYep 5LU6pwb4SR7lqL7LKAwH9fYZ861jSpL3XbNpmKQ32chjE8e1O+YoBi5SvQTBVdZQahbS ivhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694142323; x=1694747123; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=o883M3C8fvtCGweIidn/6JBt/oAPnlfkI17tGXxBy4Q=; b=n/cXEqsR01JiW4ECx3XtfZiSi4x18g4p88kvHo6h5W2R/ZTzdWDqIBAw58So0Of5/0 +XvGVAwjD4o6NNwSq1kiRfhIhP8gs+5XY0FYcfEvA4rFgcxzD0vRASdKE3iiq5G//9dC mWLujJ22UoCV+p6HXsuYmAZ6yxrtqSGeJeoyMQQLtYl0KmTrapep4zFAX8KJOsg1u28W l0VZBa/HPCemZt5Yg7tf4prtBhfnX5UUt1XQjIsDyR89YpwSYtM8VLsicUwl2f1NQ3ry PloaMuJilYPVVAxSalDbfmrad3imOasCXCeuYvrlH2sS2HrLZN2hup5u5Zncqx88Ia15 8KEA== X-Gm-Message-State: AOJu0YyFv+W5JDMyuoH9V+gwrSE2ubtaBk4PDyg/00rceqzj6qMBoRI+ WJvHZobdJeRODAqwbpLSNkRt7A== X-Google-Smtp-Source: AGHT+IGpggkFyIkBUixeUSKNcYrFKcn+bnKrNcdK4A5JLNXtk7ZuNI1nZCzfID5emgXF1KO8lwSi3Q== X-Received: by 2002:a2e:9303:0:b0:2bd:b99:ab7e with SMTP id e3-20020a2e9303000000b002bd0b99ab7emr636452ljh.42.1694142323342; Thu, 07 Sep 2023 20:05:23 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id z10-20020a2e8e8a000000b002b93d66b82asm128332ljk.112.2023.09.07.20.05.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Sep 2023 20:05:22 -0700 (PDT) From: Dmitry Baryshkov To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter Cc: Rob Clark , Abhinav Kumar , dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH 1/5] drm/atomic: add private obj state to state dump Date: Fri, 8 Sep 2023 06:05:17 +0300 Message-Id: <20230908030521.236309-2-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230908030521.236309-1-dmitry.baryshkov@linaro.org> References: <20230908030521.236309-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org The drm_atomic_print_new_state() already prints private object state via drm_atomic_private_obj_print_state(). Add private object state dumping to __drm_state_dump(), so that it is also included into drm_state_dump() output and into debugfs/dri/N/state file. Signed-off-by: Dmitry Baryshkov Reviewed-by: Rob Clark --- drivers/gpu/drm/drm_atomic.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index c277b198fa3f..9543e284dc15 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -1773,6 +1773,7 @@ static void __drm_state_dump(struct drm_device *dev, struct drm_printer *p, struct drm_crtc *crtc; struct drm_connector *connector; struct drm_connector_list_iter conn_iter; + struct drm_private_obj *obj; if (!drm_drv_uses_atomic_modeset(dev)) return; @@ -1801,6 +1802,14 @@ static void __drm_state_dump(struct drm_device *dev, struct drm_printer *p, if (take_locks) drm_modeset_unlock(&dev->mode_config.connection_mutex); drm_connector_list_iter_end(&conn_iter); + + list_for_each_entry(obj, &config->privobj_list, head) { + if (take_locks) + drm_modeset_lock(&obj->lock, NULL); + drm_atomic_private_obj_print_state(p, obj->state); + if (take_locks) + drm_modeset_unlock(&obj->lock); + } } /** From patchwork Fri Sep 8 03:05:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13376992 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EEABBEE14AA for ; Fri, 8 Sep 2023 03:05:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231545AbjIHDFx (ORCPT ); Thu, 7 Sep 2023 23:05:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42822 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238525AbjIHDFt (ORCPT ); Thu, 7 Sep 2023 23:05:49 -0400 Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com [IPv6:2a00:1450:4864:20::234]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B7C081BE2 for ; Thu, 7 Sep 2023 20:05:25 -0700 (PDT) Received: by mail-lj1-x234.google.com with SMTP id 38308e7fff4ca-2bcbfb3705dso26792111fa.1 for ; Thu, 07 Sep 2023 20:05:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694142324; x=1694747124; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PjF+Ni17TVCwIorp3DZ1/pP2g7KWsdAJkvzgXwIGnZs=; b=SgWeKHlycJd+vQMBPGGDGdPWHOuOnHhhChAUD31TdCqk2QuiFVTQw6sYWV88T//I1X iZDSFcZ/QR0XU5ffsVYq2icXZqEyjFJxygLJQhv9QrCDB7M2Ipzxpyyn8jyNJOjWIVDj 8JTdDylH3AZudb/tW9FkZOJfCcuTHjdnDZle7VDWlZpqtZbQq22LVzjiL0d01QALaiQ0 j42EDXdBcuF5IxLO2hKnvxvfMKc53NZaYNKbNQq0txN1CNNDBamFgdttG0bY+jE8sHRu FyYw4CcQLXYM6u0X9v+nRQNaUGvDaDmNT4LfbeZp859yTAAwc2Jaf8Qpp9oyLlzGZzNV SF0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694142324; x=1694747124; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PjF+Ni17TVCwIorp3DZ1/pP2g7KWsdAJkvzgXwIGnZs=; b=qxIfQqYqwXqJg5m0NeWrARsOWYHirvTKzlrXfdZV9ErIILM50lI1pi6wN86LXyccRL PsTVbw2aM2MW+mvd0RbIieSZ4xmINrv1BgKTDDHH5yNe7Egp9hapwwtUHOGyn4JP1ZF5 drlvj3YnS3+DjDQTWXQFXW+TWuCU/6HVjOAdbCn0EAqkRYMWIZOGBq59I1Zda+gBu+wv iTlJ0W+tJYSZ1aFetN6PaJ8n3SAhx+Wfmc0V5/JTDuDsXFATEJ6edzfxnNgxheeDDUXN 7+PY0sKKeLzdUdISdP0LyksnG15+7QZNafOH4OnzgT4Tp+o9tTHV1OHVVgRshEaV9555 TsjQ== X-Gm-Message-State: AOJu0YwjCy+IPh2GvPZlcnS5rSb3TOhBaNXYG1ZvAtBp53NCmbE2Hx81 +xtWBLXjxSTCwA1oXBuRlTXrOw== X-Google-Smtp-Source: AGHT+IEPZQBKLVkp0sj0YHhbSBoBG7ps4S6wXzS+PGeOdpT3sIK8s0aBEQUUBdV9d5V+uIjuBNLNIw== X-Received: by 2002:a2e:b044:0:b0:2bc:befb:b602 with SMTP id d4-20020a2eb044000000b002bcbefbb602mr776445ljl.1.1694142324074; Thu, 07 Sep 2023 20:05:24 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id z10-20020a2e8e8a000000b002b93d66b82asm128332ljk.112.2023.09.07.20.05.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Sep 2023 20:05:23 -0700 (PDT) From: Dmitry Baryshkov To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter Cc: Rob Clark , Abhinav Kumar , dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH 2/5] drm/msm/dpu: finalise global state object Date: Fri, 8 Sep 2023 06:05:18 +0300 Message-Id: <20230908030521.236309-3-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230908030521.236309-1-dmitry.baryshkov@linaro.org> References: <20230908030521.236309-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Add calls to finalise global state object and corresponding lock. Fixes: de3916c70a24 ("drm/msm/dpu: Track resources in global state") Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index aa6ba2cf4b84..fba2294e329f 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -385,6 +385,12 @@ static int dpu_kms_global_obj_init(struct dpu_kms *dpu_kms) return 0; } +static void dpu_kms_global_obj_fini(struct dpu_kms *dpu_kms) +{ + drm_atomic_private_obj_fini(&dpu_kms->global_state); + drm_modeset_lock_fini(&dpu_kms->global_state_lock); +} + static int dpu_kms_parse_data_bus_icc_path(struct dpu_kms *dpu_kms) { struct icc_path *path0; @@ -827,6 +833,8 @@ static void _dpu_kms_hw_destroy(struct dpu_kms *dpu_kms) dpu_rm_destroy(&dpu_kms->rm); dpu_kms->rm_init = false; + dpu_kms_global_obj_fini(dpu_kms); + dpu_kms->catalog = NULL; if (dpu_kms->vbif[VBIF_NRT]) From patchwork Fri Sep 8 03:05:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13376993 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7FA5BEE14D8 for ; Fri, 8 Sep 2023 03:05:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235743AbjIHDFx (ORCPT ); Thu, 7 Sep 2023 23:05:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42858 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238449AbjIHDFt (ORCPT ); Thu, 7 Sep 2023 23:05:49 -0400 Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [IPv6:2a00:1450:4864:20::236]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 82FEA1BE9 for ; Thu, 7 Sep 2023 20:05:26 -0700 (PDT) Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-2bcbfb3705dso26792231fa.1 for ; Thu, 07 Sep 2023 20:05:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694142325; x=1694747125; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FX3U4Kv6boSoIeXiFA0GqPmb+Xk7f6TWSY7AwcdRtXw=; b=pOxSDlRF9k6DA7FWLJgix4KyPK1DnXYu8UBPWQwLCDdNGF/J++ueOuHLnzrQT3ZAf+ rf14f98tSUEj/M0qb/QjykwSTu9SUBL+jsQLhPHdnOV+p7K+gobLOJrQozYT5h1ajXc+ /IWD4QoHRXmbVgUbWfstGKd2VHtG/R8yeAbOPpXg0Sv6DsSrrSF8aJxh19LcZMPlOZWS CyOzLQy8QXShAcPNe2q5BGxgaGNnGsVnm3YncWIlXiRgf71soTHwJDo0wk1t8173q4lP GMHUuFk36tbvbc4hyJDSHIBWU6JFCqjPWPVHH0lTzhfowHVSvsuW2oRjHiNz/54easzy CXfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694142325; x=1694747125; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FX3U4Kv6boSoIeXiFA0GqPmb+Xk7f6TWSY7AwcdRtXw=; b=R/ApmTgJ2AZ6X7sphp1Y8lWUYHab4ktVx4DevZ2xqBPZXp/VQPqqB361NCNnXb2Dtf QdtB6qYChOg41BBhwVxnWW144zIQlixHaOrp7xnEv70gu++bDWUirOQANvk8UEjEnKqC wAioTkYzfgEbEx9qJLZgzgeqJvGK10yD3t6ew0kydP6DU6N3Q/MWY9pshAVzNt3gF6gU 4W2y/AUM+cFNIVs+b/q9B5UtIFYehAO+d2LLXlsQxTyQscGZCpbwfK3fEAVUkspGY6PA dioSIXv3u7IDQYW1GEHQuEFBHPM1WNSKzr7bKV3URNLuBejSLjfpHKceWKkVq2Gf6GNh A5xA== X-Gm-Message-State: AOJu0YykzDdZnMRna12a4ITKGs5OXPytFY8waKgBKFT5T6uurw+t5f85 ETAF1lW1nvAnksQFk2FsCfNlMg== X-Google-Smtp-Source: AGHT+IE1UWo6gyoG9WOKNs/u/38JmWyXkL5hWEPnw8XhwXskinhp5YUgh8TkpIKV0TF6lTqgb7Va+A== X-Received: by 2002:a2e:97d7:0:b0:2b9:f13b:6139 with SMTP id m23-20020a2e97d7000000b002b9f13b6139mr782892ljj.20.1694142324853; Thu, 07 Sep 2023 20:05:24 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id z10-20020a2e8e8a000000b002b93d66b82asm128332ljk.112.2023.09.07.20.05.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Sep 2023 20:05:24 -0700 (PDT) From: Dmitry Baryshkov To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter Cc: Rob Clark , Abhinav Kumar , dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH 3/5] drm/msm/dpu: drop global_state_lock Date: Fri, 8 Sep 2023 06:05:19 +0300 Message-Id: <20230908030521.236309-4-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230908030521.236309-1-dmitry.baryshkov@linaro.org> References: <20230908030521.236309-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Since the commit b962a12050a3 ("drm/atomic: integrate modeset lock with private objects") the DRM framework no longer requires the external lock for private objects. Drop the lock, letting the DRM to manage private object locking. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 8 -------- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 1 - 2 files changed, 9 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index fba2294e329f..ee84160592ce 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -328,11 +328,6 @@ struct dpu_global_state *dpu_kms_get_global_state(struct drm_atomic_state *s) struct msm_drm_private *priv = s->dev->dev_private; struct dpu_kms *dpu_kms = to_dpu_kms(priv->kms); struct drm_private_state *priv_state; - int ret; - - ret = drm_modeset_lock(&dpu_kms->global_state_lock, s->acquire_ctx); - if (ret) - return ERR_PTR(ret); priv_state = drm_atomic_get_private_obj_state(s, &dpu_kms->global_state); @@ -373,8 +368,6 @@ static int dpu_kms_global_obj_init(struct dpu_kms *dpu_kms) { struct dpu_global_state *state; - drm_modeset_lock_init(&dpu_kms->global_state_lock); - state = kzalloc(sizeof(*state), GFP_KERNEL); if (!state) return -ENOMEM; @@ -388,7 +381,6 @@ static int dpu_kms_global_obj_init(struct dpu_kms *dpu_kms) static void dpu_kms_global_obj_fini(struct dpu_kms *dpu_kms) { drm_atomic_private_obj_fini(&dpu_kms->global_state); - drm_modeset_lock_fini(&dpu_kms->global_state_lock); } static int dpu_kms_parse_data_bus_icc_path(struct dpu_kms *dpu_kms) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h index b6f53ca6e962..ed549f0f7c65 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h @@ -84,7 +84,6 @@ struct dpu_kms { * Global private object state, Do not access directly, use * dpu_kms_global_get_state() */ - struct drm_modeset_lock global_state_lock; struct drm_private_obj global_state; struct dpu_rm rm; From patchwork Fri Sep 8 03:05:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13376994 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 69849EE49AD for ; Fri, 8 Sep 2023 03:05:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237097AbjIHDFy (ORCPT ); Thu, 7 Sep 2023 23:05:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42880 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239071AbjIHDFu (ORCPT ); Thu, 7 Sep 2023 23:05:50 -0400 Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 644891BF0 for ; Thu, 7 Sep 2023 20:05:27 -0700 (PDT) Received: by mail-lf1-x12e.google.com with SMTP id 2adb3069b0e04-501b9f27eb2so3376599e87.0 for ; Thu, 07 Sep 2023 20:05:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694142325; x=1694747125; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5V2moM74QexHMbOp4cuuljBHqFyjYq89MsynficzNtY=; b=Bv//F+EKh5HEdj8/s9RgRF/NadtO7+ViiK8dP6gMhfVSw5REePyeZRci66ToXK45rX Okq0hxBTegm7tYTH2gAxn9jFa/e6MHqfm75C4ixU8yesmtgA/AmCy96m7wpdcIFH7j0S Bh/gfX6TYEOnNDIiwGhLLx7/zqFWrPaGCWpWeYEs8adHG+lmExU60u1gxaKew6Ok6YUl v6cea8qBOUnaSSIWilbusSX3Qevf9geMlU7CP4SqB282gbxCRIfJ22mIECBJQ2mi6mLK xYrdLiel3zSzuP9+rDHKaTLwP7sSr8vC3WpVmoP9x3vvD7WCh0VrGk8KBgEEOJ/Uk7pL 2Tcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694142325; x=1694747125; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5V2moM74QexHMbOp4cuuljBHqFyjYq89MsynficzNtY=; b=lFv6rzKkd/BBtDxNJPIhsFhDSFslpFZ4/q6rWheyggzQ9ldrIfVBur8mrMOcjp112D ITyElvgurGs/XpdLUE8yeKkG8faoGxc8A2xa/ZmOLFNw7sI1um0mjWPThW5mc5PNqF+v TKBBv+pUJ2V2DMPxGWP6yJDJg4R9aFwG8puupGDiKZmL1Kqgf3jLkLREpUTTp7DCuz1a mDG8VkenSbz63o0Hln+oNbrUUGNLMJtVKUnSCmPfRTUATkpi7BFlvm6tl4Gvg1e82J7H QEAADIfZt5Thq9MioQFTZgbNScGqiOoGlnjza93s6P+lQJc/hCdAxEJjQO2Wxnr0QkKR PfRA== X-Gm-Message-State: AOJu0YyjA5msOxtvBBMPy9CLMBF2i6B6fPTWMheUyfgHDt9xdw3KyfxZ DEdTNcGkKOMOfj826piA4e4pWQ== X-Google-Smtp-Source: AGHT+IEizXBa/7aXIZMWg4PlZaHGLsSORoT4AXZ2mHtzZvawmfP5hzaTVRaNUThXYIBeMJ3WZO2B0w== X-Received: by 2002:a05:6512:12ca:b0:501:ca56:39d8 with SMTP id p10-20020a05651212ca00b00501ca5639d8mr1632545lfg.32.1694142325586; Thu, 07 Sep 2023 20:05:25 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id z10-20020a2e8e8a000000b002b93d66b82asm128332ljk.112.2023.09.07.20.05.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Sep 2023 20:05:25 -0700 (PDT) From: Dmitry Baryshkov To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter Cc: Rob Clark , Abhinav Kumar , dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH 4/5] drm/msm/mdp5: migrate SMP dumping to using atomic_print_state Date: Fri, 8 Sep 2023 06:05:20 +0300 Message-Id: <20230908030521.236309-5-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230908030521.236309-1-dmitry.baryshkov@linaro.org> References: <20230908030521.236309-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org The Shared Memory Pool (SMP) state is a part of the MDP5's private object state. Use existing infrastructure, atomic_print_state() callback, to dump SMP state (which also makes it included into debugfs/dri/N/state). This allows us to drop the custom debugfs file too. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c | 2 -- drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 46 ++++++------------------ drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c | 12 ++----- drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.h | 4 ++- 4 files changed, 15 insertions(+), 49 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c index 43443a435d59..b40ed3a847c8 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c @@ -31,8 +31,6 @@ static void mdp5_irq_error_handler(struct mdp_irq *irq, uint32_t irqstatus) if (dumpstate && __ratelimit(&rs)) { struct drm_printer p = drm_info_printer(mdp5_kms->dev->dev); drm_state_dump(mdp5_kms->dev, &p); - if (mdp5_kms->smp) - mdp5_smp_dump(mdp5_kms->smp, &p); } } diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c index 92bf9d949d09..4d51a736d1d0 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c @@ -119,9 +119,19 @@ static void mdp5_global_destroy_state(struct drm_private_obj *obj, kfree(mdp5_state); } +static void mdp5_global_print_state(struct drm_printer *p, + const struct drm_private_state *state) +{ + struct mdp5_global_state *mdp5_state = to_mdp5_global_state(state); + + if (mdp5_state->mdp5_kms->smp) + mdp5_smp_dump(mdp5_state->mdp5_kms->smp, p, mdp5_state); +} + static const struct drm_private_state_funcs mdp5_global_state_funcs = { .atomic_duplicate_state = mdp5_global_duplicate_state, .atomic_destroy_state = mdp5_global_destroy_state, + .atomic_print_state = mdp5_global_print_state, }; static int mdp5_global_obj_init(struct mdp5_kms *mdp5_kms) @@ -226,39 +236,6 @@ static void mdp5_kms_destroy(struct msm_kms *kms) mdp5_destroy(mdp5_kms); } -#ifdef CONFIG_DEBUG_FS -static int smp_show(struct seq_file *m, void *arg) -{ - struct drm_info_node *node = m->private; - struct drm_device *dev = node->minor->dev; - struct msm_drm_private *priv = dev->dev_private; - struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(priv->kms)); - struct drm_printer p = drm_seq_file_printer(m); - - if (!mdp5_kms->smp) { - drm_printf(&p, "no SMP pool\n"); - return 0; - } - - mdp5_smp_dump(mdp5_kms->smp, &p); - - return 0; -} - -static struct drm_info_list mdp5_debugfs_list[] = { - {"smp", smp_show }, -}; - -static int mdp5_kms_debugfs_init(struct msm_kms *kms, struct drm_minor *minor) -{ - drm_debugfs_create_files(mdp5_debugfs_list, - ARRAY_SIZE(mdp5_debugfs_list), - minor->debugfs_root, minor); - - return 0; -} -#endif - static const struct mdp_kms_funcs kms_funcs = { .base = { .hw_init = mdp5_hw_init, @@ -277,9 +254,6 @@ static const struct mdp_kms_funcs kms_funcs = { .get_format = mdp_get_format, .set_split_display = mdp5_set_split_display, .destroy = mdp5_kms_destroy, -#ifdef CONFIG_DEBUG_FS - .debugfs_init = mdp5_kms_debugfs_init, -#endif }, .set_irqmask = mdp5_set_irqmask, }; diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c index 56a3063545ec..9a51fbf93cc4 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c @@ -325,22 +325,17 @@ void mdp5_smp_complete_commit(struct mdp5_smp *smp, struct mdp5_smp_state *state state->released = 0; } -void mdp5_smp_dump(struct mdp5_smp *smp, struct drm_printer *p) +void mdp5_smp_dump(struct mdp5_smp *smp, struct drm_printer *p, + struct mdp5_global_state *global_state) { struct mdp5_kms *mdp5_kms = get_kms(smp); struct mdp5_hw_pipe_state *hwpstate; struct mdp5_smp_state *state; - struct mdp5_global_state *global_state; int total = 0, i, j; drm_printf(p, "name\tinuse\tplane\n"); drm_printf(p, "----\t-----\t-----\n"); - if (drm_can_sleep()) - drm_modeset_lock(&mdp5_kms->glob_state_lock, NULL); - - global_state = mdp5_get_existing_global_state(mdp5_kms); - /* grab these *after* we hold the state_lock */ hwpstate = &global_state->hwpipe; state = &global_state->smp; @@ -365,9 +360,6 @@ void mdp5_smp_dump(struct mdp5_smp *smp, struct drm_printer *p) drm_printf(p, "TOTAL:\t%d\t(of %d)\n", total, smp->blk_cnt); drm_printf(p, "AVAIL:\t%d\n", smp->blk_cnt - bitmap_weight(state->state, smp->blk_cnt)); - - if (drm_can_sleep()) - drm_modeset_unlock(&mdp5_kms->glob_state_lock); } void mdp5_smp_destroy(struct mdp5_smp *smp) diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.h b/drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.h index ba5618e136c3..7a24c887760b 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.h +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.h @@ -70,7 +70,9 @@ struct mdp5_smp *mdp5_smp_init(struct mdp5_kms *mdp5_kms, const struct mdp5_smp_block *cfg); void mdp5_smp_destroy(struct mdp5_smp *smp); -void mdp5_smp_dump(struct mdp5_smp *smp, struct drm_printer *p); +struct mdp5_global_state; +void mdp5_smp_dump(struct mdp5_smp *smp, struct drm_printer *p, + struct mdp5_global_state *global_state); uint32_t mdp5_smp_calculate(struct mdp5_smp *smp, const struct mdp_format *format, From patchwork Fri Sep 8 03:05:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13376991 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F2D8BEE14D7 for ; Fri, 8 Sep 2023 03:05:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237040AbjIHDFy (ORCPT ); Thu, 7 Sep 2023 23:05:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42894 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237933AbjIHDFu (ORCPT ); Thu, 7 Sep 2023 23:05:50 -0400 Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com [IPv6:2a00:1450:4864:20::233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EFE051BF1 for ; Thu, 7 Sep 2023 20:05:27 -0700 (PDT) Received: by mail-lj1-x233.google.com with SMTP id 38308e7fff4ca-2bf6b37859eso2310461fa.0 for ; Thu, 07 Sep 2023 20:05:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694142326; x=1694747126; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4EuRyGB2FCn8eHtdShX5HJtuBHexPXckCeOw+rDTXl8=; b=Az5+uW8XRiDlJX1h8q16DFEmsIAmuQjXf9wpGubNtN9PJ7PvKYshnpZQ8Lbk3reZJ1 IbzWBT3zigdHHViIOiHF06PcWHO4mRUsqADCkzNDTjbM9+EQ1t2Di/MOLwxU8tO4kl1c gy4sdZPqMkdcOLpQJZYYQLXStC2izKqxJc8GnFtrLop9x1Lge+b0BHNPogBnkRWWHeiA vQWj9q6BWLjD4Hq/31OdbngyLvmvD3tWx70M2fmtGpMebotrcIniFitBqxgW/LIOaGo5 irRQMnJ+1D/K6C19Y0yIB/4ACL9q2B6b7uazwwAYZpQZ1qBcLZ8YLYQlkZ64YYsLV6xI 1NLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694142326; x=1694747126; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4EuRyGB2FCn8eHtdShX5HJtuBHexPXckCeOw+rDTXl8=; b=GaCtfL1qdYfpAiLRbtuOkjFFgg4jy1IdEdzyzWBlcCVsTSx8HGFccXsLgAC96yRLDC kG8HAmCoP2YpxHLZjXPVG3G63cZVY7ls/3aq6lAJt0ZHn9UKyPJzdnXfKEp9FeEBvL5K k0nJjL34x2uWrRb4l4eEvS9Dy18gWJDvXq0XI8DwBZI1y8VEhQYWSRA6xvm8F131fKzO nW2TL6eBkQGH9XtcDJ/2+hnjcoUBLYTTR2+FwVK2pL5eWGP+oK8qtDytJniQiJmqEaW/ vXWjNQFIg8sP4zWGCO54m6WvIZ/b8j2Cfzq1e3P5QoCY7H3Ne6wTGEaVtMU8cKWyYMXY iEOA== X-Gm-Message-State: AOJu0YwG+y89sc3wQrievDYzvYytwr7x3d+V6OIQrfrnTAG4Ol8uDN+n DDAsVEvEEwotScKcHb/ibI497A== X-Google-Smtp-Source: AGHT+IFb1SE2OljNZih8LbGcYPj0m1xg2/28UjpUhM0NBZt6+shhbkdtZRJ7HtZ9/1kaAYxCIHjKQw== X-Received: by 2002:a2e:88d4:0:b0:2bc:cee6:4342 with SMTP id a20-20020a2e88d4000000b002bccee64342mr644830ljk.13.1694142326362; Thu, 07 Sep 2023 20:05:26 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id z10-20020a2e8e8a000000b002b93d66b82asm128332ljk.112.2023.09.07.20.05.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Sep 2023 20:05:25 -0700 (PDT) From: Dmitry Baryshkov To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter Cc: Rob Clark , Abhinav Kumar , dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH 5/5] drm/msm/mdp5: drop global_state_lock Date: Fri, 8 Sep 2023 06:05:21 +0300 Message-Id: <20230908030521.236309-6-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230908030521.236309-1-dmitry.baryshkov@linaro.org> References: <20230908030521.236309-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Since the commit b962a12050a3 ("drm/atomic: integrate modeset lock with private objects") the DRM framework no longer requires the external lock for private objects. Drop the lock, letting the DRM to manage private object locking. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 8 -------- drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.h | 1 - 2 files changed, 9 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c index 4d51a736d1d0..c15fa9dafe55 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c @@ -84,11 +84,6 @@ struct mdp5_global_state *mdp5_get_global_state(struct drm_atomic_state *s) struct msm_drm_private *priv = s->dev->dev_private; struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(priv->kms)); struct drm_private_state *priv_state; - int ret; - - ret = drm_modeset_lock(&mdp5_kms->glob_state_lock, s->acquire_ctx); - if (ret) - return ERR_PTR(ret); priv_state = drm_atomic_get_private_obj_state(s, &mdp5_kms->glob_state); if (IS_ERR(priv_state)) @@ -138,8 +133,6 @@ static int mdp5_global_obj_init(struct mdp5_kms *mdp5_kms) { struct mdp5_global_state *state; - drm_modeset_lock_init(&mdp5_kms->glob_state_lock); - state = kzalloc(sizeof(*state), GFP_KERNEL); if (!state) return -ENOMEM; @@ -626,7 +619,6 @@ static void mdp5_destroy(struct mdp5_kms *mdp5_kms) pm_runtime_disable(&mdp5_kms->pdev->dev); drm_atomic_private_obj_fini(&mdp5_kms->glob_state); - drm_modeset_lock_fini(&mdp5_kms->glob_state_lock); } static int construct_pipes(struct mdp5_kms *mdp5_kms, int cnt, diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.h b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.h index 29bf11f08601..70fdc0b6c7c5 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.h +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.h @@ -40,7 +40,6 @@ struct mdp5_kms { * Global private object state, Do not access directly, use * mdp5_global_get_state() */ - struct drm_modeset_lock glob_state_lock; struct drm_private_obj glob_state; struct mdp5_smp *smp;