Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp663230pxb; Wed, 6 Oct 2021 12:42:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwZVFxN0Tnu8ksnKymYsibqxQcfDfkI5qAqN+wJE0UJVDJRyYi0RWuH3WpCJY07dZiMmWmE X-Received: by 2002:a17:90a:73ce:: with SMTP id n14mr621490pjk.215.1633549322064; Wed, 06 Oct 2021 12:42:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633549322; cv=none; d=google.com; s=arc-20160816; b=cGBqop78ELK+6yeCKw9NtWb8k+RnRLsk+poTXM4UviBJkioEkgSboQeSTGhZJlnnrW /vNLtaYuBAUMxAKsin/tXLBnJ0IsvoX7Ko78mhTKB8ydDVrkTvbDdFla9eM/6ipD+HKC dv8UWgXCqK5oUWx3rUfF33fmPiNkL62XqBvu+XtuH/F7hwUA+wNXFpRwN4yPDF5aUMxT OLqZKvYYK/tT4sWpyXNJB5rMLUxw5HZNFNIwkkbLi4YZk676jJp2HJ2bzJcJvCerU1qd /71DfFntpBBe6aP9yYjgztAX/4v5jJlOWFlN29igcQR885SQzuOc4hjDf5pJWzHTmgQL cMdw== 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=JIr2Bk0QBgCC/Qyy7+5Gbgr8NQwlH0hHiIdNIEPo3fk=; b=NxsM4Lr3SWQkiTatKr0WjB2qdPU6YNi9Vd8+dXg5iEj0HzopLR1ySMEt6ppCQDPEN+ RBYfDvQgiVZeYp47lsCXBN4E9AOzgFFTFYCICKmEbcETALMVx6UyRn3nLK9M5cyi0WCd njArrsLHjsQ5Lubr6UXuuXP9jVdhaESbN6MGV4CUTc0sQ2DXC79wlUpvrAgU31iz+CxA JwnOUCTp/M44WblWY2LrHDRtOiwKi+pCX/6IMYfCEwP0zUZqFZiKk/QbTRNGP6d1DOEq psqK33NZMnsgR1CF/Ht+fdY7IqhsKRzgw68Lff9OE7xkCVZbxbbJ+MeuOYNypiTtIb/m r3jw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=bW+COjRt; 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 i14si6785767pfu.217.2021.10.06.12.41.48; Wed, 06 Oct 2021 12:42:02 -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=bW+COjRt; 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 S239721AbhJFTlX (ORCPT + 99 others); Wed, 6 Oct 2021 15:41:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53888 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239608AbhJFTkx (ORCPT ); Wed, 6 Oct 2021 15:40:53 -0400 Received: from mail-pg1-x535.google.com (mail-pg1-x535.google.com [IPv6:2607:f8b0:4864:20::535]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A0B31C0617A3 for ; Wed, 6 Oct 2021 12:38:47 -0700 (PDT) Received: by mail-pg1-x535.google.com with SMTP id s11so3381236pgr.11 for ; Wed, 06 Oct 2021 12:38:47 -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=JIr2Bk0QBgCC/Qyy7+5Gbgr8NQwlH0hHiIdNIEPo3fk=; b=bW+COjRtbI/s22IeVkOw6yQ870sBScBOBF2HCZngTnHoZtYsMfJOE0ofz7QpGYUlk3 /Vl4JW5K0GR+OgSiaMKU5lJV6dRt4U31wvz3SUiHBWgysFRhZ3ohDMdS5R/FK46EaSrt S4SHBAHlZ/K2wI81ii8OutsoM1QQJfn2XGo/k= 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=JIr2Bk0QBgCC/Qyy7+5Gbgr8NQwlH0hHiIdNIEPo3fk=; b=toi+WMJm48RirKWzbEpWnj89q82MWxi3FTfCNcGpeuTrMGeyd2MZyFx9UEZ9tiU1eI 8UQfv/l+I5CbHvwA4rB/6v+e/Mj7wbHvsQLhKSPGxNkLQwcD4TueeVGSwGV/ARpOVXge 19pKHMcA19oPeFmLkrq0+0q/HvFCkvzEC0A3SxYJpFyOq+CcJ1rJx9NFnv7fTqGdbUKc GGDknQzCQgrTbbRFDwqIkvqeMOuOwKB5aME1G/yQOLhuEUjPjpuWHKg+foEwuVtYmUo/ Z1v1xHGFn0n5nEYubggmHg0mUOz4VG3FVpsBjeSoE2MAuaLHXVAmDmGS2+g9Nv/gh1oA IHkA== X-Gm-Message-State: AOAM533IdofYA5wvMiyrPbLCuT2R7LzuBCuleP9lYf/Q6vDBWLcUdu6V XKaTZv86P5g/UZq/4BsfZ4NvCw== X-Received: by 2002:a63:d709:: with SMTP id d9mr421671pgg.377.1633549127254; Wed, 06 Oct 2021 12:38:47 -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.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Oct 2021 12:38:46 -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, Benjamin Gaignard , Daniel Vetter , "Rafael J. Wysocki" , Rob Clark , Russell King , Saravana Kannan Subject: [PATCH v2 21/34] drm/sti: Migrate to aggregate driver Date: Wed, 6 Oct 2021 12:38:06 -0700 Message-Id: <20211006193819.2654854-22-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-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: Benjamin Gaignard Cc: Daniel Vetter Cc: "Rafael J. Wysocki" Cc: Rob Clark Cc: Russell King Cc: Saravana Kannan Signed-off-by: Stephen Boyd --- drivers/gpu/drm/sti/sti_drv.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c index c7efb43b83ee..b277cc679154 100644 --- a/drivers/gpu/drm/sti/sti_drv.c +++ b/drivers/gpu/drm/sti/sti_drv.c @@ -182,8 +182,9 @@ static void sti_cleanup(struct drm_device *ddev) ddev->dev_private = NULL; } -static int sti_bind(struct device *dev) +static int sti_bind(struct aggregate_device *adev) { + struct device *dev = adev->parent; struct drm_device *ddev; int ret; @@ -216,8 +217,9 @@ static int sti_bind(struct device *dev) return ret; } -static void sti_unbind(struct device *dev) +static void sti_unbind(struct aggregate_device *adev) { + struct device *dev = adev->parent; struct drm_device *ddev = dev_get_drvdata(dev); drm_dev_unregister(ddev); @@ -225,9 +227,13 @@ static void sti_unbind(struct device *dev) drm_dev_put(ddev); } -static const struct component_master_ops sti_ops = { - .bind = sti_bind, - .unbind = sti_unbind, +static struct aggregate_driver sti_aggregate_driver = { + .probe = sti_bind, + .remove = sti_unbind, + .driver = { + .name = "sti_drm", + .owner = THIS_MODULE, + }, }; static int sti_platform_probe(struct platform_device *pdev) @@ -249,12 +255,12 @@ static int sti_platform_probe(struct platform_device *pdev) child_np = of_get_next_available_child(node, child_np); } - return component_master_add_with_match(dev, &sti_ops, match); + return component_aggregate_register(dev, &sti_aggregate_driver, match); } static int sti_platform_remove(struct platform_device *pdev) { - component_master_del(&pdev->dev, &sti_ops); + component_aggregate_unregister(&pdev->dev, &sti_aggregate_driver); return 0; } -- https://chromeos.dev