get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/126016/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 126016,
    "url": "http://patchwork.dpdk.org/api/patches/126016/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20230413094502.1714755-15-wenjing.qiao@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20230413094502.1714755-15-wenjing.qiao@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230413094502.1714755-15-wenjing.qiao@intel.com",
    "date": "2023-04-13T09:44:58",
    "name": "[14/18] common/idpf: add GNSS support over VF",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "ec74b50e90492e2f41b3119a32f07a2401127dde",
    "submitter": {
        "id": 2680,
        "url": "http://patchwork.dpdk.org/api/people/2680/?format=api",
        "name": "Wenjing Qiao",
        "email": "wenjing.qiao@intel.com"
    },
    "delegate": {
        "id": 1540,
        "url": "http://patchwork.dpdk.org/api/users/1540/?format=api",
        "username": "qzhan15",
        "first_name": "Qi",
        "last_name": "Zhang",
        "email": "qi.z.zhang@intel.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20230413094502.1714755-15-wenjing.qiao@intel.com/mbox/",
    "series": [
        {
            "id": 27692,
            "url": "http://patchwork.dpdk.org/api/series/27692/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=27692",
            "date": "2023-04-13T09:44:44",
            "name": "update idpf shared code",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/27692/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/126016/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/126016/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id B3D0D42931;\n\tThu, 13 Apr 2023 11:51:55 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0645742D59;\n\tThu, 13 Apr 2023 11:50:42 +0200 (CEST)",
            "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n by mails.dpdk.org (Postfix) with ESMTP id 1961942D3C\n for <dev@dpdk.org>; Thu, 13 Apr 2023 11:50:39 +0200 (CEST)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 13 Apr 2023 02:50:39 -0700",
            "from dpdk-wenjing-01.sh.intel.com ([10.67.119.244])\n by FMSMGA003.fm.intel.com with ESMTP; 13 Apr 2023 02:50:36 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1681379440; x=1712915440;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=m7L71LNAcB0rGYn4mU7lHqqtE+JbNMwIEM2IZ6gd2t8=;\n b=O/m05/w9gaKGu8r2f7i3k9ZmAOhtyRrmrtx2ZH+9m1+3xHxjTTI9Dyro\n iJuKhJeb0A1pdYmaECfXqBAFD/Q/ppJvK+n00+JayicEHZDmWQwH9HpPK\n fq7ZZcpNr5+dTJMbrz5BqjJmcHIarIoKMzKPzRI9aA1ETLzYRxE3Baqvd\n 6z4Men3zJkAMsk2n+xNU/ym672qwwvgkupIaqGNRfTbSFa7vfTlt7jVxo\n 7n0jziw8215OtrS9El8QSIT7C/Mu+g80SFg7M6m95CKHTetRB6oJko0wQ\n fUTo0wGM/K6VGdJ6l8QhDun1FqfXm0UvDPptwGkPttHQIh1C9fLhZjC4U Q==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6600,9927,10678\"; a=\"409290548\"",
            "E=Sophos;i=\"5.98,341,1673942400\"; d=\"scan'208\";a=\"409290548\"",
            "E=McAfee;i=\"6600,9927,10678\"; a=\"778699363\"",
            "E=Sophos;i=\"5.98,341,1673942400\"; d=\"scan'208\";a=\"778699363\""
        ],
        "X-ExtLoop1": "1",
        "From": "Wenjing Qiao <wenjing.qiao@intel.com>",
        "To": "jingjing.wu@intel.com,\n\tbeilei.xing@intel.com,\n\tqi.z.zhang@intel.com",
        "Cc": "dev@dpdk.org, Wenjing Qiao <wenjing.qiao@intel.com>,\n Jun Zhang <xuejun.zhang@intel.com>",
        "Subject": "[PATCH 14/18] common/idpf: add GNSS support over VF",
        "Date": "Thu, 13 Apr 2023 05:44:58 -0400",
        "Message-Id": "<20230413094502.1714755-15-wenjing.qiao@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20230413094502.1714755-1-wenjing.qiao@intel.com>",
        "References": "<20230413094502.1714755-1-wenjing.qiao@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "This patch enables VF access to GNSS Console I2C.\n\nMost of the opcodes in this implementation map directly to the\nAQ commands for GNSS Console I2C Read and Write for GNSS status,\nconfiguration, and NMEA messages.\n\nAdditionally there is VF and PF negotiation on GNSS Access\nCapability through Extended PTP Capability Exchange. VF can\naccess GNSS Console I2C only if Extended PTP Capability\nexchange indicates so.\n\nSigned-off-by: Jun Zhang <xuejun.zhang@intel.com>\nSigned-off-by: Wenjing Qiao <wenjing.qiao@intel.com>\n---\n drivers/common/idpf/base/virtchnl.h | 111 ++++++++++++++++++++++++++++\n 1 file changed, 111 insertions(+)",
    "diff": "diff --git a/drivers/common/idpf/base/virtchnl.h b/drivers/common/idpf/base/virtchnl.h\nindex 54d66c4913..4e9cf9fdeb 100644\n--- a/drivers/common/idpf/base/virtchnl.h\n+++ b/drivers/common/idpf/base/virtchnl.h\n@@ -197,6 +197,8 @@ enum virtchnl_ops {\n \tVIRTCHNL_OP_SYNCE_SET_CGU_DPLL_CONFIG = 126,\n \tVIRTCHNL_OP_SYNCE_GET_CGU_INFO = 127,\n \tVIRTCHNL_OP_SYNCE_GET_HW_INFO = 128,\n+\tVIRTCHNL_OP_GNSS_READ_I2C = 129,\n+\tVIRTCHNL_OP_GNSS_WRITE_I2C = 130,\n \tVIRTCHNL_OP_MAX,\n };\n \n@@ -333,6 +335,10 @@ static inline const char *virtchnl_op_str(enum virtchnl_ops v_opcode)\n \t\treturn \"VIRTCHNL_OP_SYNCE_GET_CGU_INFO\";\n \tcase VIRTCHNL_OP_SYNCE_GET_HW_INFO:\n \t\treturn \"VIRTCHNL_OP_SYNCE_GET_HW_INFO\";\n+\tcase VIRTCHNL_OP_GNSS_READ_I2C:\n+\t\treturn \"VIRTCHNL_OP_GNSS_READ_I2C\";\n+\tcase VIRTCHNL_OP_GNSS_WRITE_I2C:\n+\t\treturn \"VIRTCHNL_OP_GNSS_WRITE_I2C\";\n \tcase VIRTCHNL_OP_ENABLE_QUEUES_V2:\n \t\treturn \"VIRTCHNL_OP_ENABLE_QUEUES_V2\";\n \tcase VIRTCHNL_OP_DISABLE_QUEUES_V2:\n@@ -2117,6 +2123,8 @@ VIRTCHNL_CHECK_STRUCT_LEN(12, virtchnl_quanta_cfg);\n  *   VIRTCHNL_OP_SYNCE_SET_CGU_DPLL_CONFIG\n  *   VIRTCHNL_OP_SYNCE_GET_CGU_INFO\n  *   VIRTCHNL_OP_SYNCE_GET_HW_INFO\n+ *   VIRTCHNL_OP_GNSS_READ_I2C\n+ *   VIRTCHNL_OP_GNSS_WRITE_I2C\n  *\n  * Support for offloading control of the device PTP hardware clock (PHC) is enabled\n  * by VIRTCHNL_VF_CAP_PTP. This capability allows a VF to request that PF\n@@ -2138,6 +2146,7 @@ VIRTCHNL_CHECK_STRUCT_LEN(12, virtchnl_quanta_cfg);\n #define VIRTCHNL_1588_PTP_CAP_PHC_REGS\t\tBIT(4)\n #define VIRTCHNL_1588_PTP_CAP_PIN_CFG\t\tBIT(5)\n #define VIRTCHNL_1588_PTP_CAP_SYNCE\t\tBIT(6)\n+#define VIRTCHNL_1588_PTP_CAP_GNSS\t\tBIT(7)\n \n /**\n  * virtchnl_phc_regs\n@@ -2280,6 +2289,10 @@ enum virtchnl_ptp_tstamp_format {\n  * VIRTCHNL_OP_SYNCE_GET_HW_INFO. It returns to VF all required HW details\n  * needed for further processing.\n  *\n+ * VIRTCHNL_1588_PTP_CAP_GNSS indicates that the VF has access to GNSS related\n+ * capabilities, i.e. Access onboard GNSS Module (if present) through I2C GNSS\n+ * console for GNSS Configuration, Status, and NMEA Messages.\n+ *\n  * Note that in the future, additional capability flags may be added which\n  * indicate additional extended support. All fields marked as reserved by this\n  * header will be set to zero. VF implementations should verify this to ensure\n@@ -3146,6 +3159,98 @@ struct virtchnl_synce_get_hw_info {\n \n VIRTCHNL_CHECK_STRUCT_LEN(72, virtchnl_synce_get_hw_info);\n \n+/**\n+ * virtchnl_link_topo_params\n+ * @lport_num: link port number\n+ * @lport_num_valid: link port number validity\n+ * @node_type_ctx: node type & context\n+ * @index: node index\n+ *\n+ * Structure used as part of virtchnl_link_topo_addr with gnss I2C read or write\n+ * request. VF sets this structure field for GNSS I2C console Node, PF passes it\n+ * on to AdminQ.\n+ */\n+struct virtchnl_link_topo_params {\n+\tu8 lport_num;\n+\tu8 lport_num_valid;\n+\tu8 node_type_ctx;\n+#define VIRTCHNL_LINK_TOPO_NODE_TYPE_GPS\t11\n+#define VIRTCHNL_LINK_TOPO_NODE_CTX_S\t\t4\n+#define VIRTCHNL_LINK_TOPO_NODE_CTX_M\t\t\\\n+\t\t\t\t(0xF << VIRTCHNL_LINK_TOPO_NODE_CTX_S)\n+#define VIRTCHNL_LINK_TOPO_NODE_CTX_GLOBAL\t0\n+#define VIRTCHNL_LINK_TOPO_NODE_CTX_BOARD\t1\n+#define VIRTCHNL_LINK_TOPO_NODE_CTX_PORT\t2\n+#define VIRTCHNL_LINK_TOPO_NODE_CTX_NODE\t3\n+#define VIRTCHNL_LINK_TOPO_NODE_CTX_PROVIDED\t4\n+#define VIRTCHNL_LINK_TOPO_NODE_CTX_OVERRIDE\t5\n+\tu8 index;\n+};\n+\n+VIRTCHNL_CHECK_STRUCT_LEN(4, virtchnl_link_topo_params);\n+\n+/**\n+ * virtchnl_link_topo_addr\n+ * @topo_params: link topo parameters\n+ * @handle: link topo handle (board type, mezzaine / lom Type)\n+ *\n+ * Structure used as part of virtchnl_gnss_i2c read or write request. VF sets\n+ * this structure field for GNSS I2C console Node, PF passes it on to AdminQ.\n+ */\n+struct virtchnl_link_topo_addr {\n+\tstruct virtchnl_link_topo_params topo_params;\n+\tu16  handle;\n+};\n+\n+VIRTCHNL_CHECK_STRUCT_LEN(6, virtchnl_link_topo_addr);\n+\n+/**\n+ * virtchnl_gnss_i2c\n+ * @topo_addr: link topo address\n+ * @i2c_addr: gnss console I2C Address\n+ * @i2c_params: gnss console I2C Parameters\n+ * @i2c_bus_addr: gnss console I2C Bus Address\n+ * @i2c_data: Data to be written to gnss module\n+ *\n+ * Structure sent with VIRTCHNL_OP_GNSS_READ_I2C for GNSS Console I2C Read,\n+ * or VIRTCHNL_OP_GNSS_WRITE_I2C for GNSS Console I2C Write. The request is\n+ * acceptable only when VF negotiated VIRTCHNL_1588_PTP_CAP_GNSS capability\n+ * with PF.\n+ */\n+struct virtchnl_gnss_i2c {\n+\tstruct virtchnl_link_topo_addr topo_addr;\n+\tu16 i2c_addr;\n+\tu8 i2c_params;\n+#define VIRTCHNL_I2C_DATA_SIZE_S\t0\n+#define VIRTCHNL_I2C_DATA_SIZE_M\t(0xF << VIRTCHNL_I2C_DATA_SIZE_S)\n+#define VIRTCHNL_I2C_ADDR_TYPE_M\tBIT(4)\n+#define VIRTCHNL_I2C_ADDR_TYPE_7BIT\t0\n+#define VIRTCHNL_I2C_ADDR_TYPE_10BIT\tVIRTCHNL_I2C_ADDR_TYPE_M\n+#define VIRTCHNL_I2C_DATA_OFFSET_S\t5\n+#define VIRTCHNL_I2C_DATA_OFFSET_M\t(0x3 << VIRTCHNL_I2C_DATA_OFFSET_S)\n+#define VIRTCHNL_I2C_USE_REPEATED_START\tBIT(7)\n+\tu8 rsvd;\n+\tu16 i2c_bus_addr;\n+#define VIRTCHNL_I2C_ADDR_7BIT_MASK\t0x7F\n+#define VIRTCHNL_I2C_ADDR_10BIT_MASK\t0x3FF\n+\tu8 i2c_data[4]; /* Used only by write command, reserved in read. */\n+};\n+\n+VIRTCHNL_CHECK_STRUCT_LEN(16, virtchnl_gnss_i2c);\n+\n+/**\n+ * virtchnl_gnss_read_i2c_resp\n+ * @i2c_data: Data returned from gnss console I2C read\n+ *\n+ * Structure returned by PF in response to VIRTCHNL_OP_GNSS_READ_I2C for\n+ * GNSS Console I2C Read.\n+ */\n+struct virtchnl_gnss_read_i2c_resp {\n+\tu8 i2c_data[16];\n+};\n+\n+VIRTCHNL_CHECK_STRUCT_LEN(16, virtchnl_gnss_read_i2c_resp);\n+\n /* Since VF messages are limited by u16 size, precalculate the maximum possible\n  * values of nested elements in virtchnl structures that virtual channel can\n  * possibly handle in a single message.\n@@ -3500,6 +3605,12 @@ virtchnl_vc_validate_vf_msg(struct virtchnl_version_info *ver, u32 v_opcode,\n \t\tbreak;\n \tcase VIRTCHNL_OP_SYNCE_GET_HW_INFO:\n \t\tbreak;\n+\tcase VIRTCHNL_OP_GNSS_READ_I2C:\n+\t\tvalid_len = sizeof(struct virtchnl_gnss_i2c);\n+\t\tbreak;\n+\tcase VIRTCHNL_OP_GNSS_WRITE_I2C:\n+\t\tvalid_len = sizeof(struct virtchnl_gnss_i2c);\n+\t\tbreak;\n \tcase VIRTCHNL_OP_ENABLE_QUEUES_V2:\n \tcase VIRTCHNL_OP_DISABLE_QUEUES_V2:\n \t\tvalid_len = sizeof(struct virtchnl_del_ena_dis_queues);\n",
    "prefixes": [
        "14/18"
    ]
}