Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/816626/?format=api
{ "id": 816626, "url": "http://patchwork.ozlabs.org/api/patches/816626/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20170921010421.7467-2-f.fainelli@gmail.com/", "project": { "id": 42, "url": "http://patchwork.ozlabs.org/api/projects/42/?format=api", "name": "Linux GPIO development", "link_name": "linux-gpio", "list_id": "linux-gpio.vger.kernel.org", "list_email": "linux-gpio@vger.kernel.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170921010421.7467-2-f.fainelli@gmail.com>", "list_archive_url": null, "date": "2017-09-21T01:04:20", "name": "[1/2] pinctrl: Allow a device to indicate when to force a state", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "7109c3fdbb05f01ea9d3c5f18716b08839926af5", "submitter": { "id": 2800, "url": "http://patchwork.ozlabs.org/api/people/2800/?format=api", "name": "Florian Fainelli", "email": "f.fainelli@gmail.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20170921010421.7467-2-f.fainelli@gmail.com/mbox/", "series": [ { "id": 4266, "url": "http://patchwork.ozlabs.org/api/series/4266/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=4266", "date": "2017-09-21T01:04:19", "name": "pinctrl: Allow indicating loss of state across suspend/resume", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/4266/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/816626/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/816626/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<linux-gpio-owner@vger.kernel.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-gpio-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"pRhnQoAi\"; dkim-atps=neutral" ], "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xyJLB4Wnxz9s0Z\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 21 Sep 2017 11:04:50 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752069AbdIUBEb (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tWed, 20 Sep 2017 21:04:31 -0400", "from mail-qk0-f196.google.com ([209.85.220.196]:37342 \"EHLO\n\tmail-qk0-f196.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751957AbdIUBE2 (ORCPT\n\t<rfc822; linux-gpio@vger.kernel.org>); Wed, 20 Sep 2017 21:04:28 -0400", "by mail-qk0-f196.google.com with SMTP id r66so2747632qke.4;\n\tWed, 20 Sep 2017 18:04:28 -0700 (PDT)", "from stb-bld-03.irv.broadcom.com ([192.19.255.250])\n\tby smtp.gmail.com with ESMTPSA id\n\tt2sm184971qkd.16.2017.09.20.18.04.25\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tWed, 20 Sep 2017 18:04:26 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=9QDWuY64h73B1o4nahEPrmclzv1BNHHbDCOALsVd5gA=;\n\tb=pRhnQoAizL07j1AUGOKXWL7wyQLaru2kz0KW9K/lLykB3yNz0hnT2A3AK3NwZbdZzD\n\t0XNhzY6Ujflw/zSB2IjpnwJopJnP7VndkMnyF5tHTqI0w857UZrF+Jr0nIQt/9yi+9ZK\n\tzWQvLcSvPkBo6B2mZZrBAWajfYK9PNWEohohlL2z+13VG1bKDI2VU/YCp8+TAP5b9UgT\n\tpjsFXuX2OOq8rELJV8L6RlSwRef+C4XVeAgY0mfJmRz4XWXOGzIpPyRCobMVV8hEpMwT\n\t6EEo5y9adoi0r9aFuAyOXqDauOfAgsGGQOpCB4GCw+87QFj7XrM4btFJpFMnm7ncrNld\n\t101w==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=9QDWuY64h73B1o4nahEPrmclzv1BNHHbDCOALsVd5gA=;\n\tb=eVvDDJU8r59LXdXaipAsKIiujE8dC+xQttEzQ9JgPhvxHVHrNbuog7+qy6OHhKGzDA\n\tIoEiPQwxZIBW6ZQbY4OiH6jLrNTFY+9hllOq92R58ttD15N8JSLqkdgSj/gChdRo4lSj\n\ts5cIa+CeTv6c6rD1QLLr50w7PEkXDX5fjmivYFJNtk1ltUhN7Jv1BpkTWaqJ0cO6Z0O8\n\t9BtJWUKFjEMvNkWkOfDCHLWsbAhBfYSP8HCqVC8UBNjGHIMwGMr6X2PvAzud7e2v4czo\n\tu5scB4rgQYacPWJsPYZRbzw/3vEA3T0nK8L+SUMVvPrynzqcUC2q3QD7A1P82/98bPDo\n\tNCzg==", "X-Gm-Message-State": "AHPjjUjTm3N+Dm8nBnrqIpdgHwAa9IM/7NvGoOUeOu7z8QgvYUJtN4U7\n\tMUMtJb4OxMdPJAWFH43eM3AXJUK3", "X-Google-Smtp-Source": "AOwi7QAuUKAAcIxSSwr5Xn3EHoJ791aMvabu6DV9+q4zhstUXmb8AVwrMSB6z253rJT1DpRoiKsq3w==", "X-Received": "by 10.55.66.22 with SMTP id p22mr850586qka.78.1505955867437;\n\tWed, 20 Sep 2017 18:04:27 -0700 (PDT)", "From": "Florian Fainelli <f.fainelli@gmail.com>", "To": "linux-kernel@vger.kernel.org", "Cc": "linus.walleij@linaro.org, swarren@nvidia.com,\n\tandy.shevchenko@gmail.com, alcooperx@gmail.com,\n\tlinux-gpio@vger.kernel.org, devicetree@vger.kernel.org,\n\trobh+dt@kernel.org, mark.rutland@arm.com,\n\tbcm-kernel-feedback-list@broadcom.com,\n\tFlorian Fainelli <f.fainelli@gmail.com>", "Subject": "[PATCH 1/2] pinctrl: Allow a device to indicate when to force a\n\tstate", "Date": "Wed, 20 Sep 2017 18:04:20 -0700", "Message-Id": "<20170921010421.7467-2-f.fainelli@gmail.com>", "X-Mailer": "git-send-email 2.14.1", "In-Reply-To": "<20170921010421.7467-1-f.fainelli@gmail.com>", "References": "<20170921010421.7467-1-f.fainelli@gmail.com>", "Sender": "linux-gpio-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<linux-gpio.vger.kernel.org>", "X-Mailing-List": "linux-gpio@vger.kernel.org" }, "content": "It may happen that a device needs to force applying a state, e.g:\nbecause it only defines one state of pin states (default) but loses\npower/register contents when entering low power modes. Add a\npinctrl_dev::flags bitmask to help describe future quirks and define\nPINCTRL_FLG_FORCE_STATE as such a settable flag.\n\nSigned-off-by: Florian Fainelli <f.fainelli@gmail.com>\n---\n drivers/pinctrl/core.c | 15 +++++++++++++++\n drivers/pinctrl/core.h | 4 ++++\n 2 files changed, 19 insertions(+)", "diff": "diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c\nindex 56fbe4c3e800..c450a97de88f 100644\n--- a/drivers/pinctrl/core.c\n+++ b/drivers/pinctrl/core.c\n@@ -1197,11 +1197,26 @@ int pinctrl_select_state(struct pinctrl *p, struct pinctrl_state *state)\n {\n \tstruct pinctrl_setting *setting, *setting2;\n \tstruct pinctrl_state *old_state = p->state;\n+\tbool force = false;\n \tint ret;\n \n \tif (p->state == state)\n \t\treturn 0;\n \n+\tif (p->state) {\n+\t\tlist_for_each_entry(setting, &p->state->settings, node) {\n+\t\t\tif (setting->pctldev->flags & PINCTRL_FLG_FORCE_STATE)\n+\t\t\t\tforce = true;\n+\t\t}\n+\t}\n+\n+\t/* Some controllers may want to force this operation when they define\n+\t * only one set of functions and lose power state, e.g: pinctrl-single\n+\t * with its pinctrl-single,low-power-state-loss property.\n+\t */\n+\tif (p->state == state && !force)\n+\t\treturn 0;\n+\n \tif (p->state) {\n \t\t/*\n \t\t * For each pinmux setting in the old state, forget SW's record\ndiff --git a/drivers/pinctrl/core.h b/drivers/pinctrl/core.h\nindex 7880c3adc450..5fbf4dd1fa76 100644\n--- a/drivers/pinctrl/core.h\n+++ b/drivers/pinctrl/core.h\n@@ -39,6 +39,7 @@ struct pinctrl_gpio_range;\n * @hog_sleep: sleep state for pins hogged by this device\n * @mutex: mutex taken on each pin controller specific action\n * @device_root: debugfs root for this device\n+ * @flags: feature/quirk flags\n */\n struct pinctrl_dev {\n \tstruct list_head node;\n@@ -63,8 +64,11 @@ struct pinctrl_dev {\n #ifdef CONFIG_DEBUG_FS\n \tstruct dentry *device_root;\n #endif\n+\tunsigned long flags;\n };\n \n+#define PINCTRL_FLG_FORCE_STATE\t(1 << 0)\n+\n /**\n * struct pinctrl - per-device pin control state holder\n * @node: global list node\n", "prefixes": [ "1/2" ] }