Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp663270pxb; Wed, 6 Oct 2021 12:42:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzA/vn9L3Zi5KLC1aWxEZNgoypZg9JFr85m5sGse2icdoRfERsY0wzc96BBAhYKmHpUAD0A X-Received: by 2002:a62:d11e:0:b0:446:d705:7175 with SMTP id z30-20020a62d11e000000b00446d7057175mr38810167pfg.74.1633549325064; Wed, 06 Oct 2021 12:42:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633549325; cv=none; d=google.com; s=arc-20160816; b=lzdJABCMXeve6ocGzrfYJadDGuPzp2ToMddmg5QKSFeWy1sgFuoaNqruzHH5n53L4y E/cqrjO2FfJkSYvG5AhxX1iiK3T1EI8zVaToPf++gq4OWAEv3l2iIxcalDbFJrj8bLnv 0aYyZi+u/de/xO5/dK1bMSnyohA+noF/mCdRiAT+7ZWuGtrtOkarx8TRWwmU/zJUy1zi BnNQOjNUHZTIUhJ4OZigDQw5PyTWX5uOZYaCd5hvYVfFWpyZh8dyZJmRi4RktlRZD0fZ t7b6BwnSax9GwsoQsEc9Eqp9DHtOg3RE3u0SXExpuZRy9ulQz/jv6nuEHrLDd68RQUMK 9e6w== 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=pu3Ettw2+f3cI24EEPlu+iHiL6Bl5h06ZQoWL3Cz2Tw=; b=phSDlcfzyIol/Cdi0r+TvwCZAQC8zMw2zLAELPPH9/m3nryr8lFsMWQ02Rp+wrgjw8 /vJDg8Br/kMeehRHco9/v/PWIZ9AjS5pUfXCht3npGYLnjxQNlmLweNE9HylJahiOZz4 KeLkgr0C+YbgSW8PeWPNp49ulEHR6RDSAgIOZg6eBMEoLKxRtD5d0Zwhtim7MTcJbdaO LfTeqQb9hDAJkicldpnw/A2x3KT1c0LLOQSK6864P2xnOM9eJLlsCVAYsEbsarjoDzFZ k+IDbfkNY2Z5wDTUYyYrFC0BxMaYiO+p94xVaD0huVV9BzP5gTopB9Ks1mUyKiIwIy6Z 7vNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=AoJOg0gA; 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 k35si6368774pja.190.2021.10.06.12.41.52; Wed, 06 Oct 2021 12:42:05 -0700 (PDT) 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=AoJOg0gA; 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 S239628AbhJFTlT (ORCPT + 99 others); Wed, 6 Oct 2021 15:41:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53858 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239591AbhJFTkq (ORCPT ); Wed, 6 Oct 2021 15:40:46 -0400 Received: from mail-pg1-x533.google.com (mail-pg1-x533.google.com [IPv6:2607:f8b0:4864:20::533]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89EFFC06178C for ; Wed, 6 Oct 2021 12:38:46 -0700 (PDT) Received: by mail-pg1-x533.google.com with SMTP id e7so3420728pgk.2 for ; Wed, 06 Oct 2021 12:38:46 -0700 (PDT) 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=pu3Ettw2+f3cI24EEPlu+iHiL6Bl5h06ZQoWL3Cz2Tw=; b=AoJOg0gAf+6zGwvuJJeeIopwS/luJM74WeAdJcNoi4aR3fyjHLgI+7l4/3l4kIibtM ILgyOcQB0cXJGhXPmE5p5jSxrGNBoqnbwmkydJPJRwMuNIL3ITrGrsU+3YgYgQV6aLj+ FqH2V+UVNaS3JmHv5SqQ8Qgtw2hHq1nZQSDB8= 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=pu3Ettw2+f3cI24EEPlu+iHiL6Bl5h06ZQoWL3Cz2Tw=; b=zTZjUqJ5w3OOUaCt/5r8OxAM7wm3QLbSnqKMeluycgz2fG20/OhCBpiQ0n8C5Xep55 VKGJ7pYPOHSpZ8H/ILYV4r7kpMIhulQVOX30KkceAZHbTGAKAOFCycZc00l3wZVBFBLo EekJpqhi8r1JK8ntCqHSsaGQ7IGVYrECbC5w7NQJQpWxcw8VkRxRgs/86KjzNXrIwQE+ FL3Zy1bxL+JCpcI49GMNVi3/LFhuKUHgyAD4jXPJqgcqDLGABRRpHk5S9zdGyqAKL9YU mydwXrdHD8puMJ/PLr6EIDBynjBn6NUCohWHJGHD/fVeboV2VI5Hl9qNXsgEGd3a8Eee QhOw== X-Gm-Message-State: AOAM533gQaY01MV3MKywnbYSj2RlB6JJdHj7GL6DiQUAdGli/rLyK71C nI/rQCZsEJZk+sU6KQ/wSGGvSr21HrN6MQ== X-Received: by 2002:a62:4e87:0:b0:447:ce02:c32e with SMTP id c129-20020a624e87000000b00447ce02c32emr38015805pfb.33.1633549126124; Wed, 06 Oct 2021 12:38:46 -0700 (PDT) Received: from smtp.gmail.com ([2620:15c:202:201:d412:c5eb:4aca:4738]) by smtp.gmail.com with ESMTPSA id o14sm22011296pfh.84.2021.10.06.12.38.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Oct 2021 12:38:45 -0700 (PDT) From: Stephen Boyd To: Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, Sandy Huang , =?UTF-8?q?Heiko=20St=C3=BCbner?= , Daniel Vetter , "Rafael J. Wysocki" , Rob Clark , Russell King , Saravana Kannan Subject: [PATCH v2 20/34] drm/rockchip: Migrate to aggregate driver Date: Wed, 6 Oct 2021 12:38:05 -0700 Message-Id: <20211006193819.2654854-21-swboyd@chromium.org> X-Mailer: git-send-email 2.33.0.800.g4c38ced690-goog In-Reply-To: <20211006193819.2654854-1-swboyd@chromium.org> References: <20211006193819.2654854-1-swboyd@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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: Sandy Huang Cc: "Heiko Stübner" Cc: Daniel Vetter Cc: "Rafael J. Wysocki" Cc: Rob Clark Cc: Russell King Cc: Saravana Kannan Signed-off-by: Stephen Boyd --- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index bfba9793d238..cc63222c3ad0 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -109,8 +109,9 @@ static void rockchip_iommu_cleanup(struct drm_device *drm_dev) iommu_domain_free(private->domain); } -static int rockchip_drm_bind(struct device *dev) +static int rockchip_drm_bind(struct aggregate_device *adev) { + struct device *dev = adev->parent; struct drm_device *drm_dev; struct rockchip_drm_private *private; int ret; @@ -186,8 +187,9 @@ static int rockchip_drm_bind(struct device *dev) return ret; } -static void rockchip_drm_unbind(struct device *dev) +static void rockchip_drm_unbind(struct aggregate_device *adev) { + struct device *dev = adev->parent; struct drm_device *drm_dev = dev_get_drvdata(dev); drm_dev_unregister(drm_dev); @@ -342,9 +344,13 @@ static struct component_match *rockchip_drm_match_add(struct device *dev) return match ?: ERR_PTR(-ENODEV); } -static const struct component_master_ops rockchip_drm_ops = { - .bind = rockchip_drm_bind, - .unbind = rockchip_drm_unbind, +static struct aggregate_driver rockchip_aggregate_driver = { + .probe = rockchip_drm_bind, + .remove = rockchip_drm_unbind, + .driver = { + .name = "rockchip_drm", + .owner = THIS_MODULE, + }, }; static int rockchip_drm_platform_of_probe(struct device *dev) @@ -415,7 +421,7 @@ static int rockchip_drm_platform_probe(struct platform_device *pdev) if (IS_ERR(match)) return PTR_ERR(match); - ret = component_master_add_with_match(dev, &rockchip_drm_ops, match); + ret = component_aggregate_register(dev, &rockchip_aggregate_driver, match); if (ret < 0) { rockchip_drm_match_remove(dev); return ret; @@ -426,7 +432,7 @@ static int rockchip_drm_platform_probe(struct platform_device *pdev) static int rockchip_drm_platform_remove(struct platform_device *pdev) { - component_master_del(&pdev->dev, &rockchip_drm_ops); + component_aggregate_unregister(&pdev->dev, &rockchip_aggregate_driver); rockchip_drm_match_remove(&pdev->dev); -- https://chromeos.dev