Cover Detail
Show a cover letter.
GET /api/covers/77986/?format=api
https://patches.dpdk.org/api/covers/77986/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/cover/1600324483-23153-1-git-send-email-arybchenko@solarflare.com/", "project": { "id": 1, "url": "https://patches.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": "<1600324483-23153-1-git-send-email-arybchenko@solarflare.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1600324483-23153-1-git-send-email-arybchenko@solarflare.com", "date": "2020-09-17T06:34:26", "name": "[v2,00/17] net/sfc: factor out common driver library", "submitter": { "id": 607, "url": "https://patches.dpdk.org/api/people/607/?format=api", "name": "Andrew Rybchenko", "email": "arybchenko@solarflare.com" }, "mbox": "https://patches.dpdk.org/project/dpdk/cover/1600324483-23153-1-git-send-email-arybchenko@solarflare.com/mbox/", "series": [ { "id": 12304, "url": "https://patches.dpdk.org/api/series/12304/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=12304", "date": "2020-09-17T06:34:26", "name": "net/sfc: factor out common driver library", "version": 2, "mbox": "https://patches.dpdk.org/series/12304/mbox/" } ], "comments": "https://patches.dpdk.org/api/covers/77986/comments/", "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id E3E9DA04B6;\n\tThu, 17 Sep 2020 08:35:20 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id B29931D52F;\n\tThu, 17 Sep 2020 08:35:20 +0200 (CEST)", "from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com\n [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id 7F86C1D519\n for <dev@dpdk.org>; Thu, 17 Sep 2020 08:35:18 +0200 (CEST)", "from mx1-us1.ppe-hosted.com (unknown [10.7.65.60])\n by dispatch1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id\n F071160073; Thu, 17 Sep 2020 06:35:17 +0000 (UTC)", "from us4-mdac16-36.ut7.mdlocal (unknown [10.7.66.155])\n by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id EFB382009A;\n Thu, 17 Sep 2020 06:35:17 +0000 (UTC)", "from mx1-us1.ppe-hosted.com (unknown [10.7.66.30])\n by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id\n 670231C0052;\n Thu, 17 Sep 2020 06:35:17 +0000 (UTC)", "from webmail.solarflare.com (uk.solarflare.com [193.34.186.16])\n (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))\n (No client certificate requested)\n by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id\n C00CC10006E;\n Thu, 17 Sep 2020 06:35:16 +0000 (UTC)", "from ukex01.SolarFlarecom.com (10.17.10.4) by\n ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id\n 15.0.1497.2; Thu, 17 Sep 2020 07:35:12 +0100", "from opal.uk.solarflarecom.com (10.17.10.1) by\n ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server id\n 15.0.1497.2 via Frontend Transport; Thu, 17 Sep 2020 07:35:12 +0100", "from ukv-loginhost.uk.solarflarecom.com\n (ukv-loginhost.uk.solarflarecom.com [10.17.10.39])\n by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id 08H6ZBan002469;\n Thu, 17 Sep 2020 07:35:11 +0100", "from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1])\n by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id D79DA1613A9;\n Thu, 17 Sep 2020 07:35:11 +0100 (BST)" ], "X-Virus-Scanned": "Proofpoint Essentials engine", "From": "Andrew Rybchenko <arybchenko@solarflare.com>", "To": "<dev@dpdk.org>", "CC": "Thomas Monjalon <thomas@monjalon.net>, David Marchand\n <david.marchand@redhat.com>, Ferruh Yigit <ferruh.yigit@intel.com>", "Date": "Thu, 17 Sep 2020 07:34:26 +0100", "Message-ID": "<1600324483-23153-1-git-send-email-arybchenko@solarflare.com>", "X-Mailer": "git-send-email 1.8.3.1", "In-Reply-To": "<1599556475-27820-1-git-send-email-arybchenko@solarflare.com>", "References": "<1599556475-27820-1-git-send-email-arybchenko@solarflare.com>", "MIME-Version": "1.0", "Content-Type": "text/plain", "X-TM-AS-Product-Ver": "SMEX-12.5.0.1300-8.6.1012-25670.003", "X-TM-AS-Result": "No-11.199700-8.000000-10", "X-TMASE-MatchedRID": "IEV00ZLOw+7bUSlFWXatlL9bzwD89thZE3EgF0+MVuB+SLLtNOiBhnjB\n aILWVRlCXOmsadtce2cGo3ZLl9NPAN7Jizf4VVgFuoibJpHRrFnpVMb1xnESMu4zRNkXfejYvGA\n usEuBHcGLBZGdXVFVzgSKekCrl3JgwUjZkc0O5lVoUArKobkzYl58+nV+cmDuLPpyjr41qWxdaO\n 8DxOlYWNuapxHU3APIAtQRi/LEqddIcWQy61ch+GpUakD4RzE+LPcgmI1Eektn4oVvIVnpkIIV2\n 4CuYj50E77jMlIjgBMUUZUcIrQXSTzCn0Lg6DUsA9lly13c/gFCieYsjWBj6eLsQIDmr3S5ZLfx\n stT58K3dy+E+4eJ1r4PJcV7pZHscAdgI1PXGN/MnEamhyVW/p3l2c9WreWzsmHjEz2gByy3rKDD\n x45bZf/d4F+hW30bceifz7OO6NtzdUZBJwRQLvvgo8BKl9ae5TXo3QMP2198H8UzOewTxw0b8K7\n 6pXB66Gz/3jhmCvFaAMuqetGVetnyef22ep6XYOwBXM346/+xE3XWrgOyBuoHZpNDLYZ1RzqNme\n z9p4iT55kjEnRAhmv39gjK4eFMT", "X-TM-AS-User-Approved-Sender": "Yes", "X-TM-AS-User-Blocked-Sender": "No", "X-TMASE-Result": "10--11.199700-8.000000", "X-TMASE-Version": "SMEX-12.5.0.1300-8.6.1012-25670.003", "X-MDID": "1600324517-GeuRlbE-qEfh", "Subject": "[dpdk-dev] [PATCH v2 00/17] net/sfc: factor out common driver\n\tlibrary", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "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", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "Network and vDPA drivers share libefx. So, libefx should be moved\nto common drivers.\n\nDPDK adaptation of the MCDI interface may be shared as well.\n\nThe new common driver name is sfc_efx since it a new home of\nlibefx base driver. sfc_ prefix is used to make it clear that\nit is related to net/sfc (and vdpa/sfc in the future).\n\nCc: Thomas Monjalon <thomas@monjalon.net>\nCc: David Marchand <david.marchand@redhat.com>\nCc: Ferruh Yigit <ferruh.yigit@intel.com>\n\nv2:\n - add patches to introduce LIBEFX_API and LIBEFX_INTERNAL\n global functions decorators\n - use LIBEFX_API for __rte_internal markup\n\nAndrew Rybchenko (17):\n net/sfc/base: add missing extern storage-class specifiers\n net/sfc/base: decorate libefx API functions\n net/sfc/base: decorate libefx internal extern functions\n net/sfc: include header with debug helpers directly\n net/sfc: introduce common driver library\n net/sfc: add dedicated header file with MCDI interface\n net/sfc: move MCDI helper interface to dedicated namespace\n net/sfc: make MCDI logging helper macros local\n net/sfc: start to make MCDI helpers interface shareable\n net/sfc: use own logging helper macros\n net/sfc: avoid usage of NIC pointer from adapter context\n net/sfc: avoid panic in the case of MCDI timeout\n net/sfc: add MCDI callbacks to allocate/free DMA memory\n net/sfc: add MCDI callback to schedule restart\n net/sfc: add MCDI callback to poll management event queue\n net/sfc: use MCDI control structure as libefx ops context\n net/sfc: move MCDI helpers to common driver\n\n MAINTAINERS | 1 +\n drivers/common/meson.build | 2 +-\n .../{net/sfc => common/sfc_efx}/base/README | 0\n .../sfc => common/sfc_efx}/base/ef10_ev.c | 0\n .../sfc => common/sfc_efx}/base/ef10_evb.c | 0\n .../sfc => common/sfc_efx}/base/ef10_filter.c | 0\n .../sfc_efx}/base/ef10_firmware_ids.h | 0\n .../sfc => common/sfc_efx}/base/ef10_image.c | 0\n .../sfc => common/sfc_efx}/base/ef10_impl.h | 250 +++++++++++--\n .../sfc => common/sfc_efx}/base/ef10_intr.c | 0\n .../sfc => common/sfc_efx}/base/ef10_mac.c | 0\n .../sfc => common/sfc_efx}/base/ef10_mcdi.c | 0\n .../sfc => common/sfc_efx}/base/ef10_nic.c | 0\n .../sfc => common/sfc_efx}/base/ef10_nvram.c | 0\n .../sfc => common/sfc_efx}/base/ef10_phy.c | 0\n .../sfc => common/sfc_efx}/base/ef10_proxy.c | 0\n .../sfc => common/sfc_efx}/base/ef10_rx.c | 0\n .../sfc_efx}/base/ef10_signed_image_layout.h | 0\n .../sfc_efx}/base/ef10_tlv_layout.h | 0\n .../sfc => common/sfc_efx}/base/ef10_tx.c | 0\n .../sfc => common/sfc_efx}/base/ef10_vpd.c | 0\n .../{net/sfc => common/sfc_efx}/base/efx.h | 269 +++++++++++++-\n .../sfc => common/sfc_efx}/base/efx_annote.h | 0\n .../sfc => common/sfc_efx}/base/efx_bootcfg.c | 0\n .../sfc => common/sfc_efx}/base/efx_check.h | 13 +\n .../sfc => common/sfc_efx}/base/efx_crc32.c | 0\n .../{net/sfc => common/sfc_efx}/base/efx_ev.c | 0\n .../sfc => common/sfc_efx}/base/efx_evb.c | 0\n .../sfc => common/sfc_efx}/base/efx_filter.c | 0\n .../sfc => common/sfc_efx}/base/efx_hash.c | 0\n .../sfc => common/sfc_efx}/base/efx_impl.h | 44 ++-\n .../sfc => common/sfc_efx}/base/efx_intr.c | 0\n .../sfc => common/sfc_efx}/base/efx_lic.c | 0\n .../sfc => common/sfc_efx}/base/efx_mac.c | 0\n .../sfc => common/sfc_efx}/base/efx_mcdi.c | 0\n .../sfc => common/sfc_efx}/base/efx_mcdi.h | 29 ++\n .../sfc => common/sfc_efx}/base/efx_mon.c | 0\n .../sfc => common/sfc_efx}/base/efx_nic.c | 0\n .../sfc => common/sfc_efx}/base/efx_nvram.c | 0\n .../sfc => common/sfc_efx}/base/efx_phy.c | 0\n .../sfc => common/sfc_efx}/base/efx_phy_ids.h | 0\n .../sfc => common/sfc_efx}/base/efx_port.c | 0\n .../sfc => common/sfc_efx}/base/efx_proxy.c | 0\n .../sfc => common/sfc_efx}/base/efx_regs.h | 0\n .../sfc_efx}/base/efx_regs_ef10.h | 0\n .../sfc_efx}/base/efx_regs_mcdi.h | 0\n .../sfc_efx}/base/efx_regs_mcdi_aoe.h | 0\n .../sfc_efx}/base/efx_regs_mcdi_strs.h | 0\n .../sfc_efx}/base/efx_regs_pci.h | 0\n .../{net/sfc => common/sfc_efx}/base/efx_rx.c | 0\n .../sfc => common/sfc_efx}/base/efx_sram.c | 0\n .../sfc => common/sfc_efx}/base/efx_tunnel.c | 0\n .../{net/sfc => common/sfc_efx}/base/efx_tx.c | 0\n .../sfc => common/sfc_efx}/base/efx_types.h | 0\n .../sfc => common/sfc_efx}/base/efx_vpd.c | 0\n .../sfc => common/sfc_efx}/base/hunt_impl.h | 1 +\n .../sfc => common/sfc_efx}/base/hunt_nic.c | 0\n .../sfc => common/sfc_efx}/base/mcdi_mon.c | 0\n .../sfc => common/sfc_efx}/base/mcdi_mon.h | 9 +-\n .../sfc_efx}/base/medford2_impl.h | 1 +\n .../sfc_efx}/base/medford2_nic.c | 0\n .../sfc_efx}/base/medford_impl.h | 1 +\n .../sfc => common/sfc_efx}/base/medford_nic.c | 0\n .../sfc => common/sfc_efx}/base/meson.build | 0\n .../sfc => common/sfc_efx}/base/siena_flash.h | 0\n .../sfc => common/sfc_efx}/base/siena_impl.h | 60 +++\n .../sfc => common/sfc_efx}/base/siena_mac.c | 0\n .../sfc => common/sfc_efx}/base/siena_mcdi.c | 0\n .../sfc => common/sfc_efx}/base/siena_nic.c | 0\n .../sfc => common/sfc_efx}/base/siena_nvram.c | 0\n .../sfc => common/sfc_efx}/base/siena_phy.c | 0\n .../sfc => common/sfc_efx}/base/siena_sram.c | 0\n .../sfc => common/sfc_efx}/base/siena_vpd.c | 0\n drivers/{net/sfc => common/sfc_efx}/efsys.h | 63 ++--\n drivers/common/sfc_efx/meson.build | 40 ++\n .../sfc_efx/rte_common_sfc_efx_version.map | 185 ++++++++++\n drivers/common/sfc_efx/sfc_efx.c | 23 ++\n drivers/common/sfc_efx/sfc_efx_debug.h | 29 ++\n drivers/common/sfc_efx/sfc_efx_log.h | 22 ++\n drivers/common/sfc_efx/sfc_efx_mcdi.c | 343 ++++++++++++++++++\n drivers/common/sfc_efx/sfc_efx_mcdi.h | 77 ++++\n drivers/net/sfc/meson.build | 6 +-\n drivers/net/sfc/sfc.c | 1 +\n drivers/net/sfc/sfc.h | 26 +-\n drivers/net/sfc/sfc_dp_tx.h | 1 +\n drivers/net/sfc/sfc_ef10.h | 2 +\n drivers/net/sfc/sfc_ef10_essb_rx.c | 1 +\n drivers/net/sfc/sfc_ef10_rx.c | 1 +\n drivers/net/sfc/sfc_ef10_rx_ev.h | 2 +\n drivers/net/sfc/sfc_ef10_tx.c | 1 +\n drivers/net/sfc/sfc_ethdev.c | 13 +\n drivers/net/sfc/sfc_filter.c | 1 +\n drivers/net/sfc/sfc_flow.c | 1 +\n drivers/net/sfc/sfc_log.h | 21 +-\n drivers/net/sfc/sfc_mcdi.c | 295 ++-------------\n drivers/net/sfc/sfc_port.c | 1 +\n 96 files changed, 1452 insertions(+), 383 deletions(-)\n rename drivers/{net/sfc => common/sfc_efx}/base/README (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_ev.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_evb.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_filter.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_firmware_ids.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_image.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_impl.h (89%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_intr.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_mac.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_mcdi.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_nic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_nvram.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_phy.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_proxy.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_rx.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_signed_image_layout.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_tlv_layout.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_tx.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_vpd.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx.h (96%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_annote.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_bootcfg.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_check.h (97%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_crc32.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_ev.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_evb.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_filter.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_hash.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_impl.h (98%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_intr.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_lic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_mac.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_mcdi.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_mcdi.h (96%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_mon.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_nic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_nvram.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_phy.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_phy_ids.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_port.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_proxy.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_regs.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_regs_ef10.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_regs_mcdi.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_regs_mcdi_aoe.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_regs_mcdi_strs.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_regs_pci.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_rx.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_sram.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_tunnel.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_tx.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_types.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_vpd.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/hunt_impl.h (98%)\n rename drivers/{net/sfc => common/sfc_efx}/base/hunt_nic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/mcdi_mon.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/mcdi_mon.h (89%)\n rename drivers/{net/sfc => common/sfc_efx}/base/medford2_impl.h (97%)\n rename drivers/{net/sfc => common/sfc_efx}/base/medford2_nic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/medford_impl.h (97%)\n rename drivers/{net/sfc => common/sfc_efx}/base/medford_nic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/meson.build (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_flash.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_impl.h (90%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_mac.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_mcdi.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_nic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_nvram.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_phy.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_sram.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_vpd.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/efsys.h (93%)\n create mode 100644 drivers/common/sfc_efx/meson.build\n create mode 100644 drivers/common/sfc_efx/rte_common_sfc_efx_version.map\n create mode 100644 drivers/common/sfc_efx/sfc_efx.c\n create mode 100644 drivers/common/sfc_efx/sfc_efx_debug.h\n create mode 100644 drivers/common/sfc_efx/sfc_efx_log.h\n create mode 100644 drivers/common/sfc_efx/sfc_efx_mcdi.c\n create mode 100644 drivers/common/sfc_efx/sfc_efx_mcdi.h" }{ "id": 77986, "url": "