[ALSA] oxygen: move model-specific data out of common header

Instead of having model-specific fields in the common struct oxygen, put
them into a private structure that is allocated together with the card
structure.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
diff --git a/sound/pci/oxygen/oxygen_lib.c b/sound/pci/oxygen/oxygen_lib.c
index aceb1f9..0927e04 100644
--- a/sound/pci/oxygen/oxygen_lib.c
+++ b/sound/pci/oxygen/oxygen_lib.c
@@ -320,7 +320,8 @@
 	struct oxygen *chip;
 	int err;
 
-	card = snd_card_new(index, id, model->owner, sizeof *chip);
+	card = snd_card_new(index, id, model->owner,
+			    sizeof *chip + model->model_data_size);
 	if (!card)
 		return -ENOMEM;
 
@@ -329,6 +330,7 @@
 	chip->pci = pci;
 	chip->irq = -1;
 	chip->model = model;
+	chip->model_data = chip + 1;
 	spin_lock_init(&chip->reg_lock);
 	mutex_init(&chip->mutex);
 	INIT_WORK(&chip->spdif_input_bits_work,