The destructor, remove callback, simply releases the card instance. Then the ALSA middle layer will release all the attached components automatically.

It would be typically like the following:

  static void __devexit snd_mychip_remove(struct pci_dev *pci)
          pci_set_drvdata(pci, NULL);


The above code assumes that the card pointer is set to the PCI driver data.