Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp662326pxb; Wed, 6 Oct 2021 12:40:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyTo/bYCffW7PFRKUlQF3oaip5mgZx/+83YUt5vXKQkDlLanmjxvKoK/wftQ5CYr2YO9KxX X-Received: by 2002:a17:90b:3910:: with SMTP id ob16mr21533pjb.234.1633549251453; Wed, 06 Oct 2021 12:40:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633549251; cv=none; d=google.com; s=arc-20160816; b=BNhIk97QEh4Pc+zvKBEYTUhbetLNpfHE+CK7JBViUEFnvoWtBcEydWaRBp8c1nwi5u suUPqrE6EpiY4Kpv5a5hr5oL8U8bp2Bp/hAS1Stp8GZu6eqByMqKbtbtc4Ilm8T4iBnS 3wrqLxM/OUim6/quDYC0p7et/uTXRxv0hdxoD1DmOoI1xvXmxMIybfmbKdeYm/9wvZ8O uMXhKkyjJz+hRzNx5B9akFwHKBZki1Ti2i/au2Ca2B2Z8OLLtsv0FML/vm7m48Ycjj2H 08otGC3O/NzMFmKxY3hWNWdROZCEJpV9aGjN7JPrWXvHGoCmDcXtCumzjya9fbTEx33V h66A== 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=tyFhWuo5Hgtey/EJ0ER9SojRROyEQ1lmEqqEKYabFj8=; b=MoEhxpKrMNoXv4K+3OYRR1uRKGjabmkk4LjC5f1uU6wAKZ+Zr/A6dvumG4HbWp5m2Q eCWaRlnfp0Fsx13VOPhIKy51zi5inQea0lXYS46ZMYs/TzcMCV51WOxrZfvR0h9+mtT6 FR1G6vGjvOHmeS82s84nYBhFvbAfegU6LJNVGeuRgJr97n7blwHVsyMaABMk1SZGM8Q3 /ASL4wg/SerHEv614VMOgzaM5lwvZUwwJ6TymJ1hreqeYAwlBbjK9ZxuW2sZ/HngmX76 +ldhsUhf18n4U/0SbksAXh1bq6OswgmgELtD20GqnfvSGJmenG7uD0/Ek8guES5r7moj OR2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=Wbivjpxe; 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 n25si28653861pgb.414.2021.10.06.12.40.38; Wed, 06 Oct 2021 12:40:51 -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=Wbivjpxe; 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 S239430AbhJFTkq (ORCPT + 99 others); Wed, 6 Oct 2021 15:40:46 -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 S239465AbhJFTk1 (ORCPT ); Wed, 6 Oct 2021 15:40:27 -0400 Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com [IPv6:2607:f8b0:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CAC39C061770 for ; Wed, 6 Oct 2021 12:38:33 -0700 (PDT) Received: by mail-pf1-x431.google.com with SMTP id g2so3285638pfc.6 for ; Wed, 06 Oct 2021 12:38:33 -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=tyFhWuo5Hgtey/EJ0ER9SojRROyEQ1lmEqqEKYabFj8=; b=WbivjpxeeLzpbDhsokO1QAyB+XeHitmcvYdTvkg9A9dVGb5dDzGxavDwdHcpUlgwDU V8/p9ZJfFgtjFFTBIQCPzL9Jc4iZN4LdjP1xFwucOfErOWq5i7zqiM9yhCRiZAlMDOFp XVvHkDRFsICOg23ZGy7WLJVSYgKUKLIWw454A= 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=tyFhWuo5Hgtey/EJ0ER9SojRROyEQ1lmEqqEKYabFj8=; b=kY9RTPk4aQA/jZIt7Ekw2bbYS0TEeKELllgsVerK2gF7kn4dwQcPIb4uwAp9qPks5i i6OeKkQK1aBL3f7NTw7qR//Znl/5hWFRcc+lIK1/OLROrY2c8j0NV/3ZQ5PDcu4vpewd yRfwET+D2T3VvmaTETtV3tG0QdeGhjns1yznXoF7+UQLnu8ORHxw8b65XPyCefXhO4os SLeJ5+sAeJ3EqKaEq2N+vUfxz24/T7axh3TWy20bPgv0yIFMmghXRXGfE9VNjFRdz13w wDuGPnHGJDc0J5A70F8VpjN/GslYGwYGq8n7E3BOrviBEUKe56L92mJKl8pvE/mDuu2a KprQ== X-Gm-Message-State: AOAM532PXK/VyqM+nXOSo7R2MSrNi+BuKeDKluolADP58DdElvfDXD6F b++bA6WWsZjOlx85fj8b+0ndIg== X-Received: by 2002:a05:6a00:1789:b0:43d:ea98:7ea8 with SMTP id s9-20020a056a00178900b0043dea987ea8mr39552269pfg.67.1633549113415; Wed, 06 Oct 2021 12:38:33 -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.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Oct 2021 12:38:33 -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, Laurent Pinchart , Liviu Dudau , Daniel Vetter , "Rafael J. Wysocki" , Rob Clark , Russell King , Saravana Kannan Subject: [PATCH v2 09/34] drm/malidp: Migrate to aggregate driver Date: Wed, 6 Oct 2021 12:37:54 -0700 Message-Id: <20211006193819.2654854-10-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. TODO: This can be updated to move the drm helper logic into the aggregate driver shutdown op. Cc: Laurent Pinchart Cc: Liviu Dudau Cc: Daniel Vetter Cc: "Rafael J. Wysocki" Cc: Rob Clark Cc: Russell King Cc: Saravana Kannan Signed-off-by: Stephen Boyd --- drivers/gpu/drm/arm/malidp_drv.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c index 78d15b04b105..e6ee4d1e3bb8 100644 --- a/drivers/gpu/drm/arm/malidp_drv.c +++ b/drivers/gpu/drm/arm/malidp_drv.c @@ -702,8 +702,9 @@ static int malidp_runtime_pm_resume(struct device *dev) return 0; } -static int malidp_bind(struct device *dev) +static int malidp_bind(struct aggregate_device *adev) { + struct device *dev = adev->parent; struct resource *res; struct drm_device *drm; struct malidp_drm *malidp; @@ -894,8 +895,9 @@ static int malidp_bind(struct device *dev) return ret; } -static void malidp_unbind(struct device *dev) +static void malidp_unbind(struct aggregate_device *adev) { + struct device *dev = adev->parent; struct drm_device *drm = dev_get_drvdata(dev); struct malidp_drm *malidp = drm->dev_private; struct malidp_hw_device *hwdev = malidp->dev; @@ -921,9 +923,13 @@ static void malidp_unbind(struct device *dev) of_reserved_mem_device_release(dev); } -static const struct component_master_ops malidp_master_ops = { - .bind = malidp_bind, - .unbind = malidp_unbind, +static struct aggregate_driver malidp_aggregate_driver = { + .probe = malidp_bind, + .remove = malidp_unbind, + .driver = { + .name = "malidp_drm", + .owner = THIS_MODULE, + }, }; static int malidp_compare_dev(struct device *dev, void *data) @@ -949,13 +955,12 @@ static int malidp_platform_probe(struct platform_device *pdev) drm_of_component_match_add(&pdev->dev, &match, malidp_compare_dev, port); of_node_put(port); - return component_master_add_with_match(&pdev->dev, &malidp_master_ops, - match); + return component_aggregate_register(&pdev->dev, &malidp_aggregate_driver, match); } static int malidp_platform_remove(struct platform_device *pdev) { - component_master_del(&pdev->dev, &malidp_master_ops); + component_aggregate_unregister(&pdev->dev, &malidp_aggregate_driver); return 0; } -- https://chromeos.dev