ALSA: cs46xx: Clean up proc file creations
authorTakashi Iwai <tiwai@suse.de>
Tue, 5 Feb 2019 15:46:27 +0000 (16:46 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 6 Feb 2019 17:11:59 +0000 (18:11 +0100)
Again no functional changes, but only code clean up.
Use a standard macro for initializing the procfs entries, also drop
the info entries stored in dsp_spos_instance, as they are removed
recursively by a single snd_info_free_entry() calls.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/cs46xx/cs46xx_dsp_spos.h
sound/pci/cs46xx/dsp_spos.c
sound/pci/cs46xx/dsp_spos_scb_lib.c

index 8008c59..a02e1e1 100644 (file)
@@ -177,22 +177,16 @@ struct dsp_spos_instance {
        /* proc fs */  
        struct snd_card *snd_card;
        struct snd_info_entry * proc_dsp_dir;
-       struct snd_info_entry * proc_sym_info_entry;
-       struct snd_info_entry * proc_modules_info_entry;
-       struct snd_info_entry * proc_parameter_dump_info_entry;
-       struct snd_info_entry * proc_sample_dump_info_entry;
 
        /* SCB's descriptors */
        int nscb;
        int scb_highest_frag_index;
        struct dsp_scb_descriptor scbs[DSP_MAX_SCB_DESC];
-       struct snd_info_entry * proc_scb_info_entry;
        struct dsp_scb_descriptor * the_null_scb;
 
        /* Task's descriptors */
        int ntask;
        struct dsp_task_descriptor tasks[DSP_MAX_TASK_DESC];
-       struct snd_info_entry * proc_task_info_entry;
 
        /* SPDIF status */
        int spdif_status_out;
index 3555f83..c28e586 100644 (file)
@@ -809,52 +809,39 @@ int cs46xx_dsp_proc_init (struct snd_card *card, struct snd_cs46xx *chip)
 
        entry = snd_info_create_card_entry(card, "spos_symbols",
                                           ins->proc_dsp_dir);
-       if (entry) {
-               entry->private_data = chip;
-               entry->mode = S_IFREG | 0644;
-               entry->c.text.read = cs46xx_dsp_proc_symbol_table_read;
-       }
-       ins->proc_sym_info_entry = entry;
+       if (entry)
+               snd_info_set_text_ops(entry, chip,
+                                     cs46xx_dsp_proc_symbol_table_read);
     
-       if ((entry = snd_info_create_card_entry(card, "spos_modules", ins->proc_dsp_dir)) != NULL) {
-               entry->content = SNDRV_INFO_CONTENT_TEXT;
-               entry->private_data = chip;
-               entry->mode = S_IFREG | 0644;
-               entry->c.text.read = cs46xx_dsp_proc_modules_read;
-       }
-       ins->proc_modules_info_entry = entry;
+       entry = snd_info_create_card_entry(card, "spos_modules",
+                                          ins->proc_dsp_dir);
+       if (entry)
+               snd_info_set_text_ops(entry, chip,
+                                     cs46xx_dsp_proc_modules_read);
 
-       if ((entry = snd_info_create_card_entry(card, "parameter", ins->proc_dsp_dir)) != NULL) {
-               entry->content = SNDRV_INFO_CONTENT_TEXT;
-               entry->private_data = chip;
-               entry->mode = S_IFREG | 0644;
-               entry->c.text.read = cs46xx_dsp_proc_parameter_dump_read;
-       }
-       ins->proc_parameter_dump_info_entry = entry;
+       entry = snd_info_create_card_entry(card, "parameter",
+                                          ins->proc_dsp_dir);
+       if (entry)
+               snd_info_set_text_ops(entry, chip,
+                                     cs46xx_dsp_proc_parameter_dump_read);
 
-       if ((entry = snd_info_create_card_entry(card, "sample", ins->proc_dsp_dir)) != NULL) {
-               entry->content = SNDRV_INFO_CONTENT_TEXT;
-               entry->private_data = chip;
-               entry->mode = S_IFREG | 0644;
-               entry->c.text.read = cs46xx_dsp_proc_sample_dump_read;
-       }
-       ins->proc_sample_dump_info_entry = entry;
+       entry = snd_info_create_card_entry(card, "sample",
+                                          ins->proc_dsp_dir);
+       if (entry)
+               snd_info_set_text_ops(entry, chip,
+                                     cs46xx_dsp_proc_sample_dump_read);
 
-       if ((entry = snd_info_create_card_entry(card, "task_tree", ins->proc_dsp_dir)) != NULL) {
-               entry->content = SNDRV_INFO_CONTENT_TEXT;
-               entry->private_data = chip;
-               entry->mode = S_IFREG | 0644;
-               entry->c.text.read = cs46xx_dsp_proc_task_tree_read;
-       }
-       ins->proc_task_info_entry = entry;
+       entry = snd_info_create_card_entry(card, "task_tree",
+                                          ins->proc_dsp_dir);
+       if (entry)
+               snd_info_set_text_ops(entry, chip,
+                                     cs46xx_dsp_proc_task_tree_read);
 
-       if ((entry = snd_info_create_card_entry(card, "scb_info", ins->proc_dsp_dir)) != NULL) {
-               entry->content = SNDRV_INFO_CONTENT_TEXT;
-               entry->private_data = chip;
-               entry->mode = S_IFREG | 0644;
-               entry->c.text.read = cs46xx_dsp_proc_scb_read;
-       }
-       ins->proc_scb_info_entry = entry;
+       entry = snd_info_create_card_entry(card, "scb_info",
+                                          ins->proc_dsp_dir);
+       if (entry)
+               snd_info_set_text_ops(entry, chip,
+                                     cs46xx_dsp_proc_scb_read);
 
        mutex_lock(&chip->spos_mutex);
        /* register/update SCB's entries on proc */
@@ -876,24 +863,6 @@ int cs46xx_dsp_proc_done (struct snd_cs46xx *chip)
        if (!ins)
                return 0;
 
-       snd_info_free_entry(ins->proc_sym_info_entry);
-       ins->proc_sym_info_entry = NULL;
-
-       snd_info_free_entry(ins->proc_modules_info_entry);
-       ins->proc_modules_info_entry = NULL;
-
-       snd_info_free_entry(ins->proc_parameter_dump_info_entry);
-       ins->proc_parameter_dump_info_entry = NULL;
-
-       snd_info_free_entry(ins->proc_sample_dump_info_entry);
-       ins->proc_sample_dump_info_entry = NULL;
-
-       snd_info_free_entry(ins->proc_scb_info_entry);
-       ins->proc_scb_info_entry = NULL;
-
-       snd_info_free_entry(ins->proc_task_info_entry);
-       ins->proc_task_info_entry = NULL;
-
        mutex_lock(&chip->spos_mutex);
        for (i = 0; i < ins->nscb; ++i) {
                if (ins->scbs[i].deleted) continue;
index e056f9d..1d9d610 100644 (file)
@@ -254,8 +254,9 @@ void cs46xx_dsp_proc_register_scb_desc (struct snd_cs46xx *chip,
        if (ins->snd_card != NULL && ins->proc_dsp_dir != NULL &&
            scb->proc_info == NULL) {
   
-               if ((entry = snd_info_create_card_entry(ins->snd_card, scb->scb_name, 
-                                                       ins->proc_dsp_dir)) != NULL) {
+               entry = snd_info_create_card_entry(ins->snd_card, scb->scb_name,
+                                                  ins->proc_dsp_dir);
+               if (entry) {
                        scb_info = kmalloc(sizeof(struct proc_scb_info), GFP_KERNEL);
                        if (!scb_info) {
                                snd_info_free_entry(entry);
@@ -265,12 +266,8 @@ void cs46xx_dsp_proc_register_scb_desc (struct snd_cs46xx *chip,
 
                        scb_info->chip = chip;
                        scb_info->scb_desc = scb;
-      
-                       entry->content = SNDRV_INFO_CONTENT_TEXT;
-                       entry->private_data = scb_info;
-                       entry->mode = S_IFREG | 0644;
-      
-                       entry->c.text.read = cs46xx_dsp_proc_scb_info_read;
+                       snd_info_set_text_ops(entry, scb_info,
+                                             cs46xx_dsp_proc_scb_info_read);
                }
 out:
                scb->proc_info = entry;