Show a cover letter.

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

{
    "id": 809926,
    "url": "http://patchwork.ozlabs.org/api/covers/809926/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/rtc-linux/cover/cover.1504588701.git.sathyanarayanan.kuppuswamy@linux.intel.com/",
    "project": {
        "id": 9,
        "url": "http://patchwork.ozlabs.org/api/projects/9/?format=api",
        "name": "Linux RTC development",
        "link_name": "rtc-linux",
        "list_id": "linux-rtc.vger.kernel.org",
        "list_email": "linux-rtc@vger.kernel.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<cover.1504588701.git.sathyanarayanan.kuppuswamy@linux.intel.com>",
    "list_archive_url": null,
    "date": "2017-09-05T05:37:20",
    "name": "[RFC,v3,0/7] PMC/PUNIT IPC driver cleanup",
    "submitter": {
        "id": 66129,
        "url": "http://patchwork.ozlabs.org/api/people/66129/?format=api",
        "name": "Kuppuswamy Sathyanarayanan",
        "email": "sathyanarayanan.kuppuswamy@linux.intel.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/rtc-linux/cover/cover.1504588701.git.sathyanarayanan.kuppuswamy@linux.intel.com/mbox/",
    "series": [
        {
            "id": 1490,
            "url": "http://patchwork.ozlabs.org/api/series/1490/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/rtc-linux/list/?series=1490",
            "date": "2017-09-05T05:37:20",
            "name": "PMC/PUNIT IPC driver cleanup",
            "version": 3,
            "mbox": "http://patchwork.ozlabs.org/series/1490/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/809926/comments/",
    "headers": {
        "Return-Path": "<linux-rtc-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-rtc-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 3xmb930BZRz9sNq\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  5 Sep 2017 15:38:15 +1000 (AEST)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1754025AbdIEFiO (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tTue, 5 Sep 2017 01:38:14 -0400",
            "from mga01.intel.com ([192.55.52.88]:3891 \"EHLO mga01.intel.com\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1751091AbdIEFiN (ORCPT <rfc822;linux-rtc@vger.kernel.org>);\n\tTue, 5 Sep 2017 01:38:13 -0400",
            "from orsmga005.jf.intel.com ([10.7.209.41])\n\tby fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t04 Sep 2017 22:38:13 -0700",
            "from skuppusw-desk.jf.intel.com ([10.7.198.92])\n\tby orsmga005.jf.intel.com with ESMTP; 04 Sep 2017 22:38:12 -0700"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.41,478,1498546800\"; d=\"scan'208\";a=\"145505090\"",
        "From": "sathyanarayanan.kuppuswamy@linux.intel.com",
        "To": "a.zummo@towertech.it, x86@kernel.org, wim@iguana.be,\n\tmingo@redhat.com, alexandre.belloni@free-electrons.com,\n\tqipeng.zha@intel.com, hpa@zytor.com, dvhart@infradead.org,\n\ttglx@linutronix.de, lee.jones@linaro.org, andy@infradead.org,\n\tsouvik.k.chakravarty@intel.com",
        "Cc": "linux-rtc@vger.kernel.org, linux-watchdog@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org,\n\tsathyaosid@gmail.com, Kuppuswamy Sathyanarayanan \n\t<sathyanarayanan.kuppuswamy@linux.intel.com>",
        "Subject": "[RFC v3 0/7] PMC/PUNIT IPC driver cleanup",
        "Date": "Mon,  4 Sep 2017 22:37:20 -0700",
        "Message-Id": "<cover.1504588701.git.sathyanarayanan.kuppuswamy@linux.intel.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "Sender": "linux-rtc-owner@vger.kernel.org",
        "Precedence": "bulk",
        "List-ID": "<linux-rtc.vger.kernel.org>",
        "X-Mailing-List": "linux-rtc@vger.kernel.org"
    },
    "content": "From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>\n\nHi All,\n\nCurrently intel_pmc_ipc.c, intel_punit_ipc.c, intel_scu_ipc.c drivers implements the same IPC features.\nThis code duplication could be avoided if we implement the IPC driver as a generic library and let custom\ndevice drivers use API provided by generic driver. This patchset mainly addresses this issue.\n\nAlong with above code duplication issue, This patchset also addresses following issues in intel_pmc_ipc and\nintel_punit_ipc drivers. \n\n1. Intel_pmc_ipc.c driver does not use any resource managed (devm_*) calls.\n2. In Intel_pmc_ipc.c driver, dependent devices like PUNIT, Telemetry and iTCO are created manually and uses lot of redundant buffer code.\n3. Global variable is used to store the IPC device structure and it is used across all functions in intel_pmc_ipc.c and intel_punit_ipc.c.\n\nMore info on Intel IPC device library:\n-------------------------------------\n\nA generic Intel IPC class driver has been implemented and all common IPC helper functions has been moved to this driver. It exposes APIs to create IPC device channel, send raw IPC command and simple IPC commands. It also creates device attribute to send IPC command from user space.\n\nAPI for creating a new IPC channel device is,\n\nstruct intel_ipc_dev *devm_intel_ipc_dev_create(struct device *dev, const char *devname, struct intel_ipc_dev_cfg *cfg, struct intel_ipc_dev_ops *ops)\n\nThe IPC channel drivers (PUNIT/PMC/SCU) when creating a new device can configure their device params like register mapping, irq, irq-mode, channel type,etc  using intel_ipc_dev_cfg and intel_ipc_dev_ops arguments. After a new IPC channel device is created, IPC users can use the generic APIs to make IPC calls.\n\nFor example, after using this new model, IPC call to PMC device will look like,\n\npmc_ipc_dev = intel_ipc_dev_get(INTEL_PMC_IPC_DEV);\nipc_dev_raw_cmd(pmc_ipc_dev, cmd, PMC_PARAM_LEN, (u32 *)ipc_in, 1, NULL, 0, 0, 0);\n\nI am still testing the driver in different products. But posted it to get some early comments. I also welcome any PMC/PUNIT driver users to check these patches in their product.\n\nChanges since v2:\n * Refactored intel_scu_ipc.c to use generic IPC device APIs.\n * Fixed intel_pmc_ipc.c to use pcim_* device managed functions.\n\nChanges since v1:\n * Merged devm_* changes in pmc_plat_probe and pmc_pci_probe functions into a\n   single patch.\n * Addressed Andy's comment about keeping the library generic by not implementing\n   the low level reg access calls in intel_ipc_dev.c. This version will start using\n   the regmap pointer provided by channel drivers instead of fixed memory map.\n * Removed custom IPC APIs in intel_pmc_ipc.c and intel_punit_ipc.c.\n * Cleaned up IPC driver users to use APIs provided by generic library (intel_ipc_dev.c).\n\nKuppuswamy Sathyanarayanan (7):\n  platform/x86: intel_pmc_ipc: Use devm_* calls in driver probe function\n  platform/x86: intel_pmc_ipc: Use MFD framework to create dependent\n    devices\n  platform/x86: intel_pmc_ipc: Use regmap calls for GCR updates\n  platform: x86: Add generic Intel IPC driver\n  platform/x86: intel_punit_ipc: Use generic intel ipc device calls\n  platform/x86: intel_pmc_ipc: Use generic Intel IPC device calls\n  platform/x86: intel_scu_ipc: Use generic Intel IPC device calls\n\n arch/x86/include/asm/intel_pmc_ipc.h            |  37 +-\n arch/x86/include/asm/intel_punit_ipc.h          | 125 ++--\n arch/x86/include/asm/intel_scu_ipc.h            |  23 +-\n arch/x86/platform/intel-mid/intel-mid.c         |  12 +-\n drivers/mfd/intel_soc_pmic_bxtwc.c              |  18 +-\n drivers/platform/x86/Kconfig                    |  11 +\n drivers/platform/x86/Makefile                   |   1 +\n drivers/platform/x86/intel_ipc_dev.c            | 539 ++++++++++++++\n drivers/platform/x86/intel_pmc_ipc.c            | 948 +++++++++---------------\n drivers/platform/x86/intel_punit_ipc.c          | 297 +++-----\n drivers/platform/x86/intel_scu_ipc.c            | 483 +++++-------\n drivers/platform/x86/intel_telemetry_pltdrv.c   | 210 +++---\n drivers/rtc/rtc-mrst.c                          |  15 +-\n drivers/watchdog/intel-mid_wdt.c                |  12 +-\n drivers/watchdog/intel_scu_watchdog.c           |  17 +-\n include/linux/mfd/intel_soc_pmic.h              |   2 +\n include/linux/platform_data/x86/intel_ipc_dev.h | 187 +++++\n 17 files changed, 1617 insertions(+), 1320 deletions(-)\n create mode 100644 drivers/platform/x86/intel_ipc_dev.c\n create mode 100644 include/linux/platform_data/x86/intel_ipc_dev.h"
}