Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp757624pxb; Fri, 28 Jan 2022 09:18:51 -0800 (PST) X-Google-Smtp-Source: ABdhPJwYtD+rgGshhzabyauc11naS95JbSDil0IdhNUuMpy1jJSlwVvGw4UvEPT03RT7i1UfEKWR X-Received: by 2002:a17:90b:391:: with SMTP id ga17mr10885052pjb.230.1643390331111; Fri, 28 Jan 2022 09:18:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643390331; cv=none; d=google.com; s=arc-20160816; b=m8r6rYAYL/R66/+zEv6KPAVKSDVQ00kSltGtJgFu+3X0HfX+ykAFqghjOomyOPpQV0 M0Dr90WfguBVtF9vB+RSAoP/z+Zrp4hEj7vhMJelW4P6r+nKFaTpmpsnaxQj9Y4TA+Yc odBtMzfbEj5+XQG9LvAAniKpPHcxUATiPUw60fsdvaiDHaA9H7IVPJ6Ybh2RsmdM0r8n THWHL6HlnxEfmQ79GjUJBtKxD7DfLTebfXeLngYrW3/PAXKs7L/aypK4s6N2+EhSGCfS MYKqzYyaGa/yEn9MeYTjJgylc1KaRwmtQK8a635uLL+CvMhdacfE75dKDkqvmgY33hv8 Ickg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=V5D9W8mLQzBapDg8PfAl6xWrk61L3pMoLZNoKlrReQc=; b=VwHgOWltJd8gLE6AMAb4gu4PciAIN7z3SlGIU4wueV675xFZYOaIGDSuxz4jCTKt4N 2QtYQBLxK1GBEjIktWvARe+O0cgQp2KrhKybz1JwZQQZpUxzJUp25ua6KRCyXNDORl79 9hS+esDTeBrcu8cfzdHzgHuZpy10I1DUaweYE68eycrC2j0ilKBO53Bjc9C3HSRP6ZM/ W1+fxauBQwnQZ2UD65HlwbUTkowR33kcjowm3tHaHljZrMe0dSU9lGRDsFl8ga1P67jl rZ00rRZqJ7I7GkcNh5XPGioY/cuuJKT5Pf5U4vqYfe8/q0eni5RJiO3iubATn9vLEJqL VG4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=Us8nN6E0; 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=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id nl12si3616064pjb.6.2022.01.28.09.18.39; Fri, 28 Jan 2022 09:18:51 -0800 (PST) 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=@chromium.org header.s=google header.b=Us8nN6E0; 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=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230076AbiA0UCR (ORCPT + 99 others); Thu, 27 Jan 2022 15:02:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43242 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343671AbiA0UCK (ORCPT ); Thu, 27 Jan 2022 15:02:10 -0500 Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com [IPv6:2607:f8b0:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B36A2C06173B for ; Thu, 27 Jan 2022 12:02:10 -0800 (PST) Received: by mail-pf1-x429.google.com with SMTP id 128so3758034pfe.12 for ; Thu, 27 Jan 2022 12:02:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=V5D9W8mLQzBapDg8PfAl6xWrk61L3pMoLZNoKlrReQc=; b=Us8nN6E0hRmknbgfLO6sMIk5lgb5byWV5VYlILdj0cELP44JPjS1NfL65N4JRWx0QC K6x4pocN37foE0fWEh2I1lYGaMQGu/zv05JQ3yV/nV2eiCpDakPJ9HIV/R/pnz1ushah JXw1+0lpLlh7MSHzawG+YdhOzUbpm/ktDsNnw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=V5D9W8mLQzBapDg8PfAl6xWrk61L3pMoLZNoKlrReQc=; b=ciFzByEiGV/lP65rjI4f97CDcvflFhL3XUI3QxsKQlYtRtNMTqd9iJ5Xt3GMMvg1iy Qi6zxs1NaFZzxUrBGu3DLRTS0mU3PcyXAhZspXbLzbTVGINVKP+Y5knMOUbI3wV9qeeF xq2IHO9chjFUoEUbE7pfm1CBWYlNW6Eylz8pyCHoD8Y2+AYCIfKxRuyGX/w97tiLE1/4 gTdAUhqc5/aQc/DSWGv/yhx3+ry/GfoDVjm/lmUEKR5sxdEHy7Sp7Ksx8HE3Lc42RvZB fK9z5of4F4hZTVymPC1ce71GZLfTV4Q5+R+4V4Ygbr7c58/Xo3DXH9CS/yUd4SoWUQLY s2RA== X-Gm-Message-State: AOAM532FDHsViOj0bl2vfiUTiaPOuuqFsrDpR7A2p9VikBp+0cUsyLpn zCXWJeA0KnGhCe+0o/aK3nWvww== X-Received: by 2002:aa7:8484:: with SMTP id u4mr4344004pfn.70.1643313730286; Thu, 27 Jan 2022 12:02:10 -0800 (PST) Received: from smtp.gmail.com ([2620:15c:202:201:9246:1838:3243:3071]) by smtp.gmail.com with ESMTPSA id k21sm6561190pff.33.2022.01.27.12.02.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Jan 2022 12:02:09 -0800 (PST) From: Stephen Boyd To: Greg Kroah-Hartman , Douglas Anderson Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, Xinliang Liu , Tian Tao , John Stultz , Xinwei Kong , Chen Feng , Daniel Vetter , "Rafael J. Wysocki" , Rob Clark , Russell King , Saravana Kannan Subject: [PATCH v6 12/35] drm/kirin: Migrate to aggregate driver Date: Thu, 27 Jan 2022 12:01:18 -0800 Message-Id: <20220127200141.1295328-13-swboyd@chromium.org> X-Mailer: git-send-email 2.35.0.rc0.227.g00780c9af4-goog In-Reply-To: <20220127200141.1295328-1-swboyd@chromium.org> References: <20220127200141.1295328-1-swboyd@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use an aggregate driver instead of component ops so that we can get proper driver probe ordering of the aggregate device with respect to all the component devices that make up the aggregate device. Cc: Xinliang Liu Cc: Tian Tao Cc: John Stultz Cc: Xinwei Kong Cc: Chen Feng Cc: Daniel Vetter Cc: "Rafael J. Wysocki" Cc: Rob Clark Cc: Russell King Cc: Saravana Kannan Signed-off-by: Stephen Boyd --- .../gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c index 98ae9a48f3fe..338077908177 100644 --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c @@ -217,8 +217,9 @@ static int kirin_drm_kms_cleanup(struct drm_device *dev) return 0; } -static int kirin_drm_bind(struct device *dev) +static int kirin_drm_bind(struct aggregate_device *adev) { + struct device *dev = aggregate_device_parent(adev); struct kirin_drm_data *driver_data; struct drm_device *drm_dev; int ret; @@ -253,8 +254,9 @@ static int kirin_drm_bind(struct device *dev) return ret; } -static void kirin_drm_unbind(struct device *dev) +static void kirin_drm_unbind(struct aggregate_device *adev) { + struct device *dev = aggregate_device_parent(adev); struct drm_device *drm_dev = dev_get_drvdata(dev); drm_dev_unregister(drm_dev); @@ -262,9 +264,13 @@ static void kirin_drm_unbind(struct device *dev) drm_dev_put(drm_dev); } -static const struct component_master_ops kirin_drm_ops = { - .bind = kirin_drm_bind, - .unbind = kirin_drm_unbind, +static struct aggregate_driver kirin_drm_aggregate_driver = { + .probe = kirin_drm_bind, + .remove = kirin_drm_unbind, + .driver = { + .name = "kirin_drm", + .owner = THIS_MODULE, + }, }; static int kirin_drm_platform_probe(struct platform_device *pdev) @@ -281,12 +287,12 @@ static int kirin_drm_platform_probe(struct platform_device *pdev) drm_of_component_match_add(dev, &match, compare_of, remote); of_node_put(remote); - return component_master_add_with_match(dev, &kirin_drm_ops, match); + return component_aggregate_register(dev, &kirin_drm_aggregate_driver, match); } static int kirin_drm_platform_remove(struct platform_device *pdev) { - component_master_del(&pdev->dev, &kirin_drm_ops); + component_aggregate_unregister(&pdev->dev, &kirin_drm_aggregate_driver); return 0; } -- https://chromeos.dev