From patchwork Fri Nov 30 11:57:31 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lee Jones X-Patchwork-Id: 13309 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 4C59423FCD for ; Fri, 30 Nov 2012 11:58:06 +0000 (UTC) Received: from mail-ia0-f180.google.com (mail-ia0-f180.google.com [209.85.210.180]) by fiordland.canonical.com (Postfix) with ESMTP id E73B6A1915F for ; Fri, 30 Nov 2012 11:58:05 +0000 (UTC) Received: by mail-ia0-f180.google.com with SMTP id t4so254541iag.11 for ; Fri, 30 Nov 2012 03:58:05 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-forwarded-to:x-forwarded-for:delivered-to:received-spf:from:to:cc :subject:date:message-id:x-mailer:in-reply-to:references :x-gm-message-state; bh=myVBQfaGRIzn4u5P+MLyXzTNz7h2X34bVO0b+hXWa6M=; b=ToooXHHIux8vHwhX844+KVBkPoxPAOiDNG0xeMFXZPbCFEHQhDQi7B8hhQBwd2vso1 sysS1Q1rgq91IpfsxIlUPensbxIfDhZIhOyaa8OQdoETHNyE1kpMxJCmzPtvxh1Ch60Q ZoBF144KRV7yGL3Zplx1EVRfjxIEX0uIpNUxoidH/wDS83thQAfpnScmuDrkLR1/1Qzs OIxP1iHvueAdU3+Uag1rLAfG1hNAqM1WgYgId9JvTj4/GozSYpgF9Ir09TCc7qmBXj4J eLDwitLFaZ5B0SYV9U2YlQ+uWb3YwamCJPuF3plfvUaMixPlf8gikv8svAY0fgo/tm7s fh+Q== Received: by 10.50.42.168 with SMTP id p8mr749896igl.57.1354276685709; Fri, 30 Nov 2012 03:58:05 -0800 (PST) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.50.67.148 with SMTP id n20csp1011286igt; Fri, 30 Nov 2012 03:58:05 -0800 (PST) Received: by 10.180.83.97 with SMTP id p1mr1677205wiy.2.1354276684596; Fri, 30 Nov 2012 03:58:04 -0800 (PST) Received: from mail-wg0-f51.google.com (mail-wg0-f51.google.com [74.125.82.51]) by mx.google.com with ESMTPS id fa2si8946747wib.14.2012.11.30.03.58.04 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 30 Nov 2012 03:58:04 -0800 (PST) Received-SPF: neutral (google.com: 74.125.82.51 is neither permitted nor denied by best guess record for domain of lee.jones@linaro.org) client-ip=74.125.82.51; Authentication-Results: mx.google.com; spf=neutral (google.com: 74.125.82.51 is neither permitted nor denied by best guess record for domain of lee.jones@linaro.org) smtp.mail=lee.jones@linaro.org Received: by mail-wg0-f51.google.com with SMTP id gg4so154872wgb.6 for ; Fri, 30 Nov 2012 03:58:04 -0800 (PST) Received: by 10.216.193.29 with SMTP id j29mr409949wen.143.1354276684109; Fri, 30 Nov 2012 03:58:04 -0800 (PST) Received: from localhost.localdomain (cpc1-aztw13-0-0-cust473.18-1.cable.virginmedia.com. [77.102.241.218]) by mx.google.com with ESMTPS id i6sm14966896wix.5.2012.11.30.03.58.02 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 30 Nov 2012 03:58:03 -0800 (PST) From: Lee Jones To: linux-kernel@vger.kernel.org Cc: linus.walleij@stericsson.com, arnd@arndb.de, cbou@mail.ru, dwmw2@infradead.org, rajanikanth.hv@linaro.org, Lee Jones Subject: [PATCH 09/12] ab8500_charger: Reorder obtainment of platform specific battery management data Date: Fri, 30 Nov 2012 11:57:31 +0000 Message-Id: <1354276654-590-10-git-send-email-lee.jones@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1354276654-590-1-git-send-email-lee.jones@linaro.org> References: <1354276654-590-1-git-send-email-lee.jones@linaro.org> X-Gm-Message-State: ALoCoQl0WwCkQFC7uybSUMw+mxssjVDa2zU3XlUcD58TvVxU8jpkLd1/9CAa17oz1plxIDFZhNsx Now that we always pass platform specific battery management data through platform_data instead of obtaining it via different means depending the way be boot the system (DT or ATAGs); we need to re-jiggle the way we acquire it in the driver start-up functions. Now it is wrong for it to be missing, but we still allow Device Tree code to fiddle with it once we've confirmed it's there. Signed-off-by: Lee Jones --- drivers/power/ab8500_charger.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/drivers/power/ab8500_charger.c b/drivers/power/ab8500_charger.c index c1077df..2ddface 100644 --- a/drivers/power/ab8500_charger.c +++ b/drivers/power/ab8500_charger.c @@ -2636,6 +2636,7 @@ static char *supply_interface[] = { static int __devinit ab8500_charger_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; + struct abx500_bm_data *plat = pdev->dev.platform_data; struct ab8500_charger *di; int irq, i, charger_status, ret = 0; @@ -2644,24 +2645,22 @@ static int __devinit ab8500_charger_probe(struct platform_device *pdev) dev_err(&pdev->dev, "%s no mem for ab8500_charger\n", __func__); return -ENOMEM; } - di->bm = pdev->mfd_cell->platform_data; - if (!di->bm) { - if (np) { - ret = ab8500_bm_of_probe(&pdev->dev, np, di->bm); - if (ret) { - dev_err(&pdev->dev, - "failed to get battery information\n"); - return ret; - } - di->autopower_cfg = of_property_read_bool(np, "autopower_cfg"); - } else { - dev_err(&pdev->dev, "missing dt node for ab8500_charger\n"); - return -EINVAL; + + if (!plat) { + dev_err(&pdev->dev, "no battery management data supplied\n"); + return -EINVAL; + } + di->bm = plat; + + if (np) { + ret = ab8500_bm_of_probe(&pdev->dev, np, di->bm); + if (ret) { + dev_err(&pdev->dev, "failed to get battery information\n"); + return ret; } - } else { - dev_info(&pdev->dev, "falling back to legacy platform data\n"); + di->autopower_cfg = of_property_read_bool(np, "autopower_cfg"); + } else di->autopower_cfg = false; - } /* get parent data */ di->dev = &pdev->dev;