diff --git a/android/GKI_VERSION b/android/GKI_VERSION
index 36b4664d338a..b8afd9ca8342 100644
--- a/android/GKI_VERSION
+++ b/android/GKI_VERSION
@@ -1 +1 @@
-LTS_5.4.242_e699d543bbc9
+LTS_5.4.254_91f702572a80
diff --git a/android/abi_gki_aarch64_e699d543bbc9.xml b/android/abi_gki_aarch64_d57e792d0bd9.xml
similarity index 99%
rename from android/abi_gki_aarch64_e699d543bbc9.xml
rename to android/abi_gki_aarch64_d57e792d0bd9.xml
index 46d059cb5e6a..9e356922a5de 100644
--- a/android/abi_gki_aarch64_e699d543bbc9.xml
+++ b/android/abi_gki_aarch64_d57e792d0bd9.xml
@@ -2392,6 +2392,7 @@
+
@@ -4378,12 +4379,12 @@
-
+
-
+
-
+
@@ -15570,7 +15571,7 @@
-
+
@@ -16298,9 +16299,9 @@
-
+
-
+
@@ -16318,7 +16319,7 @@
-
+
@@ -16574,7 +16575,6 @@
-
@@ -17108,7 +17108,7 @@
-
+
@@ -17455,7 +17455,6 @@
-
@@ -18876,7 +18875,7 @@
-
+
@@ -19918,12 +19917,12 @@
-
+
-
+
-
+
@@ -20786,7 +20785,7 @@
-
+
@@ -21034,6 +21033,7 @@
+
@@ -21185,24 +21185,24 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -21644,7 +21644,7 @@
-
+
@@ -21747,7 +21747,7 @@
-
+
@@ -22183,7 +22183,7 @@
-
+
@@ -22507,7 +22507,7 @@
-
+
@@ -22826,7 +22826,6 @@
-
@@ -23002,7 +23001,7 @@
-
+
@@ -23865,14 +23864,14 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -25040,24 +25039,24 @@
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
@@ -27507,10 +27506,10 @@
-
-
-
-
+
+
+
+
@@ -27536,39 +27535,39 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -30830,21 +30829,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -31536,7 +31535,7 @@
-
+
@@ -36786,7 +36785,7 @@
-
+
@@ -41733,9 +41732,9 @@
-
-
-
+
+
+
@@ -41754,14 +41753,14 @@
-
-
+
+
-
-
-
-
+
+
+
+
@@ -43555,24 +43554,24 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -50123,7 +50122,7 @@
-
+
@@ -50353,7 +50352,7 @@
-
+
@@ -50429,6 +50428,7 @@
+
@@ -50849,6 +50849,7 @@
+
@@ -56389,7 +56390,7 @@
-
+
@@ -59379,7 +59380,7 @@
-
+
@@ -59388,15 +59389,15 @@
-
+
-
+
-
+
@@ -59405,11 +59406,11 @@
-
+
-
+
@@ -59498,411 +59499,411 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -59924,7 +59925,7 @@
-
+
@@ -59933,7 +59934,7 @@
-
+
@@ -60033,29 +60034,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -60232,12 +60233,12 @@
-
+
-
+
-
+
@@ -60384,44 +60385,44 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -60509,12 +60510,12 @@
-
+
-
+
-
+
@@ -60932,228 +60933,228 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -61167,32 +61168,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -62768,10 +62769,10 @@
-
+
-
+
@@ -63006,18 +63007,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -65146,165 +65147,165 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -65979,18 +65980,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -66947,7 +66948,7 @@
-
+
@@ -67867,11 +67868,11 @@
-
+
-
+
@@ -68015,7 +68016,7 @@
-
+
@@ -68616,7 +68617,7 @@
-
+
@@ -68625,7 +68626,7 @@
-
+
@@ -69195,13 +69196,13 @@
-
+
-
+
@@ -69248,26 +69249,26 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -69798,21 +69799,21 @@
-
+
-
+
-
+
-
+
@@ -69825,6 +69826,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -69978,7 +70035,7 @@
-
+
@@ -69986,62 +70043,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -70086,11 +70087,11 @@
-
+
-
+
@@ -70098,7 +70099,7 @@
-
+
@@ -70123,7 +70124,7 @@
-
+
@@ -70138,7 +70139,7 @@
-
+
@@ -70162,11 +70163,11 @@
-
+
-
+
@@ -70182,19 +70183,19 @@
-
+
-
+
-
+
@@ -70207,21 +70208,21 @@
-
+
-
+
-
+
-
+
@@ -70468,21 +70469,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -70504,299 +70505,299 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -70904,7 +70905,7 @@
-
+
@@ -71005,26 +71006,26 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -71128,7 +71129,7 @@
-
+
@@ -71149,133 +71150,133 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -71321,53 +71322,53 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -71402,9 +71403,9 @@
-
+
-
+
@@ -71563,15 +71564,15 @@
-
+
-
+
-
+
-
+
@@ -71888,86 +71889,86 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -71975,20 +71976,20 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -72040,39 +72041,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -72094,69 +72095,69 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -72433,211 +72434,211 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -72662,83 +72663,83 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -72785,36 +72786,36 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -72925,27 +72926,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -72974,179 +72975,179 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -73180,17 +73181,17 @@
-
+
-
+
-
+
@@ -73202,7 +73203,7 @@
-
+
@@ -73212,38 +73213,38 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -73255,7 +73256,7 @@
-
+
@@ -73268,11 +73269,11 @@
-
+
-
+
@@ -73341,13 +73342,13 @@
-
+
-
+
@@ -73359,11 +73360,11 @@
-
+
-
+
@@ -73424,12 +73425,12 @@
-
+
-
+
@@ -74208,7 +74209,7 @@
-
+
@@ -75205,7 +75206,7 @@
-
+
@@ -76054,37 +76055,37 @@
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
@@ -77119,9 +77120,9 @@
-
-
-
+
+
+
@@ -77132,83 +77133,83 @@
-
-
-
+
+
+
-
-
-
-
-
-
+
+
-
-
+
+
-
-
-
+
+
-
-
-
-
+
+
+
-
-
+
+
+
+
-
-
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
+
+
-
-
-
+
+
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
@@ -77216,16 +77217,16 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -80002,12 +80003,12 @@
-
-
+
+
-
-
+
+
@@ -82191,22 +82192,22 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
@@ -85152,7 +85153,7 @@
-
+
@@ -86031,12 +86032,12 @@
-
+
-
+
@@ -86275,11 +86276,11 @@
-
+
-
+
@@ -87049,43 +87050,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -87730,49 +87731,49 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -90826,7 +90827,7 @@
-
+
@@ -91246,7 +91247,7 @@
-
+
@@ -91256,63 +91257,63 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -91367,72 +91368,72 @@
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -92670,7 +92671,7 @@
-
+
@@ -92685,7 +92686,7 @@
-
+
@@ -93907,7 +93908,7 @@
-
+
@@ -94255,6 +94256,8 @@
+
+
@@ -95896,7 +95899,7 @@
-
+
@@ -96506,12 +96509,12 @@
-
+
-
+
-
+
@@ -97101,24 +97104,24 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -113647,18 +113650,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -113858,7 +113861,9 @@
+
+
@@ -114023,12 +114028,12 @@
-
+
-
+
@@ -114089,11 +114094,11 @@
-
+
-
+
@@ -114178,7 +114183,7 @@
-
+
@@ -114212,7 +114217,7 @@
-
+
@@ -115515,165 +115520,165 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -115753,427 +115758,427 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -116248,228 +116253,228 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -117144,7 +117149,7 @@
-
+
@@ -117253,23 +117258,23 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -117279,29 +117284,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -118143,17 +118148,17 @@
-
+
-
+
-
+
-
+
-
+
@@ -118187,12 +118192,12 @@
-
+
-
+
-
+
@@ -119110,36 +119115,36 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -119912,29 +119917,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -119943,51 +119948,51 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -120101,12 +120106,12 @@
-
+
-
+
-
+
@@ -120118,18 +120123,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -123379,7 +123384,7 @@
-
+
@@ -125440,10 +125445,10 @@
-
+
-
+
@@ -127068,7 +127073,7 @@
-
+
@@ -127182,65 +127187,65 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -127641,52 +127646,52 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -128242,6 +128247,12 @@
+
+
+
+
+
+
@@ -128403,8 +128414,6 @@
-
-
@@ -128915,7 +128924,7 @@
-
+
@@ -128923,48 +128932,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -128972,21 +128981,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -129350,7 +129359,7 @@
-
+
@@ -130768,21 +130777,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -131497,7 +131506,7 @@
-
+
@@ -131952,18 +131961,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -131992,12 +132001,12 @@
-
-
+
+
-
-
+
+
@@ -133183,7 +133192,7 @@
-
+
@@ -133290,7 +133299,7 @@
-
+
@@ -133372,18 +133381,18 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -133691,7 +133700,7 @@
-
+
@@ -133699,7 +133708,7 @@
-
+
@@ -133721,9 +133730,9 @@
-
+
-
+
@@ -133741,7 +133750,7 @@
-
+
@@ -134433,129 +134442,129 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -134580,18 +134589,18 @@
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -134652,92 +134661,92 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
@@ -135060,7 +135069,7 @@
-
+
@@ -136433,27 +136442,27 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -136545,7 +136554,7 @@
-
+
@@ -137258,282 +137267,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -137587,91 +137320,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -137686,6 +137334,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -137788,6 +137454,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -138058,6 +137747,326 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -139381,7 +139390,7 @@
-
+
@@ -139653,7 +139662,7 @@
-
+
@@ -140431,7 +140440,6 @@
-
@@ -140458,7 +140466,7 @@
-
+
@@ -140957,70 +140965,70 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -141028,13 +141036,13 @@
-
+
-
+
@@ -141043,13 +141051,13 @@
-
+
-
+
@@ -141086,25 +141094,25 @@
-
+
-
+
-
+
-
+
@@ -141114,7 +141122,7 @@
-
+
@@ -141143,6 +141151,7 @@
+
@@ -141609,7 +141618,7 @@
-
+
@@ -141641,7 +141650,7 @@
-
+
@@ -141649,7 +141658,7 @@
-
+
@@ -141670,7 +141679,7 @@
-
+
@@ -142391,6 +142400,7 @@
+
@@ -142832,7 +142842,7 @@
-
+
@@ -143071,7 +143081,7 @@
-
+
@@ -143124,7 +143134,7 @@
-
+
@@ -143150,7 +143160,7 @@
-
+
@@ -143167,7 +143177,7 @@
-
+
@@ -143175,7 +143185,7 @@
-
+
@@ -143183,7 +143193,7 @@
-
+
@@ -143191,7 +143201,7 @@
-
+
@@ -143214,7 +143224,7 @@
-
+
diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
index 04120e4a2caa..ea41ae1d5bf5 100644
--- a/drivers/firmware/qcom_scm.c
+++ b/drivers/firmware/qcom_scm.c
@@ -1229,6 +1229,7 @@ static void qcom_scm_shutdown(struct platform_device *pdev)
{
qcom_scm_disable_sdi();
qcom_scm_halt_spmi_pmic_arbiter();
+ qcom_scm_set_download_mode(QCOM_DOWNLOAD_NODUMP, 0);
}
static const struct of_device_id qcom_scm_dt_match[] = {
diff --git a/drivers/hwtracing/coresight/coresight-byte-cntr.c b/drivers/hwtracing/coresight/coresight-byte-cntr.c
index 9c500245b4e2..d85b769ea9ce 100644
--- a/drivers/hwtracing/coresight/coresight-byte-cntr.c
+++ b/drivers/hwtracing/coresight/coresight-byte-cntr.c
@@ -785,7 +785,7 @@ static void etr_pcie_write_work_fn(struct work_struct *work)
req->snd_cmpl = 1;
bytes_to_write = mhi_dev_write_channel(req);
- if (bytes_to_write != PCIE_BLK_SIZE) {
+ if (bytes_to_write != actual) {
dev_err(&tmcdrvdata->csdev->dev, "Write error %d\n",
bytes_to_write);
@@ -795,7 +795,7 @@ static void etr_pcie_write_work_fn(struct work_struct *work)
}
mutex_lock(&byte_cntr_data->byte_cntr_lock);
- if (byte_cntr_data->offset + actual >= tmcdrvdata->size)
+ if (byte_cntr_data->offset + actual >= tmcdrvdata->sysfs_buf->size)
byte_cntr_data->offset = 0;
else
byte_cntr_data->offset += actual;
diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c
index a09b8da5f1b9..33ea664c2547 100644
--- a/drivers/hwtracing/coresight/coresight-tmc-etr.c
+++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c
@@ -1172,7 +1172,8 @@ static void __tmc_etr_disable_hw(struct tmc_drvdata *drvdata)
{
CS_UNLOCK(drvdata->base);
- tmc_flush_and_stop(drvdata);
+ if (drvdata->out_mode != TMC_ETR_OUT_MODE_PCIE)
+ tmc_flush_and_stop(drvdata);
/*
* When operating in sysFS mode the content of the buffer needs to be
* read before the TMC is disabled.
diff --git a/drivers/mtd/devices/msm_qpic_nand.c b/drivers/mtd/devices/msm_qpic_nand.c
index 41fadf756ac3..329e7ebbd191 100644
--- a/drivers/mtd/devices/msm_qpic_nand.c
+++ b/drivers/mtd/devices/msm_qpic_nand.c
@@ -231,20 +231,27 @@ static void msm_nand_print_rpm_info(struct device *dev)
static int msm_nand_suspend(struct device *dev)
{
int ret = 0;
+ struct msm_nand_info *info = dev_get_drvdata(dev);
+
+ mutex_lock(&info->lock);
if (!pm_runtime_suspended(dev))
ret = msm_nand_runtime_suspend(dev);
+ mutex_unlock(&info->lock);
return ret;
}
static int msm_nand_resume(struct device *dev)
{
int ret = 0;
+ struct msm_nand_info *info = dev_get_drvdata(dev);
+ mutex_lock(&info->lock);
if (!pm_runtime_suspended(dev))
ret = msm_nand_runtime_resume(dev);
+ mutex_unlock(&info->lock);
return ret;
}
#else
diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c
index 562f35ce68a4..acd296faa0c4 100644
--- a/drivers/soc/qcom/socinfo.c
+++ b/drivers/soc/qcom/socinfo.c
@@ -34,6 +34,7 @@
#define SMEM_IMAGE_VERSION_TABLE 469
static uint32_t socinfo_format;
+static const char *sku;
enum {
HW_PLATFORM_UNKNOWN = 0,
@@ -121,6 +122,51 @@ static const char * const hw_platform_subtype[] = {
[PLATFORM_SUBTYPE_INVALID] = "Invalid",
};
+enum {
+ /* External SKU */
+ SKU_UNKNOWN = 0x0,
+ SKU_AA = 0x1,
+ SKU_AB = 0x2,
+ SKU_AC = 0x3,
+ SKU_AD = 0x4,
+ SKU_AE = 0x5,
+ SKU_AF = 0x6,
+ SKU_EXT_RESERVE,
+
+ /* Internal SKU */
+ SKU_Y0 = 0xf1,
+ SKU_Y1 = 0xf2,
+ SKU_Y2 = 0xf3,
+ SKU_Y3 = 0xf4,
+ SKU_Y4 = 0xf5,
+ SKU_Y5 = 0xf6,
+ SKU_Y6 = 0xf7,
+ SKU_Y7 = 0xf8,
+ SKU_INT_RESERVE,
+};
+
+static const char * const hw_platform_esku[] = {
+ [SKU_UNKNOWN] = "Unknown",
+ [SKU_AA] = "AA",
+ [SKU_AB] = "AB",
+ [SKU_AC] = "AC",
+ [SKU_AD] = "AD",
+ [SKU_AE] = "AE",
+ [SKU_AF] = "AF",
+};
+
+#define SKU_INT_MASK 0x0f
+static const char * const hw_platform_isku[] = {
+ [SKU_Y0 & SKU_INT_MASK] = "Y0",
+ [SKU_Y1 & SKU_INT_MASK] = "Y1",
+ [SKU_Y2 & SKU_INT_MASK] = "Y2",
+ [SKU_Y3 & SKU_INT_MASK] = "Y3",
+ [SKU_Y4 & SKU_INT_MASK] = "Y4",
+ [SKU_Y5 & SKU_INT_MASK] = "Y5",
+ [SKU_Y6 & SKU_INT_MASK] = "Y6",
+ [SKU_Y7 & SKU_INT_MASK] = "Y7",
+};
+
/* Socinfo SMEM item structure */
static struct socinfo {
__le32 fmt;
@@ -167,6 +213,11 @@ static struct socinfo {
__le32 ndefective_parts_array_offset;
/* Version 15 */
__le32 nmodem_supported;
+ /* Version 16 */
+ __le32 esku;
+ __le32 nproduct_code;
+ __le32 npartnamemap_offset;
+ __le32 nnum_partname_mapping;
} *socinfo;
/* sysfs attributes */
@@ -362,6 +413,35 @@ static uint32_t socinfo_get_nmodem_supported(void)
: 0;
}
+/* Version 16 */
+static uint32_t socinfo_get_eskuid(void)
+{
+ return socinfo ?
+ (socinfo_format >= SOCINFO_VERSION(0, 16) ?
+ le32_to_cpu(socinfo->esku) : 0)
+ : 0;
+}
+
+static const char *socinfo_get_esku_mapping(void)
+{
+ uint32_t id = socinfo_get_eskuid();
+
+ if (id > SKU_UNKNOWN && id < SKU_EXT_RESERVE)
+ return hw_platform_esku[id];
+ else if (id >= SKU_Y0 && id < SKU_INT_RESERVE)
+ return hw_platform_isku[id & SKU_INT_MASK];
+
+ return NULL;
+}
+
+static uint32_t socinfo_get_nproduct_code(void)
+{
+ return socinfo ?
+ (socinfo_format >= SOCINFO_VERSION(0, 16) ?
+ le32_to_cpu(socinfo->nproduct_code) : 0)
+ : 0;
+}
+
/* Version 2 */
static ssize_t
msm_get_raw_id(struct device *dev,
@@ -612,6 +692,27 @@ msm_get_nmodem_supported(struct device *dev,
}
ATTR_DEFINE(nmodem_supported);
+/* Version 16 */
+static ssize_t
+msm_get_sku(struct device *dev,
+ struct device_attribute *attr,
+ char *buf)
+{
+ return sysfs_emit(buf, "%s\n", sku ? sku : "Unknown");
+}
+ATTR_DEFINE(sku);
+
+static ssize_t
+msm_get_esku(struct device *dev,
+ struct device_attribute *attr,
+ char *buf)
+{
+ const char *esku = socinfo_get_esku_mapping();
+
+ return sysfs_emit(buf, "%s\n", esku ? esku : "Unknown");
+}
+ATTR_DEFINE(esku);
+
struct qcom_socinfo {
struct soc_device *soc_dev;
struct soc_device_attribute attr;
@@ -959,6 +1060,9 @@ static void socinfo_populate_sysfs(struct qcom_socinfo *qcom_socinfo)
int i = 0;
switch (socinfo_format) {
+ case SOCINFO_VERSION(0, 16):
+ msm_custom_socinfo_attrs[i++] = &dev_attr_sku.attr;
+ msm_custom_socinfo_attrs[i++] = &dev_attr_esku.attr;
case SOCINFO_VERSION(0, 15):
msm_custom_socinfo_attrs[i++] = &dev_attr_nmodem_supported.attr;
case SOCINFO_VERSION(0, 14):
@@ -1200,6 +1304,31 @@ static void socinfo_print(void)
socinfo->nmodem_supported);
break;
+ case SOCINFO_VERSION(0, 16):
+ pr_info("v%u.%u, id=%u, ver=%u.%u, raw_id=%u, raw_ver=%u, hw_plat=%u, hw_plat_ver=%u\n accessory_chip=%u, hw_plat_subtype=%u, pmic_model=%u, pmic_die_revision=%u foundry_id=%u serial_number=%u num_pmics=%u chip_family=0x%x raw_device_family=0x%x raw_device_number=0x%x nproduct_id=0x%x num_clusters=0x%x ncluster_array_offset=0x%x num_defective_parts=0x%x ndefective_parts_array_offset=0x%x nmodem_supported=0x%x sku=%s\n",
+ f_maj, f_min, socinfo->id, v_maj, v_min,
+ socinfo->raw_id, socinfo->raw_ver,
+ socinfo->hw_plat,
+ socinfo->plat_ver,
+ socinfo->accessory_chip,
+ socinfo->hw_plat_subtype,
+ socinfo->pmic_model,
+ socinfo->pmic_die_rev,
+ socinfo->foundry_id,
+ socinfo->serial_num,
+ socinfo->num_pmics,
+ socinfo->chip_family,
+ socinfo->raw_device_family,
+ socinfo->raw_device_num,
+ socinfo->nproduct_id,
+ socinfo->num_clusters,
+ socinfo->ncluster_array_offset,
+ socinfo->num_defective_parts,
+ socinfo->ndefective_parts_array_offset,
+ socinfo->nmodem_supported,
+ sku ? sku : "Unknown");
+ break;
+
default:
pr_err("Unknown format found: v%u.%u\n", f_maj, f_min);
break;
@@ -1237,6 +1366,7 @@ static int qcom_socinfo_probe(struct platform_device *pdev)
struct qcom_socinfo *qs;
struct socinfo *info;
size_t item_size;
+ const char *machine, *esku;
info = qcom_smem_get(QCOM_SMEM_HOST_ANY, SMEM_HW_SW_BUILD_ID,
&item_size);
@@ -1261,6 +1391,14 @@ static int qcom_socinfo_probe(struct platform_device *pdev)
SOCINFO_MINOR(le32_to_cpu(info->ver)));
qs->attr.soc_id = kasprintf(GFP_KERNEL, "%d", socinfo_get_id());
+ if (socinfo_format >= SOCINFO_VERSION(0, 16)) {
+ machine = socinfo_machine(le32_to_cpu(info->id));
+ esku = socinfo_get_esku_mapping();
+ if (machine && esku)
+ sku = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%s-%u-%s",
+ machine, socinfo_get_nproduct_code(), esku);
+ }
+
qsocinfo = qs;
init_rwsem(&qs->current_image_rwsem);
socinfo_populate_sysfs(qs);
diff --git a/gen_headers_arm.bp b/gen_headers_arm.bp
index ad72ff53d9ba..05661be1f7a8 100644
--- a/gen_headers_arm.bp
+++ b/gen_headers_arm.bp
@@ -202,9 +202,9 @@ gen_headers_out_arm = [
"linux/dm-ioctl.h",
"linux/dm-log-userspace.h",
"linux/dma-buf.h",
- "linux/dn.h",
"linux/dns_resolver.h",
"linux/dqblk_xfs.h",
+ "linux/eavb_shared.h",
"linux/edd.h",
"linux/efs_fs_sb.h",
"linux/elf-em.h",
@@ -214,6 +214,7 @@ gen_headers_out_arm = [
"linux/errno.h",
"linux/errqueue.h",
"linux/erspan.h",
+ "linux/esoc_ctrl.h",
"linux/ethtool.h",
"linux/eventpoll.h",
"linux/fadvise.h",
@@ -368,6 +369,7 @@ gen_headers_out_arm = [
"linux/memfd.h",
"linux/mempolicy.h",
"linux/meye.h",
+ "linux/mhi.h",
"linux/mic_common.h",
"linux/mic_ioctl.h",
"linux/mii.h",
@@ -407,7 +409,6 @@ gen_headers_out_arm = [
"linux/netfilter.h",
"linux/netfilter_arp.h",
"linux/netfilter_bridge.h",
- "linux/netfilter_decnet.h",
"linux/netfilter_ipv4.h",
"linux/netfilter_ipv6.h",
"linux/netlink.h",
@@ -860,7 +861,9 @@ gen_headers_out_arm = [
"linux/netfilter_ipv4/ipt_CLUSTERIP.h",
"linux/netfilter_ipv4/ipt_ECN.h",
"linux/netfilter_ipv4/ipt_LOG.h",
+ "linux/netfilter_ipv4/ipt_NATTYPE.h",
"linux/netfilter_ipv4/ipt_REJECT.h",
+ "linux/netfilter_ipv4/ipt_TRIGGER.h",
"linux/netfilter_ipv4/ipt_TTL.h",
"linux/netfilter_ipv4/ipt_ah.h",
"linux/netfilter_ipv4/ipt_ecn.h",
@@ -976,6 +979,7 @@ gen_headers_out_arm = [
"audio/linux/msm_audio_amrnb.h",
"audio/linux/msm_audio_amrwb.h",
"audio/linux/msm_audio_amrwbplus.h",
+ "audio/linux/msm_audio_ar.h",
"audio/linux/msm_audio_ape.h",
"audio/linux/msm_audio_calibration.h",
"audio/linux/msm_audio_g711.h",
@@ -1004,6 +1008,7 @@ gen_headers_out_arm = [
"camera/media/cam_icp.h",
"camera/media/cam_isp.h",
"camera/media/cam_isp_ife.h",
+ "camera/media/cam_isp_sfe.h",
"camera/media/cam_isp_tfe.h",
"camera/media/cam_isp_vfe.h",
"camera/media/cam_jpeg.h",
diff --git a/gen_headers_arm64.bp b/gen_headers_arm64.bp
index 684ee36a42c9..bee9c6226a0e 100644
--- a/gen_headers_arm64.bp
+++ b/gen_headers_arm64.bp
@@ -198,9 +198,9 @@ gen_headers_out_arm64 = [
"linux/dm-ioctl.h",
"linux/dm-log-userspace.h",
"linux/dma-buf.h",
- "linux/dn.h",
"linux/dns_resolver.h",
"linux/dqblk_xfs.h",
+ "linux/eavb_shared.h",
"linux/edd.h",
"linux/efs_fs_sb.h",
"linux/elf-em.h",
@@ -210,6 +210,7 @@ gen_headers_out_arm64 = [
"linux/errno.h",
"linux/errqueue.h",
"linux/erspan.h",
+ "linux/esoc_ctrl.h",
"linux/ethtool.h",
"linux/eventpoll.h",
"linux/fadvise.h",
@@ -363,6 +364,7 @@ gen_headers_out_arm64 = [
"linux/memfd.h",
"linux/mempolicy.h",
"linux/meye.h",
+ "linux/mhi.h",
"linux/mic_common.h",
"linux/mic_ioctl.h",
"linux/mii.h",
@@ -402,7 +404,6 @@ gen_headers_out_arm64 = [
"linux/netfilter.h",
"linux/netfilter_arp.h",
"linux/netfilter_bridge.h",
- "linux/netfilter_decnet.h",
"linux/netfilter_ipv4.h",
"linux/netfilter_ipv6.h",
"linux/netlink.h",
@@ -856,6 +857,7 @@ gen_headers_out_arm64 = [
"linux/netfilter_ipv4/ipt_CLUSTERIP.h",
"linux/netfilter_ipv4/ipt_ECN.h",
"linux/netfilter_ipv4/ipt_LOG.h",
+ "linux/netfilter_ipv4/ipt_NATTYPE.h",
"linux/netfilter_ipv4/ipt_REJECT.h",
"linux/netfilter_ipv4/ipt_TTL.h",
"linux/netfilter_ipv4/ipt_ah.h",
@@ -973,6 +975,7 @@ gen_headers_out_arm64 = [
"audio/linux/msm_audio_amrwb.h",
"audio/linux/msm_audio_amrwbplus.h",
"audio/linux/msm_audio_ape.h",
+ "audio/linux/msm_audio_ar.h",
"audio/linux/msm_audio_calibration.h",
"audio/linux/msm_audio_g711.h",
"audio/linux/msm_audio_g711_dec.h",
@@ -1000,6 +1003,7 @@ gen_headers_out_arm64 = [
"camera/media/cam_icp.h",
"camera/media/cam_isp.h",
"camera/media/cam_isp_ife.h",
+ "camera/media/cam_isp_sfe.h",
"camera/media/cam_isp_tfe.h",
"camera/media/cam_isp_vfe.h",
"camera/media/cam_jpeg.h",
diff --git a/include/uapi/linux/msm_ipa.h b/include/uapi/linux/msm_ipa.h
index d596fc155224..3e258d6293ce 100644
--- a/include/uapi/linux/msm_ipa.h
+++ b/include/uapi/linux/msm_ipa.h
@@ -1808,7 +1808,10 @@ struct ipa_ipgre_info {
* GRE header value.
*/
uint16_t gre_protocol;
- uint8_t unused; /* for alignment */
+ /* If v6 tunnel: option header enabled then set "true"
+ * If v4 tunnel: option header enabled then set "false"
+ */
+ uint8_t ipv6_option_hdr_enabled;
/*
* The number of valid elements in, and the accompanying
* exception_list, below
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index cc234760b703..5041036d2523 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -4408,7 +4408,8 @@ static const struct nla_policy nl80211_txattr_policy[NL80211_TXRATE_MAX + 1] = {
};
static int nl80211_parse_tx_bitrate_mask(struct genl_info *info,
- struct cfg80211_bitrate_mask *mask)
+ struct cfg80211_bitrate_mask *mask,
+ bool default_all_enabled)
{
struct nlattr *tb[NL80211_TXRATE_MAX + 1];
struct cfg80211_registered_device *rdev = info->user_ptr[0];
@@ -4420,6 +4421,9 @@ static int nl80211_parse_tx_bitrate_mask(struct genl_info *info,
memset(mask, 0, sizeof(*mask));
/* Default to all rates enabled */
for (i = 0; i < NUM_NL80211_BANDS; i++) {
+ if (!default_all_enabled)
+ break;
+
sband = rdev->wiphy.bands[i];
if (!sband)
@@ -4943,7 +4947,7 @@ static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info)
return -EINVAL;
if (info->attrs[NL80211_ATTR_TX_RATES]) {
- err = nl80211_parse_tx_bitrate_mask(info, ¶ms.beacon_rate);
+ err = nl80211_parse_tx_bitrate_mask(info, ¶ms.beacon_rate, false);
if (err)
return err;
@@ -10725,7 +10729,7 @@ static int nl80211_set_tx_bitrate_mask(struct sk_buff *skb,
if (!rdev->ops->set_bitrate_mask)
return -EOPNOTSUPP;
- err = nl80211_parse_tx_bitrate_mask(info, &mask);
+ err = nl80211_parse_tx_bitrate_mask(info, &mask, true);
if (err)
return err;
@@ -11321,7 +11325,7 @@ static int nl80211_join_mesh(struct sk_buff *skb, struct genl_info *info)
}
if (info->attrs[NL80211_ATTR_TX_RATES]) {
- err = nl80211_parse_tx_bitrate_mask(info, &setup.beacon_rate);
+ err = nl80211_parse_tx_bitrate_mask(info, &setup.beacon_rate, false);
if (err)
return err;