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.