X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sound%2Fpci%2Fice1712%2Fak4xxx.c;h=ae9dc029ba0d2c4b59a00deed33f8960a7c6483f;hb=f7f1b0f1e2fbadeab12d24236000e778aa9b1ead;hp=4a318a6ec9218d36dd3bba7fd4dcf6488aa3fe02;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/sound/pci/ice1712/ak4xxx.c b/sound/pci/ice1712/ak4xxx.c index 4a318a6ec..ae9dc029b 100644 --- a/sound/pci/ice1712/ak4xxx.c +++ b/sound/pci/ice1712/ak4xxx.c @@ -33,7 +33,6 @@ MODULE_AUTHOR("Jaroslav Kysela "); MODULE_DESCRIPTION("ICEnsemble ICE17xx <-> AK4xxx AD/DA chip interface"); MODULE_LICENSE("GPL"); -MODULE_CLASSES("{sound}"); static void snd_ice1712_akm4xxx_lock(akm4xxx_t *ak, int chip) { @@ -127,12 +126,16 @@ int snd_ice1712_akm4xxx_init(akm4xxx_t *ak, const akm4xxx_t *temp, { struct snd_ak4xxx_private *priv; - priv = kmalloc(sizeof(*priv), GFP_KERNEL); - if (priv == NULL) - return -ENOMEM; + if (_priv != NULL) { + priv = kmalloc(sizeof(*priv), GFP_KERNEL); + if (priv == NULL) + return -ENOMEM; + *priv = *_priv; + } else { + priv = NULL; + } *ak = *temp; ak->card = ice->card; - *priv = *_priv; ak->private_value[0] = (unsigned long)priv; ak->private_data[0] = ice; if (ak->ops.lock == NULL) @@ -152,8 +155,7 @@ void snd_ice1712_akm4xxx_free(ice1712_t *ice) return; for (akidx = 0; akidx < ice->akm_codecs; akidx++) { akm4xxx_t *ak = &ice->akm[akidx]; - if (ak->private_value[0]) - kfree((void *)ak->private_value[0]); + kfree((void*)ak->private_value[0]); } kfree(ice->akm); }