ideapad_s740_helper.c (19734B)
1// SPDX-License-Identifier: GPL-2.0 2/* Fixes for Lenovo Ideapad S740, to be included from codec driver */ 3 4static const struct hda_verb alc285_ideapad_s740_coefs[] = { 5{ 0x20, AC_VERB_SET_COEF_INDEX, 0x10 }, 6{ 0x20, AC_VERB_SET_PROC_COEF, 0x0320 }, 7{ 0x20, AC_VERB_SET_COEF_INDEX, 0x24 }, 8{ 0x20, AC_VERB_SET_PROC_COEF, 0x0041 }, 9{ 0x20, AC_VERB_SET_COEF_INDEX, 0x24 }, 10{ 0x20, AC_VERB_SET_PROC_COEF, 0x0041 }, 11{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 12{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 13{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 14{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 15{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 16{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 17{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 18{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 19{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 20{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 21{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 22{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 23{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 24{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 25{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 26{ 0x20, AC_VERB_SET_PROC_COEF, 0x007f }, 27{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 28{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 29{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 30{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 31{ 0x20, AC_VERB_SET_PROC_COEF, 0x007f }, 32{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 33{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 34{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 35{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 36{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 37{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 38{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 39{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 40{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 41{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 42{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 43{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 44{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 45{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 46{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 47{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 48{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 49{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 50{ 0x20, AC_VERB_SET_PROC_COEF, 0x003c }, 51{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 52{ 0x20, AC_VERB_SET_PROC_COEF, 0x0011 }, 53{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 54{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 55{ 0x20, AC_VERB_SET_PROC_COEF, 0x003c }, 56{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 57{ 0x20, AC_VERB_SET_PROC_COEF, 0x0011 }, 58{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 59{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 60{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 61{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 62{ 0x20, AC_VERB_SET_PROC_COEF, 0x000c }, 63{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 64{ 0x20, AC_VERB_SET_PROC_COEF, 0x001a }, 65{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 66{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 67{ 0x20, AC_VERB_SET_PROC_COEF, 0x000c }, 68{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 69{ 0x20, AC_VERB_SET_PROC_COEF, 0x001a }, 70{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 71{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 72{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 73{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 74{ 0x20, AC_VERB_SET_PROC_COEF, 0x000f }, 75{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 76{ 0x20, AC_VERB_SET_PROC_COEF, 0x0042 }, 77{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 78{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 79{ 0x20, AC_VERB_SET_PROC_COEF, 0x000f }, 80{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 81{ 0x20, AC_VERB_SET_PROC_COEF, 0x0042 }, 82{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 83{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 84{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 85{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 86{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 }, 87{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 88{ 0x20, AC_VERB_SET_PROC_COEF, 0x0040 }, 89{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 90{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 91{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 }, 92{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 93{ 0x20, AC_VERB_SET_PROC_COEF, 0x0040 }, 94{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 95{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 96{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 97{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 98{ 0x20, AC_VERB_SET_PROC_COEF, 0x0003 }, 99{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 100{ 0x20, AC_VERB_SET_PROC_COEF, 0x0009 }, 101{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 102{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 103{ 0x20, AC_VERB_SET_PROC_COEF, 0x0003 }, 104{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 105{ 0x20, AC_VERB_SET_PROC_COEF, 0x0009 }, 106{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 107{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 108{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 109{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 110{ 0x20, AC_VERB_SET_PROC_COEF, 0x001c }, 111{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 112{ 0x20, AC_VERB_SET_PROC_COEF, 0x004c }, 113{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 114{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 115{ 0x20, AC_VERB_SET_PROC_COEF, 0x001c }, 116{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 117{ 0x20, AC_VERB_SET_PROC_COEF, 0x004c }, 118{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 119{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 120{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 121{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 122{ 0x20, AC_VERB_SET_PROC_COEF, 0x001d }, 123{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 124{ 0x20, AC_VERB_SET_PROC_COEF, 0x004e }, 125{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 126{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 127{ 0x20, AC_VERB_SET_PROC_COEF, 0x001d }, 128{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 129{ 0x20, AC_VERB_SET_PROC_COEF, 0x004e }, 130{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 131{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 132{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 133{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 134{ 0x20, AC_VERB_SET_PROC_COEF, 0x001b }, 135{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 136{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 137{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 138{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 139{ 0x20, AC_VERB_SET_PROC_COEF, 0x001b }, 140{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 141{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 142{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 143{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 144{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 145{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 146{ 0x20, AC_VERB_SET_PROC_COEF, 0x0019 }, 147{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 148{ 0x20, AC_VERB_SET_PROC_COEF, 0x0025 }, 149{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 150{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 151{ 0x20, AC_VERB_SET_PROC_COEF, 0x0019 }, 152{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 153{ 0x20, AC_VERB_SET_PROC_COEF, 0x0025 }, 154{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 155{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 156{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 157{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 158{ 0x20, AC_VERB_SET_PROC_COEF, 0x0018 }, 159{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 160{ 0x20, AC_VERB_SET_PROC_COEF, 0x0037 }, 161{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 162{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 163{ 0x20, AC_VERB_SET_PROC_COEF, 0x0018 }, 164{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 165{ 0x20, AC_VERB_SET_PROC_COEF, 0x0037 }, 166{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 167{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 168{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 169{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 170{ 0x20, AC_VERB_SET_PROC_COEF, 0x001a }, 171{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 172{ 0x20, AC_VERB_SET_PROC_COEF, 0x0040 }, 173{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 174{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 175{ 0x20, AC_VERB_SET_PROC_COEF, 0x001a }, 176{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 177{ 0x20, AC_VERB_SET_PROC_COEF, 0x0040 }, 178{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 179{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 180{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 181{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 182{ 0x20, AC_VERB_SET_PROC_COEF, 0x0016 }, 183{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 184{ 0x20, AC_VERB_SET_PROC_COEF, 0x0076 }, 185{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 186{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 187{ 0x20, AC_VERB_SET_PROC_COEF, 0x0016 }, 188{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 189{ 0x20, AC_VERB_SET_PROC_COEF, 0x0076 }, 190{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 191{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 192{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 193{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 194{ 0x20, AC_VERB_SET_PROC_COEF, 0x0017 }, 195{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 196{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 }, 197{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 198{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 199{ 0x20, AC_VERB_SET_PROC_COEF, 0x0017 }, 200{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 201{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 }, 202{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 203{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 204{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 205{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 206{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 }, 207{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 208{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 }, 209{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 210{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 211{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 }, 212{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 213{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 }, 214{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 215{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 216{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 217{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 218{ 0x20, AC_VERB_SET_PROC_COEF, 0x0007 }, 219{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 220{ 0x20, AC_VERB_SET_PROC_COEF, 0x0086 }, 221{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 222{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 223{ 0x20, AC_VERB_SET_PROC_COEF, 0x0007 }, 224{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 225{ 0x20, AC_VERB_SET_PROC_COEF, 0x0086 }, 226{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 227{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 228{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 229{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 230{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 }, 231{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 232{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 233{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 234{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 235{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 }, 236{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 237{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 238{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 239{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 240{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 241{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 242{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 }, 243{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 244{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 245{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 246{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 247{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 }, 248{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 249{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 250{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 251{ 0x20, AC_VERB_SET_COEF_INDEX, 0x24 }, 252{ 0x20, AC_VERB_SET_PROC_COEF, 0x0042 }, 253{ 0x20, AC_VERB_SET_COEF_INDEX, 0x24 }, 254{ 0x20, AC_VERB_SET_PROC_COEF, 0x0042 }, 255{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 256{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 257{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 258{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 259{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 260{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 261{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 262{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 263{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 264{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 265{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 266{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 267{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 268{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 269{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 270{ 0x20, AC_VERB_SET_PROC_COEF, 0x007f }, 271{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 272{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 273{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 274{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 275{ 0x20, AC_VERB_SET_PROC_COEF, 0x007f }, 276{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 277{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 278{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 279{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 280{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 281{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 282{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 283{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 284{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 285{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 286{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 287{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 288{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 289{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 290{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 291{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 292{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 293{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 294{ 0x20, AC_VERB_SET_PROC_COEF, 0x003c }, 295{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 296{ 0x20, AC_VERB_SET_PROC_COEF, 0x0011 }, 297{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 298{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 299{ 0x20, AC_VERB_SET_PROC_COEF, 0x003c }, 300{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 301{ 0x20, AC_VERB_SET_PROC_COEF, 0x0011 }, 302{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 303{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 304{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 305{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 306{ 0x20, AC_VERB_SET_PROC_COEF, 0x000c }, 307{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 308{ 0x20, AC_VERB_SET_PROC_COEF, 0x002a }, 309{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 310{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 311{ 0x20, AC_VERB_SET_PROC_COEF, 0x000c }, 312{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 313{ 0x20, AC_VERB_SET_PROC_COEF, 0x002a }, 314{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 315{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 316{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 317{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 318{ 0x20, AC_VERB_SET_PROC_COEF, 0x000f }, 319{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 320{ 0x20, AC_VERB_SET_PROC_COEF, 0x0046 }, 321{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 322{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 323{ 0x20, AC_VERB_SET_PROC_COEF, 0x000f }, 324{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 325{ 0x20, AC_VERB_SET_PROC_COEF, 0x0046 }, 326{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 327{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 328{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 329{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 330{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 }, 331{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 332{ 0x20, AC_VERB_SET_PROC_COEF, 0x0044 }, 333{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 334{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 335{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 }, 336{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 337{ 0x20, AC_VERB_SET_PROC_COEF, 0x0044 }, 338{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 339{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 340{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 341{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 342{ 0x20, AC_VERB_SET_PROC_COEF, 0x0003 }, 343{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 344{ 0x20, AC_VERB_SET_PROC_COEF, 0x0009 }, 345{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 346{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 347{ 0x20, AC_VERB_SET_PROC_COEF, 0x0003 }, 348{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 349{ 0x20, AC_VERB_SET_PROC_COEF, 0x0009 }, 350{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 351{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 352{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 353{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 354{ 0x20, AC_VERB_SET_PROC_COEF, 0x001c }, 355{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 356{ 0x20, AC_VERB_SET_PROC_COEF, 0x004c }, 357{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 358{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 359{ 0x20, AC_VERB_SET_PROC_COEF, 0x001c }, 360{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 361{ 0x20, AC_VERB_SET_PROC_COEF, 0x004c }, 362{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 363{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 364{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 365{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 366{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 367{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 368{ 0x20, AC_VERB_SET_PROC_COEF, 0x001b }, 369{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 370{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 371{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 372{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 373{ 0x20, AC_VERB_SET_PROC_COEF, 0x001b }, 374{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 375{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 376{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 377{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 378{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 379{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 380{ 0x20, AC_VERB_SET_PROC_COEF, 0x0019 }, 381{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 382{ 0x20, AC_VERB_SET_PROC_COEF, 0x0025 }, 383{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 384{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 385{ 0x20, AC_VERB_SET_PROC_COEF, 0x0019 }, 386{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 387{ 0x20, AC_VERB_SET_PROC_COEF, 0x0025 }, 388{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 389{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 390{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 391{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 392{ 0x20, AC_VERB_SET_PROC_COEF, 0x0018 }, 393{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 394{ 0x20, AC_VERB_SET_PROC_COEF, 0x0037 }, 395{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 396{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 397{ 0x20, AC_VERB_SET_PROC_COEF, 0x0018 }, 398{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 399{ 0x20, AC_VERB_SET_PROC_COEF, 0x0037 }, 400{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 401{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 402{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 403{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 404{ 0x20, AC_VERB_SET_PROC_COEF, 0x001a }, 405{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 406{ 0x20, AC_VERB_SET_PROC_COEF, 0x0040 }, 407{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 408{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 409{ 0x20, AC_VERB_SET_PROC_COEF, 0x001a }, 410{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 411{ 0x20, AC_VERB_SET_PROC_COEF, 0x0040 }, 412{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 413{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 414{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 415{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 416{ 0x20, AC_VERB_SET_PROC_COEF, 0x0016 }, 417{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 418{ 0x20, AC_VERB_SET_PROC_COEF, 0x0076 }, 419{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 420{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 421{ 0x20, AC_VERB_SET_PROC_COEF, 0x0016 }, 422{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 423{ 0x20, AC_VERB_SET_PROC_COEF, 0x0076 }, 424{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 425{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 426{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 427{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 428{ 0x20, AC_VERB_SET_PROC_COEF, 0x0017 }, 429{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 430{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 }, 431{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 432{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 433{ 0x20, AC_VERB_SET_PROC_COEF, 0x0017 }, 434{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 435{ 0x20, AC_VERB_SET_PROC_COEF, 0x0010 }, 436{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 437{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 438{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 439{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 440{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 }, 441{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 442{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 }, 443{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 444{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 445{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 }, 446{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 447{ 0x20, AC_VERB_SET_PROC_COEF, 0x0015 }, 448{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 449{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 450{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 451{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 452{ 0x20, AC_VERB_SET_PROC_COEF, 0x0007 }, 453{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 454{ 0x20, AC_VERB_SET_PROC_COEF, 0x0086 }, 455{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 456{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 457{ 0x20, AC_VERB_SET_PROC_COEF, 0x0007 }, 458{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 459{ 0x20, AC_VERB_SET_PROC_COEF, 0x0086 }, 460{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 461{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 462{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 463{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 464{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 }, 465{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 466{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 467{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 468{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 469{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 }, 470{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 471{ 0x20, AC_VERB_SET_PROC_COEF, 0x0001 }, 472{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 473{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 474{ 0x20, AC_VERB_SET_COEF_INDEX, 0x29 }, 475{ 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, 476{ 0x20, AC_VERB_SET_PROC_COEF, 0x0002 }, 477{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 478{ 0x20, AC_VERB_SET_PROC_COEF, 0x0000 }, 479{ 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, 480{} 481}; 482 483static void alc285_fixup_ideapad_s740_coef(struct hda_codec *codec, 484 const struct hda_fixup *fix, 485 int action) 486{ 487 switch (action) { 488 case HDA_FIXUP_ACT_PRE_PROBE: 489 snd_hda_add_verbs(codec, alc285_ideapad_s740_coefs); 490 break; 491 } 492}