Callbacks
Prev | Chapter 7. API for AC97 Codec | Next

## Callbacks

The standard callbacks are `read` and `write`. Obviously they correspond to the functions for read and write accesses to the hardware low-level codes.

The `read` callback returns the register value specified in the argument.

      static unsigned short snd_mychip_ac97_read(struct snd_ac97 *ac97,
                                                 unsigned short reg)
      {
              struct mychip *chip = ac97->private_data;
              ....
              return the_register_value;
      }

Here, the chip can be cast from ac97->private_data.

Meanwhile, the `write` callback is used to set the register value.

      static void snd_mychip_ac97_write(struct snd_ac97 *ac97,
                           unsigned short reg, unsigned short val)

These callbacks are non-atomic like the control API callbacks.

There are also other callbacks: `reset`, `wait` and `init`.

The `reset` callback is used to reset the codec. If the chip requires a special kind of reset, you can define this callback.

The `wait` callback is used to add some waiting time in the standard initialization of the codec. If the chip requires the extra waiting time, define this callback.

The `init` callback is used for additional initialization of the codec.

Prev | Up | Next
Constructor | Home | Updating Registers in The Driver