From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=209.85.128.44 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794506224; b=WlFKn1aci9ncQ+9rMmK8yDvd2lMPwlJLwutPebLDgNKTgRu+PqhlOmcfmchMSW7/luYR qu/YA2pjpf3IzYoviSg5hiXYpzt6jcIRHDUKlYkl6tlmBIECTHg59D8Vkn0hVixag/JXQ VkO8iM0RKKO5rua5A7qBx1olOImvQSpchGIJRtc63xBTeBy2AoVdPPtnchlDiUriyOJzS gOkJ01m1kn6zeEm4Z8zCtsazVH52F3qHDncQnITYhIoM0KXbDIZKg6LRqUj9RWy+zWIP8 z8vPjtZ552ZkKtjRY8ESce1ahHmkXsiWOVHSlw75LxjEs2O8n3A/W8dTNH7A7/rCSGw== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794506224; h=DMARC-Filter:Received:DKIM-Signature:X-Google-DKIM-Signature: X-Forwarded-Encrypted:X-Gm-Message-State:X-Gm-Gg:X-Received:Received: From:To:Cc:Subject:Date:Message-ID:X-Mailer:In-Reply-To:References: MIME-Version:Content-Transfer-Encoding; bh=CShfKH4JBWNtbgId/gUtrrDLMeL7luYqfNLSKJHvRKs=; b=qj81ZVWLhnyXYnXfN0UX8Ii8UdVvVW9p8RivnQo+31tlDHZK6o3F6G/iv7KC9gVJaAU7 1gVAQ/YPM6Q5dDoBmDnRYvYX8j4AEARw2DTd6GDRDFlJl3R6fBIfZMtHC4w1cZsf8akhn xNb3jl5yCJV0iTddRwU5QJDacFtSjKhWsPcvPUMQNCfsUKzarcXCs1p0Gfg5vqvAHdwCs UBRp0SsPZSaUqEl1viG7gcVECL5wzRVc7J0r2ho9hcrT6ueGGjo1AIUg52tgZF2N/SsGY yhfA2E4//U2b849Okc9zvtN2ky4R1C8rDRicMXBwLud5nN6sxQo2OUZCWEiM7yORV1A== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b=S2oC2rwZ; arc=none smtp.remote-ip=209.85.128.44 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2288360A6F43 for ; Thu, 12 Nov 2026 17:57:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 2288360A6F43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b=S2oC2rwZ Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4a214af2076so708175e9.0 for ; Thu, 12 Nov 2026 09:57:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794506221; x=1795111021; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=CShfKH4JBWNtbgId/gUtrrDLMeL7luYqfNLSKJHvRKs=; b=S2oC2rwZCchwqcTaIb0lQgPjzHkOPtb5LI/W28BFNEDlbBzNeNDj1xXobOfS7UbeRD yx3dl/G4X91iqlu0vznff8UWAVRQaBOlWkMoqlLqfvoG0RiCr4U+30n4Xy/X5OzHa9ix i1lr1tyspPjsXK1ufAhiPfn0Qt/nDViqBqjvuPCvWARH76fdAK10ePMBeCc4kG4edXkq wnPYbTLvj0JASRSqaHO5pxr0UXo7wE1RurMmyEf90YQJiU9pGY2TSDHXZ0tyWqZrP3z5 Rx2q5pvpAqOMbuiv+e8TQlS9xfObyJPKs5wxOWKdk4HnFt9oSTgKm554FjryIluZ3Csw BPxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794506221; x=1795111021; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=CShfKH4JBWNtbgId/gUtrrDLMeL7luYqfNLSKJHvRKs=; b=gvhflKuKHovXJ8opAvjGigpb5e2GzVRvRZbs5s1LLbq6dWYvU8ZmeUeERfBGIaeB95 bhGeuhDel8cf9PjGan68NEZkaG4N6aqaDk9rVgjNFhTWkuPBNVuF+SUjIeyH5ZF1aoUE biCZdkjc/lp+oQxdK9dbhc8cowsaeu/w25fxeYCbU11ROp268PQPOGPXcFoUtMJm8LwG yNFfDdUSp76xyer7IuvTabHFMJy8KlAGCNDsVPWGVZE4ffpTm/+X1R89LWkFyZUgY/BD UjLheO1MOK+Io98yDq0y2wYx8spCPbNE8NzbarFiyFtRERnhuTEn+hSc7+VjY3lWH7/F rumA== X-Forwarded-Encrypted: i=1; AL+hErHPG/lDUKk5H5rDFxqnJ06xwkBROy2UucBls8/GxBdDvvmg2RGpAK7/Z9JndhLrVn0BGFXgJBg66aP+NY0=@vger.kernel.org X-Gm-Message-State: APuU4Z+5rTEuta3NfbzMTq0rA54YUM+dyhG0RqSOCBncI3dChfYe+cqS d0cLTzybfTYpwdk46HzvxcDf/izLHWlRfVPYJEcUu1lJiloFQTlFhX0k X-Gm-Gg: AYBFou0BNbthy2FV2bsTTgP5qQd+6y94jZU1TZ/mTmiZ3F/ctiRZIb2lgiEsC+wtftV HWCzpaoFSFJwa3wWTvjNnJwhzsVZO9PCMT1YLBWY2o7XyNVOngTONKruqa9Q1cuugPiJF3QSo1s RLRhujawpnIFDvS+4mQeKLjDa8Inb7KWApNABcLVhpKcl5nonm15GsSXDP7dKNdUuHFK8ed1JvM zR81sdfZ4J4tfd7tKHyfrBmAT9BKQ8EBHUgU+TwmY8zSxf8FrBU+pGY7BQT79RzeY6EHR7C0BgI tDyaR/dDiSGVXriRDGIE5MXO7NGzIsBp6LuOl4kR8KJVrytGX0GXhfK6wVa0GcQS7vEyhy/VRnm +UUT4oNG3NXLoRgzgVUCYRGnVSU8DIse++EQbHSsI1uC7y2l0S+xHBXsJhWlgKt1Xf/mR+FbwqR POHGNuHBlmZeia95frje/5KUXBwwLT1DSgzXj/fd63uTjR8Hf93EOCIL+yVN5lUSUiu2Dz92QuL CjBazYPPrvPR5C+HhwTyL1a70DADjMBBVTo5Yffbi0uf7hTHqZKV1uGmcoQDHYFfHOOE9YO+NAX YG7JQDOsV1vUV2wCnpDciVJmOXP3EMSty7VChIVr8UEqyyhMwr2RQBVBv6k0dSD0qoXO7W5V7WU ulF+S880zigLprCC7I5Ghdqrhv3cbTTM/OYh73VUXhOnLpxww5c0RMdjVW93k+M/bnucZpEIFWq y9/lpuOTH1dWRoywq2d+/S9kObFfhIuTeSVcGSunS41eehn6osgWgaCJhqE5dEmfs= X-Received: by 2002:a05:600c:470a:b0:4ac:b0b2:fa12 with SMTP id 5b1f17b1804b1-4bb559f5d44mr132315e9.1.1794506220564; Thu, 12 Nov 2026 09:57:00 -0800 (PST) Received: from zitrone.tail45b538.ts.net ([2a02:810d:a1:6000:900:be5c:7a9c:c176]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4bb527c755esm31491425e9.4.2026.11.12.09.56.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Nov 2026 09:56:59 -0800 (PST) From: Andreas Wendleder To: linux-wireless@vger.kernel.org Cc: Johannes Berg , b43-dev@lists.infradead.org, Michael Buesch , Alessio Ferri , kvalo@kernel.org, julian.calaby@gmail.com, jpeisach@ubuntu.com, rosenp@gmail.com, linux-kernel@vger.kernel.org Subject: [PATCH RFC wireless-next 1/4] wifi: b43: radio 2069 and AC-PHY tables Date: Thu, 12 Nov 2026 18:56:53 +0100 Message-ID: <20261112175656.40686-2-gonsolo@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20261112175656.40686-1-gonsolo@gmail.com> References: <20261112175656.40686-1-gonsolo@gmail.com> X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Add the data the AC PHY needs: - radio_2069.c: the channel tuning table of radio 2069 rev 4 (2.4 GHz and 5 GHz rows) and the register list it programs, - tables_phy_ac.c: the PHY tables of the PHY init (rev 0 set, RF sequencer, gain limits, gain ladder, the FEM control pattern of femctrl == 2 boards, the 2.4 GHz and 5 GHz TX gain tables), and the values of the remaining table cells this board holds after the vendor driver's init. The tables are values as seen in operation on a BCM4360 board (MacBookAir6,1) with the vendor driver; the names of several tables follow Alessio Ferri's b43-ac-wip. They have been checked on this board only. The data is used by the patches that follow. Co-developed-by: Alessio Ferri Signed-off-by: Alessio Ferri Signed-off-by: Andreas Wendleder --- drivers/net/wireless/broadcom/b43/Makefile | 2 +- .../net/wireless/broadcom/b43/radio_2069.c | 862 +++++++++++ .../net/wireless/broadcom/b43/radio_2069.h | 19 + .../net/wireless/broadcom/b43/tables_phy_ac.c | 1273 +++++++++++++++++ .../net/wireless/broadcom/b43/tables_phy_ac.h | 31 + 5 files changed, 2186 insertions(+), 1 deletion(-) create mode 100644 drivers/net/wireless/broadcom/b43/radio_2069.c create mode 100644 drivers/net/wireless/broadcom/b43/radio_2069.h create mode 100644 drivers/net/wireless/broadcom/b43/tables_phy_ac.c create mode 100644 drivers/net/wireless/broadcom/b43/tables_phy_ac.h diff --git a/drivers/net/wireless/broadcom/b43/Makefile b/drivers/net/wireless/broadcom/b43/Makefile index 54f92ce..be2c9ca 100644 --- a/drivers/net/wireless/broadcom/b43/Makefile +++ b/drivers/net/wireless/broadcom/b43/Makefile @@ -14,7 +14,7 @@ b43-$(CONFIG_B43_PHY_HT) += phy_ht.o b43-$(CONFIG_B43_PHY_HT) += tables_phy_ht.o b43-$(CONFIG_B43_PHY_HT) += radio_2059.o b43-$(CONFIG_B43_PHY_LCN) += phy_lcn.o tables_phy_lcn.o -b43-$(CONFIG_B43_PHY_AC) += phy_ac.o +b43-$(CONFIG_B43_PHY_AC) += phy_ac.o radio_2069.o tables_phy_ac.o b43-y += sysfs.o b43-y += xmit.o b43-y += dma.o diff --git a/drivers/net/wireless/broadcom/b43/radio_2069.c b/drivers/net/wireless/broadcom/b43/radio_2069.c new file mode 100644 index 0000000..7f0d762 --- /dev/null +++ b/drivers/net/wireless/broadcom/b43/radio_2069.c @@ -0,0 +1,862 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Radio 2069 rev 4 channel tuning table. Generated by tools/gen_radio_2069.py. + * + * Copyright (c) 2026 Andreas Wendleder + */ + +#include "b43.h" +#include "radio_2069.h" + +const struct b43_radio_2069_chan b43_radio_2069r4_chans[] = { + { .channel = 184, .freq = 4920, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ccf, 0x00a4, 0x0000, 0x0290, 0x0000, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xffff, + 0xffff, 0x7068, 0x0000, 0x0000, 0x2000, 0x1000, 0x0000, 0x0000, + 0x2000, 0x1000, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ff, + 0x0fff, 0x00f0, 0x00a9, 0x0fac, 0xc0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216 } }, + { .channel = 185, .freq = 4925, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0cd3, 0x00a4, 0x2aaa, 0x0290, 0xaaaa, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xffff, + 0xffff, 0x7068, 0x3092, 0x0849, 0x162d, 0x0b17, 0x3092, 0x0849, + 0x162d, 0x0b17, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ff, + 0x0fff, 0x00f0, 0x00a9, 0x0fac, 0xc0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07b6, 0x07b2, 0x07ae, 0x0213, 0x0214, 0x0215 } }, + { .channel = 187, .freq = 4935, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0cd9, 0x00a4, 0x8000, 0x0292, 0x0000, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xffff, + 0xffff, 0x7068, 0x01ee, 0x30f7, 0x1c75, 0x0e3a, 0x01ee, 0x30f7, + 0x1c75, 0x0e3a, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ff, + 0x0fff, 0x00f0, 0x00a9, 0x0fac, 0xc0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07ba, 0x07b6, 0x07b2, 0x0212, 0x0213, 0x0214 } }, + { .channel = 188, .freq = 4940, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0cdd, 0x00a4, 0xaaaa, 0x0292, 0xaaaa, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xffff, + 0xffff, 0x7068, 0x3d8a, 0x0ec5, 0x1d7b, 0x0ebe, 0x3d8a, 0x0ec5, + 0x1d7b, 0x0ebe, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ff, + 0x0fff, 0x00f0, 0x00a9, 0x0fac, 0xc0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214 } }, + { .channel = 189, .freq = 4945, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0cdf, 0x00a4, 0xd555, 0x0293, 0x5555, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xffff, + 0xffff, 0x7068, 0x05ef, 0x32f7, 0x1e1f, 0x0f0f, 0x05ef, 0x32f7, + 0x1e1f, 0x0f0f, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ff, + 0x0fff, 0x00f0, 0x00a9, 0x0fac, 0xc0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07be, 0x07ba, 0x07b6, 0x0211, 0x0212, 0x0213 } }, + { .channel = 192, .freq = 4960, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ce9, 0x00a5, 0x5555, 0x0295, 0x5555, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xffff, + 0xffff, 0x7068, 0x05a6, 0x32d3, 0x1f17, 0x0f8b, 0x05a6, 0x32d3, + 0x1f17, 0x0f8b, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ff, + 0x0fff, 0x00f0, 0x0099, 0x0fac, 0xc0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212 } }, + { .channel = 196, .freq = 4980, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0cf7, 0x00a6, 0x0000, 0x0298, 0x0000, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xffff, + 0xffff, 0x7068, 0x3308, 0x0984, 0x1f95, 0x0fcb, 0x3308, 0x0984, + 0x1f95, 0x0fcb, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ff, + 0x0fff, 0x00f0, 0x0098, 0x0fac, 0xc0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f } }, + { .channel = 207, .freq = 5035, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d1b, 0x00a7, 0xd555, 0x029f, 0x5555, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xfffc, + 0xfcff, 0x7068, 0x3e4f, 0x0f27, 0x1fd9, 0x0fed, 0x3e4f, 0x0f27, + 0x1fd9, 0x0fed, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ee, + 0x0fef, 0x00f0, 0x0087, 0x0fac, 0xc0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07e2, 0x07de, 0x07da, 0x0208, 0x0209, 0x020a } }, + { .channel = 208, .freq = 5040, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d1f, 0x00a8, 0x0000, 0x02a0, 0x0000, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xfffc, + 0xfcff, 0x7068, 0x0000, 0x0000, 0x2000, 0x1000, 0x0000, 0x0000, + 0x2000, 0x1000, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ee, + 0x0fef, 0x00f0, 0x0087, 0x0fac, 0xc0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209 } }, + { .channel = 209, .freq = 5045, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d23, 0x00a8, 0x2aaa, 0x02a0, 0xaaaa, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xfffc, + 0xfcff, 0x7068, 0x31fb, 0x38fe, 0x15a6, 0x0ad3, 0x31fb, 0x38fe, + 0x15a6, 0x0ad3, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ee, + 0x0fef, 0x00f0, 0x0087, 0x0fac, 0xc0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07e6, 0x07e2, 0x07de, 0x0207, 0x0208, 0x0209 } }, + { .channel = 210, .freq = 5050, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d25, 0x00a8, 0x5555, 0x02a1, 0x5555, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xfffb, + 0xfbff, 0x7068, 0x32ab, 0x3955, 0x19f4, 0x0cfa, 0x32ab, 0x3955, + 0x19f4, 0x0cfa, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ee, + 0x0fef, 0x00f0, 0x0087, 0x0fac, 0xc0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208 } }, + { .channel = 212, .freq = 5060, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d2d, 0x00a8, 0xaaaa, 0x02a2, 0xaaaa, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xfffb, + 0xfbff, 0x7068, 0x3cf7, 0x3e7b, 0x1cc8, 0x0e64, 0x3cf7, 0x3e7b, + 0x1cc8, 0x0e64, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ee, + 0x0fdf, 0x00f0, 0x0087, 0x0fac, 0xc0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207 } }, + { .channel = 216, .freq = 5080, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d39, 0x00a9, 0x5555, 0x02a5, 0x5555, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0005, 0x0005, 0xff05, 0xfffa, + 0xfaff, 0x7068, 0x05c4, 0x32e2, 0x1e5b, 0x0f2d, 0x05c4, 0x32e2, + 0x1e5b, 0x0f2d, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00ee, + 0x0fde, 0x00f0, 0x0077, 0x0eac, 0xb0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205 } }, + { .channel = 34, .freq = 5170, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d75, 0x00ac, 0x5555, 0x02b1, 0x5555, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0006, 0x0006, 0xff06, 0xfff5, + 0xf5fc, 0x7068, 0x083b, 0x341e, 0x1fb1, 0x0fd8, 0x083b, 0x341e, + 0x1fb1, 0x0fd8, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00cc, + 0x0ebc, 0x00f0, 0x0079, 0x0bac, 0xa0ff, 0x18c5, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc } }, + { .channel = 36, .freq = 5180, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d7d, 0x00ac, 0xaaaa, 0x02b2, 0xaaaa, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0006, 0x0006, 0xff06, 0xfff5, + 0xf5fb, 0x7068, 0x3d68, 0x0eb4, 0x1fa1, 0x0fd1, 0x3d68, 0x0eb4, + 0x1fa1, 0x0fd1, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00c9, + 0x0b9a, 0x00f0, 0x0079, 0x0cac, 0xa0ff, 0x18c4, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb } }, + { .channel = 38, .freq = 5190, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d83, 0x00ad, 0x0000, 0x02b4, 0x0000, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0006, 0x0006, 0xff06, 0xfff4, + 0xf4fb, 0x7068, 0x0fa9, 0x07d5, 0x1f92, 0x0fc9, 0x0fa9, 0x07d5, + 0x1f92, 0x0fc9, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00c9, + 0x0b9a, 0x00f0, 0x0079, 0x0cac, 0xa0ff, 0x18c4, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa } }, + { .channel = 40, .freq = 5200, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d89, 0x00ad, 0x5555, 0x02b5, 0x5555, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3505, 0x0006, 0x0006, 0xff06, 0xfff4, + 0xf4fa, 0x7068, 0x013b, 0x009e, 0x1f82, 0x0fc1, 0x013b, 0x009e, + 0x1f82, 0x0fc1, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00c9, + 0x0b89, 0x00f0, 0x0079, 0x0bac, 0xa0ff, 0x18c4, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9 } }, + { .channel = 42, .freq = 5210, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d91, 0x00ad, 0xaaaa, 0x02b6, 0xaaaa, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfff4, + 0xf3fa, 0x7068, 0x30cb, 0x3865, 0x1f72, 0x0fb9, 0x30cb, 0x3865, + 0x1f72, 0x0fb9, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00c9, + 0x0b89, 0x00f0, 0x0079, 0x0bac, 0xa0ff, 0x18c4, 0x0001, 0x0188, + 0x010c, 0x03e0, + }, + .bw = { 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8 } }, + { .channel = 44, .freq = 5220, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d97, 0x00ae, 0x0000, 0x02b8, 0x0000, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfff3, + 0xf3f9, 0x7068, 0x3dea, 0x0ef5, 0x1f63, 0x0fb2, 0x3dea, 0x0ef5, + 0x1f63, 0x0fb2, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00c9, + 0x0b89, 0x00f0, 0x0079, 0x0bac, 0xa0ff, 0x18c4, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7 } }, + { .channel = 46, .freq = 5230, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0d9d, 0x00ae, 0x5555, 0x02b9, 0x5555, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfff3, + 0xf3f9, 0x7068, 0x09af, 0x04d8, 0x1f54, 0x0faa, 0x09af, 0x04d8, + 0x1f54, 0x0faa, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00b8, + 0x0b89, 0x00f0, 0x0079, 0x0bac, 0xa0ff, 0x18c4, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6 } }, + { .channel = 48, .freq = 5240, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0da5, 0x00ae, 0xaaaa, 0x02ba, 0xaaaa, + 0x0000, 0x0488, 0x0cff, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfff2, + 0xf2f8, 0x7068, 0x338b, 0x39c5, 0x1f44, 0x0fa2, 0x338b, 0x39c5, + 0x1f44, 0x0fa2, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00b8, + 0x0b89, 0x00f0, 0x0069, 0x0aac, 0xa0ff, 0x18c3, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5 } }, + { .channel = 52, .freq = 5260, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0db1, 0x00af, 0x5555, 0x02bd, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfff1, + 0xf1f7, 0x7068, 0x3294, 0x394a, 0x1ff2, 0x0ff9, 0x3294, 0x394a, + 0x1ff2, 0x0ff9, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00b8, + 0x0a78, 0x00f0, 0x0068, 0x0aac, 0x90ff, 0x18c3, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3 } }, + { .channel = 54, .freq = 5270, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0db9, 0x00af, 0xaaaa, 0x02be, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfff1, + 0xf1f7, 0x7068, 0x02bc, 0x015e, 0x1fd0, 0x0fe8, 0x02bc, 0x015e, + 0x1fd0, 0x0fe8, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00b8, + 0x0a78, 0x00f0, 0x0068, 0x0aac, 0x90ff, 0x18c3, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2 } }, + { .channel = 56, .freq = 5280, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0dbf, 0x00b0, 0x0000, 0x02c0, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfff0, + 0xf0f6, 0x7068, 0x0000, 0x0000, 0x2000, 0x1000, 0x0000, 0x0000, + 0x2000, 0x1000, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00a8, + 0x0a78, 0x00f0, 0x0068, 0x0aac, 0x80ff, 0x18c3, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1 } }, + { .channel = 58, .freq = 5290, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0dc5, 0x00b0, 0x5555, 0x02c1, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfff0, + 0xf0f6, 0x7068, 0x0941, 0x34a1, 0x1ef9, 0x0f7c, 0x0941, 0x34a1, + 0x1ef9, 0x0f7c, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00a8, + 0x0a78, 0x00f0, 0x0068, 0x0aac, 0x80ff, 0x18c3, 0x0001, 0x0188, + 0x010c, 0x03e0, + }, + .bw = { 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0 } }, + { .channel = 60, .freq = 5300, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0dcd, 0x00b0, 0xaaaa, 0x02c2, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xffef, + 0xeff5, 0x7068, 0x07f8, 0x03fc, 0x1eea, 0x0f75, 0x07f8, 0x03fc, + 0x1eea, 0x0f75, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00a8, + 0x0a78, 0x00f0, 0x0068, 0x09ac, 0x80ff, 0x18c3, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0 } }, + { .channel = 62, .freq = 5310, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0dd3, 0x00b1, 0x0000, 0x02c4, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xffef, + 0xeff5, 0x7068, 0x03eb, 0x31f5, 0x1edb, 0x0f6d, 0x03eb, 0x31f5, + 0x1edb, 0x0f6d, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00a9, + 0x0a78, 0x00f0, 0x0068, 0x09ac, 0x80ff, 0x18c3, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef } }, + { .channel = 64, .freq = 5320, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0dd9, 0x00b1, 0x5555, 0x02c5, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xffee, + 0xeef4, 0x7068, 0x3f47, 0x3fa4, 0x1ecc, 0x0f66, 0x3f47, 0x3fa4, + 0x1ecc, 0x0f66, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x00a7, + 0x0967, 0x00f0, 0x0068, 0x09ac, 0x80ff, 0x18c3, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee } }, + { .channel = 100, .freq = 5500, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e51, 0x00b7, 0x5555, 0x02dd, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfee6, + 0xe6ec, 0x7068, 0x3410, 0x0a08, 0x1f5b, 0x0fae, 0x3410, 0x0a08, + 0x1f5b, 0x0fae, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0084, + 0x0633, 0x00f0, 0x0046, 0x05ac, 0x50ff, 0x18c1, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd } }, + { .channel = 102, .freq = 5510, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e59, 0x00b7, 0xaaaa, 0x02de, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfee6, + 0xe6ec, 0x7068, 0x3b3a, 0x0d9d, 0x1fe9, 0x0ff5, 0x3b3a, 0x0d9d, + 0x1fe9, 0x0ff5, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0084, + 0x0633, 0x00f0, 0x0046, 0x05ac, 0x50ff, 0x18c1, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd } }, + { .channel = 104, .freq = 5520, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e5f, 0x00b8, 0x0000, 0x02e0, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfde6, + 0xe6eb, 0x7068, 0x0000, 0x0000, 0x2000, 0x1000, 0x0000, 0x0000, + 0x2000, 0x1000, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0083, + 0x0623, 0x00f0, 0x0046, 0x05ac, 0x50ff, 0x18c1, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc } }, + { .channel = 106, .freq = 5530, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e65, 0x00b8, 0x5555, 0x02e1, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfde5, + 0xe5eb, 0x7068, 0x0c8f, 0x3647, 0x1da1, 0x0ed0, 0x0c8f, 0x3647, + 0x1da1, 0x0ed0, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0083, + 0x0623, 0x00f0, 0x0046, 0x05ac, 0x50ff, 0x18c1, 0x0001, 0x0188, + 0x010c, 0x03e0, + }, + .bw = { 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db } }, + { .channel = 108, .freq = 5540, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e6d, 0x00b8, 0xaaaa, 0x02e2, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfde5, + 0xe5eb, 0x7068, 0x02a8, 0x3154, 0x1d93, 0x0ec9, 0x02a8, 0x3154, + 0x1d93, 0x0ec9, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0073, + 0x0523, 0x00f0, 0x0045, 0x05ac, 0x50ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da } }, + { .channel = 110, .freq = 5550, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e73, 0x00b9, 0x0000, 0x02e4, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfce4, + 0xe4ea, 0x7068, 0x3641, 0x0b21, 0x1d85, 0x0ec3, 0x3641, 0x0b21, + 0x1d85, 0x0ec3, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0073, + 0x0523, 0x00f0, 0x0045, 0x05ac, 0x50ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9 } }, + { .channel = 112, .freq = 5560, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e79, 0x00b9, 0x5555, 0x02e5, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfce4, + 0xe4ea, 0x7068, 0x0c34, 0x361a, 0x1f6f, 0x0fb7, 0x0c34, 0x361a, + 0x1f6f, 0x0fb7, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0073, + 0x0523, 0x00f0, 0x0035, 0x05ac, 0x50ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8 } }, + { .channel = 114, .freq = 5570, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e81, 0x00b9, 0xaaaa, 0x02e6, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfbe3, + 0xe3e9, 0x7068, 0x3099, 0x384c, 0x1ef6, 0x0f7b, 0x3099, 0x384c, + 0x1ef6, 0x0f7b, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0073, + 0x0523, 0x00f0, 0x0035, 0x05ac, 0x50ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7 } }, + { .channel = 116, .freq = 5580, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e87, 0x00ba, 0x0000, 0x02e8, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfbe3, + 0xe3e9, 0x7068, 0x3075, 0x083a, 0x1ea3, 0x0f52, 0x3075, 0x083a, + 0x1ea3, 0x0f52, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0072, + 0x0512, 0x00f0, 0x0035, 0x04ac, 0x50ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7 } }, + { .channel = 118, .freq = 5590, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e8d, 0x00ba, 0x5555, 0x02e9, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfae3, + 0xe3e8, 0x7068, 0x3363, 0x39b2, 0x1f90, 0x0fc8, 0x3363, 0x39b2, + 0x1f90, 0x0fc8, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0072, + 0x0512, 0x00f0, 0x0035, 0x04ac, 0x50ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6 } }, + { .channel = 120, .freq = 5600, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e95, 0x00ba, 0xaaaa, 0x02ea, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xfae2, + 0xe2e8, 0x7068, 0x3b6e, 0x0db7, 0x1f35, 0x0f9b, 0x3b6e, 0x0db7, + 0x1f35, 0x0f9b, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0072, + 0x0512, 0x00f0, 0x0035, 0x04ac, 0x40ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5 } }, + { .channel = 122, .freq = 5610, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e9b, 0x00bb, 0x0000, 0x02ec, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xf9e2, + 0xe2e8, 0x7068, 0x3af6, 0x3d7b, 0x1fdc, 0x0fee, 0x3af6, 0x3d7b, + 0x1fdc, 0x0fee, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0072, + 0x0512, 0x00f0, 0x0035, 0x04ac, 0x40ff, 0x18c0, 0x0001, 0x0188, + 0x010c, 0x03e0, + }, + .bw = { 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4 } }, + { .channel = 124, .freq = 5620, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ea1, 0x00bb, 0x5555, 0x02ed, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xf9e1, + 0xe1e7, 0x7068, 0x369b, 0x3b4e, 0x1f84, 0x0fc2, 0x369b, 0x3b4e, + 0x1f84, 0x0fc2, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0062, + 0x0402, 0x00f0, 0x0034, 0x04ac, 0x40ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3 } }, + { .channel = 126, .freq = 5630, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ea9, 0x00bb, 0xaaaa, 0x02ee, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xf8e1, + 0xe1e7, 0x7068, 0x3f15, 0x0f8a, 0x1f3b, 0x0f9e, 0x3f15, 0x0f8a, + 0x1f3b, 0x0f9e, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0062, + 0x0402, 0x00f0, 0x0034, 0x04ac, 0x40ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2 } }, + { .channel = 128, .freq = 5640, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0eaf, 0x00bc, 0x0000, 0x02f0, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xf8e1, + 0xe1e6, 0x7068, 0x0000, 0x0000, 0x2000, 0x1000, 0x0000, 0x0000, + 0x2000, 0x1000, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0061, + 0x0401, 0x00f0, 0x0034, 0x03ac, 0x40ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2 } }, + { .channel = 130, .freq = 5650, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0eb5, 0x00bc, 0x5555, 0x02f1, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xf7e0, + 0xe0e6, 0x7068, 0x0f68, 0x07b4, 0x1d00, 0x0e80, 0x0f68, 0x07b4, + 0x1d00, 0x0e80, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0061, + 0x0401, 0x00f0, 0x0034, 0x03ac, 0x40ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1 } }, + { .channel = 132, .freq = 5660, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ebd, 0x00bc, 0xaaaa, 0x02f2, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xf7e0, + 0xe0e5, 0x7068, 0x331c, 0x398e, 0x1cf2, 0x0e79, 0x331c, 0x398e, + 0x1cf2, 0x0e79, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0061, + 0x0301, 0x00f0, 0x0034, 0x03ac, 0x30ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0 } }, + { .channel = 134, .freq = 5670, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ec3, 0x00bd, 0x0000, 0x02f4, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xf7df, + 0xdfe5, 0x7068, 0x04d5, 0x026b, 0x1f86, 0x0fc3, 0x04d5, 0x026b, + 0x1f86, 0x0fc3, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0061, + 0x0301, 0x00f0, 0x0034, 0x03ac, 0x30ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf } }, + { .channel = 136, .freq = 5680, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ec9, 0x00bd, 0x5555, 0x02f5, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xf6df, + 0xdfe5, 0x7068, 0x0c2b, 0x3616, 0x1ec5, 0x0f62, 0x0c2b, 0x3616, + 0x1ec5, 0x0f62, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0061, + 0x0301, 0x00f0, 0x0024, 0x03ac, 0x30ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce } }, + { .channel = 138, .freq = 5690, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ed1, 0x00bd, 0xaaaa, 0x02f6, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3504, 0x0006, 0x0006, 0xff06, 0xf6df, + 0xdfe4, 0x7068, 0x3397, 0x39cc, 0x1ffe, 0x0fff, 0x3397, 0x39cc, + 0x1ffe, 0x0fff, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0061, + 0x0301, 0x00f0, 0x0024, 0x03ac, 0x30ff, 0x18c0, 0x0001, 0x0188, + 0x010c, 0x03e0, + }, + .bw = { 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce } }, + { .channel = 140, .freq = 5700, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ed7, 0x00be, 0x0000, 0x02f8, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf5de, + 0xdee4, 0x7068, 0x33f7, 0x09fc, 0x1f5b, 0x0fae, 0x33f7, 0x09fc, + 0x1f5b, 0x0fae, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0051, + 0x0300, 0x00f0, 0x0024, 0x03ac, 0x30ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd } }, + { .channel = 142, .freq = 5710, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0edd, 0x00be, 0x5555, 0x02f9, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf5de, + 0xdee3, 0x7068, 0x0d7d, 0x36bf, 0x1ee7, 0x0f73, 0x0d7d, 0x36bf, + 0x1ee7, 0x0f73, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0051, + 0x0300, 0x00f0, 0x0024, 0x03ac, 0x30ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc } }, + { .channel = 144, .freq = 5720, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ee5, 0x00be, 0xaaaa, 0x02fa, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf4dd, + 0xdde3, 0x7068, 0x381b, 0x0c0e, 0x1f9b, 0x0fce, 0x381b, 0x0c0e, + 0x1f9b, 0x0fce, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0051, + 0x0300, 0x00f0, 0x0024, 0x03ac, 0x30ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb } }, + { .channel = 145, .freq = 5725, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ee7, 0x00be, 0xd555, 0x02fb, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf4dd, + 0xdde3, 0x7068, 0x36ca, 0x0b65, 0x1f63, 0x0fb2, 0x36ca, 0x0b65, + 0x1f63, 0x0fb2, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0051, + 0x0300, 0x00f0, 0x0023, 0x02ac, 0x20ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb } }, + { .channel = 146, .freq = 5730, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0eeb, 0x00bf, 0x0000, 0x02fc, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf4dd, + 0xdde3, 0x7068, 0x34de, 0x0a6f, 0x1f31, 0x0f99, 0x34de, 0x0a6f, + 0x1f31, 0x0f99, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0051, + 0x0200, 0x00f0, 0x0023, 0x02ac, 0x20ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca } }, + { .channel = 147, .freq = 5735, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0eef, 0x00bf, 0x2aaa, 0x02fc, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf4dd, + 0xdde2, 0x7068, 0x024d, 0x0127, 0x1fee, 0x0ff7, 0x024d, 0x0127, + 0x1fee, 0x0ff7, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0051, + 0x0200, 0x00f0, 0x0023, 0x02ac, 0x20ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca } }, + { .channel = 148, .freq = 5740, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ef1, 0x00bf, 0x5555, 0x02fd, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf4dd, + 0xdde2, 0x7068, 0x3e54, 0x0f2a, 0x1fb7, 0x0fdc, 0x3e54, 0x0f2a, + 0x1fb7, 0x0fdc, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0051, + 0x0200, 0x00f0, 0x0023, 0x02ac, 0x20ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9 } }, + { .channel = 149, .freq = 5745, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0ef5, 0x00bf, 0x8000, 0x02fe, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf3dc, + 0xdce2, 0x7068, 0x3694, 0x0b4a, 0x1f85, 0x0fc3, 0x3694, 0x0b4a, + 0x1f85, 0x0fc3, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0051, + 0x0200, 0x00f0, 0x0023, 0x02ac, 0x20ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9 } }, + { .channel = 151, .freq = 5755, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0efb, 0x00bf, 0xd555, 0x02ff, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf3dc, + 0xdce2, 0x7068, 0x035e, 0x31af, 0x1ff1, 0x0ff8, 0x035e, 0x31af, + 0x1ff1, 0x0ff8, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0051, + 0x0200, 0x00f0, 0x0023, 0x01ac, 0x20ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8 } }, + { .channel = 153, .freq = 5765, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0f03, 0x00c0, 0x2aaa, 0x0300, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf2dc, + 0xdce1, 0x7068, 0x34c2, 0x0a61, 0x1c6b, 0x0e36, 0x34c2, 0x0a61, + 0x1c6b, 0x0e36, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0041, + 0x0200, 0x00f0, 0x0023, 0x01ac, 0x20ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8 } }, + { .channel = 155, .freq = 5775, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0f09, 0x00c0, 0x8000, 0x0302, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf2db, + 0xdbe1, 0x7068, 0x045a, 0x322d, 0x1c5f, 0x0e2f, 0x045a, 0x322d, + 0x1c5f, 0x0e2f, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0041, + 0x0200, 0x00f0, 0x0023, 0x01ac, 0x20ff, 0x18c0, 0x0001, 0x0188, + 0x010c, 0x03e0, + }, + .bw = { 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7 } }, + { .channel = 157, .freq = 5785, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0f0f, 0x00c0, 0xd555, 0x0303, 0x5555, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf2db, + 0xdbe0, 0x7068, 0x039d, 0x01cf, 0x1f78, 0x0fbc, 0x039d, 0x01cf, + 0x1f78, 0x0fbc, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0040, + 0x0200, 0x00f0, 0x0023, 0x01ac, 0x20ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6 } }, + { .channel = 159, .freq = 5795, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0f17, 0x00c1, 0x2aaa, 0x0304, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf1da, + 0xdae0, 0x7068, 0x0ee3, 0x3771, 0x1e73, 0x0f39, 0x0ee3, 0x3771, + 0x1e73, 0x0f39, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0040, + 0x0100, 0x00f0, 0x0023, 0x01ac, 0x20ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5 } }, + { .channel = 161, .freq = 5805, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0f1d, 0x00c1, 0x8000, 0x0306, 0x0000, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf1da, + 0xdae0, 0x7068, 0x3020, 0x3810, 0x1fc0, 0x0fe0, 0x3020, 0x3810, + 0x1fc0, 0x0fe0, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0040, + 0x0100, 0x00f0, 0x0023, 0x00ac, 0x10ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4 } }, + { .channel = 165, .freq = 5825, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0f2b, 0x00c2, 0x2aaa, 0x0308, 0xaaaa, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0700, + 0x0000, 0x0000, 0x04a4, 0x3503, 0x0006, 0x0006, 0xff06, 0xf0d9, + 0xd9df, 0x7068, 0x0941, 0x04a0, 0x1fcc, 0x0fe6, 0x0941, 0x04a0, + 0x1fcc, 0x0fe6, 0x0000, 0x2000, 0x007f, 0x0000, 0x0070, 0x0030, + 0x0100, 0x00f0, 0x0023, 0x00ac, 0x10ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3 } }, + { .channel = 1, .freq = 2412, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e21, 0x00b4, 0xe666, 0x02d3, 0x9999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xffea, + 0xeaf0, 0xd068, 0x3e7a, 0x3f3d, 0x1da4, 0x0ed2, 0x3e7a, 0x3f3d, + 0x1da4, 0x0ed2, 0x0790, 0x20e9, 0x037f, 0x0005, 0x0074, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443 } }, + { .channel = 2, .freq = 2417, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e29, 0x00b5, 0x4666, 0x02d5, 0x1999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xffe9, + 0xe9ef, 0xd068, 0x053b, 0x329d, 0x1ebb, 0x0f5d, 0x053b, 0x329d, + 0x1ebb, 0x0f5d, 0x0790, 0x20d9, 0x027f, 0x0004, 0x0074, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441 } }, + { .channel = 3, .freq = 2422, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e31, 0x00b5, 0xa666, 0x02d6, 0x9999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xffe9, + 0xe9ef, 0xd068, 0x0871, 0x3438, 0x1f55, 0x0faa, 0x0871, 0x3438, + 0x1f55, 0x0faa, 0x0790, 0x20d8, 0x027f, 0x0004, 0x0073, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f } }, + { .channel = 4, .freq = 2427, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e37, 0x00b6, 0x0666, 0x02d8, 0x1999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xffe8, + 0xe8ee, 0xd068, 0x01c6, 0x30e3, 0x1fb3, 0x0fd9, 0x01c6, 0x30e3, + 0x1fb3, 0x0fd9, 0x0780, 0x20c8, 0x027f, 0x0003, 0x0073, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d } }, + { .channel = 5, .freq = 2432, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e3f, 0x00b6, 0x6666, 0x02d9, 0x9999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xffe8, + 0xe8ee, 0xd068, 0x3f40, 0x3fa0, 0x1ff0, 0x0ff8, 0x3f40, 0x3fa0, + 0x1ff0, 0x0ff8, 0x0780, 0x20c8, 0x027f, 0x0003, 0x0073, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a } }, + { .channel = 6, .freq = 2437, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e47, 0x00b6, 0xc666, 0x02db, 0x1999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xffe7, + 0xe7ed, 0xd068, 0x3e6d, 0x3f36, 0x1f18, 0x0f8c, 0x3e6d, 0x3f36, + 0x1f18, 0x0f8c, 0x0780, 0x20b7, 0x027f, 0x0003, 0x0073, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438 } }, + { .channel = 7, .freq = 2442, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e4f, 0x00b7, 0x2666, 0x02dc, 0x9999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xffe7, + 0xe7ed, 0xd068, 0x35da, 0x0aed, 0x1f4f, 0x0fa8, 0x35da, 0x0aed, + 0x1f4f, 0x0fa8, 0x0670, 0x20b7, 0x017f, 0x0003, 0x0073, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436 } }, + { .channel = 8, .freq = 2447, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e55, 0x00b7, 0x8666, 0x02de, 0x1999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xfee6, + 0xe6ec, 0xd068, 0x3d98, 0x3ecc, 0x1f78, 0x0fbc, 0x3d98, 0x3ecc, + 0x1f78, 0x0fbc, 0x0670, 0x20a7, 0x017f, 0x0003, 0x0073, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434 } }, + { .channel = 9, .freq = 2452, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e5d, 0x00b7, 0xe666, 0x02df, 0x9999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xfee6, + 0xe6ec, 0xd068, 0x3667, 0x3b34, 0x1f96, 0x0fcb, 0x3667, 0x3b34, + 0x1f96, 0x0fcb, 0x0670, 0x20a7, 0x017f, 0x0003, 0x0073, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431 } }, + { .channel = 10, .freq = 2457, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e65, 0x00b8, 0x4666, 0x02e1, 0x1999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xfde5, + 0xe5eb, 0xd068, 0x37e1, 0x0bf0, 0x1873, 0x0c3a, 0x37e1, 0x0bf0, + 0x1873, 0x0c3a, 0x0670, 0x20a7, 0x017f, 0x0003, 0x0073, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f } }, + { .channel = 11, .freq = 2462, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e6d, 0x00b8, 0xa666, 0x02e2, 0x9999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xfde5, + 0xe5eb, 0xd068, 0x3600, 0x3b00, 0x1cd6, 0x0e6b, 0x3600, 0x3b00, + 0x1cd6, 0x0e6b, 0x0670, 0x2097, 0x017f, 0x0003, 0x0073, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d } }, + { .channel = 12, .freq = 2467, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e73, 0x00b9, 0x0666, 0x02e4, 0x1999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xfce4, + 0xe4ea, 0xd068, 0x3a75, 0x0d3b, 0x1e41, 0x0f21, 0x3a75, 0x0d3b, + 0x1e41, 0x0f21, 0x0670, 0x2097, 0x017f, 0x0003, 0x0073, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b } }, + { .channel = 13, .freq = 2472, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e7b, 0x00b9, 0x6666, 0x02e5, 0x9999, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xfbe4, + 0xe4ea, 0xd068, 0x3ed4, 0x3f6a, 0x1eee, 0x0f77, 0x3ed4, 0x3f6a, + 0x1eee, 0x0f77, 0x0570, 0x2087, 0x017f, 0x0003, 0x0073, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429 } }, + { .channel = 14, .freq = 2484, + .radio = { + 0x0005, 0x001e, 0x0a09, 0x0e8d, 0x00ba, 0x4ccc, 0x02e9, 0x3333, + 0x0000, 0x0488, 0x0cef, 0x0000, 0x000b, 0x1d6f, 0x1f00, 0x0580, + 0x0000, 0x0000, 0x048c, 0x3503, 0x0006, 0x0006, 0xff06, 0xfae3, + 0xe3e8, 0xd068, 0x33a0, 0x39d0, 0x1f1e, 0x0f8f, 0x33a0, 0x39d0, + 0x1f1e, 0x0f8f, 0x0570, 0x2076, 0x007f, 0x0003, 0x0073, 0x0000, + 0x0000, 0x0000, 0x0000, 0x00ac, 0x00ff, 0x18c0, 0x0001, 0x0185, + 0x00ac, 0x03e0, + }, + .bw = { 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424 } }, +}; + +const unsigned int b43_radio_2069r4_chans_n = + ARRAY_SIZE(b43_radio_2069r4_chans); diff --git a/drivers/net/wireless/broadcom/b43/radio_2069.h b/drivers/net/wireless/broadcom/b43/radio_2069.h new file mode 100644 index 0000000..097d3cd --- /dev/null +++ b/drivers/net/wireless/broadcom/b43/radio_2069.h @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef B43_RADIO_2069_H_ +#define B43_RADIO_2069_H_ + +#include + +#define B43_RADIO_2069_TUNE_REGS 50 + +struct b43_radio_2069_chan { + u16 channel; + u16 freq; + u16 radio[B43_RADIO_2069_TUNE_REGS]; + u16 bw[6]; +}; + +extern const struct b43_radio_2069_chan b43_radio_2069r4_chans[]; +extern const unsigned int b43_radio_2069r4_chans_n; + +#endif /* B43_RADIO_2069_H_ */ diff --git a/drivers/net/wireless/broadcom/b43/tables_phy_ac.c b/drivers/net/wireless/broadcom/b43/tables_phy_ac.c new file mode 100644 index 0000000..ba95635 --- /dev/null +++ b/drivers/net/wireless/broadcom/b43/tables_phy_ac.c @@ -0,0 +1,1273 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * AC-PHY rev 0/1 init tables. Generated by tools/gen_tables_phy_ac.py. + * + * Copyright (c) 2026 Alessio Ferri + * Copyright (c) 2026 Andreas Wendleder + */ + +#include "b43.h" +#include "tables_phy_ac.h" + +/* acphy_mcs_tbl_rev0 */ +static const u16 b43_acphy_tbl_00[] = { + 0x0000, 0x0008, 0x000a, 0x0010, 0x0012, 0x0019, 0x001a, 0x001c, 0x0080, + 0x0088, 0x008a, 0x0090, + 0x0092, 0x0099, 0x009a, 0x009c, 0x0100, 0x0108, 0x010a, 0x0110, 0x0112, + 0x0119, 0x011a, 0x011c, + 0x0180, 0x0188, 0x018a, 0x0190, 0x0192, 0x0199, 0x019a, 0x019c, 0x0000, + 0x0098, 0x00a0, 0x00a8, + 0x009a, 0x00a2, 0x00aa, 0x0120, 0x0128, 0x0128, 0x0130, 0x0138, 0x0138, + 0x0140, 0x0122, 0x012a, + 0x012a, 0x0132, 0x013a, 0x013a, 0x0142, 0x01a8, 0x01b0, 0x01b8, 0x01b0, + 0x01b8, 0x01c0, 0x01c8, + 0x01c0, 0x01c8, 0x01d0, 0x01d0, 0x01d8, 0x01aa, 0x01b2, 0x01ba, 0x01b2, + 0x01ba, 0x01c2, 0x01ca, + 0x01c2, 0x01ca, 0x01d2, 0x01d2, 0x01da, 0x0001, 0x0002, 0x0004, 0x0009, + 0x000c, 0x0011, 0x0014, + 0x0018, 0x0020, 0x0021, 0x0022, 0x0024, 0x0081, 0x0082, 0x0084, 0x0089, + 0x008c, 0x0091, 0x0094, + 0x0098, 0x00a0, 0x00a1, 0x00a2, 0x00a4, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, +}; + +/* acphy_tx_evm_tbl_rev0 */ +static const u8 b43_acphy_tbl_01[] = { + 0x09, 0x0e, 0x11, 0x14, 0x17, 0x1a, 0x1d, 0x20, 0x09, 0x0e, 0x11, 0x14, + 0x17, 0x1a, 0x1d, 0x20, 0x22, 0x24, 0x09, 0x0e, 0x11, 0x14, 0x17, 0x1a, + 0x1d, 0x20, 0x22, 0x24, 0x09, 0x0e, 0x11, 0x14, 0x17, 0x1a, 0x1d, 0x20, + 0x22, 0x24, +}; + +/* acphy_rx_evm_shaping_tbl_rev0 */ +static const u8 b43_acphy_tbl_02[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, +}; + +/* acphy_noise_shaping_tbl_rev0 */ +static const u32 b43_acphy_tbl_03[] = { + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, +}; + +/* acphy_phasetrack_tbl_rev0 */ +static const u32 b43_acphy_tbl_04[] = { + 0x00035700, 0x0002cc9a, 0x00026666, 0x0001581f, 0x0001581f, 0x0001581f, + 0x0001581f, 0x0001581f, + 0x0001581f, 0x0001581f, 0x0001581f, 0x00035700, 0x0002cc9a, 0x00026666, + 0x0001581f, 0x0001581f, + 0x0001581f, 0x0001581f, 0x0001581f, 0x0001581f, 0x0001581f, 0x0001581f, +}; + +/* acphy_est_pwr_lut_core0_rev0 */ +static const u16 b43_acphy_tbl_05[] = { + 0x554a, 0x554a, 0x544a, 0x544a, 0x5449, 0x5449, 0x5349, 0x5349, 0x5248, + 0x5249, 0x5248, 0x5248, + 0x5147, 0x5147, 0x5147, 0x5147, 0x5046, 0x5046, 0x4f46, 0x4f46, 0x4f45, + 0x4f45, 0x4e44, 0x4e44, + 0x4e44, 0x4e44, 0x4d43, 0x4d43, 0x4c43, 0x4c43, 0x4c42, 0x4c42, 0x4b42, + 0x4b42, 0x4a41, 0x4a41, + 0x4940, 0x4940, 0x4940, 0x4940, 0x483f, 0x483f, 0x473e, 0x473e, 0x463e, + 0x463e, 0x463d, 0x463d, + 0x453c, 0x453c, 0x443b, 0x443b, 0x433b, 0x433b, 0x423a, 0x423a, 0x4139, + 0x4139, 0x4038, 0x4038, + 0x4037, 0x4037, 0x3f36, 0x3f36, 0x3e36, 0x3e36, 0x3d35, 0x3d35, 0x3c34, + 0x3b34, 0x3a33, 0x3a33, + 0x3932, 0x3932, 0x3831, 0x3830, 0x372f, 0x372f, 0x362e, 0x362e, 0x352d, + 0x342d, 0x332c, 0x332c, + 0x322b, 0x322a, 0x3129, 0x3029, 0x2f28, 0x2f27, 0x2e26, 0x2d26, 0x2c25, + 0x2c24, 0x2b23, 0x2a23, + 0x2922, 0x2821, 0x2720, 0x261f, 0x251e, 0x241d, 0x231c, 0x221b, 0x211a, + 0x2019, 0x1f17, 0x1e16, + 0x1d15, 0x1c14, 0x1a12, 0x1911, 0x180f, 0x170e, 0x150c, 0x140a, 0x1208, + 0x1006, 0x0e03, 0x0d01, + 0x0bfe, 0x09fb, 0x07f8, 0x05f5, 0x02f1, 0x00ec, 0xfde7, 0xfde7, +}; + +/* acphy_est_pwr_lut_core1_rev0 */ +static const u16 b43_acphy_tbl_06[] = { + 0x554a, 0x554a, 0x544a, 0x544a, 0x5449, 0x5449, 0x5349, 0x5349, 0x5248, + 0x5249, 0x5248, 0x5248, + 0x5147, 0x5147, 0x5147, 0x5147, 0x5046, 0x5046, 0x4f46, 0x4f46, 0x4f45, + 0x4f45, 0x4e44, 0x4e44, + 0x4e44, 0x4e44, 0x4d43, 0x4d43, 0x4c43, 0x4c43, 0x4c42, 0x4c42, 0x4b42, + 0x4b42, 0x4a41, 0x4a41, + 0x4940, 0x4940, 0x4940, 0x4940, 0x483f, 0x483f, 0x473e, 0x473e, 0x463e, + 0x463e, 0x463d, 0x463d, + 0x453c, 0x453c, 0x443b, 0x443b, 0x433b, 0x433b, 0x423a, 0x423a, 0x4139, + 0x4139, 0x4038, 0x4038, + 0x4037, 0x4037, 0x3f36, 0x3f36, 0x3e36, 0x3e36, 0x3d35, 0x3d35, 0x3c34, + 0x3b34, 0x3a33, 0x3a33, + 0x3932, 0x3932, 0x3831, 0x3830, 0x372f, 0x372f, 0x362e, 0x362e, 0x352d, + 0x342d, 0x332c, 0x332c, + 0x322b, 0x322a, 0x3129, 0x3029, 0x2f28, 0x2f27, 0x2e26, 0x2d26, 0x2c25, + 0x2c24, 0x2b23, 0x2a23, + 0x2922, 0x2821, 0x2720, 0x261f, 0x251e, 0x241d, 0x231c, 0x221b, 0x211a, + 0x2019, 0x1f17, 0x1e16, + 0x1d15, 0x1c14, 0x1a12, 0x1911, 0x180f, 0x170e, 0x150c, 0x140a, 0x1208, + 0x1006, 0x0e03, 0x0d01, + 0x0bfe, 0x09fb, 0x07f8, 0x05f5, 0x02f1, 0x00ec, 0xfde7, 0xfde7, +}; + +/* acphy_est_pwr_lut_core2_rev0 */ +static const u16 b43_acphy_tbl_07[] = { + 0x554a, 0x554a, 0x544a, 0x544a, 0x5449, 0x5449, 0x5349, 0x5349, 0x5248, + 0x5249, 0x5248, 0x5248, + 0x5147, 0x5147, 0x5147, 0x5147, 0x5046, 0x5046, 0x4f46, 0x4f46, 0x4f45, + 0x4f45, 0x4e44, 0x4e44, + 0x4e44, 0x4e44, 0x4d43, 0x4d43, 0x4c43, 0x4c43, 0x4c42, 0x4c42, 0x4b42, + 0x4b42, 0x4a41, 0x4a41, + 0x4940, 0x4940, 0x4940, 0x4940, 0x483f, 0x483f, 0x473e, 0x473e, 0x463e, + 0x463e, 0x463d, 0x463d, + 0x453c, 0x453c, 0x443b, 0x443b, 0x433b, 0x433b, 0x423a, 0x423a, 0x4139, + 0x4139, 0x4038, 0x4038, + 0x4037, 0x4037, 0x3f36, 0x3f36, 0x3e36, 0x3e36, 0x3d35, 0x3d35, 0x3c34, + 0x3b34, 0x3a33, 0x3a33, + 0x3932, 0x3932, 0x3831, 0x3830, 0x372f, 0x372f, 0x362e, 0x362e, 0x352d, + 0x342d, 0x332c, 0x332c, + 0x322b, 0x322a, 0x3129, 0x3029, 0x2f28, 0x2f27, 0x2e26, 0x2d26, 0x2c25, + 0x2c24, 0x2b23, 0x2a23, + 0x2922, 0x2821, 0x2720, 0x261f, 0x251e, 0x241d, 0x231c, 0x221b, 0x211a, + 0x2019, 0x1f17, 0x1e16, + 0x1d15, 0x1c14, 0x1a12, 0x1911, 0x180f, 0x170e, 0x150c, 0x140a, 0x1208, + 0x1006, 0x0e03, 0x0d01, + 0x0bfe, 0x09fb, 0x07f8, 0x05f5, 0x02f1, 0x00ec, 0xfde7, 0xfde7, +}; + +/* acphy_iq_lut_core0_rev0 */ +static const u32 b43_acphy_tbl_08[] = { + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, +}; + +/* acphy_iq_lut_core0_rev0 */ +static const u32 b43_acphy_tbl_09[] = { + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, +}; + +/* acphy_iq_lut_core2_rev0 */ +static const u32 b43_acphy_tbl_10[] = { + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, +}; + +/* acphy_loft_lut_core0_rev0 */ +static const u16 b43_acphy_tbl_11[] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +}; + +/* acphy_loft_lut_core1_rev0 */ +static const u16 b43_acphy_tbl_12[] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +}; + +/* acphy_loft_lut_core2_rev0 */ +static const u16 b43_acphy_tbl_13[] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +}; + +/* acphy_papd_comp_rfpwr_tbl_core0_rev0 */ +static const u16 b43_acphy_tbl_14[] = { + 0x0048, 0x0047, 0x0046, 0x0044, 0x0043, 0x0042, 0x0040, 0x003f, 0x003e, + 0x003c, 0x003a, 0x0038, + 0x0037, 0x0035, 0x0033, 0x0031, 0x002e, 0x002c, 0x002a, 0x0027, 0x0024, + 0x0020, 0x001d, 0x0019, + 0x0019, 0x0019, 0x0019, 0x0014, 0x0014, 0x0014, 0x000f, 0x000f, 0x000f, + 0x0008, 0x0008, 0x0008, + 0x0008, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0xfff7, 0xfff7, 0xfff7, + 0xfff7, 0xfff7, 0xfff7, + 0xfff7, 0xffe8, 0xffe8, 0xffe8, 0xffe8, 0xffe8, 0xffe8, 0xffe8, 0xffe8, + 0xffe8, 0xffe8, 0xffe8, + 0xffe8, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, +}; + +/* acphy_papd_comp_rfpwr_tbl_core1_rev0 */ +static const u16 b43_acphy_tbl_15[] = { + 0x0048, 0x0047, 0x0046, 0x0044, 0x0043, 0x0042, 0x0040, 0x003f, 0x003e, + 0x003c, 0x003a, 0x0038, + 0x0037, 0x0035, 0x0033, 0x0031, 0x002e, 0x002c, 0x002a, 0x0027, 0x0024, + 0x0020, 0x001d, 0x0019, + 0x0019, 0x0019, 0x0019, 0x0014, 0x0014, 0x0014, 0x000f, 0x000f, 0x000f, + 0x0008, 0x0008, 0x0008, + 0x0008, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0xfff7, 0xfff7, 0xfff7, + 0xfff7, 0xfff7, 0xfff7, + 0xfff7, 0xffe8, 0xffe8, 0xffe8, 0xffe8, 0xffe8, 0xffe8, 0xffe8, 0xffe8, + 0xffe8, 0xffe8, 0xffe8, + 0xffe8, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, +}; + +/* acphy_papd_comp_rfpwr_tbl_core2_rev0 */ +static const u16 b43_acphy_tbl_16[] = { + 0x0048, 0x0047, 0x0046, 0x0044, 0x0043, 0x0042, 0x0040, 0x003f, 0x003e, + 0x003c, 0x003a, 0x0038, + 0x0037, 0x0035, 0x0033, 0x0031, 0x002e, 0x002c, 0x002a, 0x0027, 0x0024, + 0x0020, 0x001d, 0x0019, + 0x0019, 0x0019, 0x0019, 0x0014, 0x0014, 0x0014, 0x000f, 0x000f, 0x000f, + 0x0008, 0x0008, 0x0008, + 0x0008, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0xfff7, 0xfff7, 0xfff7, + 0xfff7, 0xfff7, 0xfff7, + 0xfff7, 0xffe8, 0xffe8, 0xffe8, 0xffe8, 0xffe8, 0xffe8, 0xffe8, 0xffe8, + 0xffe8, 0xffe8, 0xffe8, + 0xffe8, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, +}; + +/* acphy_papd_comp_epsilon_tbl_core0_rev0 */ +static const u32 b43_acphy_tbl_17[] = { + 0x00000000, 0x03fdfffe, 0x00002003, 0x03fe4001, 0x03ff000a, 0x03fea003, + 0x03fe7fff, 0x03fe9fff, + 0x03fee00a, 0x00000029, 0x0001403c, 0x0002004b, 0x0003a04b, 0x0004a04e, + 0x0005e051, 0x0007004a, + 0x0008003f, 0x00092034, 0x000aa02f, 0x000ba024, 0x000d2022, 0x000e8021, + 0x0010001e, 0x0011e01c, + 0x0013c018, 0x00152014, 0x00172010, 0x0019200a, 0x001a7ff9, 0x001bffe9, + 0x001d7fd9, 0x001f1fc9, + 0x0020bfb9, 0x0021ffa7, 0x00233f95, 0x00243f84, 0x00257f73, 0x00269f63, + 0x00283f57, 0x002a1f53, + 0x002bff4c, 0x002e3f4a, 0x002fbf3e, 0x0030ff2f, 0x00321f21, 0x00339f12, + 0x0034df02, 0x00359eee, + 0x0035ded8, 0x00361ec1, 0x0036beac, 0x00373e96, 0x0037de82, 0x003e5ea3, + 0x004b5ef3, 0x0056bf29, + 0x0061bf51, 0x00723fb9, 0x00926203, 0x01308ef5, 0x0152cfff, 0x01516fff, + 0x014f6fff, 0x014e6fff, +}; + +/* acphy_papd_comp_epsilon_tbl_core1_rev0 */ +static const u32 b43_acphy_tbl_18[] = { + 0x00000000, 0x03fdfffe, 0x00002003, 0x03fe4001, 0x03ff000a, 0x03fea003, + 0x03fe7fff, 0x03fe9fff, + 0x03fee00a, 0x00000029, 0x0001403c, 0x0002004b, 0x0003a04b, 0x0004a04e, + 0x0005e051, 0x0007004a, + 0x0008003f, 0x00092034, 0x000aa02f, 0x000ba024, 0x000d2022, 0x000e8021, + 0x0010001e, 0x0011e01c, + 0x0013c018, 0x00152014, 0x00172010, 0x0019200a, 0x001a7ff9, 0x001bffe9, + 0x001d7fd9, 0x001f1fc9, + 0x0020bfb9, 0x0021ffa7, 0x00233f95, 0x00243f84, 0x00257f73, 0x00269f63, + 0x00283f57, 0x002a1f53, + 0x002bff4c, 0x002e3f4a, 0x002fbf3e, 0x0030ff2f, 0x00321f21, 0x00339f12, + 0x0034df02, 0x00359eee, + 0x0035ded8, 0x00361ec1, 0x0036beac, 0x00373e96, 0x0037de82, 0x003e5ea3, + 0x004b5ef3, 0x0056bf29, + 0x0061bf51, 0x00723fb9, 0x00926203, 0x01308ef5, 0x0152cfff, 0x01516fff, + 0x014f6fff, 0x014e6fff, +}; + +/* acphy_papd_comp_epsilon_tbl_core2_rev0 */ +static const u32 b43_acphy_tbl_19[] = { + 0x00000000, 0x03fdfffe, 0x00002003, 0x03fe4001, 0x03ff000a, 0x03fea003, + 0x03fe7fff, 0x03fe9fff, + 0x03fee00a, 0x00000029, 0x0001403c, 0x0002004b, 0x0003a04b, 0x0004a04e, + 0x0005e051, 0x0007004a, + 0x0008003f, 0x00092034, 0x000aa02f, 0x000ba024, 0x000d2022, 0x000e8021, + 0x0010001e, 0x0011e01c, + 0x0013c018, 0x00152014, 0x00172010, 0x0019200a, 0x001a7ff9, 0x001bffe9, + 0x001d7fd9, 0x001f1fc9, + 0x0020bfb9, 0x0021ffa7, 0x00233f95, 0x00243f84, 0x00257f73, 0x00269f63, + 0x00283f57, 0x002a1f53, + 0x002bff4c, 0x002e3f4a, 0x002fbf3e, 0x0030ff2f, 0x00321f21, 0x00339f12, + 0x0034df02, 0x00359eee, + 0x0035ded8, 0x00361ec1, 0x0036beac, 0x00373e96, 0x0037de82, 0x003e5ea3, + 0x004b5ef3, 0x0056bf29, + 0x0061bf51, 0x00723fb9, 0x00926203, 0x01308ef5, 0x0152cfff, 0x01516fff, + 0x014f6fff, 0x014e6fff, +}; + +/* acphy_papd_cal_scalars_tbl_core0_rev0 */ +static const u32 b43_acphy_tbl_20[] = { + 0x0b5e002d, 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038, 0x08ab003b, + 0x081f003f, 0x07a20043, + 0x07340047, 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059, 0x0571005e, + 0x051e0064, 0x04d3006a, + 0x04910070, 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d, 0x036f0095, + 0x033d009e, 0x030b00a8, + 0x02e000b2, 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0, 0x022900ed, + 0x020a00fb, 0x01ec010a, + 0x01d20119, 0x01b7012a, 0x019e013c, 0x0188014e, 0x01720162, 0x015d0177, + 0x0149018e, 0x013701a5, + 0x012601be, 0x011501d8, 0x010601f4, 0x00f70212, 0x00e90231, 0x00dc0253, + 0x00d00276, 0x00c4029b, + 0x00b902c3, 0x00af02ed, 0x00a50319, 0x009c0348, 0x0093037a, 0x008b03af, + 0x008303e6, 0x007c0422, + 0x00750460, 0x006e04a3, 0x006804e9, 0x00620533, 0x005d0582, 0x005805d6, + 0x0053062e, 0x004e068c, +}; + +/* acphy_papd_cal_scalars_tbl_core1_rev0 */ +static const u32 b43_acphy_tbl_21[] = { + 0x0b5e002d, 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038, 0x08ab003b, + 0x081f003f, 0x07a20043, + 0x07340047, 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059, 0x0571005e, + 0x051e0064, 0x04d3006a, + 0x04910070, 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d, 0x036f0095, + 0x033d009e, 0x030b00a8, + 0x02e000b2, 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0, 0x022900ed, + 0x020a00fb, 0x01ec010a, + 0x01d20119, 0x01b7012a, 0x019e013c, 0x0188014e, 0x01720162, 0x015d0177, + 0x0149018e, 0x013701a5, + 0x012601be, 0x011501d8, 0x010601f4, 0x00f70212, 0x00e90231, 0x00dc0253, + 0x00d00276, 0x00c4029b, + 0x00b902c3, 0x00af02ed, 0x00a50319, 0x009c0348, 0x0093037a, 0x008b03af, + 0x008303e6, 0x007c0422, + 0x00750460, 0x006e04a3, 0x006804e9, 0x00620533, 0x005d0582, 0x005805d6, + 0x0053062e, 0x004e068c, +}; + +/* acphy_papd_cal_scalars_tbl_core2_rev0 */ +static const u32 b43_acphy_tbl_22[] = { + 0x0b5e002d, 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038, 0x08ab003b, + 0x081f003f, 0x07a20043, + 0x07340047, 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059, 0x0571005e, + 0x051e0064, 0x04d3006a, + 0x04910070, 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d, 0x036f0095, + 0x033d009e, 0x030b00a8, + 0x02e000b2, 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0, 0x022900ed, + 0x020a00fb, 0x01ec010a, + 0x01d20119, 0x01b7012a, 0x019e013c, 0x0188014e, 0x01720162, 0x015d0177, + 0x0149018e, 0x013701a5, + 0x012601be, 0x011501d8, 0x010601f4, 0x00f70212, 0x00e90231, 0x00dc0253, + 0x00d00276, 0x00c4029b, + 0x00b902c3, 0x00af02ed, 0x00a50319, 0x009c0348, 0x0093037a, 0x008b03af, + 0x008303e6, 0x007c0422, + 0x00750460, 0x006e04a3, 0x006804e9, 0x00620533, 0x005d0582, 0x005805d6, + 0x0053062e, 0x004e068c, +}; + +/* ppr (power per rate) table: all zero until TX power control programs it */ +static const u32 b43_acphy_tbl_ppr[24]; + +const struct b43_phy_ac_tbl b43_phy_ac_tbls_rev0[] = { + { b43_acphy_tbl_00, 128, 1, 0, 16 }, + { b43_acphy_tbl_01, 38, 2, 0, 8 }, + { b43_acphy_tbl_02, 256, 4, 0, 8 }, + { b43_acphy_tbl_03, 256, 3, 0, 32 }, + { b43_acphy_tbl_04, 22, 5, 0, 32 }, + { b43_acphy_tbl_05, 128, 64, 0, 16 }, + { b43_acphy_tbl_06, 128, 96, 0, 16 }, + { b43_acphy_tbl_07, 128, 128, 0, 16 }, + { b43_acphy_tbl_08, 128, 65, 0, 32 }, + { b43_acphy_tbl_09, 128, 97, 0, 32 }, + { b43_acphy_tbl_10, 128, 129, 0, 32 }, + { b43_acphy_tbl_11, 128, 66, 0, 16 }, + { b43_acphy_tbl_12, 128, 98, 0, 16 }, + { b43_acphy_tbl_13, 128, 130, 0, 16 }, + { b43_acphy_tbl_14, 128, 64, 0, 16 }, + { b43_acphy_tbl_15, 128, 96, 0, 16 }, + { b43_acphy_tbl_16, 128, 128, 0, 16 }, + { b43_acphy_tbl_17, 64, 71, 0, 32 }, + { b43_acphy_tbl_18, 64, 103, 0, 32 }, + { b43_acphy_tbl_19, 64, 135, 0, 32 }, + { b43_acphy_tbl_20, 64, 72, 0, 32 }, + { b43_acphy_tbl_21, 64, 104, 0, 32 }, + { b43_acphy_tbl_22, 64, 136, 0, 32 }, + { b43_acphy_tbl_ppr, 24, 0x21, 0, 32 }, +}; + +const unsigned int b43_phy_ac_tbls_rev0_n = ARRAY_SIZE(b43_phy_ac_tbls_rev0); +/* + * RF sequencer tables (table id 7), previously replayed from the vendor + * driver's first-load capture. Opcode names after Alessio Ferri's tree; values + * are what core revision 42 holds after the vendor driver's init. + */ +enum { + RFSEQ_NOP = 0x00, + RFSEQ_RXG_FBW = 0x01, + RFSEQ_TR_SWITCH = 0x02, + RFSEQ_INT_PA_PU = 0x03, + RFSEQ_EXT_PA = 0x04, + RFSEQ_RXPD_TXPD = 0x05, + RFSEQ_TX_GAIN = 0x06, + RFSEQ_RX_GAIN = 0x07, + RFSEQ_CLR_HIQ_DIS = 0x08, + RFSEQ_SET_LPF_H_HPC = 0x0a, + RFSEQ_SET_LPF_M_HPC = 0x0c, + RFSEQ_SET_LPF_L_HPC = 0x0e, + RFSEQ_CLR_RXRX_BIAS = 0x0f, + RFSEQ_END = 0x1f, + RFSEQ_UNK_2A = 0x2a, + RFSEQ_UNK_2B = 0x2b, + RFSEQ_UNK_35 = 0x35, + RFSEQ_UNK_36 = 0x36, + RFSEQ_UNK_B3 = 0xb3, +}; + +/* receive -> transmit sequencer commands, table 7 @ 0x0 */ +static const u16 b43_rfseq_rx2tx_cmd[] = { + RFSEQ_NOP, RFSEQ_RXG_FBW, RFSEQ_TR_SWITCH, RFSEQ_CLR_HIQ_DIS, + RFSEQ_RXPD_TXPD, RFSEQ_NOP, RFSEQ_TX_GAIN, RFSEQ_INT_PA_PU, + RFSEQ_CLR_RXRX_BIAS, RFSEQ_EXT_PA, RFSEQ_NOP, RFSEQ_UNK_35, + RFSEQ_CLR_RXRX_BIAS, RFSEQ_NOP, RFSEQ_UNK_36, RFSEQ_END, +}; + +/* + * transmit -> receive (starts with an extra 0xb3 opcode on core rev 42), table + * 7 @ 0x10 + */ +static const u16 b43_rfseq_tx2rx_cmd[] = { + RFSEQ_UNK_B3, RFSEQ_EXT_PA, RFSEQ_INT_PA_PU, RFSEQ_TX_GAIN, + RFSEQ_RXPD_TXPD, RFSEQ_NOP, RFSEQ_TR_SWITCH, RFSEQ_RXG_FBW, + RFSEQ_CLR_HIQ_DIS, RFSEQ_UNK_2A, RFSEQ_CLR_RXRX_BIAS, RFSEQ_NOP, + RFSEQ_CLR_RXRX_BIAS, RFSEQ_UNK_2B, RFSEQ_END, RFSEQ_END, +}; + +/* reset -> receive, table 7 @ 0x20 */ +static const u16 b43_rfseq_reset2rx_cmd[] = { + RFSEQ_EXT_PA, RFSEQ_INT_PA_PU, RFSEQ_TX_GAIN, RFSEQ_RXPD_TXPD, + RFSEQ_TR_SWITCH, RFSEQ_RXG_FBW, RFSEQ_CLR_HIQ_DIS, RFSEQ_UNK_2A, + RFSEQ_UNK_2B, RFSEQ_CLR_RXRX_BIAS, RFSEQ_END, RFSEQ_END, + RFSEQ_END, RFSEQ_END, RFSEQ_END, RFSEQ_END, +}; + +/* second sequencer, core 0, table 7 @ 0x30 */ +static const u16 b43_rfseq_rfseq2_cmd_c0[] = { + RFSEQ_UNK_2A, RFSEQ_RX_GAIN, RFSEQ_SET_LPF_H_HPC, RFSEQ_NOP, + RFSEQ_CLR_HIQ_DIS, RFSEQ_UNK_2B, RFSEQ_END, RFSEQ_END, +}; + +/* second sequencer, core 1, table 7 @ 0x40 */ +static const u16 b43_rfseq_rfseq2_cmd_c1[] = { + RFSEQ_UNK_2A, RFSEQ_RX_GAIN, RFSEQ_CLR_HIQ_DIS, RFSEQ_SET_LPF_M_HPC, + RFSEQ_SET_LPF_L_HPC, RFSEQ_UNK_2B, RFSEQ_END, RFSEQ_END, +}; + +/* second sequencer, core 2, table 7 @ 0x50 */ +static const u16 b43_rfseq_rfseq2_cmd_c2[] = { + RFSEQ_UNK_2A, RFSEQ_RX_GAIN, RFSEQ_CLR_HIQ_DIS, RFSEQ_SET_LPF_L_HPC, + RFSEQ_UNK_2B, RFSEQ_END, RFSEQ_END, RFSEQ_END, +}; + +/* rx2tx/tx2rx delays, table 7 @ 0x80 */ +static const u16 b43_rfseq_dly_80[] = { + 0x0001, 0x0008, 0x0004, 0x0002, + 0x0002, 0x0001, 0x0003, 0x0004, + 0x0006, 0x0004, 0x000a, 0x0004, + 0x0002, 0x0001, 0x0001, 0x0001, +}; + +/* reset2rx delays, table 7 @ 0x90 */ +static const u16 b43_rfseq_reset2rx_dly[] = { + 0x000c, 0x0002, 0x0002, 0x0004, + 0x0004, 0x0006, 0x0001, 0x0004, + 0x0001, 0x0002, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, +}; + +/* rfseq2 delays, core 0, table 7 @ 0xa0 */ +static const u16 b43_rfseq_dly_a[] = { + 0x0001, 0x0002, 0x0002, 0x0002, + 0x0010, 0x0001, 0x0001, 0x0001, +}; + +/* rfseq2 delays, core 1, table 7 @ 0xb0 */ +static const u16 b43_rfseq_dly_b[] = { + 0x0001, 0x0006, 0x0012, 0x0008, + 0x0010, 0x0001, 0x0001, 0x0001, +}; + +/* rfseq2 delays, core 2, table 7 @ 0xc0 */ +static const u16 b43_rfseq_dly_c[] = { + 0x0001, 0x0006, 0x001e, 0x001c, + 0x0001, 0x0001, 0x0001, 0x0001, +}; + +/* rfseq update-delay cells, table 7 @ 0x121 */ +static const u16 b43_rfseq_updl_lpf_hpc0[] = { + 0x0aaa, 0x0aaa, +}; + +/* rfseq update-delay cells, table 7 @ 0x124 */ +static const u16 b43_rfseq_updl_tia_hpc0[] = { + 0x0222, 0x0222, +}; + +/* rfseq update-delay cells, table 7 @ 0x131 */ +static const u16 b43_rfseq_updl_lpf_hpc1[] = { + 0x0aaa, 0x0aaa, +}; + +/* rfseq update-delay cells, table 7 @ 0x137 */ +static const u16 b43_rfseq_updl_tia_hpc1[] = { + 0x0222, 0x0222, +}; + +const struct b43_phy_ac_tbl b43_phy_ac_rfseq_tbls[] = { + { b43_rfseq_rx2tx_cmd, 16, 7, 0x0, 16 }, + { b43_rfseq_tx2rx_cmd, 16, 7, 0x10, 16 }, + { b43_rfseq_reset2rx_cmd, 16, 7, 0x20, 16 }, + { b43_rfseq_rfseq2_cmd_c0, 8, 7, 0x30, 16 }, + { b43_rfseq_rfseq2_cmd_c1, 8, 7, 0x40, 16 }, + { b43_rfseq_rfseq2_cmd_c2, 8, 7, 0x50, 16 }, + { b43_rfseq_dly_80, 16, 7, 0x80, 16 }, + { b43_rfseq_reset2rx_dly, 16, 7, 0x90, 16 }, + { b43_rfseq_dly_a, 8, 7, 0xa0, 16 }, + { b43_rfseq_dly_b, 8, 7, 0xb0, 16 }, + { b43_rfseq_dly_c, 8, 7, 0xc0, 16 }, + { b43_rfseq_updl_lpf_hpc0, 2, 7, 0x121, 16 }, + { b43_rfseq_updl_tia_hpc0, 2, 7, 0x124, 16 }, + { b43_rfseq_updl_lpf_hpc1, 2, 7, 0x131, 16 }, + { b43_rfseq_updl_tia_hpc1, 2, 7, 0x137, 16 }, +}; + +const unsigned int b43_phy_ac_rfseq_tbls_n = ARRAY_SIZE(b43_phy_ac_rfseq_tbls); + +/* + * FEM control pattern (table 0x0a, three 32-byte blocks: A, B, A) for SROM + * femctrl == 2, the value the vendor driver holds on this card (Alessio's tree + * has the femctrl == 6 variant, 0x06/0x02 where this has 0x04/0x00). + */ +static const u8 b43_femctrl2_a[32] = { + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const u8 b43_femctrl2_b[32] = { + 0x00, 0x00, 0x30, 0x20, 0x00, 0x00, 0x30, 0x20, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, + 0x46, 0x42, 0x40, 0x40, 0x46, 0x42, 0x40, 0x41, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, +}; + +const struct b43_phy_ac_tbl b43_phy_ac_femctrl2_tbls[] = { + { b43_femctrl2_a, 32, 0x0a, 0x00, 8 }, + { b43_femctrl2_b, 32, 0x0a, 0x20, 8 }, + { b43_femctrl2_a, 32, 0x0a, 0x40, 8 }, +}; + +const unsigned int b43_phy_ac_femctrl2_tbls_n = + ARRAY_SIZE(b43_phy_ac_femctrl2_tbls); + +/* Gain limits (table 0x0b) Names after Alessio's tree. */ +static const u16 b43_glim_a[6] = { + 0x000b, 0x000c, 0x000e, 0x0020, 0x0024, 0x0028, +}; + +static const u16 b43_glim_b[7] = { + 0x0000, 0x0000, 0x0000, 0x0003, 0x0003, 0x0003, 0x0003, +}; + +/* + * RX-IQ-cal tone table (table 0x0e): a 20-entry period, two periods at 20 MHz. + */ +static const u32 b43_iqcal_tone[20] = { + 0x0002d400, 0x0002b3c8, 0x00024b96, 0x0001ab6e, 0x0000e354, 0x0000034b, + 0x000f2354, 0x000e5b6e, 0x000dbb96, 0x000d53c8, 0x000d2c00, 0x000d5038, + 0x000db86a, 0x000e5892, 0x000f20ac, 0x000000b5, 0x0000e0ac, 0x0001a892, + 0x0002486a, 0x0002b038, +}; + +const struct b43_phy_ac_tbl b43_phy_ac_misc_tbls[] = { + { b43_glim_a, 6, 0x0b, 0x08, 16 }, + { b43_glim_b, 7, 0x0b, 0x10, 16 }, + { b43_iqcal_tone, 20, 0x0e, 0x00, 32 }, + { b43_iqcal_tone, 20, 0x0e, 0x14, 32 }, +}; + +const unsigned int b43_phy_ac_misc_tbls_n = ARRAY_SIZE(b43_phy_ac_misc_tbls); + +/* + * Gain ladder "A" (table 0x0c, 18 index/gain pairs per core; name after + * Alessio's tree, the variant the vendor driver loads on this card). + */ +static const u16 b43_gain_ladder_a_c0[18] = { + 0x0100, 0x0200, 0x0300, 0x0500, 0x0800, 0x0b00, 0x1000, 0x1001, 0x1002, + 0x1003, 0x1004, 0x1005, 0x1006, 0x1007, 0x1607, 0x2007, 0x2d07, 0x4007, +}; + +static const u16 b43_gain_ladder_a_c1[18] = { + 0x0100, 0x0200, 0x0300, 0x0500, 0x0800, 0x0b00, 0x1000, 0x1600, 0x2000, + 0x2d00, 0x4000, 0x4001, 0x4002, 0x4003, 0x4004, 0x4005, 0x4006, 0x4007, +}; + +const struct b43_phy_ac_tbl b43_phy_ac_ladder_tbls[] = { + { b43_gain_ladder_a_c0, 18, 0x0c, 0x00, 16 }, + { b43_gain_ladder_a_c1, 18, 0x0c, 0x20, 16 }, +}; + +const unsigned int b43_phy_ac_ladder_tbls_n = + ARRAY_SIZE(b43_phy_ac_ladder_tbls); + +/* + * Remaining 2.4 GHz cells of tables 0x07 (RF sequencer) and 0x0c, values as + * the vendor driver programs them on this card. What is known is structure + * only, not the meaning of the values: + * - 0x140/0x150 and 0x360/0x370 are identical pairs 0x10 apart, so they + * look like one block per core (two cores). + * - 0x6a/0x6e and 0x3fa/0x3fe repeat the same {0x2f, 0xbef, 0xbef} data. + * - table 0x0c offsets 0x5f and 0x70 end in the same eight words. + * Nothing here has been varied independently of the vendor driver, so these + * stay literal. + */ +static const u16 b43_vendor_7_106[3] = { + 0x2f, 0xbef, 0xbef, +}; + +static const u16 b43_vendor_7_110[2] = { + 0xbef, 0xbef, +}; + +static const u16 b43_vendor_7_249[2] = { + 0xc8a5, 0xcca5, +}; + +static const u16 b43_vendor_7_256[2] = { + 0xff00, 0xff00, +}; + +static const u16 b43_vendor_7_259[2] = { + 0x7cf, 0x7cf, +}; + +static const u16 b43_vendor_7_262[2] = { + 0xa7, 0xa7, +}; + +static const u16 b43_vendor_7_320[11] = { + 0x2280, 0x2189, 0x40db, 0x40db, 0x40db, 0x4123, 0x4123, 0x4123, + 0x416b, 0x416b, 0x40db, +}; + +static const u16 b43_vendor_7_336[11] = { + 0x2280, 0x2189, 0x40db, 0x40db, 0x40db, 0x4123, 0x4123, 0x4123, + 0x416b, 0x416b, 0x40db, +}; + +static const u16 b43_vendor_7_398[1] = { + 0x0, +}; + +static const u16 b43_vendor_7_864[11] = { + 0x140, 0x140, 0x141, 0x141, 0x141, 0x141, 0x141, 0x141, + 0x141, 0x141, 0x141, +}; + +static const u16 b43_vendor_7_880[11] = { + 0x140, 0x140, 0x141, 0x141, 0x141, 0x141, 0x141, 0x141, + 0x141, 0x141, 0x141, +}; + +static const u16 b43_vendor_7_966[2] = { + 0x20, 0x20, +}; + +static const u16 b43_vendor_7_973[1] = { + 0x2d3, +}; + +static const u16 b43_vendor_7_982[2] = { + 0x20, 0x20, +}; + +static const u16 b43_vendor_7_989[1] = { + 0x352, +}; + +static const u16 b43_vendor_7_998[2] = { + 0x20, 0x20, +}; + +static const u16 b43_vendor_7_1018[3] = { + 0x2f, 0xbef, 0xbef, +}; + +static const u16 b43_vendor_7_1022[2] = { + 0xbef, 0xbef, +}; + +static const u16 b43_vendor_7_1088[4] = { + 0x140, 0x2192, 0x140, 0x2192, +}; + +static const u16 b43_vendor_12_64[2] = { + 0x40, 0x4, +}; + +static const u16 b43_vendor_12_67[3] = { + 0xff02, 0xff, 0xfe06, +}; + +static const u16 b43_vendor_12_72[2] = { + 0xb, 0x11, +}; + +static const u16 b43_vendor_12_75[3] = { + 0x101, 0xff00, 0x4f3, +}; + +static const u16 b43_vendor_12_95[9] = { + 0xacdc, 0x3f, 0xfff5, 0xff02, 0x3f, 0xa, 0xffff, 0x101, + 0x3f, +}; + +static const u16 b43_vendor_12_112[8] = { + 0x3f, 0xfff5, 0xff02, 0x3f, 0xa, 0xffff, 0x101, 0x3f, +}; + +const struct b43_phy_ac_tbl b43_phy_ac_vendor_tbls[] = { + { b43_vendor_7_106, 3, 0x07, 0x6a, 16 }, + { b43_vendor_7_110, 2, 0x07, 0x6e, 16 }, + { b43_vendor_7_249, 2, 0x07, 0xf9, 16 }, + { b43_vendor_7_256, 2, 0x07, 0x100, 16 }, + { b43_vendor_7_259, 2, 0x07, 0x103, 16 }, + { b43_vendor_7_262, 2, 0x07, 0x106, 16 }, + { b43_vendor_7_320, 11, 0x07, 0x140, 16 }, + { b43_vendor_7_336, 11, 0x07, 0x150, 16 }, + { b43_vendor_7_398, 1, 0x07, 0x18e, 16 }, + { b43_vendor_7_864, 11, 0x07, 0x360, 16 }, + { b43_vendor_7_880, 11, 0x07, 0x370, 16 }, + { b43_vendor_7_966, 2, 0x07, 0x3c6, 16 }, + { b43_vendor_7_973, 1, 0x07, 0x3cd, 16 }, + { b43_vendor_7_982, 2, 0x07, 0x3d6, 16 }, + { b43_vendor_7_989, 1, 0x07, 0x3dd, 16 }, + { b43_vendor_7_998, 2, 0x07, 0x3e6, 16 }, + { b43_vendor_7_1018, 3, 0x07, 0x3fa, 16 }, + { b43_vendor_7_1022, 2, 0x07, 0x3fe, 16 }, + { b43_vendor_7_1088, 4, 0x07, 0x440, 16 }, + { b43_vendor_12_64, 2, 0x0c, 0x40, 16 }, + { b43_vendor_12_67, 3, 0x0c, 0x43, 16 }, + { b43_vendor_12_72, 2, 0x0c, 0x48, 16 }, + { b43_vendor_12_75, 3, 0x0c, 0x4b, 16 }, + { b43_vendor_12_95, 9, 0x0c, 0x5f, 16 }, + { b43_vendor_12_112, 8, 0x0c, 0x70, 16 }, +}; + +const unsigned int b43_phy_ac_vendor_tbls_n = + ARRAY_SIZE(b43_phy_ac_vendor_tbls); + +/* + * TX gain table for 2.4 GHz with an external PA, acphy_txgain_epa_2g_2069rev4 + * (from Alessio Ferri's b43 AC-PHY driver; the stock driver loads it whole + * into table 0x20). Index 0 is the highest gain. Per entry: bbmult in the + * low byte of word 0, then three gain words packed across the rest. + */ +const u16 b43_phy_ac_txgain_2g[128][3] = { + { 0x0044, 0xffff, 0xa7ff }, + { 0x0040, 0xffff, 0xa7ff }, + { 0x003f, 0xffff, 0xa7ef }, + { 0x003f, 0xffff, 0xa7df }, + { 0x003f, 0xffff, 0xa7cf }, + { 0x0040, 0xffff, 0xa7bf }, + { 0x0041, 0xffff, 0xa7af }, + { 0x0040, 0xffff, 0xa7a7 }, + { 0x003f, 0xffff, 0xa79f }, + { 0x0041, 0xffff, 0xa78f }, + { 0x0041, 0xffff, 0xa787 }, + { 0x0040, 0xffff, 0xa77f }, + { 0x0040, 0xffff, 0xa777 }, + { 0x0040, 0xffff, 0xa76f }, + { 0x0041, 0xffff, 0xa767 }, + { 0x0042, 0xffff, 0xa75f }, + { 0x003e, 0xffff, 0xa75f }, + { 0x0040, 0xffff, 0xa757 }, + { 0x0042, 0xffff, 0xa74f }, + { 0x003e, 0xffff, 0xa74f }, + { 0x0041, 0xffff, 0xa747 }, + { 0x003d, 0xffff, 0xa747 }, + { 0x0040, 0xffff, 0xa73f }, + { 0x003d, 0xffff, 0xa73f }, + { 0x0041, 0xffff, 0xa737 }, + { 0x003d, 0xffff, 0xa737 }, + { 0x0043, 0xffff, 0xa72f }, + { 0x0040, 0xffff, 0xa72f }, + { 0x003c, 0xffff, 0xa72f }, + { 0x0043, 0xffff, 0xa727 }, + { 0x0040, 0xffff, 0xa727 }, + { 0x003c, 0xffff, 0xa727 }, + { 0x0046, 0xffff, 0xa71f }, + { 0x0042, 0xffff, 0xa71f }, + { 0x003e, 0xffff, 0xa71f }, + { 0x003b, 0xffff, 0xa71f }, + { 0x004a, 0xffff, 0xa717 }, + { 0x0046, 0xffff, 0xa717 }, + { 0x0042, 0xffff, 0xa717 }, + { 0x003e, 0xffff, 0xa717 }, + { 0x003b, 0xffff, 0xa717 }, + { 0x0037, 0xffff, 0xa717 }, + { 0x004c, 0xffff, 0xa70f }, + { 0x0048, 0xffff, 0xa70f }, + { 0x0044, 0xffff, 0xa70f }, + { 0x0040, 0xffff, 0xa70f }, + { 0x003c, 0xffff, 0xa70f }, + { 0x0039, 0xffff, 0xa70f }, + { 0x0036, 0xffff, 0xa70f }, + { 0x0033, 0xffff, 0xa70f }, + { 0x002f, 0xffff, 0xa70f }, + { 0x0055, 0xffff, 0xa707 }, + { 0x0050, 0xffff, 0xa707 }, + { 0x004b, 0xffff, 0xa707 }, + { 0x0047, 0xffff, 0xa707 }, + { 0x0043, 0xffff, 0xa707 }, + { 0x003f, 0xffff, 0xa707 }, + { 0x003c, 0xffff, 0xa707 }, + { 0x0038, 0xffff, 0xa707 }, + { 0x0035, 0xffff, 0xa707 }, + { 0x0032, 0xffff, 0xa707 }, + { 0x0030, 0xffff, 0xa707 }, + { 0x002d, 0xffff, 0xa707 }, + { 0x002a, 0xffff, 0xa707 }, + { 0x003f, 0xcfff, 0xa707 }, + { 0x0042, 0xc7ff, 0xa707 }, + { 0x003f, 0xc7ff, 0xa707 }, + { 0x0043, 0xbfff, 0xa707 }, + { 0x003f, 0xbfff, 0xa707 }, + { 0x0045, 0xb7ff, 0xa707 }, + { 0x0041, 0xb7ff, 0xa707 }, + { 0x003d, 0xb7ff, 0xa707 }, + { 0x0044, 0xafff, 0xa707 }, + { 0x0040, 0xafff, 0xa707 }, + { 0x003d, 0xafff, 0xa707 }, + { 0x0046, 0xa7ff, 0xa707 }, + { 0x0041, 0xa7ff, 0xa707 }, + { 0x003e, 0xa7ff, 0xa707 }, + { 0x003b, 0xa7ff, 0xa707 }, + { 0x0046, 0x9fff, 0xa707 }, + { 0x0042, 0x9fff, 0xa707 }, + { 0x003e, 0x9fff, 0xa707 }, + { 0x003b, 0x9fff, 0xa707 }, + { 0x0037, 0x9fff, 0xa707 }, + { 0x0046, 0x97ff, 0xa707 }, + { 0x0042, 0x97ff, 0xa707 }, + { 0x003f, 0x97ff, 0xa707 }, + { 0x003b, 0x97ff, 0xa707 }, + { 0x0038, 0x97ff, 0xa707 }, + { 0x0035, 0x97ff, 0xa707 }, + { 0x004c, 0x8fff, 0xa707 }, + { 0x0048, 0x8fff, 0xa707 }, + { 0x0044, 0x8fff, 0xa707 }, + { 0x0040, 0x8fff, 0xa707 }, + { 0x003c, 0x8fff, 0xa707 }, + { 0x0039, 0x8fff, 0xa707 }, + { 0x0036, 0x8fff, 0xa707 }, + { 0x0033, 0x8fff, 0xa707 }, + { 0x0030, 0x8fff, 0xa707 }, + { 0x002d, 0x8fff, 0xa707 }, + { 0x0058, 0x87ff, 0xa707 }, + { 0x0053, 0x87ff, 0xa707 }, + { 0x004f, 0x87ff, 0xa707 }, + { 0x004a, 0x87ff, 0xa707 }, + { 0x0046, 0x87ff, 0xa707 }, + { 0x0042, 0x87ff, 0xa707 }, + { 0x003e, 0x87ff, 0xa707 }, + { 0x003b, 0x87ff, 0xa707 }, + { 0x0038, 0x87ff, 0xa707 }, + { 0x0035, 0x87ff, 0xa707 }, + { 0x0032, 0x87ff, 0xa707 }, + { 0x002f, 0x87ff, 0xa707 }, + { 0x002c, 0x87ff, 0xa707 }, + { 0x002a, 0x87ff, 0xa707 }, + { 0x0027, 0x87ff, 0xa707 }, + { 0x0025, 0x87ff, 0xa707 }, + { 0x0023, 0x87ff, 0xa707 }, + { 0x0021, 0x87ff, 0xa707 }, + { 0x001f, 0x87ff, 0xa707 }, + { 0x001e, 0x87ff, 0xa707 }, + { 0x001c, 0x87ff, 0xa707 }, + { 0x001a, 0x87ff, 0xa707 }, + { 0x0019, 0x87ff, 0xa707 }, + { 0x0017, 0x87ff, 0xa707 }, + { 0x0016, 0x87ff, 0xa707 }, + { 0x0015, 0x87ff, 0xa707 }, + { 0x0014, 0x87ff, 0xa707 }, + { 0x0013, 0x87ff, 0xa707 }, +}; + +/* + * TX gain table for 5 GHz as the vendor driver loads it into table 0x20 on this + * board captured from the vendor driver, same entry format. + */ +const u16 b43_phy_ac_txgain_5g[128][3] = { + { 0x0044, 0x7f00, 0xf3ff }, + { 0x0040, 0x7f00, 0xf3ff }, + { 0x0040, 0x7f00, 0xf3ef }, + { 0x0040, 0x7f00, 0xf3df }, + { 0x0041, 0x7f00, 0xf3cf }, + { 0x003f, 0x7f00, 0xf3c7 }, + { 0x0041, 0x7f00, 0xf3b7 }, + { 0x0040, 0x7f00, 0xf3af }, + { 0x003f, 0x7f00, 0xf3a7 }, + { 0x0041, 0x7f00, 0xf397 }, + { 0x0041, 0x7f00, 0xf38f }, + { 0x0041, 0x7f00, 0xf387 }, + { 0x0040, 0x7f00, 0xf37f }, + { 0x0040, 0x7f00, 0xf377 }, + { 0x0041, 0x7f00, 0xf36f }, + { 0x0042, 0x7f00, 0xf367 }, + { 0x003e, 0x7f00, 0xf367 }, + { 0x003f, 0x7f00, 0xf35f }, + { 0x0041, 0x7f00, 0xf357 }, + { 0x003d, 0x7f00, 0xf357 }, + { 0x0040, 0x7f00, 0xf34f }, + { 0x0042, 0x7f00, 0xf347 }, + { 0x003f, 0x7f00, 0xf347 }, + { 0x0043, 0x7f00, 0xf33f }, + { 0x003f, 0x7f00, 0xf33f }, + { 0x0044, 0x7f00, 0xf337 }, + { 0x0040, 0x7f00, 0xf337 }, + { 0x003c, 0x7f00, 0xf337 }, + { 0x0043, 0x7f00, 0xf32f }, + { 0x003f, 0x7f00, 0xf32f }, + { 0x003c, 0x7f00, 0xf32f }, + { 0x003f, 0x6f00, 0xf32f }, + { 0x003f, 0x6900, 0xf32f }, + { 0x003d, 0x6700, 0xf32f }, + { 0x003b, 0x6400, 0xf32f }, + { 0x003b, 0x5f00, 0xf32f }, + { 0x0039, 0x5d00, 0xf32f }, + { 0x0037, 0x5900, 0xf32f }, + { 0x0037, 0x5700, 0xf32f }, + { 0x0035, 0x5300, 0xf32f }, + { 0x0034, 0x5000, 0xf32f }, + { 0x0034, 0x4b00, 0xf32f }, + { 0x0035, 0x4600, 0xf32f }, + { 0x0036, 0x4100, 0xf32f }, + { 0x0038, 0x3b00, 0xf32f }, + { 0x003a, 0x3600, 0xf32f }, + { 0x003c, 0x3100, 0xf32f }, + { 0x003e, 0x2d00, 0xf32f }, + { 0x003e, 0x2b00, 0xf32f }, + { 0x003e, 0x2800, 0xf32f }, + { 0x0040, 0x2500, 0xf32f }, + { 0x0046, 0x1f00, 0xf32f }, + { 0x0042, 0x1f00, 0xf32f }, + { 0x003e, 0x1f00, 0xf32f }, + { 0x003b, 0x1f00, 0xf32f }, + { 0x0037, 0x1f00, 0xf32f }, + { 0x0047, 0x1700, 0xf32f }, + { 0x0043, 0x1700, 0xf32f }, + { 0x003f, 0x1700, 0xf32f }, + { 0x003c, 0x1700, 0xf32f }, + { 0x0039, 0x1700, 0xf32f }, + { 0x0037, 0x1600, 0xf32f }, + { 0x0037, 0x1500, 0xf32f }, + { 0x0035, 0x1400, 0xf32f }, + { 0x0035, 0x1300, 0xf32f }, + { 0x0034, 0x1200, 0xf32f }, + { 0x0034, 0x1100, 0xf32f }, + { 0x0034, 0x1000, 0xf32f }, + { 0x0036, 0x0f00, 0xf32f }, + { 0x0036, 0x0e00, 0xf32f }, + { 0x0034, 0x0d00, 0xf32f }, + { 0x0035, 0x0c00, 0xf32f }, + { 0x0038, 0x0b00, 0xf32f }, + { 0x0039, 0x0a00, 0xf32f }, + { 0x003d, 0x0900, 0xf32f }, + { 0x0040, 0x0800, 0xf32f }, + { 0x0044, 0x0700, 0xf32f }, + { 0x0040, 0x0700, 0xf32f }, + { 0x003c, 0x0700, 0xf32f }, + { 0x0038, 0x0700, 0xf32f }, + { 0x0034, 0x0700, 0xf32f }, + { 0x0030, 0x0700, 0xf32f }, + { 0x002c, 0x0700, 0xf32f }, + { 0x0028, 0x0700, 0xf32f }, + { 0x0024, 0x0700, 0xf32f }, + { 0x0020, 0x0700, 0xf32f }, + { 0x001c, 0x0700, 0xf32f }, + { 0x0018, 0x0700, 0xf32f }, + { 0x0014, 0x0700, 0xf32f }, + { 0x0012, 0x0700, 0xf32f }, + { 0x0011, 0x0700, 0xf32f }, + { 0x0010, 0x0700, 0xf32f }, + { 0x000f, 0x0700, 0xf32f }, + { 0x000e, 0x0700, 0xf32f }, + { 0x000d, 0x0700, 0xf32f }, + { 0x000c, 0x0700, 0xf32f }, + { 0x000c, 0x0700, 0xf32f }, + { 0x000b, 0x0700, 0xf32f }, + { 0x000a, 0x0700, 0xf32f }, + { 0x000a, 0x0700, 0xf32f }, + { 0x0009, 0x0700, 0xf32f }, + { 0x0009, 0x0700, 0xf32f }, + { 0x0008, 0x0700, 0xf32f }, + { 0x0008, 0x0700, 0xf32f }, + { 0x0007, 0x0700, 0xf32f }, + { 0x0007, 0x0700, 0xf32f }, + { 0x0007, 0x0700, 0xf32f }, + { 0x0006, 0x0700, 0xf32f }, + { 0x0006, 0x0700, 0xf32f }, + { 0x0006, 0x0700, 0xf32f }, + { 0x0005, 0x0700, 0xf32f }, + { 0x0005, 0x0700, 0xf32f }, + { 0x0005, 0x0700, 0xf32f }, + { 0x0004, 0x0700, 0xf32f }, + { 0x0004, 0x0700, 0xf32f }, + { 0x0004, 0x0700, 0xf32f }, + { 0x0004, 0x0700, 0xf32f }, + { 0x0003, 0x0700, 0xf32f }, + { 0x0003, 0x0700, 0xf32f }, + { 0x0003, 0x0700, 0xf32f }, + { 0x0003, 0x0700, 0xf32f }, + { 0x0003, 0x0700, 0xf32f }, + { 0x0003, 0x0700, 0xf32f }, + { 0x0002, 0x0700, 0xf32f }, + { 0x0002, 0x0700, 0xf32f }, + { 0x0002, 0x0700, 0xf32f }, + { 0x0002, 0x0700, 0xf32f }, + { 0x0002, 0x0700, 0xf32f }, +}; diff --git a/drivers/net/wireless/broadcom/b43/tables_phy_ac.h b/drivers/net/wireless/broadcom/b43/tables_phy_ac.h new file mode 100644 index 0000000..64a5969 --- /dev/null +++ b/drivers/net/wireless/broadcom/b43/tables_phy_ac.h @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef B43_TABLES_PHY_AC_H_ +#define B43_TABLES_PHY_AC_H_ + +#include + +struct b43_phy_ac_tbl { + const void *data; + u16 count; + u16 id; + u16 offset; + u8 width; /* bits per entry: 8, 16 or 32 */ +}; + +extern const struct b43_phy_ac_tbl b43_phy_ac_tbls_rev0[]; +extern const unsigned int b43_phy_ac_tbls_rev0_n; +extern const struct b43_phy_ac_tbl b43_phy_ac_rfseq_tbls[]; +extern const unsigned int b43_phy_ac_rfseq_tbls_n; +extern const struct b43_phy_ac_tbl b43_phy_ac_femctrl2_tbls[]; +extern const unsigned int b43_phy_ac_femctrl2_tbls_n; +extern const struct b43_phy_ac_tbl b43_phy_ac_misc_tbls[]; +extern const unsigned int b43_phy_ac_misc_tbls_n; +extern const struct b43_phy_ac_tbl b43_phy_ac_ladder_tbls[]; +extern const unsigned int b43_phy_ac_ladder_tbls_n; +extern const struct b43_phy_ac_tbl b43_phy_ac_vendor_tbls[]; +extern const unsigned int b43_phy_ac_vendor_tbls_n; + +extern const u16 b43_phy_ac_txgain_2g[128][3]; +extern const u16 b43_phy_ac_txgain_5g[128][3]; + +#endif /* B43_TABLES_PHY_AC_H_ */