Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/831128/?format=api
{ "id": 831128, "url": "http://patchwork.ozlabs.org/api/1.2/patches/831128/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20171027072612.26565-6-jeffy.chen@rock-chips.com/", "project": { "id": 28, "url": "http://patchwork.ozlabs.org/api/1.2/projects/28/?format=api", "name": "Linux PCI development", "link_name": "linux-pci", "list_id": "linux-pci.vger.kernel.org", "list_email": "linux-pci@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20171027072612.26565-6-jeffy.chen@rock-chips.com>", "list_archive_url": null, "date": "2017-10-27T07:26:10", "name": "[RFC,v10,5/7] PCI: Make pci_platform_pm_ops's callbacks optional", "commit_ref": null, "pull_url": null, "state": "not-applicable", "archived": false, "hash": "e37c01c43e71a2c5fdcfc55ce3976f6abdccc698", "submitter": { "id": 67754, "url": "http://patchwork.ozlabs.org/api/1.2/people/67754/?format=api", "name": "Jeffy Chen", "email": "jeffy.chen@rock-chips.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20171027072612.26565-6-jeffy.chen@rock-chips.com/mbox/", "series": [ { "id": 10523, "url": "http://patchwork.ozlabs.org/api/1.2/series/10523/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=10523", "date": "2017-10-27T07:26:06", "name": "PCI: rockchip: Move PCIe WAKE# handling into pci core", "version": 10, "mbox": "http://patchwork.ozlabs.org/series/10523/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/831128/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/831128/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<linux-pci-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-pci-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3yNb700Cxsz9t34\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 27 Oct 2017 18:27:24 +1100 (AEDT)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751530AbdJ0H1V (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tFri, 27 Oct 2017 03:27:21 -0400", "from regular1.263xmail.com ([211.150.99.136]:42223 \"EHLO\n\tregular1.263xmail.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751072AbdJ0H1T (ORCPT\n\t<rfc822; linux-pci@vger.kernel.org>); Fri, 27 Oct 2017 03:27:19 -0400", "from jeffy.chen?rock-chips.com (unknown [192.168.167.243])\n\tby regular1.263xmail.com (Postfix) with ESMTP id EE4DB5D;\n\tFri, 27 Oct 2017 15:27:16 +0800 (CST)", "from localhost (localhost [127.0.0.1])\n\tby smtp.263.net (Postfix) with ESMTPA id 129A7399;\n\tFri, 27 Oct 2017 15:27:04 +0800 (CST)", "from localhost (unknown [103.29.142.67])\n\tby smtp.263.net (Postfix) whith ESMTP id 27511MBL0F1;\n\tFri, 27 Oct 2017 15:27:14 +0800 (CST)" ], "X-263anti-spam": "KSV:0;", "X-MAIL-GRAY": "0", "X-MAIL-DELIVERY": "1", "X-KSVirus-check": "0", "X-ABS-CHECKED": "4", "X-RL-SENDER": "jeffy.chen@rock-chips.com", "X-FST-TO": "linux-kernel@vger.kernel.org", "X-SENDER-IP": "103.29.142.67", "X-LOGIN-NAME": "jeffy.chen@rock-chips.com", "X-UNIQUE-TAG": "<f18191cd199be1460ebc37e6f94d652c>", "X-ATTACHMENT-NUM": "0", "X-SENDER": "cjf@rock-chips.com", "X-DNS-TYPE": "0", "From": "Jeffy Chen <jeffy.chen@rock-chips.com>", "To": "linux-kernel@vger.kernel.org, bhelgaas@google.com", "Cc": "linux-pm@vger.kernel.org, tony@atomide.com,\n\tshawn.lin@rock-chips.com, briannorris@chromium.org,\n\trjw@rjwysocki.net, dianders@chromium.org,\n\tJeffy Chen <jeffy.chen@rock-chips.com>, linux-pci@vger.kernel.org", "Subject": "[RFC PATCH v10 5/7] PCI: Make pci_platform_pm_ops's callbacks\n\toptional", "Date": "Fri, 27 Oct 2017 15:26:10 +0800", "Message-Id": "<20171027072612.26565-6-jeffy.chen@rock-chips.com>", "X-Mailer": "git-send-email 2.11.0", "In-Reply-To": "<20171027072612.26565-1-jeffy.chen@rock-chips.com>", "References": "<20171027072612.26565-1-jeffy.chen@rock-chips.com>", "Sender": "linux-pci-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<linux-pci.vger.kernel.org>", "X-Mailing-List": "linux-pci@vger.kernel.org" }, "content": "Allow platforms not to provide some of the pci_platform_pm_ops's\ncallbacks.\n\nAlso change the return value from -ENOSYS to -ENODEV for:\nwarning: drivers/pci/pci.c,594: ENOSYS means 'invalid syscall nr' and nothing else\n\nSigned-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>\n---\n\nChanges in v10: None\nChanges in v9: None\nChanges in v8: None\nChanges in v7: None\nChanges in v6: None\nChanges in v5: None\nChanges in v3: None\nChanges in v2: None\n\n drivers/pci/pci.c | 38 +++++++++++++++++++++++++-------------\n drivers/pci/pci.h | 5 +----\n 2 files changed, 26 insertions(+), 17 deletions(-)", "diff": "diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c\nindex f0d68066c726..e120b00a9017 100644\n--- a/drivers/pci/pci.c\n+++ b/drivers/pci/pci.c\n@@ -572,46 +572,58 @@ static void pci_restore_bars(struct pci_dev *dev)\n \n static const struct pci_platform_pm_ops *pci_platform_pm;\n \n-int pci_set_platform_pm(const struct pci_platform_pm_ops *ops)\n+void pci_set_platform_pm(const struct pci_platform_pm_ops *ops)\n {\n-\tif (!ops->is_manageable || !ops->set_state || !ops->get_state ||\n-\t !ops->choose_state || !ops->set_wakeup || !ops->need_resume)\n-\t\treturn -EINVAL;\n \tpci_platform_pm = ops;\n-\treturn 0;\n }\n \n static inline bool platform_pci_power_manageable(struct pci_dev *dev)\n {\n-\treturn pci_platform_pm ? pci_platform_pm->is_manageable(dev) : false;\n+\tif (pci_platform_pm && pci_platform_pm->is_manageable)\n+\t\treturn pci_platform_pm->is_manageable(dev);\n+\n+\treturn false;\n }\n \n static inline int platform_pci_set_power_state(struct pci_dev *dev,\n \t\t\t\t\t pci_power_t t)\n {\n-\treturn pci_platform_pm ? pci_platform_pm->set_state(dev, t) : -ENOSYS;\n+\tif (pci_platform_pm && pci_platform_pm->set_state)\n+\t\treturn pci_platform_pm->set_state(dev, t);\n+\n+\treturn -ENODEV;\n }\n \n static inline pci_power_t platform_pci_get_power_state(struct pci_dev *dev)\n {\n-\treturn pci_platform_pm ? pci_platform_pm->get_state(dev) : PCI_UNKNOWN;\n+\tif (pci_platform_pm && pci_platform_pm->get_state)\n+\t\treturn pci_platform_pm->get_state(dev);\n+\n+\treturn PCI_UNKNOWN;\n }\n \n static inline pci_power_t platform_pci_choose_state(struct pci_dev *dev)\n {\n-\treturn pci_platform_pm ?\n-\t\t\tpci_platform_pm->choose_state(dev) : PCI_POWER_ERROR;\n+\tif (pci_platform_pm && pci_platform_pm->choose_state)\n+\t\treturn pci_platform_pm->choose_state(dev);\n+\n+\treturn PCI_POWER_ERROR;\n }\n \n static inline int platform_pci_set_wakeup(struct pci_dev *dev, bool enable)\n {\n-\treturn pci_platform_pm ?\n-\t\t\tpci_platform_pm->set_wakeup(dev, enable) : -ENODEV;\n+\tif (pci_platform_pm && pci_platform_pm->set_wakeup)\n+\t\treturn pci_platform_pm->set_wakeup(dev, enable);\n+\n+\treturn -ENODEV;\n }\n \n static inline bool platform_pci_need_resume(struct pci_dev *dev)\n {\n-\treturn pci_platform_pm ? pci_platform_pm->need_resume(dev) : false;\n+\tif (pci_platform_pm && pci_platform_pm->need_resume)\n+\t\treturn pci_platform_pm->need_resume(dev);\n+\n+\treturn false;\n }\n \n /**\ndiff --git a/drivers/pci/pci.h b/drivers/pci/pci.h\nindex e816a13e6259..048668271014 100644\n--- a/drivers/pci/pci.h\n+++ b/drivers/pci/pci.h\n@@ -52,9 +52,6 @@ int pci_probe_reset_function(struct pci_dev *dev);\n * @need_resume: returns 'true' if the given device (which is currently\n *\t\tsuspended) needs to be resumed to be configured for system\n *\t\twakeup.\n- *\n- * If given platform is generally capable of power managing PCI devices, all of\n- * these callbacks are mandatory.\n */\n struct pci_platform_pm_ops {\n \tbool (*is_manageable)(struct pci_dev *dev);\n@@ -65,7 +62,7 @@ struct pci_platform_pm_ops {\n \tbool (*need_resume)(struct pci_dev *dev);\n };\n \n-int pci_set_platform_pm(const struct pci_platform_pm_ops *ops);\n+void pci_set_platform_pm(const struct pci_platform_pm_ops *ops);\n void pci_update_current_state(struct pci_dev *dev, pci_power_t state);\n void pci_power_up(struct pci_dev *dev);\n void pci_disable_enabled_device(struct pci_dev *dev);\n", "prefixes": [ "RFC", "v10", "5/7" ] }