The access flag is the bitmask which specifies the access type
      of the given control.  The default access type is
      SNDRV_CTL_ELEM_ACCESS_READWRITE, 
      which means both read and write are allowed to this control.
      When the access flag is omitted (i.e. = 0), it is
      considered as READWRITE access as default. 
      
      When the control is read-only, pass
      SNDRV_CTL_ELEM_ACCESS_READ instead.
      In this case, you don't have to define
      the put callback.
      Similarly, when the control is write-only (although it's a rare
      case), you can use the WRITE flag instead, and
      you don't need the get callback.
      
      If the control value changes frequently (e.g. the VU meter),
      VOLATILE flag should be given.  This means
      that the control may be changed without
      
      notification. Applications should poll such
      a control constantly.
      
      When the control is inactive, set
      the INACTIVE flag, too.
      There are LOCK and
      OWNER flags to change the write
      permissions.