Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp662998pxb; Wed, 6 Oct 2021 12:41:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxR/NkCqAXeMs8v+xTAbwV+BomfLpiWpar2uH2H4eUa7LXKj8XWmU6Nj2Gqd/i+w081R7G8 X-Received: by 2002:a17:90a:4414:: with SMTP id s20mr38407pjg.144.1633549305784; Wed, 06 Oct 2021 12:41:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633549305; cv=none; d=google.com; s=arc-20160816; b=nAo8soBXET8hQXx70SfX+1aGjN4uOMHi9cteGiVbu+bTCe4LtaRHa+wne0w5mZM3KB rVIxdEbbE+5PzZywK/7rlPE+NCTRf+zwjJKKBAukQOW56knhnjmBuslpf7WQBPxeNRfj 5q9Ykfp4BDxvRh5e61XRG+/74+iAYq8j8Z/ZBoxDADbvwstm+H8sFI8fsocI86i4xSRn NcIN+Ls6rikPQPFZ+6tquXNbz8vdV/+j486aMPvjPDkyc+hpRjRufaVSySG/jDls/z7w Mpae5jrGVFxGjJYPUzb2Z+yN7XGdumxa899h4V0Ps6HtX5ZKISZThDYTzqrkhQhXaSfz diLw== 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=r4ZlYPrmM5Tkk7hEVqwG73Jg1s6yPoPLqqklEbvZsNs=; b=ekVuK9DZqYtmsF7g9/ssw1ecyKbkK+m16cjyEkgTzNQCGZdLNyP7LKH1WMLqW+tnDL 3/U6eHuZs6vid+hxxdDdP84oZBUbF3VSKTYp9DLepk0t4UiCU/W7bbxmAdt4atzL2+zm xYG6znAuFp4uA7VZITxgvqG79KhsIsWa2cOzgSNyGBy9oSSNsAyQwSGEpzPi6YBrTv+u vvhi7cjGItzXGAUnSPSe7rBaOUbwXsfkBN1fGZtKlw1oulhT5kxpZd4uZQVinUcO22e/ SAayEEopZpK9BEkk67lKjBnEj0ZjuiOYPQuJMwcD5q7JN/O854wfR/R8tFJAbvKitvst J0+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=iXHyWXwf; 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 q13si29238311plk.34.2021.10.06.12.41.32; Wed, 06 Oct 2021 12:41:45 -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=iXHyWXwf; 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 S239848AbhJFTmF (ORCPT + 99 others); Wed, 6 Oct 2021 15:42:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53846 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239478AbhJFTlN (ORCPT ); Wed, 6 Oct 2021 15:41:13 -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 441FDC0617A7 for ; Wed, 6 Oct 2021 12:38:56 -0700 (PDT) Received: by mail-pf1-x431.google.com with SMTP id 145so3258303pfz.11 for ; Wed, 06 Oct 2021 12:38:56 -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=r4ZlYPrmM5Tkk7hEVqwG73Jg1s6yPoPLqqklEbvZsNs=; b=iXHyWXwf/CQ5p/MtluAWBR3tIx3vtEMCYA9JvztHzfCgcdYhJD+jfKkaOxbbnqi2Yf VHxkPyGwhvl7HE48jfOvTdnMZEX98UFxUnp8X1B2Tfh/9MuvzxAAy7A612yarm75GA1B Ha+8XxSgEhEircqpplGKcbpiXwKIKaS/PIEoM= 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=r4ZlYPrmM5Tkk7hEVqwG73Jg1s6yPoPLqqklEbvZsNs=; b=X0rz0dBA4hSd3k+jWDeX6kio//A1pH9k0HgHhYcLnysC4EIqFNb+ICAVuXvQ9wFzZd rm+bkleNupvEsKiDAgtooy9DZj/dqrEBVc2IWwwiDl1aR1Ee9k+Ce/cG8EAEDDXMqY0V SAmBut1RfWqrF4Go7T3mZMk8PtF6IQ7X4iz+pO3GBGFDITBC485MnjTqc+M3zNMZ5/pT iIAfmm8EcT1oDuUKNjIdmyL46tLjb1kJEzNCZ3NTH2KWKqGvetBsqfis12OsGEMQAq24 Bdqtq2twIBcBqauPg5D2MP9XVexJOkNEkAdJ+hMhDouwkoxpYTmuN6ZZbQCA4WnvzokY ZNLw== X-Gm-Message-State: AOAM531Xl4n5XNg1dyVN6+nY6ddKx5A+oAFxVKRJo3GaGJEo+v8rHnoa MUK4ZfTs/kAkSiFVsBLDZy9AWw== X-Received: by 2002:aa7:8246:0:b0:44b:4870:1b09 with SMTP id e6-20020aa78246000000b0044b48701b09mr38855725pfn.82.1633549135884; Wed, 06 Oct 2021 12:38:55 -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.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Oct 2021 12:38:55 -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, Sebastian Reichel , linux-pm@vger.kernel.org, Daniel Vetter , "Rafael J. Wysocki" , Rob Clark , Russell King , Saravana Kannan Subject: [PATCH v2 28/34] power: supply: ab8500: Migrate to aggregate driver Date: Wed, 6 Oct 2021 12:38:13 -0700 Message-Id: <20211006193819.2654854-29-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: Sebastian Reichel Cc: Cc: Daniel Vetter Cc: "Rafael J. Wysocki" Cc: Rob Clark Cc: Russell King Cc: Saravana Kannan Signed-off-by: Stephen Boyd --- drivers/power/supply/ab8500_charger.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/drivers/power/supply/ab8500_charger.c b/drivers/power/supply/ab8500_charger.c index 15eadaf46f14..52d4105e28f2 100644 --- a/drivers/power/supply/ab8500_charger.c +++ b/drivers/power/supply/ab8500_charger.c @@ -3312,8 +3312,9 @@ static const struct power_supply_desc ab8500_usb_chg_desc = { .get_property = ab8500_charger_usb_get_property, }; -static int ab8500_charger_bind(struct device *dev) +static int ab8500_charger_bind(struct aggregate_device *adev) { + struct device *dev = adev->parent; struct ab8500_charger *di = dev_get_drvdata(dev); int ch_stat; int ret; @@ -3354,8 +3355,9 @@ static int ab8500_charger_bind(struct device *dev) return 0; } -static void ab8500_charger_unbind(struct device *dev) +static void ab8500_charger_unbind(struct aggregate_device *adev) { + struct device *dev = adev->parent; struct ab8500_charger *di = dev_get_drvdata(dev); int ret; @@ -3380,9 +3382,13 @@ static void ab8500_charger_unbind(struct device *dev) component_unbind_all(dev, di); } -static const struct component_master_ops ab8500_charger_comp_ops = { - .bind = ab8500_charger_bind, - .unbind = ab8500_charger_unbind, +static struct aggregate_driver ab8500_charger_aggregate_driver = { + .probe = ab8500_charger_bind, + .remove = ab8500_charger_unbind, + .driver = { + .name = "ab8500_charger_agg", + .owner = THIS_MODULE, + }, }; static struct platform_driver *const ab8500_charger_component_drivers[] = { @@ -3663,9 +3669,7 @@ static int ab8500_charger_probe(struct platform_device *pdev) } - ret = component_master_add_with_match(&pdev->dev, - &ab8500_charger_comp_ops, - match); + ret = component_aggregate_register(&pdev->dev, &ab8500_charger_aggregate_driver, match); if (ret) { dev_err(dev, "failed to add component master\n"); goto free_notifier; @@ -3688,7 +3692,7 @@ static int ab8500_charger_remove(struct platform_device *pdev) { struct ab8500_charger *di = platform_get_drvdata(pdev); - component_master_del(&pdev->dev, &ab8500_charger_comp_ops); + component_aggregate_unregister(&pdev->dev, &ab8500_charger_aggregate_driver); usb_unregister_notifier(di->usb_phy, &di->nb); usb_put_phy(di->usb_phy); -- https://chromeos.dev