.dev_free = snd_usb_mixer_dev_free
        };
        struct usb_mixer_interface *mixer;
-       struct snd_info_entry *entry;
        int err;
 
        strcpy(chip->card->mixername, "USB Mixer");
        if (err < 0)
                goto _error;
 
-       if (list_empty(&chip->mixer_list) &&
-           !snd_card_proc_new(chip->card, "usbmixer", &entry))
-               snd_info_set_text_ops(entry, chip, snd_usb_mixer_proc_read);
+       if (list_empty(&chip->mixer_list))
+               snd_card_ro_proc_new(chip->card, "usbmixer", chip,
+                                    snd_usb_mixer_proc_read);
 
        list_add(&mixer->list, &chip->mixer_list);
        return 0;
 
 int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer)
 {
        int err = 0;
-       struct snd_info_entry *entry;
 
        err = snd_usb_soundblaster_remote_init(mixer);
        if (err < 0)
                err = snd_audigy2nx_controls_create(mixer);
                if (err < 0)
                        break;
-               if (!snd_card_proc_new(mixer->chip->card, "audigy2nx", &entry))
-                       snd_info_set_text_ops(entry, mixer,
-                                             snd_audigy2nx_proc_read);
+               snd_card_ro_proc_new(mixer->chip->card, "audigy2nx",
+                                    mixer, snd_audigy2nx_proc_read);
                break;
 
        /* EMU0204 */
 
 
 void snd_usb_audio_create_proc(struct snd_usb_audio *chip)
 {
-       struct snd_info_entry *entry;
-       if (!snd_card_proc_new(chip->card, "usbbus", &entry))
-               snd_info_set_text_ops(entry, chip, proc_audio_usbbus_read);
-       if (!snd_card_proc_new(chip->card, "usbid", &entry))
-               snd_info_set_text_ops(entry, chip, proc_audio_usbid_read);
+       snd_card_ro_proc_new(chip->card, "usbbus", chip,
+                            proc_audio_usbbus_read);
+       snd_card_ro_proc_new(chip->card, "usbid", chip,
+                            proc_audio_usbid_read);
 }
 
 /*
 
 void snd_usb_proc_pcm_format_add(struct snd_usb_stream *stream)
 {
-       struct snd_info_entry *entry;
        char name[32];
        struct snd_card *card = stream->chip->card;
 
        sprintf(name, "stream%d", stream->pcm_index);
-       if (!snd_card_proc_new(card, name, &entry))
-               snd_info_set_text_ops(entry, stream, proc_pcm_format_read);
+       snd_card_ro_proc_new(card, name, stream, proc_pcm_format_read);
 }