SOC_SINGLE(xname, reg, shift, max, invert) 参数测试
2016-07-23 09:00
639 查看
以前在使用这个接口时遇到的这5个参数中前面4个靠字面含义可知,第5个invert就有点含糊了,它指的是谁的invert,当时没有深究,今天终于找到到了它的作用。
我在使用一颗codec时有个mix的开关需要使用SOC_SINGLE()这个宏来描述一下,看datasheet上bit15=0为power off,bit15=1为poweron。于是我还按照原来的用法把invert设置为了0,结果在使用amixer操作这个mix时,得到的回显是这样的:
从回显上看这个mix应该是处于power on状态的,但实际上这个通路是关闭的,于是手动设置了一下:
即将对应寄存器的bit15设置为1,则回显显示是poweroff状态,但是实际的codec通路却是打开了,因为有输出波形了。所以看到这里应该也能联想到SOC_SINGLE()中的invert的作用了。于是果断把它设置为1,之后再次测试,则回显的提示和实际的硬件状态才吻合了。现在也能想通了,你想那么多的codec厂家,每个厂家都有自己的寄存器值含义,并不一定大家都认为1是poweron状态,0是poweroff状态,所以为了兼容所有厂家,boom,invert出现了。
本来这不值得记录的,但是呢,我今天来公司加班了,总得有点成果不是。
我在使用一颗codec时有个mix的开关需要使用SOC_SINGLE()这个宏来描述一下,看datasheet上bit15=0为power off,bit15=1为poweron。于是我还按照原来的用法把invert设置为了0,结果在使用amixer操作这个mix时,得到的回显是这样的:
[root@hello ~]#amixer cget numid=14 numid=14,iface=MIXER,name='Analog DACR1 Power Control' ; type=BOOLEAN,access=rw------,values=1 : values=on [root@Vimicro ~]
从回显上看这个mix应该是处于power on状态的,但实际上这个通路是关闭的,于是手动设置了一下:
[root@Vimicro ~]#amixer cset numid=14 1 numid=14,iface=MIXER,name='Analog DACR1 Power Control' ; type=BOOLEAN,access=rw------,values=1 : values=off [root@Vimicro ~]
即将对应寄存器的bit15设置为1,则回显显示是poweroff状态,但是实际的codec通路却是打开了,因为有输出波形了。所以看到这里应该也能联想到SOC_SINGLE()中的invert的作用了。于是果断把它设置为1,之后再次测试,则回显的提示和实际的硬件状态才吻合了。现在也能想通了,你想那么多的codec厂家,每个厂家都有自己的寄存器值含义,并不一定大家都认为1是poweron状态,0是poweroff状态,所以为了兼容所有厂家,boom,invert出现了。
本来这不值得记录的,但是呢,我今天来公司加班了,总得有点成果不是。
相关文章推荐
- Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
- Logstash扩展开发 - Input 与 Codec
- HEVC编码之Intra/Inter预测分析
- stagefright MKV/WebM parser
- gOS初体验
- gOS初体验
- 解决unicodedecodeerror ascii codec can’t decode byte 0xd7 in position 9 ordinal not in range(128)
- deprecated conversion from string constant to 'char*'
- deprecated conversion from string constant to 'char*' 解决方法
- ffmpeg视频格式转换分析
- 转载:QT小技巧
- 什么是H.264? 有哪些相关的产品?
- FFMPEG解复用、解码测试,音频保存WAV文件,视频保存为PPM图像
- Ubuntu 麦无声音解决方法
- MPEGLAYER3WAVEFORMAT Structure
- PC远程多媒体通信 (Notes)
- 编译sqlite3和wxSqlite3(含加密) 【原创】
- 杭州的华为人在深圳
- 解决unicodedecodeerror ascii codec can’t decode byte 0xd7 in position 9 ordinal not in range(128)
- DVSDK_3.01.00.10编译笔记