Skip to content

Commit 51a1e7f

Browse files
committed
ALSA: hda/si3054: Rewrite to new probe method
Convert the SI3054 codec driver to use the new hda_codec_ops probe. No functional changes. Signed-off-by: Takashi Iwai <[email protected]> Link: https://patch.msgid.link/[email protected]
1 parent 3cea413 commit 51a1e7f

File tree

1 file changed

+26
-27
lines changed

1 file changed

+26
-27
lines changed

sound/hda/codecs/si3054.c

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/*
33
* Universal Interface for Intel High Definition Audio Codec
44
*
5-
* HD audio interface patch for Silicon Labs 3054/5 modem codec
5+
* HD audio codec driver for Silicon Labs 3054/5 modem codec
66
*
77
* Copyright (c) 2005 Sasha Khapyorsky <[email protected]>
88
* Takashi Iwai <[email protected]>
@@ -246,50 +246,48 @@ static int si3054_init(struct hda_codec *codec)
246246
return 0;
247247
}
248248

249-
static void si3054_free(struct hda_codec *codec)
249+
static void si3054_remove(struct hda_codec *codec)
250250
{
251251
kfree(codec->spec);
252252
}
253253

254-
255254
/*
256255
*/
257256

258-
static const struct hda_codec_ops si3054_patch_ops = {
259-
.build_controls = si3054_build_controls,
260-
.build_pcms = si3054_build_pcms,
261-
.init = si3054_init,
262-
.free = si3054_free,
263-
};
264-
265-
static int patch_si3054(struct hda_codec *codec)
257+
static int si3054_probe(struct hda_codec *codec, const struct hda_device_id *id)
266258
{
267-
struct si3054_spec *spec = kzalloc(sizeof(*spec), GFP_KERNEL);
268-
if (spec == NULL)
259+
codec->spec = kzalloc(sizeof(struct si3054_spec), GFP_KERNEL);
260+
if (!codec->spec)
269261
return -ENOMEM;
270-
codec->spec = spec;
271-
codec->patch_ops = si3054_patch_ops;
272262
return 0;
273263
}
274264

265+
static const struct hda_codec_ops si3054_codec_ops = {
266+
.probe = si3054_probe,
267+
.remove = si3054_remove,
268+
.build_controls = si3054_build_controls,
269+
.build_pcms = si3054_build_pcms,
270+
.init = si3054_init,
271+
};
272+
275273
/*
276-
* patch entries
274+
* driver entries
277275
*/
278276
static const struct hda_device_id snd_hda_id_si3054[] = {
279-
HDA_CODEC_ENTRY(0x163c3055, "Si3054", patch_si3054),
280-
HDA_CODEC_ENTRY(0x163c3155, "Si3054", patch_si3054),
281-
HDA_CODEC_ENTRY(0x11c13026, "Si3054", patch_si3054),
282-
HDA_CODEC_ENTRY(0x11c13055, "Si3054", patch_si3054),
283-
HDA_CODEC_ENTRY(0x11c13155, "Si3054", patch_si3054),
284-
HDA_CODEC_ENTRY(0x10573055, "Si3054", patch_si3054),
285-
HDA_CODEC_ENTRY(0x10573057, "Si3054", patch_si3054),
286-
HDA_CODEC_ENTRY(0x10573155, "Si3054", patch_si3054),
277+
HDA_CODEC_ID(0x163c3055, "Si3054"),
278+
HDA_CODEC_ID(0x163c3155, "Si3054"),
279+
HDA_CODEC_ID(0x11c13026, "Si3054"),
280+
HDA_CODEC_ID(0x11c13055, "Si3054"),
281+
HDA_CODEC_ID(0x11c13155, "Si3054"),
282+
HDA_CODEC_ID(0x10573055, "Si3054"),
283+
HDA_CODEC_ID(0x10573057, "Si3054"),
284+
HDA_CODEC_ID(0x10573155, "Si3054"),
287285
/* VIA HDA on Clevo m540 */
288-
HDA_CODEC_ENTRY(0x11063288, "Si3054", patch_si3054),
286+
HDA_CODEC_ID(0x11063288, "Si3054"),
289287
/* Asus A8J Modem (SM56) */
290-
HDA_CODEC_ENTRY(0x15433155, "Si3054", patch_si3054),
288+
HDA_CODEC_ID(0x15433155, "Si3054"),
291289
/* LG LW20 modem */
292-
HDA_CODEC_ENTRY(0x18540018, "Si3054", patch_si3054),
290+
HDA_CODEC_ID(0x18540018, "Si3054"),
293291
{}
294292
};
295293
MODULE_DEVICE_TABLE(hdaudio, snd_hda_id_si3054);
@@ -299,6 +297,7 @@ MODULE_DESCRIPTION("Si3054 HD-audio modem codec");
299297

300298
static struct hda_codec_driver si3054_driver = {
301299
.id = snd_hda_id_si3054,
300+
.ops = &si3054_codec_ops,
302301
};
303302

304303
module_hda_codec_driver(si3054_driver);

0 commit comments

Comments
 (0)