Show a cover letter.

GET /api/covers/810979/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 810979,
    "url": "http://patchwork.ozlabs.org/api/covers/810979/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/cover/1504784522-26841-1-git-send-email-yamada.masahiro@socionext.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": "<1504784522-26841-1-git-send-email-yamada.masahiro@socionext.com>",
    "list_archive_url": null,
    "date": "2017-09-07T11:41:56",
    "name": "[v4,0/6] irqdomain, gpio: expand irq_domain_push_irq() for DT use and use it for GPIO",
    "submitter": {
        "id": 65882,
        "url": "http://patchwork.ozlabs.org/api/people/65882/?format=api",
        "name": "Masahiro Yamada",
        "email": "yamada.masahiro@socionext.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/cover/1504784522-26841-1-git-send-email-yamada.masahiro@socionext.com/mbox/",
    "series": [
        {
            "id": 1983,
            "url": "http://patchwork.ozlabs.org/api/series/1983/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=1983",
            "date": "2017-09-07T11:41:57",
            "name": "irqdomain, gpio: expand irq_domain_push_irq() for DT use and use it for GPIO",
            "version": 4,
            "mbox": "http://patchwork.ozlabs.org/series/1983/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/810979/comments/",
    "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=nifty.com header.i=@nifty.com\n\theader.b=\"FPS/7xP+\"; dkim-atps=neutral"
        ],
        "Received": [
            "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xnzBV3qKrz9t2W\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu,  7 Sep 2017 21:44:18 +1000 (AEST)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1755302AbdIGLoG (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tThu, 7 Sep 2017 07:44:06 -0400",
            "from conuserg-09.nifty.com ([210.131.2.76]:17395 \"EHLO\n\tconuserg-09.nifty.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1755169AbdIGLoE (ORCPT\n\t<rfc822; linux-gpio@vger.kernel.org>); Thu, 7 Sep 2017 07:44:04 -0400",
            "from pug.e01.socionext.com (p14092-ipngnfx01kyoto.kyoto.ocn.ne.jp\n\t[153.142.97.92]) (authenticated)\n\tby conuserg-09.nifty.com with ESMTP id v87BgcOw021413;\n\tThu, 7 Sep 2017 20:42:39 +0900"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.10.3 conuserg-09.nifty.com v87BgcOw021413",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com;\n\ts=dec2015msa; t=1504784560;\n\tbh=d5E/YrHhCVoogRF3dAVJd3wVxxZvl3mjiIFY4uP1Ce0=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=FPS/7xP+UZ0qMWi6kI3LRm6opa5tlLPbxNb59cTQeg+l/qf1BwEm+6iElJGWbsJ0a\n\tnf0pRDgsthWaXPIYSR4fozpSkdjonvXIlHmUVaidem4j6hqqzsnT93Ah+bbf4deBi7\n\tI4c+u5oUuy9g6xIEEdHKaJQV45+FyudwBjB6ze5WhJu6gRKRDScj4nyCpsbXzmwYKs\n\tuiUSYs/DDB+3lEcXnlh12cxSNS0mUTAOkr6KDN8x8RmXBUlocpjR+KHJGV3RqDYIb5\n\tdrhwzRm/D3SAQLQBt4UJ61ul9oqAFqLXreOc6RLKFBoAS56v3nUOq2CRYdymWgIAca\n\tO7Yhn/VFeYOgg==",
        "X-Nifty-SrcIP": "[153.142.97.92]",
        "From": "Masahiro Yamada <yamada.masahiro@socionext.com>",
        "To": "Marc Zyngier <marc.zyngier@arm.com>,\n\tThomas Gleixner <tglx@linutronix.de>,\n\tLinus Walleij <linus.walleij@linaro.org>,\n\tlinux-gpio@vger.kernel.org, Rob Herring <robh+dt@kernel.org>",
        "Cc": "Jassi Brar <jaswinder.singh@linaro.org>,\n\tdevicetree@vger.kernel.org, Jason Cooper <jason@lakedaemon.net>,\n\tMasami Hiramatsu <mhiramat@kernel.org>,\n\tDavid Daney <david.daney@cavium.com>,\n\tMasahiro Yamada <yamada.masahiro@socionext.com>,\n\tlinux-kernel@vger.kernel.org, Mark Rutland <mark.rutland@arm.com>,\n\tlinux-arm-kernel@lists.infradead.org",
        "Subject": "[PATCH v4 0/6] irqdomain,\n\tgpio: expand irq_domain_push_irq() for DT use and use it for GPIO",
        "Date": "Thu,  7 Sep 2017 20:41:56 +0900",
        "Message-Id": "<1504784522-26841-1-git-send-email-yamada.masahiro@socionext.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "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": "This series adds a GPIO controller for UniPhier SoC family.\nIt also works as an irqchip in hierarchy domain manner.\n\nMy problem is mapping of IRQ from this controller to the parent\nirqchip is not contiguous.\n\n  IRQ line of GPIO  --->  Parent interrupt\n        0           --->     48\n        1           --->     49\n                ...\n        15          --->     63\n        16          --->    154\n        17          --->    155\n                ...\n        20          --->    158\n        21          --->    217\n        22          --->    218\n                ...\n\nSo, I need to have an array of parent hwirqs somehow.\n\nProbably, most of people will try to use \"interrupts\" DT property,\nbut I noticed a potential problem for hierarchy IRQ domain.\nIf \"interrupts\" property exists in the device node, IRQ resource\nmay be statically allocated when platform devices are populated\nfrom DT.  I asked this question some time ago:\nhttps://lkml.org/lkml/2017/7/6/758\n\nAfter I tackled this, I decided to put the array in the driver,\nbut I could not get a positive response for this.\nThe discussion mostly happened in v1 thread:\nhttp://patchwork.ozlabs.org/patch/797145/\n\nRecently, the new API irq_domain_push_irq() was merged in the\nmainline.  I thought this might be useful to solve the hierarchy\ndomain issue.  Hence, here is a trial.\n\nI found patch 2 is needed to avoid \"type mismatch\" error.\n\nOne more thing, I am worried about a race condition.\n\nI think there is a possibility where a device tries to get IRQ\nafter irq_domain_create_hierarchy(), but before irq_domain_push_irq().\n\n\tpriv->domain = irq_domain_create_hierarchy(...)\n\tif (!priv->domain)\n\t\treturn -ENOMEM;\n\n        [  *** What if a irq consumer device request the irq here? *** ]\n\n\tfor (i = 0; i < nirqs; i++) {\n\t\tvirq = platform_get_irq(pdev, i);\n\t\tif (virq < 0)\n\t\t\tcontinue;\n\n\t\tret = irq_domain_push_irq(priv->domain, virq, (void *)(long)i);\n\t\tif (ret)\n\t\t\treturn ret;\n\t}\n\nBy the time irq_domain_create_hierarchy() finished,\nthe irqdomain will be added to the \"irq_domain_list\".\n\nIf a device calls platform_get_irq(),\nthe domain is registered, but virq is not allocated yet.\n\nSo, irq_create_fwspec_mapping() will call irq_domain_alloc_irqs(),\nthen irqchip's .alloc() hook is invoked with fwspec passed as arg.\n\nI tried to fix this by patch 3 and 4.\n\nThis topic is related to both irqdomain and GPIO,\nso includes them in a series.\n\nComments are appreciated.\n\nI am not sure if my approach is correct.\nIf I am doing wrong, I will go back to the previous adhoc solution.\n\n\n\nMasahiro Yamada (6):\n  irqdomain: rename variables in irq_domain_{push,pop}_irq()\n  irqdomain: clear trigger type in irq_domain_push_irq()\n  irqdomain: move IRQ_DOMAIN_NAME_ALLOCATED define to the original\n    position\n  irqdomain: set irq domain flags before the irq domain becomes visible\n  irqdomain: add IRQ_DOMAIN_FLAG_NO_CREATE flag\n  gpio: uniphier: add UniPhier GPIO controller driver\n\n .../devicetree/bindings/gpio/gpio-uniphier.txt     |  43 ++\n MAINTAINERS                                        |   1 +\n drivers/gpio/Kconfig                               |   8 +\n drivers/gpio/Makefile                              |   1 +\n drivers/gpio/gpio-uniphier.c                       | 486 +++++++++++++++++++++\n include/dt-bindings/gpio/uniphier-gpio.h           |  18 +\n include/linux/irqdomain.h                          |  22 +-\n kernel/irq/irqdomain.c                             |  93 ++--\n 8 files changed, 619 insertions(+), 53 deletions(-)\n create mode 100644 Documentation/devicetree/bindings/gpio/gpio-uniphier.txt\n create mode 100644 drivers/gpio/gpio-uniphier.c\n create mode 100644 include/dt-bindings/gpio/uniphier-gpio.h"
}