If you need to change and update a control in the interrupt
      routine, you can call snd_ctl_notify(). For
      example, 
        
  snd_ctl_notify(card, SNDRV_CTL_EVENT_MASK_VALUE, id_pointer);
          
        This function takes the card pointer, the event-mask, and the
      control id pointer for the notification. The event-mask
      specifies the types of notification, for example, in the above
      example, the change of control values is notified.
      The id pointer is the pointer of struct snd_ctl_elem_id
      to be notified.
      You can find some examples in es1938.c or
      es1968.c for hardware volume interrupts.