From patchwork Sun Jul 16 02:36:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 9842613 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id ABC7160393 for ; Sun, 16 Jul 2017 02:37:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9C16F28464 for ; Sun, 16 Jul 2017 02:37:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 90F42285B9; Sun, 16 Jul 2017 02:37:19 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 2A81928464 for ; Sun, 16 Jul 2017 02:37:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=CUV80JFzkUOpEuCm5XIq64IGVI+qAuLYv5CY6dkRAxI=; b=FLJ/rZOSox0hsvB4LhRdgRLTXE vI2e592SPJekqWsosskr3vHUndtAUasA+LBxrSQ3jtXkGdbMxDKawjxlpTq346+SdFripKgC5Rq3P W6suwUepoMi8UgFhFUr+tE6rexVAUW0cxJfB64n1wyTw/02IdfSFhz26OwRa9dzHmsKnceYOR2LcR 0wQ7mcHUOw9GmSB6029hEA779NVWN7C0oksWYxPICFEZgQxMpbvukDi8sV7Gu9/Eem/HRyquqXu1c /AcBjV+A3eBnH4EBqOQFBRx8zFsws7FmkwTODoq3CcE9OcC27YTULhDH7PO6zlaQ/9VG0KEbwizW8 hfvjttcw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dWZQq-0000mv-L9; Sun, 16 Jul 2017 02:37:16 +0000 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dWZQG-00009j-Un for linux-arm-kernel@lists.infradead.org; Sun, 16 Jul 2017 02:36:42 +0000 Received: by mail-qt0-x244.google.com with SMTP id j25so903796qtf.0 for ; Sat, 15 Jul 2017 19:36:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=pqeP8gNvXl1QAnkJvSdXvZtBZVQUif6UPv+RZlQo7zk=; b=ZMUWcMAOYfeblfD581CX8LkC57KXA8hs8POcf/JLnuQWCdJ1ff8/JchLa+VjGpJVvj vbAAJhiqG8qDHGVqtwhaSPff9CM0IQQrvwJwt/tynnP35lDv/OvJI0+naKg5Hn1ZXYl2 x+EIzN1g6xZnm/zKeCniIU6q4ud/mgfXQ64TXkyz4+pGYaZah348s9Es9vgLuAD/qDIZ 1rVRARVlmfiOg88hBeRYPFZGaeQgNTH7fdaJ/waEq0TApuxq1c6CMqqqJecqBdG/QpCJ vaKwhcgSTpi19VTGSFPtEnrmnXfeu5JCdUUvCNckwDbio9yVfkgzYLlRKLa6DFNSAPiv Lfkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=pqeP8gNvXl1QAnkJvSdXvZtBZVQUif6UPv+RZlQo7zk=; b=ZnZsd3ACTrfe0chUo9NbPbpurZsPcX3ijpAHdv8df4dnHXgdbZg+q8Q3ijd1Ybp+Hz mxjusUPGP2B113itRc5agm6s94bdXK3tz8Po6YEQJqFc3zd4ln/cY6Re5Y3Cc9USzbFF PJgrz8Ibln3bIop2wtgHQatw1MGC7EnxXj6D8IvXn8WTTS/SkqDfr0/NrfdoyqA16q5z gZqsXjwBz2+yqO8wnJRIIoIr6t+M8VJ022OQZBYyi1pdWeV7zBKV9LxZWUel0n7RcUt1 MLgPYVjYmm1scGaWo0aWcgU2OSvsINg6j+hwffF656tmbGLt/Mr+1/3EzaM/yiCi9H78 Xd2w== X-Gm-Message-State: AIVw113HjycRTBxyGk1QrH5BtCNBuFI7NOIZUrSheMAp/FVU/Et0u4T6 5ibkbEld0RYNrw== X-Received: by 10.200.41.172 with SMTP id 41mr19678363qts.85.1500172579383; Sat, 15 Jul 2017 19:36:19 -0700 (PDT) Received: from fainelli-desktop.broadcom.com ([192.19.255.250]) by smtp.gmail.com with ESMTPSA id x40sm10856966qta.66.2017.07.15.19.36.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 15 Jul 2017 19:36:18 -0700 (PDT) From: Florian Fainelli To: linux-kernel@vger.kernel.org Subject: [PATCH 2/2] soc: bcm: brcmstb: PM: Implement target_state callback Date: Sat, 15 Jul 2017 19:36:10 -0700 Message-Id: <20170716023610.4658-3-f.fainelli@gmail.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170716023610.4658-1-f.fainelli@gmail.com> References: <20170623010837.11199-1-f.fainelli@gmail.com> <20170716023610.4658-1-f.fainelli@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170715_193641_067566_5685CCD4 X-CRM114-Status: GOOD ( 12.23 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ulf Hansson , Florian Fainelli , "Rafael J. Wysocki" , linux-pm , Daniel Lezcano , "Rafael J. Wysocki" , Mason , Kevin Hilman , Alexandre Belloni , Pavel Machek , Thibaud Cornic , Linux ARM , JB MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Provide a target_state callback implementation which just returns the suspend_state_t the system is about to enter. Broadcom STB drivers can utilize platform_suspend_target_state() to retrieve that and take appropriate actions (e.g: full vs. partial re-initialization). Two states are implemented: PLATFORM_STATE_WORKING and PLATFORM_STATE_BRCMSTB_S3MEM to that end. Signed-off-by: Florian Fainelli --- drivers/soc/bcm/brcmstb/pm/pm-arm.c | 22 ++++++++++++++++++++++ include/linux/suspend.h | 1 + 2 files changed, 23 insertions(+) diff --git a/drivers/soc/bcm/brcmstb/pm/pm-arm.c b/drivers/soc/bcm/brcmstb/pm/pm-arm.c index dcf8c8065508..750a74b3fc9d 100644 --- a/drivers/soc/bcm/brcmstb/pm/pm-arm.c +++ b/drivers/soc/bcm/brcmstb/pm/pm-arm.c @@ -104,6 +104,7 @@ struct brcmstb_pm_control { u32 phy_b_standby_ctrl_offs; bool needs_ddr_pad; struct platform_device *pdev; + suspend_state_t pm_state; }; enum bsp_initiate_command { @@ -533,9 +534,30 @@ static int brcmstb_pm_valid(suspend_state_t state) } } +static int brcmstb_pm_begin(suspend_state_t state) +{ + ctrl.pm_state = state; + + return 0; +} + +static enum platform_target_state brcmstb_target_state(void) +{ + switch (ctrl.pm_state) { + case PM_SUSPEND_STANDBY: + return PLATFORM_STATE_WORKING; + case PM_SUSPEND_MEM: + return PLATFORM_STATE_BRCMSTB_S3MEM; + default: + return PLATFORM_STATE_UNKNOWN; + } +} + static const struct platform_suspend_ops brcmstb_pm_ops = { + .begin = brcmstb_pm_begin, .enter = brcmstb_pm_enter, .valid = brcmstb_pm_valid, + .target_state = brcmstb_target_state, }; static const struct of_device_id aon_ctrl_dt_ids[] = { diff --git a/include/linux/suspend.h b/include/linux/suspend.h index 6e6cc0778816..15d21d76e0bf 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h @@ -58,6 +58,7 @@ enum platform_target_state { PLATFORM_STATE_ACPI_S3, PLATFORM_STATE_ACPI_S4, /* Add platform specific states here */ + PLATFORM_STATE_BRCMSTB_S3MEM, }; struct suspend_stats {