Show a cover letter.

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

{
    "id": 810978,
    "url": "http://patchwork.ozlabs.org/api/covers/810978/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-imx/cover/1504784522-26841-1-git-send-email-yamada.masahiro@socionext.com/",
    "project": {
        "id": 19,
        "url": "http://patchwork.ozlabs.org/api/projects/19/?format=api",
        "name": "Linux IMX development",
        "link_name": "linux-imx",
        "list_id": "linux-imx-kernel.lists.patchwork.ozlabs.org",
        "list_email": "linux-imx-kernel@lists.patchwork.ozlabs.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "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-imx/cover/1504784522-26841-1-git-send-email-yamada.masahiro@socionext.com/mbox/",
    "series": [
        {
            "id": 1984,
            "url": "http://patchwork.ozlabs.org/api/series/1984/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-imx/list/?series=1984",
            "date": "2017-09-07T11:41:56",
            "name": "irqdomain, gpio: expand irq_domain_push_irq() for DT use and use it for GPIO",
            "version": 4,
            "mbox": "http://patchwork.ozlabs.org/series/1984/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/810978/comments/",
    "headers": {
        "Return-Path": "<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>",
        "X-Original-To": "incoming-imx@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming-imx@bilbo.ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org header.b=\"N7pA1Goo\"; \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 bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xnz9m2t8tz9t2W\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tThu,  7 Sep 2017 21:43:40 +1000 (AEST)",
            "from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1dpvDd-0003s4-6c; Thu, 07 Sep 2017 11:43:37 +0000",
            "from conuserg-09.nifty.com ([210.131.2.76])\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1dpvDY-0003na-RS for linux-arm-kernel@lists.infradead.org;\n\tThu, 07 Sep 2017 11:43:35 +0000",
            "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-Signature": [
            "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe:\n\tList-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date:\n\tSubject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:\n\tResent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:\n\tReferences:List-Owner; bh=7G0f0kWQ8VJcJIH6x4lki+Xxi3IkUdMau/ABGH3wg90=;\n\tb=N7p\n\tA1Goo3ix7TwNNaHXTSpL6W48WuiNB7QU6jmXoahpG0NUZpNDJ4TlBVGqlW6tjB2K7p1N+S8PfC+hm\n\tQCzvRPu7Mzt8/4gMOmDGkMPXcmwxAhvJS2ftX9RDYIMvszhRdkUasJ/ow6d5xv1lfbBF1qo9Vag0S\n\tPIKAM857RoQURS4rnHfekaSFFZ0EjZJUr9yXjMowCuJuVFQHrheXRCxfqZczDy0XdxQJsuRa/Irct\n\tYAVReaqi8rXP5MaacMqahvjREmP2r59cvWMO61GJvFxI88XbuBUESMyGJIMlSO9vEK5m/IFi2sYIm\n\t2VwIpCKlgZ5NHrghIfGgzR3VmzkVSRA==;",
            "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=="
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.10.3 conuserg-09.nifty.com v87BgcOw021413",
        "X-Nifty-SrcIP": "[153.142.97.92]",
        "From": "Masahiro Yamada <yamada.masahiro@socionext.com>",
        "To": "Marc Zyngier <marc.zyngier@arm.com>, Thomas Gleixner <tglx@linutronix.de>,\n\tLinus Walleij <linus.walleij@linaro.org>, linux-gpio@vger.kernel.org, \n\tRob Herring <robh+dt@kernel.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",
        "X-CRM114-Version": "20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ",
        "X-CRM114-CacheID": "sfid-20170907_044333_269216_125AB54E ",
        "X-CRM114-Status": "GOOD (  15.37  )",
        "X-Spam-Score": "-1.2 (-)",
        "X-Spam-Report": "SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-1.2 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t0.7 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail)\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]\n\t-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature\n\t0.1 DKIM_SIGNED            Message has a DKIM or DK signature,\n\tnot necessarily valid",
        "X-BeenThere": "linux-arm-kernel@lists.infradead.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Unsubscribe": "<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.infradead.org/pipermail/linux-arm-kernel/>",
        "List-Post": "<mailto:linux-arm-kernel@lists.infradead.org>",
        "List-Help": "<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>",
        "List-Subscribe": "<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>",
        "Cc": "Mark Rutland <mark.rutland@arm.com>, devicetree@vger.kernel.org,\n\tJason Cooper <jason@lakedaemon.net>,\n\tJassi Brar <jaswinder.singh@linaro.org>, \n\tDavid Daney <david.daney@cavium.com>, linux-kernel@vger.kernel.org,\n\tMasahiro Yamada <yamada.masahiro@socionext.com>,\n\tMasami Hiramatsu <mhiramat@kernel.org>,\n\tlinux-arm-kernel@lists.infradead.org",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Sender": "\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>",
        "Errors-To": "linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org",
        "List-Id": "linux-imx-kernel.lists.patchwork.ozlabs.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"
}