Constructor

To create an ac97 instance, first call snd_ac97_bus with an ac97_bus_ops_t record with callback functions.


  struct snd_ac97_bus *bus;
  static struct snd_ac97_bus_ops ops = {
        .write = snd_mychip_ac97_write,
        .read = snd_mychip_ac97_read,
  };

  snd_ac97_bus(card, 0, &ops, NULL, &pbus);

          

And then call snd_ac97_mixer() with an struct snd_ac97_template record together with the bus pointer created above.


  struct snd_ac97_template ac97;
  int err;

  memset(&ac97, 0, sizeof(ac97));
  ac97.private_data = chip;
  snd_ac97_mixer(bus, &ac97, &chip->ac97);