Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78fd9c44 authored by David S. Miller's avatar David S. Miller
Browse files
parents b9958a95 822395b5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3580,6 +3580,7 @@ ath5k_pci_probe(struct pci_dev *pdev,
	common->ah = sc->ah;
	common->hw = hw;
	common->cachelsz = csz << 2; /* convert to bytes */
	spin_lock_init(&common->cc_lock);

	/* Initialize device */
	ret = ath5k_hw_attach(sc);
+135 −56
Original line number Diff line number Diff line
@@ -34,6 +34,10 @@ static const u32 ar9300_2p2_radio_postamble[][5] = {

static const u32 ar9300Modes_lowest_ob_db_tx_gain_table_2p2[][5] = {
	/* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */
	{0x0000a2dc, 0x0380c7fc, 0x0380c7fc, 0x00637800, 0x00637800},
	{0x0000a2e0, 0x0000f800, 0x0000f800, 0x03838000, 0x03838000},
	{0x0000a2e4, 0x03ff0000, 0x03ff0000, 0x03fc0000, 0x03fc0000},
	{0x0000a2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a410, 0x000050d9, 0x000050d9, 0x000050d9, 0x000050d9},
	{0x0000a500, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a504, 0x06000003, 0x06000003, 0x04000002, 0x04000002},
@@ -99,6 +103,30 @@ static const u32 ar9300Modes_lowest_ob_db_tx_gain_table_2p2[][5] = {
	{0x0000a5f4, 0x7782b08c, 0x7782b08c, 0x5d801eec, 0x5d801eec},
	{0x0000a5f8, 0x7782b08c, 0x7782b08c, 0x5d801eec, 0x5d801eec},
	{0x0000a5fc, 0x7782b08c, 0x7782b08c, 0x5d801eec, 0x5d801eec},
	{0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a610, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a614, 0x01404000, 0x01404000, 0x01404000, 0x01404000},
	{0x0000a618, 0x01404501, 0x01404501, 0x01404501, 0x01404501},
	{0x0000a61c, 0x02008802, 0x02008802, 0x02008501, 0x02008501},
	{0x0000a620, 0x0300cc03, 0x0300cc03, 0x0280ca03, 0x0280ca03},
	{0x0000a624, 0x0300cc03, 0x0300cc03, 0x03010c04, 0x03010c04},
	{0x0000a628, 0x0300cc03, 0x0300cc03, 0x04014c04, 0x04014c04},
	{0x0000a62c, 0x03810c03, 0x03810c03, 0x04015005, 0x04015005},
	{0x0000a630, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005},
	{0x0000a634, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005},
	{0x0000a638, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005},
	{0x0000a63c, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005},
	{0x0000b2dc, 0x0380c7fc, 0x0380c7fc, 0x00637800, 0x00637800},
	{0x0000b2e0, 0x0000f800, 0x0000f800, 0x03838000, 0x03838000},
	{0x0000b2e4, 0x03ff0000, 0x03ff0000, 0x03fc0000, 0x03fc0000},
	{0x0000b2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000c2dc, 0x0380c7fc, 0x0380c7fc, 0x00637800, 0x00637800},
	{0x0000c2e0, 0x0000f800, 0x0000f800, 0x03838000, 0x03838000},
	{0x0000c2e4, 0x03ff0000, 0x03ff0000, 0x03fc0000, 0x03fc0000},
	{0x0000c2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x00016044, 0x012492d4, 0x012492d4, 0x012492d4, 0x012492d4},
	{0x00016048, 0x62480001, 0x62480001, 0x62480001, 0x62480001},
	{0x00016068, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c},
@@ -118,7 +146,7 @@ static const u32 ar9300Modes_fast_clock_2p2[][3] = {
	{0x00008014, 0x044c044c, 0x08980898},
	{0x0000801c, 0x148ec02b, 0x148ec057},
	{0x00008318, 0x000044c0, 0x00008980},
	{0x00009e00, 0x03721821, 0x03721821},
	{0x00009e00, 0x0372131c, 0x0372131c},
	{0x0000a230, 0x0000000b, 0x00000016},
	{0x0000a254, 0x00000898, 0x00001130},
};
@@ -595,15 +623,16 @@ static const u32 ar9300_2p2_baseband_postamble[][5] = {
	{0x0000982c, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4},
	{0x00009830, 0x0000059c, 0x0000059c, 0x0000119c, 0x0000119c},
	{0x00009c00, 0x000000c4, 0x000000c4, 0x000000c4, 0x000000c4},
	{0x00009e00, 0x0372161e, 0x0372161e, 0x037216a0, 0x037216a0},
	{0x00009e04, 0x00802020, 0x00802020, 0x00802020, 0x00802020},
	{0x00009e00, 0x0372111a, 0x0372111a, 0x037216a0, 0x037216a0},
	{0x00009e04, 0x001c2020, 0x001c2020, 0x001c2020, 0x001c2020},
	{0x00009e0c, 0x6c4000e2, 0x6d4000e2, 0x6d4000e2, 0x6c4000e2},
	{0x00009e10, 0x7ec88d2e, 0x7ec88d2e, 0x7ec84d2e, 0x7ec84d2e},
	{0x00009e14, 0x31395d5e, 0x3139605e, 0x3139605e, 0x31395d5e},
	{0x00009e14, 0x37b95d5e, 0x37b9605e, 0x3379605e, 0x33795d5e},
	{0x00009e18, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x00009e1c, 0x0001cf9c, 0x0001cf9c, 0x00021f9c, 0x00021f9c},
	{0x00009e20, 0x000003b5, 0x000003b5, 0x000003ce, 0x000003ce},
	{0x00009e2c, 0x0000001c, 0x0000001c, 0x00000021, 0x00000021},
	{0x00009e3c, 0xcf946220, 0xcf946220, 0xcf946222, 0xcf946222},
	{0x00009e44, 0x02321e27, 0x02321e27, 0x02291e27, 0x02291e27},
	{0x00009e48, 0x5030201a, 0x5030201a, 0x50302012, 0x50302012},
	{0x00009fc8, 0x0003f000, 0x0003f000, 0x0001a000, 0x0001a000},
@@ -624,16 +653,16 @@ static const u32 ar9300_2p2_baseband_postamble[][5] = {
	{0x0000a28c, 0x00022222, 0x00022222, 0x00022222, 0x00022222},
	{0x0000a2c4, 0x00158d18, 0x00158d18, 0x00158d18, 0x00158d18},
	{0x0000a2d0, 0x00071981, 0x00071981, 0x00071981, 0x00071982},
	{0x0000a2d8, 0xf999a83a, 0xf999a83a, 0xf999a83a, 0xf999a83a},
	{0x0000a2d8, 0x7999a83a, 0x7999a83a, 0x7999a83a, 0x7999a83a},
	{0x0000a358, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a830, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c},
	{0x0000ae04, 0x00800000, 0x00800000, 0x00800000, 0x00800000},
	{0x0000ae04, 0x001c0000, 0x001c0000, 0x001c0000, 0x001c0000},
	{0x0000ae18, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000ae1c, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c},
	{0x0000ae20, 0x000001b5, 0x000001b5, 0x000001ce, 0x000001ce},
	{0x0000b284, 0x00000000, 0x00000000, 0x00000150, 0x00000150},
	{0x0000b830, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c},
	{0x0000be04, 0x00800000, 0x00800000, 0x00800000, 0x00800000},
	{0x0000be04, 0x001c0000, 0x001c0000, 0x001c0000, 0x001c0000},
	{0x0000be18, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000be1c, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c},
	{0x0000be20, 0x000001b5, 0x000001b5, 0x000001ce, 0x000001ce},
@@ -649,13 +678,13 @@ static const u32 ar9300_2p2_baseband_core[][2] = {
	{0x00009814, 0x9280c00a},
	{0x00009818, 0x00000000},
	{0x0000981c, 0x00020028},
	{0x00009834, 0x5f3ca3de},
	{0x00009834, 0x6400a290},
	{0x00009838, 0x0108ecff},
	{0x0000983c, 0x14750600},
	{0x00009880, 0x201fff00},
	{0x00009884, 0x00001042},
	{0x000098a4, 0x00200400},
	{0x000098b0, 0x52440bbe},
	{0x000098b0, 0x32840bbe},
	{0x000098d0, 0x004b6a8e},
	{0x000098d4, 0x00000820},
	{0x000098dc, 0x00000000},
@@ -681,7 +710,6 @@ static const u32 ar9300_2p2_baseband_core[][2] = {
	{0x00009e30, 0x06336f77},
	{0x00009e34, 0x6af6532f},
	{0x00009e38, 0x0cc80c00},
	{0x00009e3c, 0xcf946222},
	{0x00009e40, 0x0d261820},
	{0x00009e4c, 0x00001004},
	{0x00009e50, 0x00ff03f1},
@@ -694,7 +722,7 @@ static const u32 ar9300_2p2_baseband_core[][2] = {
	{0x0000a220, 0x00000000},
	{0x0000a224, 0x00000000},
	{0x0000a228, 0x10002310},
	{0x0000a22c, 0x01036a1e},
	{0x0000a22c, 0x01036a27},
	{0x0000a23c, 0x00000000},
	{0x0000a244, 0x0c000000},
	{0x0000a2a0, 0x00000001},
@@ -702,10 +730,6 @@ static const u32 ar9300_2p2_baseband_core[][2] = {
	{0x0000a2c8, 0x00000000},
	{0x0000a2cc, 0x18c43433},
	{0x0000a2d4, 0x00000000},
	{0x0000a2dc, 0x00000000},
	{0x0000a2e0, 0x00000000},
	{0x0000a2e4, 0x00000000},
	{0x0000a2e8, 0x00000000},
	{0x0000a2ec, 0x00000000},
	{0x0000a2f0, 0x00000000},
	{0x0000a2f4, 0x00000000},
@@ -753,33 +777,17 @@ static const u32 ar9300_2p2_baseband_core[][2] = {
	{0x0000a430, 0x1ce739ce},
	{0x0000a434, 0x00000000},
	{0x0000a438, 0x00001801},
	{0x0000a43c, 0x00000000},
	{0x0000a43c, 0x00100000},
	{0x0000a440, 0x00000000},
	{0x0000a444, 0x00000000},
	{0x0000a448, 0x06000080},
	{0x0000a44c, 0x00000001},
	{0x0000a450, 0x00010000},
	{0x0000a458, 0x00000000},
	{0x0000a600, 0x00000000},
	{0x0000a604, 0x00000000},
	{0x0000a608, 0x00000000},
	{0x0000a60c, 0x00000000},
	{0x0000a610, 0x00000000},
	{0x0000a614, 0x00000000},
	{0x0000a618, 0x00000000},
	{0x0000a61c, 0x00000000},
	{0x0000a620, 0x00000000},
	{0x0000a624, 0x00000000},
	{0x0000a628, 0x00000000},
	{0x0000a62c, 0x00000000},
	{0x0000a630, 0x00000000},
	{0x0000a634, 0x00000000},
	{0x0000a638, 0x00000000},
	{0x0000a63c, 0x00000000},
	{0x0000a640, 0x00000000},
	{0x0000a644, 0x3fad9d74},
	{0x0000a648, 0x0048060a},
	{0x0000a64c, 0x00000637},
	{0x0000a64c, 0x00003c37},
	{0x0000a670, 0x03020100},
	{0x0000a674, 0x09080504},
	{0x0000a678, 0x0d0c0b0a},
@@ -802,10 +810,6 @@ static const u32 ar9300_2p2_baseband_core[][2] = {
	{0x0000a8f4, 0x00000000},
	{0x0000b2d0, 0x00000080},
	{0x0000b2d4, 0x00000000},
	{0x0000b2dc, 0x00000000},
	{0x0000b2e0, 0x00000000},
	{0x0000b2e4, 0x00000000},
	{0x0000b2e8, 0x00000000},
	{0x0000b2ec, 0x00000000},
	{0x0000b2f0, 0x00000000},
	{0x0000b2f4, 0x00000000},
@@ -820,10 +824,6 @@ static const u32 ar9300_2p2_baseband_core[][2] = {
	{0x0000b8f4, 0x00000000},
	{0x0000c2d0, 0x00000080},
	{0x0000c2d4, 0x00000000},
	{0x0000c2dc, 0x00000000},
	{0x0000c2e0, 0x00000000},
	{0x0000c2e4, 0x00000000},
	{0x0000c2e8, 0x00000000},
	{0x0000c2ec, 0x00000000},
	{0x0000c2f0, 0x00000000},
	{0x0000c2f4, 0x00000000},
@@ -835,6 +835,10 @@ static const u32 ar9300_2p2_baseband_core[][2] = {

static const u32 ar9300Modes_high_power_tx_gain_table_2p2[][5] = {
	/* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */
	{0x0000a2dc, 0x0380c7fc, 0x0380c7fc, 0x00637800, 0x00637800},
	{0x0000a2e0, 0x0000f800, 0x0000f800, 0x03838000, 0x03838000},
	{0x0000a2e4, 0x03ff0000, 0x03ff0000, 0x03fc0000, 0x03fc0000},
	{0x0000a2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a410, 0x000050d8, 0x000050d8, 0x000050d9, 0x000050d9},
	{0x0000a500, 0x00002220, 0x00002220, 0x00000000, 0x00000000},
	{0x0000a504, 0x04002222, 0x04002222, 0x04000002, 0x04000002},
@@ -855,7 +859,7 @@ static const u32 ar9300Modes_high_power_tx_gain_table_2p2[][5] = {
	{0x0000a540, 0x49005e72, 0x49005e72, 0x38001660, 0x38001660},
	{0x0000a544, 0x4e005eb2, 0x4e005eb2, 0x3b001861, 0x3b001861},
	{0x0000a548, 0x53005f12, 0x53005f12, 0x3e001a81, 0x3e001a81},
	{0x0000a54c, 0x59025eb5, 0x59025eb5, 0x42001a83, 0x42001a83},
	{0x0000a54c, 0x59025eb2, 0x59025eb2, 0x42001a83, 0x42001a83},
	{0x0000a550, 0x5e025f12, 0x5e025f12, 0x44001c84, 0x44001c84},
	{0x0000a554, 0x61027f12, 0x61027f12, 0x48001ce3, 0x48001ce3},
	{0x0000a558, 0x6702bf12, 0x6702bf12, 0x4c001ce5, 0x4c001ce5},
@@ -900,6 +904,30 @@ static const u32 ar9300Modes_high_power_tx_gain_table_2p2[][5] = {
	{0x0000a5f4, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
	{0x0000a5f8, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
	{0x0000a5fc, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
	{0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a610, 0x00804000, 0x00804000, 0x00000000, 0x00000000},
	{0x0000a614, 0x00804201, 0x00804201, 0x01404000, 0x01404000},
	{0x0000a618, 0x0280c802, 0x0280c802, 0x01404501, 0x01404501},
	{0x0000a61c, 0x0280ca03, 0x0280ca03, 0x02008501, 0x02008501},
	{0x0000a620, 0x04c15104, 0x04c15104, 0x0280ca03, 0x0280ca03},
	{0x0000a624, 0x04c15305, 0x04c15305, 0x03010c04, 0x03010c04},
	{0x0000a628, 0x04c15305, 0x04c15305, 0x04014c04, 0x04014c04},
	{0x0000a62c, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
	{0x0000a630, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
	{0x0000a634, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
	{0x0000a638, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
	{0x0000a63c, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
	{0x0000b2dc, 0x0380c7fc, 0x0380c7fc, 0x00637800, 0x00637800},
	{0x0000b2e0, 0x0000f800, 0x0000f800, 0x03838000, 0x03838000},
	{0x0000b2e4, 0x03ff0000, 0x03ff0000, 0x03fc0000, 0x03fc0000},
	{0x0000b2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000c2dc, 0x0380c7fc, 0x0380c7fc, 0x00637800, 0x00637800},
	{0x0000c2e0, 0x0000f800, 0x0000f800, 0x03838000, 0x03838000},
	{0x0000c2e4, 0x03ff0000, 0x03ff0000, 0x03fc0000, 0x03fc0000},
	{0x0000c2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x00016044, 0x056db2e6, 0x056db2e6, 0x056db2e6, 0x056db2e6},
	{0x00016048, 0xae480001, 0xae480001, 0xae480001, 0xae480001},
	{0x00016068, 0x6eb6db6c, 0x6eb6db6c, 0x6eb6db6c, 0x6eb6db6c},
@@ -913,6 +941,10 @@ static const u32 ar9300Modes_high_power_tx_gain_table_2p2[][5] = {

static const u32 ar9300Modes_high_ob_db_tx_gain_table_2p2[][5] = {
	/* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */
	{0x0000a2dc, 0x01feee00, 0x01feee00, 0x00637800, 0x00637800},
	{0x0000a2e0, 0x0000f000, 0x0000f000, 0x03838000, 0x03838000},
	{0x0000a2e4, 0x01ff0000, 0x01ff0000, 0x03fc0000, 0x03fc0000},
	{0x0000a2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a410, 0x000050d8, 0x000050d8, 0x000050d9, 0x000050d9},
	{0x0000a500, 0x00002220, 0x00002220, 0x00000000, 0x00000000},
	{0x0000a504, 0x04002222, 0x04002222, 0x04000002, 0x04000002},
@@ -933,7 +965,7 @@ static const u32 ar9300Modes_high_ob_db_tx_gain_table_2p2[][5] = {
	{0x0000a540, 0x49005e72, 0x49005e72, 0x38001660, 0x38001660},
	{0x0000a544, 0x4e005eb2, 0x4e005eb2, 0x3b001861, 0x3b001861},
	{0x0000a548, 0x53005f12, 0x53005f12, 0x3e001a81, 0x3e001a81},
	{0x0000a54c, 0x59025eb5, 0x59025eb5, 0x42001a83, 0x42001a83},
	{0x0000a54c, 0x59025eb2, 0x59025eb2, 0x42001a83, 0x42001a83},
	{0x0000a550, 0x5e025f12, 0x5e025f12, 0x44001c84, 0x44001c84},
	{0x0000a554, 0x61027f12, 0x61027f12, 0x48001ce3, 0x48001ce3},
	{0x0000a558, 0x6702bf12, 0x6702bf12, 0x4c001ce5, 0x4c001ce5},
@@ -978,6 +1010,30 @@ static const u32 ar9300Modes_high_ob_db_tx_gain_table_2p2[][5] = {
	{0x0000a5f4, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
	{0x0000a5f8, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
	{0x0000a5fc, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
	{0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a610, 0x00804000, 0x00804000, 0x00000000, 0x00000000},
	{0x0000a614, 0x00804201, 0x00804201, 0x01404000, 0x01404000},
	{0x0000a618, 0x0280c802, 0x0280c802, 0x01404501, 0x01404501},
	{0x0000a61c, 0x0280ca03, 0x0280ca03, 0x02008501, 0x02008501},
	{0x0000a620, 0x04c15104, 0x04c15104, 0x0280ca03, 0x0280ca03},
	{0x0000a624, 0x04c15305, 0x04c15305, 0x03010c04, 0x03010c04},
	{0x0000a628, 0x04c15305, 0x04c15305, 0x04014c04, 0x04014c04},
	{0x0000a62c, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
	{0x0000a630, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
	{0x0000a634, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
	{0x0000a638, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
	{0x0000a63c, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
	{0x0000b2dc, 0x01feee00, 0x01feee00, 0x00637800, 0x00637800},
	{0x0000b2e0, 0x0000f000, 0x0000f000, 0x03838000, 0x03838000},
	{0x0000b2e4, 0x01ff0000, 0x01ff0000, 0x03fc0000, 0x03fc0000},
	{0x0000b2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000c2dc, 0x01feee00, 0x01feee00, 0x00637800, 0x00637800},
	{0x0000c2e0, 0x0000f000, 0x0000f000, 0x03838000, 0x03838000},
	{0x0000c2e4, 0x01ff0000, 0x01ff0000, 0x03fc0000, 0x03fc0000},
	{0x0000c2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x00016044, 0x056db2e4, 0x056db2e4, 0x056db2e4, 0x056db2e4},
	{0x00016048, 0x8e480001, 0x8e480001, 0x8e480001, 0x8e480001},
	{0x00016068, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c},
@@ -1151,14 +1207,14 @@ static const u32 ar9300Common_rx_gain_table_2p2[][2] = {
	{0x0000b074, 0x00000000},
	{0x0000b078, 0x00000000},
	{0x0000b07c, 0x00000000},
	{0x0000b080, 0x32323232},
	{0x0000b084, 0x2f2f3232},
	{0x0000b088, 0x23282a2d},
	{0x0000b08c, 0x1c1e2123},
	{0x0000b090, 0x14171919},
	{0x0000b094, 0x0e0e1214},
	{0x0000b098, 0x03050707},
	{0x0000b09c, 0x00030303},
	{0x0000b080, 0x2a2d2f32},
	{0x0000b084, 0x21232328},
	{0x0000b088, 0x19191c1e},
	{0x0000b08c, 0x12141417},
	{0x0000b090, 0x07070e0e},
	{0x0000b094, 0x03030305},
	{0x0000b098, 0x00000003},
	{0x0000b09c, 0x00000000},
	{0x0000b0a0, 0x00000000},
	{0x0000b0a4, 0x00000000},
	{0x0000b0a8, 0x00000000},
@@ -1251,6 +1307,10 @@ static const u32 ar9300Common_rx_gain_table_2p2[][2] = {

static const u32 ar9300Modes_low_ob_db_tx_gain_table_2p2[][5] = {
	/* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */
	{0x0000a2dc, 0x0380c7fc, 0x0380c7fc, 0x00637800, 0x00637800},
	{0x0000a2e0, 0x0000f800, 0x0000f800, 0x03838000, 0x03838000},
	{0x0000a2e4, 0x03ff0000, 0x03ff0000, 0x03fc0000, 0x03fc0000},
	{0x0000a2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a410, 0x000050d9, 0x000050d9, 0x000050d9, 0x000050d9},
	{0x0000a500, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a504, 0x06000003, 0x06000003, 0x04000002, 0x04000002},
@@ -1316,6 +1376,30 @@ static const u32 ar9300Modes_low_ob_db_tx_gain_table_2p2[][5] = {
	{0x0000a5f4, 0x7782b08c, 0x7782b08c, 0x5d801eec, 0x5d801eec},
	{0x0000a5f8, 0x7782b08c, 0x7782b08c, 0x5d801eec, 0x5d801eec},
	{0x0000a5fc, 0x7782b08c, 0x7782b08c, 0x5d801eec, 0x5d801eec},
	{0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a610, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000a614, 0x01404000, 0x01404000, 0x01404000, 0x01404000},
	{0x0000a618, 0x01404501, 0x01404501, 0x01404501, 0x01404501},
	{0x0000a61c, 0x02008802, 0x02008802, 0x02008501, 0x02008501},
	{0x0000a620, 0x0300cc03, 0x0300cc03, 0x0280ca03, 0x0280ca03},
	{0x0000a624, 0x0300cc03, 0x0300cc03, 0x03010c04, 0x03010c04},
	{0x0000a628, 0x0300cc03, 0x0300cc03, 0x04014c04, 0x04014c04},
	{0x0000a62c, 0x03810c03, 0x03810c03, 0x04015005, 0x04015005},
	{0x0000a630, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005},
	{0x0000a634, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005},
	{0x0000a638, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005},
	{0x0000a63c, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005},
	{0x0000b2dc, 0x0380c7fc, 0x0380c7fc, 0x00637800, 0x00637800},
	{0x0000b2e0, 0x0000f800, 0x0000f800, 0x03838000, 0x03838000},
	{0x0000b2e4, 0x03ff0000, 0x03ff0000, 0x03fc0000, 0x03fc0000},
	{0x0000b2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x0000c2dc, 0x0380c7fc, 0x0380c7fc, 0x00637800, 0x00637800},
	{0x0000c2e0, 0x0000f800, 0x0000f800, 0x03838000, 0x03838000},
	{0x0000c2e4, 0x03ff0000, 0x03ff0000, 0x03fc0000, 0x03fc0000},
	{0x0000c2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
	{0x00016044, 0x012492d4, 0x012492d4, 0x012492d4, 0x012492d4},
	{0x00016048, 0x66480001, 0x66480001, 0x66480001, 0x66480001},
	{0x00016068, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c},
@@ -1414,15 +1498,10 @@ static const u32 ar9300_2p2_mac_core[][2] = {
	{0x00008144, 0xffffffff},
	{0x00008168, 0x00000000},
	{0x0000816c, 0x00000000},
	{0x00008170, 0x18486200},
	{0x00008174, 0x33332210},
	{0x00008178, 0x00000000},
	{0x0000817c, 0x00020000},
	{0x000081c0, 0x00000000},
	{0x000081c4, 0x33332210},
	{0x000081c8, 0x00000000},
	{0x000081cc, 0x00000000},
	{0x000081d4, 0x00000000},
	{0x000081ec, 0x00000000},
	{0x000081f0, 0x00000000},
	{0x000081f4, 0x00000000},
+9 −5
Original line number Diff line number Diff line
@@ -347,6 +347,10 @@ static bool create_pa_curve(u32 *data_L, u32 *data_U, u32 *pa_table, u16 *gain)
	    (((Y[6] - Y[3]) * 1 << scale_factor) +
	     (x_est[6] - x_est[3])) / (x_est[6] - x_est[3]);

	/* prevent division by zero */
	if (G_fxp == 0)
		return false;

	Y_intercept =
	    (G_fxp * (x_est[0] - x_est[3]) +
	     (1 << scale_factor)) / (1 << scale_factor) + Y[3];
@@ -356,14 +360,12 @@ static bool create_pa_curve(u32 *data_L, u32 *data_U, u32 *pa_table, u16 *gain)

	for (i = 0; i <= 3; i++) {
		y_est[i] = i * 32;

		/* prevent division by zero */
		if (G_fxp == 0)
			return false;

		x_est[i] = ((y_est[i] * 1 << scale_factor) + G_fxp) / G_fxp;
	}

	if (y_est[max_index] == 0)
		return false;

	x_est_fxp1_nonlin =
	    x_est[max_index] - ((1 << scale_factor) * y_est[max_index] +
				G_fxp) / G_fxp;
@@ -457,6 +459,8 @@ static bool create_pa_curve(u32 *data_L, u32 *data_U, u32 *pa_table, u16 *gain)

	Q_scale_B = find_proper_scale(find_expn(abs(scale_B)), 10);
	scale_B = scale_B / (1 << Q_scale_B);
	if (scale_B == 0)
		return false;
	Q_beta = find_proper_scale(find_expn(abs(beta_raw)), 10);
	Q_alpha = find_proper_scale(find_expn(abs(alpha_raw)), 10);
	beta_raw = beta_raw / (1 << Q_beta);
+1 −1
Original line number Diff line number Diff line
@@ -370,7 +370,7 @@ void ath_beacon_tasklet(unsigned long data)
			ath_print(common, ATH_DBG_BSTUCK,
				  "beacon is officially stuck\n");
			sc->sc_flags |= SC_OP_TSF_RESET;
			ath_reset(sc, false);
			ath_reset(sc, true);
		}

		return;
+1 −0
Original line number Diff line number Diff line
@@ -577,6 +577,7 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc, u16 subsysid,
	common->hw = sc->hw;
	common->priv = sc;
	common->debug_mask = ath9k_debug;
	spin_lock_init(&common->cc_lock);

	spin_lock_init(&sc->wiphy_lock);
	spin_lock_init(&sc->sc_resetlock);
Loading