get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 817721,
    "url": "http://patchwork.ozlabs.org/api/patches/817721/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/20170922212930.620249-3-arnd@arndb.de/",
    "project": {
        "id": 7,
        "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api",
        "name": "Linux network development",
        "link_name": "netdev",
        "list_id": "netdev.vger.kernel.org",
        "list_email": "netdev@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170922212930.620249-3-arnd@arndb.de>",
    "list_archive_url": null,
    "date": "2017-09-22T21:29:13",
    "name": "[v4,2/9] brcmsmac: split up wlc_phy_workarounds_nphy",
    "commit_ref": null,
    "pull_url": null,
    "state": "awaiting-upstream",
    "archived": true,
    "hash": "7b015da318a4249c2e46cbd8dcc82cb3eb7b6cce",
    "submitter": {
        "id": 30,
        "url": "http://patchwork.ozlabs.org/api/people/30/?format=api",
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de"
    },
    "delegate": {
        "id": 34,
        "url": "http://patchwork.ozlabs.org/api/users/34/?format=api",
        "username": "davem",
        "first_name": "David",
        "last_name": "Miller",
        "email": "davem@davemloft.net"
    },
    "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/20170922212930.620249-3-arnd@arndb.de/mbox/",
    "series": [
        {
            "id": 4712,
            "url": "http://patchwork.ozlabs.org/api/series/4712/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=4712",
            "date": "2017-09-22T21:29:16",
            "name": "bring back stack frame warning with KASAN",
            "version": 4,
            "mbox": "http://patchwork.ozlabs.org/series/4712/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/817721/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/817721/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<netdev-owner@vger.kernel.org>",
        "X-Original-To": "patchwork-incoming@ozlabs.org",
        "Delivered-To": "patchwork-incoming@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=netdev-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 3xzRZ42X6Yz9s9Y\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat, 23 Sep 2017 07:34:04 +1000 (AEST)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752580AbdIVVay (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 22 Sep 2017 17:30:54 -0400",
            "from mout.kundenserver.de ([212.227.126.131]:53016 \"EHLO\n\tmout.kundenserver.de\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1752421AbdIVVal (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 22 Sep 2017 17:30:41 -0400",
            "from wuerfel.lan ([95.208.190.237]) by mrelayeu.kundenserver.de\n\t(mreue002 [212.227.15.129]) with ESMTPA (Nemesis) id\n\t0MCUTZ-1e44EL03fd-0097p1; Fri, 22 Sep 2017 23:30:16 +0200"
        ],
        "From": "Arnd Bergmann <arnd@arndb.de>",
        "To": "Arend van Spriel <arend.vanspriel@broadcom.com>,\n\tFranky Lin <franky.lin@broadcom.com>,\n\tHante Meuleman <hante.meuleman@broadcom.com>,\n\tChi-Hsien Lin <chi-hsien.lin@cypress.com>,\n\tWright Feng <wright.feng@cypress.com>, Kalle Valo <kvalo@codeaurora.org>",
        "Cc": "Arnd Bergmann <arnd@arndb.de>,\n\tMauro Carvalho Chehab <mchehab@kernel.org>, Jiri Pirko\n\t<jiri@resnulli.us>,         \"David S. Miller\" <davem@davemloft.net>,\n\tAndrey Ryabinin <aryabinin@virtuozzo.com>, \n\tAlexander Potapenko <glider@google.com>, Dmitry Vyukov\n\t<dvyukov@google.com>, Masahiro Yamada <yamada.masahiro@socionext.com>,\n\tMichal Marek <mmarek@suse.com>, \n\tAndrew Morton <akpm@linux-foundation.org>, Kees Cook\n\t<keescook@chromium.org>, Geert Uytterhoeven <geert@linux-m68k.org>,\n\tGreg Kroah-Hartman <gregkh@linuxfoundation.org>, \n\tlinux-media@vger.kernel.org, linux-kernel@vger.kernel.org, \n\tnetdev@vger.kernel.org, linux-wireless@vger.kernel.org, \n\tbrcm80211-dev-list.pdl@broadcom.com, brcm80211-dev-list@cypress.com,\n\tkasan-dev@googlegroups.com, linux-kbuild@vger.kernel.org,\n\tJakub Jelinek <jakub@gcc.gnu.org>, =?utf-8?q?Martin_Li=C5=A1ka?=\n\t<marxin@gcc.gnu.org>",
        "Subject": "[PATCH v4 2/9] brcmsmac: split up wlc_phy_workarounds_nphy",
        "Date": "Fri, 22 Sep 2017 23:29:13 +0200",
        "Message-Id": "<20170922212930.620249-3-arnd@arndb.de>",
        "X-Mailer": "git-send-email 2.9.0",
        "In-Reply-To": "<20170922212930.620249-1-arnd@arndb.de>",
        "References": "<20170922212930.620249-1-arnd@arndb.de>",
        "X-Provags-ID": "V03:K0:EanIpkMFMQwTqOm8LSx/PCyi423twS7FBSZd7vAYhYTJ7GA/YCZ\n\tD8+FmHXlsBUVp+vVOtMrEP2I1S5EtfnI9QYsnk14JSO/cPbtQfejMk7dR4twotl++6XUBYf\n\tS3wtR8NGSTLDWuJVCIu22jLrkFV42d1FZEyjQ4XCpGK95tMQFKQayyLZYKO/fLz6krGORQQ\n\ttLnC1dkBhwHcSMtdVZR5w==",
        "X-UI-Out-Filterresults": "notjunk:1; V01:K0:HTNgnmvNMLM=:QwVXCvVhk3fK3WHFvG4Wan\n\tZRpJLc3HX1DJsDK4yt6S264ILHxzFCVKwUhYwJdpYP2TRes2SPABkZ3/ANOiapt2kLwd/bQOu\n\t0kOHzmwnY5w0+Ee9Qh+yLTR72BWoqF7jaQ1X6ORidRq/aj3E7t2MJllPJnE9+nWIoXVPn+SON\n\tbM7K2u62I8+dEYm8fygPEnxAgZ+QheNPuI0sEGnf2jsSKnlvdgkdGNipwg3vex0ehpgj1LZnN\n\tEeqeLQYJzmLQmaSep38fIro0fKZ81mB3tcFnanb+kxR1ovZ0mNmFOFub3r6l0FDqfLWdw743B\n\tSgGzCIMRNOiLELrkxV2ZzoxihNAnf6ut9LfJcOXLjSs7bmMG4ISweTbo/ZYzdmpiNFyfC2qgq\n\tfj8No5Jkq8YSVFoWMozd9o0OTA1pMwyH+oY/1cO2IBwhsbOimsFXxVo9/OVaGWvQE46TNpJ9X\n\tdJzTsS/9Qdfk5qr+cPvRBo813YLydY0FIdZSAovo3MOgPyub5YZqL5MAZPGAHurXjSmFXKV9P\n\t8rg9tE/NPOw9MEkjOt3M1kUGGR67RGoq3SPiDtoUlp0cPGuwjbrAUeib29l8umQMKSG2x8rFu\n\tE+jFr1Ql8qSHGacX1noqW7M3bgTCtktj17hLXp6F3dfMGSBH3Aa1+rlcrtDcgwD09eyywytlb\n\t4dfZ5Lyce5kTX25mgs01mM+RS9G7gFhZz2ANmFPb4PLXCyX6rn88h8RTbPaXUiyQ7KU6r8Bke\n\t1x9kwP0e+6NwSqNWa6lEN++7nGz0gACBsCiglw==",
        "Sender": "netdev-owner@vger.kernel.org",
        "Precedence": "bulk",
        "List-ID": "<netdev.vger.kernel.org>",
        "X-Mailing-List": "netdev@vger.kernel.org"
    },
    "content": "The stack consumption in this driver is still relatively high, with one\nremaining warning if the warning level is lowered to 1536 bytes:\n\ndrivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c:17135:1: error: the frame size of 1880 bytes is larger than 1536 bytes [-Werror=frame-larger-than=]\n\nThe affected function is actually a collection of three separate implementations,\nand each of them is fairly large by itself. Splitting them up is done easily\nand improves readability at the same time.\n\nI'm leaving the original indentation to make the review easier.\n\nAcked-by: Arend van Spriel <arend.vanspriel@broadcom.com>\nSigned-off-by: Arnd Bergmann <arnd@arndb.de>\n---\n .../broadcom/brcm80211/brcmsmac/phy/phy_n.c        | 178 ++++++++++++---------\n 1 file changed, 104 insertions(+), 74 deletions(-)\n\nThis one and the following patch could be merged for either v4.14 or\nv4.15 at this point, whichever the maintainers prefer. No need to\nbackport them to stable kernels.",
    "diff": "diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c\nindex ef685465f80a..ed409a80f3d2 100644\n--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c\n+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c\n@@ -16061,52 +16061,8 @@ static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)\n \t}\n }\n \n-static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)\n+static void wlc_phy_workarounds_nphy_rev7(struct brcms_phy *pi)\n {\n-\tstatic const u8 rfseq_rx2tx_events[] = {\n-\t\tNPHY_RFSEQ_CMD_NOP,\n-\t\tNPHY_RFSEQ_CMD_RXG_FBW,\n-\t\tNPHY_RFSEQ_CMD_TR_SWITCH,\n-\t\tNPHY_RFSEQ_CMD_CLR_HIQ_DIS,\n-\t\tNPHY_RFSEQ_CMD_RXPD_TXPD,\n-\t\tNPHY_RFSEQ_CMD_TX_GAIN,\n-\t\tNPHY_RFSEQ_CMD_EXT_PA\n-\t};\n-\tu8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };\n-\tstatic const u8 rfseq_tx2rx_events[] = {\n-\t\tNPHY_RFSEQ_CMD_NOP,\n-\t\tNPHY_RFSEQ_CMD_EXT_PA,\n-\t\tNPHY_RFSEQ_CMD_TX_GAIN,\n-\t\tNPHY_RFSEQ_CMD_RXPD_TXPD,\n-\t\tNPHY_RFSEQ_CMD_TR_SWITCH,\n-\t\tNPHY_RFSEQ_CMD_RXG_FBW,\n-\t\tNPHY_RFSEQ_CMD_CLR_HIQ_DIS\n-\t};\n-\tstatic const u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };\n-\tstatic const u8 rfseq_tx2rx_events_rev3[] = {\n-\t\tNPHY_REV3_RFSEQ_CMD_EXT_PA,\n-\t\tNPHY_REV3_RFSEQ_CMD_INT_PA_PU,\n-\t\tNPHY_REV3_RFSEQ_CMD_TX_GAIN,\n-\t\tNPHY_REV3_RFSEQ_CMD_RXPD_TXPD,\n-\t\tNPHY_REV3_RFSEQ_CMD_TR_SWITCH,\n-\t\tNPHY_REV3_RFSEQ_CMD_RXG_FBW,\n-\t\tNPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,\n-\t\tNPHY_REV3_RFSEQ_CMD_END\n-\t};\n-\tstatic const u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };\n-\tu8 rfseq_rx2tx_events_rev3[] = {\n-\t\tNPHY_REV3_RFSEQ_CMD_NOP,\n-\t\tNPHY_REV3_RFSEQ_CMD_RXG_FBW,\n-\t\tNPHY_REV3_RFSEQ_CMD_TR_SWITCH,\n-\t\tNPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,\n-\t\tNPHY_REV3_RFSEQ_CMD_RXPD_TXPD,\n-\t\tNPHY_REV3_RFSEQ_CMD_TX_GAIN,\n-\t\tNPHY_REV3_RFSEQ_CMD_INT_PA_PU,\n-\t\tNPHY_REV3_RFSEQ_CMD_EXT_PA,\n-\t\tNPHY_REV3_RFSEQ_CMD_END\n-\t};\n-\tu8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };\n-\n \tstatic const u8 rfseq_rx2tx_events_rev3_ipa[] = {\n \t\tNPHY_REV3_RFSEQ_CMD_NOP,\n \t\tNPHY_REV3_RFSEQ_CMD_RXG_FBW,\n@@ -16120,29 +16076,15 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)\n \t};\n \tstatic const u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };\n \tstatic const u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };\n-\n-\ts16 alpha0, alpha1, alpha2;\n-\ts16 beta0, beta1, beta2;\n-\tu32 leg_data_weights, ht_data_weights, nss1_data_weights,\n-\t    stbc_data_weights;\n+\tu32 leg_data_weights;\n \tu8 chan_freq_range = 0;\n \tstatic const u16 dac_control = 0x0002;\n \tu16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };\n \tu16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };\n-\tu16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };\n-\tu16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };\n-\tu16 *aux_adc_vmid;\n \tu16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };\n-\tu16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };\n-\tu16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };\n-\tu16 *aux_adc_gain;\n-\tstatic const u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };\n-\tstatic const u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };\n \ts32 min_nvar_val = 0x18d;\n \ts32 min_nvar_offset_6mbps = 20;\n \tu8 pdetrange;\n-\tu8 triso;\n-\tu16 regval;\n \tu16 afectrl_adc_ctrl1_rev7 = 0x20;\n \tu16 afectrl_adc_ctrl2_rev7 = 0x0;\n \tu16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;\n@@ -16171,17 +16113,6 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)\n \tu16 freq;\n \tint coreNum;\n \n-\tif (CHSPEC_IS5G(pi->radio_chanspec))\n-\t\twlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);\n-\telse\n-\t\twlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);\n-\n-\tif (pi->phyhang_avoid)\n-\t\twlc_phy_stay_in_carriersearch_nphy(pi, true);\n-\n-\tor_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);\n-\n-\tif (NREV_GE(pi->pubpi.phy_rev, 7)) {\n \n \t\tif (NREV_IS(pi->pubpi.phy_rev, 7)) {\n \t\t\tmod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));\n@@ -16703,8 +16634,62 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)\n \t\t\t\t\t &aux_adc_gain_rev7);\n \t\twlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,\n \t\t\t\t\t &aux_adc_gain_rev7);\n+}\n \n-\t} else if (NREV_GE(pi->pubpi.phy_rev, 3)) {\n+static void wlc_phy_workarounds_nphy_rev3(struct brcms_phy *pi)\n+{\n+\tstatic const u8 rfseq_tx2rx_events_rev3[] = {\n+\t\tNPHY_REV3_RFSEQ_CMD_EXT_PA,\n+\t\tNPHY_REV3_RFSEQ_CMD_INT_PA_PU,\n+\t\tNPHY_REV3_RFSEQ_CMD_TX_GAIN,\n+\t\tNPHY_REV3_RFSEQ_CMD_RXPD_TXPD,\n+\t\tNPHY_REV3_RFSEQ_CMD_TR_SWITCH,\n+\t\tNPHY_REV3_RFSEQ_CMD_RXG_FBW,\n+\t\tNPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,\n+\t\tNPHY_REV3_RFSEQ_CMD_END\n+\t};\n+\tstatic const u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };\n+\tu8 rfseq_rx2tx_events_rev3[] = {\n+\t\tNPHY_REV3_RFSEQ_CMD_NOP,\n+\t\tNPHY_REV3_RFSEQ_CMD_RXG_FBW,\n+\t\tNPHY_REV3_RFSEQ_CMD_TR_SWITCH,\n+\t\tNPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,\n+\t\tNPHY_REV3_RFSEQ_CMD_RXPD_TXPD,\n+\t\tNPHY_REV3_RFSEQ_CMD_TX_GAIN,\n+\t\tNPHY_REV3_RFSEQ_CMD_INT_PA_PU,\n+\t\tNPHY_REV3_RFSEQ_CMD_EXT_PA,\n+\t\tNPHY_REV3_RFSEQ_CMD_END\n+\t};\n+\tu8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };\n+\tstatic const u8 rfseq_rx2tx_events_rev3_ipa[] = {\n+\t\tNPHY_REV3_RFSEQ_CMD_NOP,\n+\t\tNPHY_REV3_RFSEQ_CMD_RXG_FBW,\n+\t\tNPHY_REV3_RFSEQ_CMD_TR_SWITCH,\n+\t\tNPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,\n+\t\tNPHY_REV3_RFSEQ_CMD_RXPD_TXPD,\n+\t\tNPHY_REV3_RFSEQ_CMD_TX_GAIN,\n+\t\tNPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,\n+\t\tNPHY_REV3_RFSEQ_CMD_INT_PA_PU,\n+\t\tNPHY_REV3_RFSEQ_CMD_END\n+\t};\n+\tstatic const u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };\n+\ts16 alpha0, alpha1, alpha2;\n+\ts16 beta0, beta1, beta2;\n+\tu32 leg_data_weights, ht_data_weights, nss1_data_weights,\n+\t    stbc_data_weights;\n+\tu8 chan_freq_range = 0;\n+\tstatic const u16 dac_control = 0x0002;\n+\tu16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };\n+\tu16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };\n+\tu16 *aux_adc_vmid;\n+\tu16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };\n+\tu16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };\n+\tu16 *aux_adc_gain;\n+\tstatic const u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };\n+\tstatic const u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };\n+\ts32 min_nvar_val = 0x18d;\n+\tu8 pdetrange;\n+\tu8 triso;\n \n \t\twrite_phy_reg(pi, 0x23f, 0x1f8);\n \t\twrite_phy_reg(pi, 0x240, 0x1f8);\n@@ -17030,7 +17015,33 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)\n \t\t\t\t\t      MHF4_BPHY_TXCORE0,\n \t\t\t\t\t      MHF4_BPHY_TXCORE0, BRCM_BAND_ALL);\n \t\t}\n-\t} else {\n+}\n+\n+void wlc_phy_workarounds_nphy_rev1(struct brcms_phy *pi)\n+{\n+\tstatic const u8 rfseq_rx2tx_events[] = {\n+\t\tNPHY_RFSEQ_CMD_NOP,\n+\t\tNPHY_RFSEQ_CMD_RXG_FBW,\n+\t\tNPHY_RFSEQ_CMD_TR_SWITCH,\n+\t\tNPHY_RFSEQ_CMD_CLR_HIQ_DIS,\n+\t\tNPHY_RFSEQ_CMD_RXPD_TXPD,\n+\t\tNPHY_RFSEQ_CMD_TX_GAIN,\n+\t\tNPHY_RFSEQ_CMD_EXT_PA\n+\t};\n+\tu8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };\n+\tstatic const u8 rfseq_tx2rx_events[] = {\n+\t\tNPHY_RFSEQ_CMD_NOP,\n+\t\tNPHY_RFSEQ_CMD_EXT_PA,\n+\t\tNPHY_RFSEQ_CMD_TX_GAIN,\n+\t\tNPHY_RFSEQ_CMD_RXPD_TXPD,\n+\t\tNPHY_RFSEQ_CMD_TR_SWITCH,\n+\t\tNPHY_RFSEQ_CMD_RXG_FBW,\n+\t\tNPHY_RFSEQ_CMD_CLR_HIQ_DIS\n+\t};\n+\tstatic const u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };\n+\ts16 alpha0, alpha1, alpha2;\n+\ts16 beta0, beta1, beta2;\n+\tu16 regval;\n \n \t\tif (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||\n \t\t    (pi->sh->boardtype == 0x8b)) {\n@@ -17128,7 +17139,26 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)\n \t\t\tmod_phy_reg(pi, 0x221,\n \t\t\t\t    NPHY_FORCESIG_DECODEGATEDCLKS,\n \t\t\t\t    NPHY_FORCESIG_DECODEGATEDCLKS);\n-\t}\n+}\n+\n+static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)\n+{\n+\tif (CHSPEC_IS5G(pi->radio_chanspec))\n+\t\twlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);\n+\telse\n+\t\twlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);\n+\n+\tif (pi->phyhang_avoid)\n+\t\twlc_phy_stay_in_carriersearch_nphy(pi, true);\n+\n+\tor_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);\n+\n+\tif (NREV_GE(pi->pubpi.phy_rev, 7))\n+\t\twlc_phy_workarounds_nphy_rev7(pi);\n+\telse if (NREV_GE(pi->pubpi.phy_rev, 3))\n+\t\twlc_phy_workarounds_nphy_rev3(pi);\n+\telse\n+\t\twlc_phy_workarounds_nphy_rev1(pi);\n \n \tif (pi->phyhang_avoid)\n \t\twlc_phy_stay_in_carriersearch_nphy(pi, false);\n",
    "prefixes": [
        "v4",
        "2/9"
    ]
}