BTW, independent from this patch set, I noticed that those get/put
callbacks handle the wrong type. For enum ctls, you have to use
ucontrol->value.enumerated.value instead of
ucontrol->value.integer.value. The former is long while the latter is
int, hence they may have different sizes.
Such a bug could be caught if you test once with
CONFIG_SND_CTL_VALIDATION=y. It's recommended to test with that
config once for a new driver code.
So, please submit the fix patch(es) for correcting the ctl value
types, too.