soc.h macros

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Can you help me document these macros?

For example what does TLV stand for? I know it supplies a decibel range.
R really mean two registers. What does EXT do?
How about S8?

#define SOC_SINGLE(xname, reg, shift, max, invert)
#define SOC_SINGLE_TLV(xname, reg, shift, max, invert, tlv_array)
#define SOC_DOUBLE(xname, xreg, shift_left, shift_right, xmax, xinvert)
#define SOC_DOUBLE_R(xname, reg_left, reg_right, xshift, xmax, xinvert)
#define SOC_DOUBLE_TLV(xname, xreg, shift_left, shift_right, xmax,
xinvert, tlv_array)
#define SOC_DOUBLE_R_TLV(xname, reg_left, reg_right, xshift, xmax,
xinvert, tlv_array)
#define SOC_DOUBLE_S8_TLV(xname, xreg, xmin, xmax, tlv_array)
#define SOC_ENUM(xname, xenum)
#define SOC_SINGLE_EXT(xname, xreg, xshift, xmax, xinvert,
xhandler_get, xhandler_put)
#define SOC_SINGLE_EXT_TLV(xname, xreg, xshift, xmax, xinvert,
xhandler_get, xhandler_put, tlv_array)
#define SOC_SINGLE_BOOL_EXT(xname, xdata, xhandler_get, xhandler_put)
#define SOC_ENUM_EXT(xname, xenum, xhandler_get, xhandler_put)

SOC_ENUM("3D Function", wm8753_enum[5]),
SOC_ENUM seems really inefficient tracking those enum numbers.
Could you declare the enum in place?

#define SOC_ENUM_SINGLE(xname, xreg, xshift, xmax, xtexts) \
{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname,\
	.info = snd_soc_info_enum_double, \
	.get = snd_soc_get_enum_double, .put = snd_soc_put_enum_double, \
	.private_value = (unsigned long) &(struct soc_enum) \
	.reg = xreg, .shift_l = xshift, .shift_r = xshift, \
	.max = xmax, .texts = xtexts }

Is it possible to turn all of these macros into inline functions? Can
an inline initialize a structure? Making them inlines would get us
syntax checking without expansion.

I'm having some success getting 32b wide controls working.

-- 
Jon Smirl
jonsmirl@xxxxxxxxx
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux