Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp663237pxb; Wed, 6 Oct 2021 12:42:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzbjcWUUD67qQhpxEl/MbqzGiWojPX0l0FuXiTXoxK3DBeCqR2rG7B1xTHmI71MBIsscXtK X-Received: by 2002:a63:7e41:: with SMTP id o1mr459905pgn.436.1633549322114; 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=MRBDuXosYU+9UfFYm2ksotvye7bk44CxyPrxdG7x+trlQYzdUeTa3JZmIJ/Gc6nymW AwGIUqZJaC/TpQHGXeD+z46xK8L67YC5J28HOWE+vkyc+/v/FBAVUnHPsN8x/MS6F5hr eXr3YIK8RpF9UKYAjzIDyb/hXxpQUmEhU9vtp85UiyllKzMC8FV9y0rbtoOEfJs2cIaX TJcoNt8ZIaWE5WcchlBdQrDGkzLQRt8QLK8F6ulte2OZRYvpLinSoLF+zjKCS4KA+Xc4 6u8wxu9snWGLe4ywYcdcQ0Y0Y+U+YNJXUhLlTEUVcMMVszqI4ZUyVzHxbLSXoucqqVuC /zJQ== 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=+z8spq4cdcPKhNDSMMsr6lVILQ9GCMpzmsR3lgzTaCA=; b=YBDpizz/WEfj7dN/avJrudJqZWvqMvv2YMTpca4gaBAwptOpTga/WJl0iIWHYrLCoU uI1+319Og0Q41dMim0hWH0n+Sk3mgvpGWMcOUfBdgnpbttv6imz1/C5wo+99WTDcyoZD HbBhtvbOWsSdEFr9RgY3FzmTOjI+CPy60MvExWcYsU4IAABve9MtQmfJ5gvaOnWSfun2 XjKspkpApXPslpKNgA2srwn5xa/uxW4BEVE7mGrPtk1pHjzZ9L6OX5GLhl87yiCfuJ51 ADUtnJ8oe2ywp6Ul9EE8pD/z6TNFwTDDKn3OQh5VbqzfRO196ZvscJYeyyZtNLakOEJ5 Yrnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=iGHSnRww; 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 q12si28380615pgv.303.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=iGHSnRww; 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 S239617AbhJFTlQ (ORCPT + 99 others); Wed, 6 Oct 2021 15:41:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53854 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239558AbhJFTkl (ORCPT ); Wed, 6 Oct 2021 15:40:41 -0400 Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 682C9C061746 for ; Wed, 6 Oct 2021 12:38:45 -0700 (PDT) Received: by mail-pf1-x42f.google.com with SMTP id g14so3297343pfm.1 for ; Wed, 06 Oct 2021 12:38:45 -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=+z8spq4cdcPKhNDSMMsr6lVILQ9GCMpzmsR3lgzTaCA=; b=iGHSnRwwchpi5Tkq7doMTNvFa9r3VADcN321p5gth6rsSAkCxChv1/TpcoexdUqwTf bjTWhC9Go7emQT2Jp1DsbdOh4ilw3joEHD55nLlHU0YDLAtXqWTaVbyk8yGr1ilxMqKg f+EqQleH2dzNCB2xM7okVOrBTmrtYa8J1rIyY= 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=+z8spq4cdcPKhNDSMMsr6lVILQ9GCMpzmsR3lgzTaCA=; b=K25N2PUSmKQFQ4b670RoHIt9vTRVuUvp2XUhoxY44bobMd/g2nB3ie7KFaK8IDDgbH m5xsCD1lx6XjvbqjK+l+rNsPsABWsCw/+0Y+pTZlMO4l9huJUAi6RgG1tdPls+BY7Vf1 eNAp62vZXaqAEXrhRT7YeVz+yw11+W8Ensd8suyOgQvgcwpC8Kiz4TI60UEMzl5c1u+h 7QE4LylkUjteCjGoR/aJB2KMFKcI4COIur+OI0wFkY4Ca47Kqrgg6aJ9aaAVjkrF0K5J gLQVjC1c5XsnXZRqqe54Byj6rb7m7r6k7/XRTpBz8RKGNl3loUDiM3l1mKLXXaQP9vWd lgRg== X-Gm-Message-State: AOAM530iusG0udYQlHZJfvJ1U4BckCrOtLJmpTXcJfg+NFPqySVaBJ2g T10kcNDrg6i/DqYl+eFcykLJ3w== X-Received: by 2002:aa7:8c12:0:b0:44c:5e3e:3733 with SMTP id c18-20020aa78c12000000b0044c5e3e3733mr19528656pfd.55.1633549124937; Wed, 06 Oct 2021 12:38:44 -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.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Oct 2021 12:38:44 -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, Tomi Valkeinen , Daniel Vetter , "Rafael J. Wysocki" , Rob Clark , Russell King , Saravana Kannan Subject: [PATCH v2 19/34] drm/omap: Migrate to aggregate driver Date: Wed, 6 Oct 2021 12:38:04 -0700 Message-Id: <20211006193819.2654854-20-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: Tomi Valkeinen Cc: Daniel Vetter Cc: "Rafael J. Wysocki" Cc: Rob Clark Cc: Russell King Cc: Saravana Kannan Signed-off-by: Stephen Boyd --- drivers/gpu/drm/omapdrm/dss/dss.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c b/drivers/gpu/drm/omapdrm/dss/dss.c index d6a5862b4dbf..6a6ae2786d7a 100644 --- a/drivers/gpu/drm/omapdrm/dss/dss.c +++ b/drivers/gpu/drm/omapdrm/dss/dss.c @@ -1304,8 +1304,9 @@ static const struct soc_device_attribute dss_soc_devices[] = { { /* sentinel */ } }; -static int dss_bind(struct device *dev) +static int dss_bind(struct aggregate_device *adev) { + struct device *dev = adev->parent; struct dss_device *dss = dev_get_drvdata(dev); struct platform_device *drm_pdev; struct dss_pdata pdata; @@ -1339,9 +1340,13 @@ static void dss_unbind(struct device *dev) component_unbind_all(dev, NULL); } -static const struct component_master_ops dss_component_ops = { - .bind = dss_bind, - .unbind = dss_unbind, +static struct aggregate_driver dss_aggregate_driver = { + .probe = dss_bind, + .remove = dss_unbind, + .driver = { + .name = "dss_drm", + .owner = THIS_MODULE, + }, }; static int dss_component_compare(struct device *dev, void *data) @@ -1504,7 +1509,7 @@ static int dss_probe(struct platform_device *pdev) cmatch.match = &match; device_for_each_child(&pdev->dev, &cmatch, dss_add_child_component); - r = component_master_add_with_match(&pdev->dev, &dss_component_ops, match); + r = component_aggregate_register(&pdev->dev, &dss_aggregate_driver, match); if (r) goto err_of_depopulate; @@ -1543,7 +1548,7 @@ static int dss_remove(struct platform_device *pdev) of_platform_depopulate(&pdev->dev); - component_master_del(&pdev->dev, &dss_component_ops); + component_aggregate_unregister(&pdev->dev, &dss_aggregate_driver); dss_debugfs_remove_file(dss->debugfs.clk); dss_debugfs_remove_file(dss->debugfs.dss); -- https://chromeos.dev