On Tue, Jun 02, 2020 at 10:51:10AM +0530, Vaibhav Agarwal wrote: > diff --git a/drivers/staging/greybus/audio_codec.c b/drivers/staging/greybus/audio_codec.c > index 08746c85dea6..ebf8484f0ae7 100644 > --- a/drivers/staging/greybus/audio_codec.c > +++ b/drivers/staging/greybus/audio_codec.c > @@ -709,17 +709,29 @@ static struct snd_soc_dai_driver gbaudio_dai[] = { > }; > > static int gbaudio_init_jack(struct gbaudio_module_info *module, > - struct snd_soc_codec *codec) > + struct snd_soc_card *card) > { > int ret; > No blank line please. > + struct snd_soc_jack *jack; This code would be nicer without the "jack" pointer. Just use "module->headset_jack" directly so that it's easier to use grep on the code. > + struct snd_soc_jack_pin *headset, *button; > + > if (!module->jack_mask) > return 0; > > snprintf(module->jack_name, NAME_SIZE, "GB %d Headset Jack", > module->dev_id); > - ret = snd_soc_jack_new(codec, module->jack_name, module->jack_mask, > - &module->headset_jack); > + > + headset = devm_kzalloc(module->dev, sizeof(*headset), GFP_KERNEL); > + if (!headset) > + return -ENOMEM; > + > + headset->pin = module->jack_name; > + headset->mask = module->jack_mask; > + jack = &module->headset_jack; > + > + ret = snd_soc_card_jack_new(card, module->jack_name, module->jack_mask, > + jack, headset, 1); > if (ret) { > dev_err(module->dev, "Failed to create new jack\n"); > return ret; > @@ -730,11 +742,21 @@ static int gbaudio_init_jack(struct gbaudio_module_info *module, > > snprintf(module->button_name, NAME_SIZE, "GB %d Button Jack", > module->dev_id); > - ret = snd_soc_jack_new(codec, module->button_name, module->button_mask, > - &module->button_jack); > + button = devm_kzalloc(module->dev, sizeof(*headset), GFP_KERNEL); ^^^^^^^^^^^^^^^^ Use "sizeof(*button)". It's the same size so it doesn't affect runtime. > + if (!button) { > + ret = -ENOMEM; > + goto free_headset; > + } regards, dan carpenter _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel