hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
kernel/sound/core/jack.c
....@@ -348,6 +348,7 @@
348348 {
349349 struct snd_jack_kctl *jack_kctl;
350350 #ifdef CONFIG_SND_JACK_INPUT_DEV
351
+ struct input_dev *idev;
351352 int i;
352353 #endif
353354
....@@ -359,26 +360,28 @@
359360 status & jack_kctl->mask_bits);
360361
361362 #ifdef CONFIG_SND_JACK_INPUT_DEV
362
- if (!jack->input_dev)
363
+ idev = input_get_device(jack->input_dev);
364
+ if (!idev)
363365 return;
364366
365367 for (i = 0; i < ARRAY_SIZE(jack->key); i++) {
366368 int testbit = SND_JACK_BTN_0 >> i;
367369
368370 if (jack->type & testbit)
369
- input_report_key(jack->input_dev, jack->key[i],
371
+ input_report_key(idev, jack->key[i],
370372 status & testbit);
371373 }
372374
373375 for (i = 0; i < ARRAY_SIZE(jack_switch_types); i++) {
374376 int testbit = 1 << i;
375377 if (jack->type & testbit)
376
- input_report_switch(jack->input_dev,
378
+ input_report_switch(idev,
377379 jack_switch_types[i],
378380 status & testbit);
379381 }
380382
381
- input_sync(jack->input_dev);
383
+ input_sync(idev);
384
+ input_put_device(idev);
382385 #endif /* CONFIG_SND_JACK_INPUT_DEV */
383386 }
384387 EXPORT_SYMBOL(snd_jack_report);