Magellan Linux

Contents of /trunk/kernel26-alx/patches-3.10/0173-3.10.74-all-fixes.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2672 - (show annotations) (download)
Tue Jul 21 16:46:35 2015 UTC (9 years, 3 months ago) by niro
File size: 21445 byte(s)
-3.10.84-alx-r1
1 diff --git a/Makefile b/Makefile
2 index b1129094ebfd..d2a3930159ea 100644
3 --- a/Makefile
4 +++ b/Makefile
5 @@ -1,6 +1,6 @@
6 VERSION = 3
7 PATCHLEVEL = 10
8 -SUBLEVEL = 73
9 +SUBLEVEL = 74
10 EXTRAVERSION =
11 NAME = TOSSUG Baby Fish
12
13 diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi
14 index 1382fec9e8c5..7fcb1ac0f232 100644
15 --- a/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi
16 +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi
17 @@ -50,6 +50,7 @@ ethernet@b0000 {
18 fsl,num_tx_queues = <0x8>;
19 fsl,magic-packet;
20 local-mac-address = [ 00 00 00 00 00 00 ];
21 + ranges;
22
23 queue-group@b0000 {
24 #address-cells = <1>;
25 diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi
26 index 221cd2ea5b31..9f25427c1527 100644
27 --- a/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi
28 +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi
29 @@ -50,6 +50,7 @@ ethernet@b1000 {
30 fsl,num_tx_queues = <0x8>;
31 fsl,magic-packet;
32 local-mac-address = [ 00 00 00 00 00 00 ];
33 + ranges;
34
35 queue-group@b1000 {
36 #address-cells = <1>;
37 diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi
38 index 61456c317609..cd7c318ab131 100644
39 --- a/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi
40 +++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi
41 @@ -49,6 +49,7 @@ ethernet@b2000 {
42 fsl,num_tx_queues = <0x8>;
43 fsl,magic-packet;
44 local-mac-address = [ 00 00 00 00 00 00 ];
45 + ranges;
46
47 queue-group@b2000 {
48 #address-cells = <1>;
49 diff --git a/drivers/md/dm.c b/drivers/md/dm.c
50 index a87f0c42cb8b..f69fed826a56 100644
51 --- a/drivers/md/dm.c
52 +++ b/drivers/md/dm.c
53 @@ -2333,10 +2333,16 @@ static void __dm_destroy(struct mapped_device *md, bool wait)
54 set_bit(DMF_FREEING, &md->flags);
55 spin_unlock(&_minor_lock);
56
57 + /*
58 + * Take suspend_lock so that presuspend and postsuspend methods
59 + * do not race with internal suspend.
60 + */
61 + mutex_lock(&md->suspend_lock);
62 if (!dm_suspended_md(md)) {
63 dm_table_presuspend_targets(map);
64 dm_table_postsuspend_targets(map);
65 }
66 + mutex_unlock(&md->suspend_lock);
67
68 /*
69 * Rare, but there may be I/O requests still going to complete,
70 diff --git a/drivers/net/ethernet/amd/pcnet32.c b/drivers/net/ethernet/amd/pcnet32.c
71 index ed2130727643..f6415fda103b 100644
72 --- a/drivers/net/ethernet/amd/pcnet32.c
73 +++ b/drivers/net/ethernet/amd/pcnet32.c
74 @@ -1516,7 +1516,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
75 {
76 struct pcnet32_private *lp;
77 int i, media;
78 - int fdx, mii, fset, dxsuflo;
79 + int fdx, mii, fset, dxsuflo, sram;
80 int chip_version;
81 char *chipname;
82 struct net_device *dev;
83 @@ -1553,7 +1553,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
84 }
85
86 /* initialize variables */
87 - fdx = mii = fset = dxsuflo = 0;
88 + fdx = mii = fset = dxsuflo = sram = 0;
89 chip_version = (chip_version >> 12) & 0xffff;
90
91 switch (chip_version) {
92 @@ -1586,6 +1586,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
93 chipname = "PCnet/FAST III 79C973"; /* PCI */
94 fdx = 1;
95 mii = 1;
96 + sram = 1;
97 break;
98 case 0x2626:
99 chipname = "PCnet/Home 79C978"; /* PCI */
100 @@ -1609,6 +1610,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
101 chipname = "PCnet/FAST III 79C975"; /* PCI */
102 fdx = 1;
103 mii = 1;
104 + sram = 1;
105 break;
106 case 0x2628:
107 chipname = "PCnet/PRO 79C976";
108 @@ -1637,6 +1639,31 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
109 dxsuflo = 1;
110 }
111
112 + /*
113 + * The Am79C973/Am79C975 controllers come with 12K of SRAM
114 + * which we can use for the Tx/Rx buffers but most importantly,
115 + * the use of SRAM allow us to use the BCR18:NOUFLO bit to avoid
116 + * Tx fifo underflows.
117 + */
118 + if (sram) {
119 + /*
120 + * The SRAM is being configured in two steps. First we
121 + * set the SRAM size in the BCR25:SRAM_SIZE bits. According
122 + * to the datasheet, each bit corresponds to a 512-byte
123 + * page so we can have at most 24 pages. The SRAM_SIZE
124 + * holds the value of the upper 8 bits of the 16-bit SRAM size.
125 + * The low 8-bits start at 0x00 and end at 0xff. So the
126 + * address range is from 0x0000 up to 0x17ff. Therefore,
127 + * the SRAM_SIZE is set to 0x17. The next step is to set
128 + * the BCR26:SRAM_BND midway through so the Tx and Rx
129 + * buffers can share the SRAM equally.
130 + */
131 + a->write_bcr(ioaddr, 25, 0x17);
132 + a->write_bcr(ioaddr, 26, 0xc);
133 + /* And finally enable the NOUFLO bit */
134 + a->write_bcr(ioaddr, 18, a->read_bcr(ioaddr, 18) | (1 << 11));
135 + }
136 +
137 dev = alloc_etherdev(sizeof(*lp));
138 if (!dev) {
139 ret = -ENOMEM;
140 diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
141 index e6660d692008..ec0d32ad7592 100644
142 --- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
143 +++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
144 @@ -541,7 +541,7 @@ static int iwl_mvm_mac_add_interface(struct ieee80211_hw *hw,
145
146 ret = iwl_mvm_mac_ctxt_add(mvm, vif);
147 if (ret)
148 - goto out_remove_mac;
149 + goto out_release;
150
151 /*
152 * Update power state on the new interface. Admittedly, based on
153 diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
154 index cfd49eca67aa..c81716042073 100644
155 --- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c
156 +++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
157 @@ -1465,7 +1465,7 @@ static int tcm_qla2xxx_check_initiator_node_acl(
158 /*
159 * Finally register the new FC Nexus with TCM
160 */
161 - __transport_register_session(se_nacl->se_tpg, se_nacl, se_sess, sess);
162 + transport_register_session(se_nacl->se_tpg, se_nacl, se_sess, sess);
163
164 return 0;
165 }
166 diff --git a/drivers/staging/vt6655/rf.c b/drivers/staging/vt6655/rf.c
167 index 6948984a25ab..c2d602825422 100644
168 --- a/drivers/staging/vt6655/rf.c
169 +++ b/drivers/staging/vt6655/rf.c
170 @@ -966,6 +966,7 @@ bool RFbSetPower(
171 break;
172 case RATE_6M:
173 case RATE_9M:
174 + case RATE_12M:
175 case RATE_18M:
176 byPwr = pDevice->abyOFDMPwrTbl[uCH];
177 if (pDevice->byRFType == RF_UW2452) {
178 diff --git a/drivers/target/tcm_fc/tfc_io.c b/drivers/target/tcm_fc/tfc_io.c
179 index e415af32115a..c67d3795db4a 100644
180 --- a/drivers/target/tcm_fc/tfc_io.c
181 +++ b/drivers/target/tcm_fc/tfc_io.c
182 @@ -346,7 +346,7 @@ void ft_invl_hw_context(struct ft_cmd *cmd)
183 ep = fc_seq_exch(seq);
184 if (ep) {
185 lport = ep->lp;
186 - if (lport && (ep->xid <= lport->lro_xid))
187 + if (lport && (ep->xid <= lport->lro_xid)) {
188 /*
189 * "ddp_done" trigger invalidation of HW
190 * specific DDP context
191 @@ -361,6 +361,7 @@ void ft_invl_hw_context(struct ft_cmd *cmd)
192 * identified using ep->xid)
193 */
194 cmd->was_ddp_setup = 0;
195 + }
196 }
197 }
198 }
199 diff --git a/fs/hfsplus/brec.c b/fs/hfsplus/brec.c
200 index 6e560d56094b..754fdf8c6356 100644
201 --- a/fs/hfsplus/brec.c
202 +++ b/fs/hfsplus/brec.c
203 @@ -131,13 +131,16 @@ skip:
204 hfs_bnode_write(node, entry, data_off + key_len, entry_len);
205 hfs_bnode_dump(node);
206
207 - if (new_node) {
208 - /* update parent key if we inserted a key
209 - * at the start of the first node
210 - */
211 - if (!rec && new_node != node)
212 - hfs_brec_update_parent(fd);
213 + /*
214 + * update parent key if we inserted a key
215 + * at the start of the node and it is not the new node
216 + */
217 + if (!rec && new_node != node) {
218 + hfs_bnode_read_key(node, fd->search_key, data_off + size);
219 + hfs_brec_update_parent(fd);
220 + }
221
222 + if (new_node) {
223 hfs_bnode_put(fd->bnode);
224 if (!new_node->parent) {
225 hfs_btree_inc_height(tree);
226 @@ -168,9 +171,6 @@ skip:
227 goto again;
228 }
229
230 - if (!rec)
231 - hfs_brec_update_parent(fd);
232 -
233 return 0;
234 }
235
236 @@ -370,6 +370,8 @@ again:
237 if (IS_ERR(parent))
238 return PTR_ERR(parent);
239 __hfs_brec_find(parent, fd, hfs_find_rec_by_key);
240 + if (fd->record < 0)
241 + return -ENOENT;
242 hfs_bnode_dump(parent);
243 rec = fd->record;
244
245 diff --git a/kernel/events/core.c b/kernel/events/core.c
246 index 7bf4d519c20f..7daf52c340cd 100644
247 --- a/kernel/events/core.c
248 +++ b/kernel/events/core.c
249 @@ -4007,6 +4007,13 @@ static void perf_pending_event(struct irq_work *entry)
250 {
251 struct perf_event *event = container_of(entry,
252 struct perf_event, pending);
253 + int rctx;
254 +
255 + rctx = perf_swevent_get_recursion_context();
256 + /*
257 + * If we 'fail' here, that's OK, it means recursion is already disabled
258 + * and we won't recurse 'further'.
259 + */
260
261 if (event->pending_disable) {
262 event->pending_disable = 0;
263 @@ -4017,6 +4024,9 @@ static void perf_pending_event(struct irq_work *entry)
264 event->pending_wakeup = 0;
265 perf_event_wakeup(event);
266 }
267 +
268 + if (rctx >= 0)
269 + perf_swevent_put_recursion_context(rctx);
270 }
271
272 /*
273 diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
274 index 845563b81a0f..9f0ea9d8be73 100644
275 --- a/net/mac80211/ieee80211_i.h
276 +++ b/net/mac80211/ieee80211_i.h
277 @@ -60,13 +60,24 @@ struct ieee80211_local;
278 #define IEEE80211_UNSET_POWER_LEVEL INT_MIN
279
280 /*
281 - * Some APs experience problems when working with U-APSD. Decrease the
282 - * probability of that happening by using legacy mode for all ACs but VO.
283 - * The AP that caused us trouble was a Cisco 4410N. It ignores our
284 - * setting, and always treats non-VO ACs as legacy.
285 + * Some APs experience problems when working with U-APSD. Decreasing the
286 + * probability of that happening by using legacy mode for all ACs but VO isn't
287 + * enough.
288 + *
289 + * Cisco 4410N originally forced us to enable VO by default only because it
290 + * treated non-VO ACs as legacy.
291 + *
292 + * However some APs (notably Netgear R7000) silently reclassify packets to
293 + * different ACs. Since u-APSD ACs require trigger frames for frame retrieval
294 + * clients would never see some frames (e.g. ARP responses) or would fetch them
295 + * accidentally after a long time.
296 + *
297 + * It makes little sense to enable u-APSD queues by default because it needs
298 + * userspace applications to be aware of it to actually take advantage of the
299 + * possible additional powersavings. Implicitly depending on driver autotrigger
300 + * frame support doesn't make much sense.
301 */
302 -#define IEEE80211_DEFAULT_UAPSD_QUEUES \
303 - IEEE80211_WMM_IE_STA_QOSINFO_AC_VO
304 +#define IEEE80211_DEFAULT_UAPSD_QUEUES 0
305
306 #define IEEE80211_DEFAULT_MAX_SP_LEN \
307 IEEE80211_WMM_IE_STA_QOSINFO_SP_ALL
308 diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
309 index 9299a38c372e..cd60be8d9aba 100644
310 --- a/net/mac80211/rx.c
311 +++ b/net/mac80211/rx.c
312 @@ -2023,6 +2023,9 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
313 hdr = (struct ieee80211_hdr *) skb->data;
314 mesh_hdr = (struct ieee80211s_hdr *) (skb->data + hdrlen);
315
316 + if (ieee80211_drop_unencrypted(rx, hdr->frame_control))
317 + return RX_DROP_MONITOR;
318 +
319 /* frame is in RMC, don't forward */
320 if (ieee80211_is_data(hdr->frame_control) &&
321 is_multicast_ether_addr(hdr->addr1) &&
322 diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
323 index dc200bf831ae..90a0e552cb32 100644
324 --- a/net/wireless/nl80211.c
325 +++ b/net/wireless/nl80211.c
326 @@ -4032,6 +4032,16 @@ static int nl80211_new_station(struct sk_buff *skb, struct genl_info *info)
327 if (parse_station_flags(info, dev->ieee80211_ptr->iftype, &params))
328 return -EINVAL;
329
330 + /* HT/VHT requires QoS, but if we don't have that just ignore HT/VHT
331 + * as userspace might just pass through the capabilities from the IEs
332 + * directly, rather than enforcing this restriction and returning an
333 + * error in this case.
334 + */
335 + if (!(params.sta_flags_set & BIT(NL80211_STA_FLAG_WME))) {
336 + params.ht_capa = NULL;
337 + params.vht_capa = NULL;
338 + }
339 +
340 /* When you run into this, adjust the code below for the new flag */
341 BUILD_BUG_ON(NL80211_STA_FLAG_MAX != 7);
342
343 diff --git a/sound/soc/codecs/adav80x.c b/sound/soc/codecs/adav80x.c
344 index 3c839cc4e00e..0ef2b2a33ee5 100644
345 --- a/sound/soc/codecs/adav80x.c
346 +++ b/sound/soc/codecs/adav80x.c
347 @@ -307,7 +307,7 @@ static int adav80x_put_deemph(struct snd_kcontrol *kcontrol,
348 {
349 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
350 struct adav80x *adav80x = snd_soc_codec_get_drvdata(codec);
351 - unsigned int deemph = ucontrol->value.enumerated.item[0];
352 + unsigned int deemph = ucontrol->value.integer.value[0];
353
354 if (deemph > 1)
355 return -EINVAL;
356 @@ -323,7 +323,7 @@ static int adav80x_get_deemph(struct snd_kcontrol *kcontrol,
357 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
358 struct adav80x *adav80x = snd_soc_codec_get_drvdata(codec);
359
360 - ucontrol->value.enumerated.item[0] = adav80x->deemph;
361 + ucontrol->value.integer.value[0] = adav80x->deemph;
362 return 0;
363 };
364
365 diff --git a/sound/soc/codecs/ak4641.c b/sound/soc/codecs/ak4641.c
366 index 5f9af1fb76e8..68379c14720b 100644
367 --- a/sound/soc/codecs/ak4641.c
368 +++ b/sound/soc/codecs/ak4641.c
369 @@ -74,7 +74,7 @@ static int ak4641_put_deemph(struct snd_kcontrol *kcontrol,
370 {
371 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
372 struct ak4641_priv *ak4641 = snd_soc_codec_get_drvdata(codec);
373 - int deemph = ucontrol->value.enumerated.item[0];
374 + int deemph = ucontrol->value.integer.value[0];
375
376 if (deemph > 1)
377 return -EINVAL;
378 @@ -90,7 +90,7 @@ static int ak4641_get_deemph(struct snd_kcontrol *kcontrol,
379 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
380 struct ak4641_priv *ak4641 = snd_soc_codec_get_drvdata(codec);
381
382 - ucontrol->value.enumerated.item[0] = ak4641->deemph;
383 + ucontrol->value.integer.value[0] = ak4641->deemph;
384 return 0;
385 };
386
387 diff --git a/sound/soc/codecs/cs4271.c b/sound/soc/codecs/cs4271.c
388 index 03036b326732..ffa4a2d8a4bc 100644
389 --- a/sound/soc/codecs/cs4271.c
390 +++ b/sound/soc/codecs/cs4271.c
391 @@ -267,7 +267,7 @@ static int cs4271_get_deemph(struct snd_kcontrol *kcontrol,
392 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
393 struct cs4271_private *cs4271 = snd_soc_codec_get_drvdata(codec);
394
395 - ucontrol->value.enumerated.item[0] = cs4271->deemph;
396 + ucontrol->value.integer.value[0] = cs4271->deemph;
397 return 0;
398 }
399
400 @@ -277,7 +277,7 @@ static int cs4271_put_deemph(struct snd_kcontrol *kcontrol,
401 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
402 struct cs4271_private *cs4271 = snd_soc_codec_get_drvdata(codec);
403
404 - cs4271->deemph = ucontrol->value.enumerated.item[0];
405 + cs4271->deemph = ucontrol->value.integer.value[0];
406 return cs4271_set_deemph(codec);
407 }
408
409 diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c
410 index 3b5f565a23a5..665e0ddc2ef0 100644
411 --- a/sound/soc/codecs/sgtl5000.c
412 +++ b/sound/soc/codecs/sgtl5000.c
413 @@ -1111,13 +1111,7 @@ static int sgtl5000_set_power_regs(struct snd_soc_codec *codec)
414 /* Enable VDDC charge pump */
415 ana_pwr |= SGTL5000_VDDC_CHRGPMP_POWERUP;
416 } else if (vddio >= 3100 && vdda >= 3100) {
417 - /*
418 - * if vddio and vddd > 3.1v,
419 - * charge pump should be clean before set ana_pwr
420 - */
421 - snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER,
422 - SGTL5000_VDDC_CHRGPMP_POWERUP, 0);
423 -
424 + ana_pwr &= ~SGTL5000_VDDC_CHRGPMP_POWERUP;
425 /* VDDC use VDDIO rail */
426 lreg_ctrl |= SGTL5000_VDDC_ASSN_OVRD;
427 lreg_ctrl |= SGTL5000_VDDC_MAN_ASSN_VDDIO <<
428 diff --git a/sound/soc/codecs/tas5086.c b/sound/soc/codecs/tas5086.c
429 index d447c4aa1d5e..675a8fd0deed 100644
430 --- a/sound/soc/codecs/tas5086.c
431 +++ b/sound/soc/codecs/tas5086.c
432 @@ -173,7 +173,7 @@ static int tas5086_get_deemph(struct snd_kcontrol *kcontrol,
433 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
434 struct tas5086_private *priv = snd_soc_codec_get_drvdata(codec);
435
436 - ucontrol->value.enumerated.item[0] = priv->deemph;
437 + ucontrol->value.integer.value[0] = priv->deemph;
438
439 return 0;
440 }
441 @@ -184,7 +184,7 @@ static int tas5086_put_deemph(struct snd_kcontrol *kcontrol,
442 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
443 struct tas5086_private *priv = snd_soc_codec_get_drvdata(codec);
444
445 - priv->deemph = ucontrol->value.enumerated.item[0];
446 + priv->deemph = ucontrol->value.integer.value[0];
447
448 return tas5086_set_deemph(codec);
449 }
450 diff --git a/sound/soc/codecs/wm2000.c b/sound/soc/codecs/wm2000.c
451 index 7fefd766b582..124fb538dfa9 100644
452 --- a/sound/soc/codecs/wm2000.c
453 +++ b/sound/soc/codecs/wm2000.c
454 @@ -605,7 +605,7 @@ static int wm2000_anc_mode_get(struct snd_kcontrol *kcontrol,
455 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
456 struct wm2000_priv *wm2000 = dev_get_drvdata(codec->dev);
457
458 - ucontrol->value.enumerated.item[0] = wm2000->anc_active;
459 + ucontrol->value.integer.value[0] = wm2000->anc_active;
460
461 return 0;
462 }
463 @@ -615,7 +615,7 @@ static int wm2000_anc_mode_put(struct snd_kcontrol *kcontrol,
464 {
465 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
466 struct wm2000_priv *wm2000 = dev_get_drvdata(codec->dev);
467 - int anc_active = ucontrol->value.enumerated.item[0];
468 + int anc_active = ucontrol->value.integer.value[0];
469 int ret;
470
471 if (anc_active > 1)
472 @@ -638,7 +638,7 @@ static int wm2000_speaker_get(struct snd_kcontrol *kcontrol,
473 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
474 struct wm2000_priv *wm2000 = dev_get_drvdata(codec->dev);
475
476 - ucontrol->value.enumerated.item[0] = wm2000->spk_ena;
477 + ucontrol->value.integer.value[0] = wm2000->spk_ena;
478
479 return 0;
480 }
481 @@ -648,7 +648,7 @@ static int wm2000_speaker_put(struct snd_kcontrol *kcontrol,
482 {
483 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
484 struct wm2000_priv *wm2000 = dev_get_drvdata(codec->dev);
485 - int val = ucontrol->value.enumerated.item[0];
486 + int val = ucontrol->value.integer.value[0];
487 int ret;
488
489 if (val > 1)
490 diff --git a/sound/soc/codecs/wm8731.c b/sound/soc/codecs/wm8731.c
491 index 10d492b6a5b4..944b09b1f481 100644
492 --- a/sound/soc/codecs/wm8731.c
493 +++ b/sound/soc/codecs/wm8731.c
494 @@ -121,7 +121,7 @@ static int wm8731_get_deemph(struct snd_kcontrol *kcontrol,
495 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
496 struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(codec);
497
498 - ucontrol->value.enumerated.item[0] = wm8731->deemph;
499 + ucontrol->value.integer.value[0] = wm8731->deemph;
500
501 return 0;
502 }
503 @@ -131,7 +131,7 @@ static int wm8731_put_deemph(struct snd_kcontrol *kcontrol,
504 {
505 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
506 struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(codec);
507 - int deemph = ucontrol->value.enumerated.item[0];
508 + int deemph = ucontrol->value.integer.value[0];
509 int ret = 0;
510
511 if (deemph > 1)
512 diff --git a/sound/soc/codecs/wm8903.c b/sound/soc/codecs/wm8903.c
513 index 9d88437cdcd1..79f4a217b5d5 100644
514 --- a/sound/soc/codecs/wm8903.c
515 +++ b/sound/soc/codecs/wm8903.c
516 @@ -446,7 +446,7 @@ static int wm8903_get_deemph(struct snd_kcontrol *kcontrol,
517 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
518 struct wm8903_priv *wm8903 = snd_soc_codec_get_drvdata(codec);
519
520 - ucontrol->value.enumerated.item[0] = wm8903->deemph;
521 + ucontrol->value.integer.value[0] = wm8903->deemph;
522
523 return 0;
524 }
525 @@ -456,7 +456,7 @@ static int wm8903_put_deemph(struct snd_kcontrol *kcontrol,
526 {
527 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
528 struct wm8903_priv *wm8903 = snd_soc_codec_get_drvdata(codec);
529 - int deemph = ucontrol->value.enumerated.item[0];
530 + int deemph = ucontrol->value.integer.value[0];
531 int ret = 0;
532
533 if (deemph > 1)
534 diff --git a/sound/soc/codecs/wm8904.c b/sound/soc/codecs/wm8904.c
535 index af62f843a691..c68d541cd350 100644
536 --- a/sound/soc/codecs/wm8904.c
537 +++ b/sound/soc/codecs/wm8904.c
538 @@ -523,7 +523,7 @@ static int wm8904_get_deemph(struct snd_kcontrol *kcontrol,
539 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
540 struct wm8904_priv *wm8904 = snd_soc_codec_get_drvdata(codec);
541
542 - ucontrol->value.enumerated.item[0] = wm8904->deemph;
543 + ucontrol->value.integer.value[0] = wm8904->deemph;
544 return 0;
545 }
546
547 @@ -532,7 +532,7 @@ static int wm8904_put_deemph(struct snd_kcontrol *kcontrol,
548 {
549 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
550 struct wm8904_priv *wm8904 = snd_soc_codec_get_drvdata(codec);
551 - int deemph = ucontrol->value.enumerated.item[0];
552 + int deemph = ucontrol->value.integer.value[0];
553
554 if (deemph > 1)
555 return -EINVAL;
556 diff --git a/sound/soc/codecs/wm8955.c b/sound/soc/codecs/wm8955.c
557 index 82c8ba975720..1c1fc6119758 100644
558 --- a/sound/soc/codecs/wm8955.c
559 +++ b/sound/soc/codecs/wm8955.c
560 @@ -393,7 +393,7 @@ static int wm8955_get_deemph(struct snd_kcontrol *kcontrol,
561 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
562 struct wm8955_priv *wm8955 = snd_soc_codec_get_drvdata(codec);
563
564 - ucontrol->value.enumerated.item[0] = wm8955->deemph;
565 + ucontrol->value.integer.value[0] = wm8955->deemph;
566 return 0;
567 }
568
569 @@ -402,7 +402,7 @@ static int wm8955_put_deemph(struct snd_kcontrol *kcontrol,
570 {
571 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
572 struct wm8955_priv *wm8955 = snd_soc_codec_get_drvdata(codec);
573 - int deemph = ucontrol->value.enumerated.item[0];
574 + int deemph = ucontrol->value.integer.value[0];
575
576 if (deemph > 1)
577 return -EINVAL;
578 diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c
579 index 412d90f7b256..4a8decf85a4a 100644
580 --- a/sound/soc/codecs/wm8960.c
581 +++ b/sound/soc/codecs/wm8960.c
582 @@ -181,7 +181,7 @@ static int wm8960_get_deemph(struct snd_kcontrol *kcontrol,
583 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
584 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec);
585
586 - ucontrol->value.enumerated.item[0] = wm8960->deemph;
587 + ucontrol->value.integer.value[0] = wm8960->deemph;
588 return 0;
589 }
590
591 @@ -190,7 +190,7 @@ static int wm8960_put_deemph(struct snd_kcontrol *kcontrol,
592 {
593 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
594 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec);
595 - int deemph = ucontrol->value.enumerated.item[0];
596 + int deemph = ucontrol->value.integer.value[0];
597
598 if (deemph > 1)
599 return -EINVAL;