搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
知新_RL
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
双指针仪表盘读数(二) ——表盘位置识别_指针仪表 多圈刻度圈识别
2
文本特征属性选择_ifi文档的词条频率
3
OpenCV探索之路(二十三):特征检测和特征匹配方法汇总_opencv特征点检测与匹配
4
ssm+Vue计算机毕业设计疫情信息管理系统(程序+LW文档)_疫情历史数据系统e-r图
5
pytorch 笔记: torch.nn.Embedding_pytorch embeding的权重
6
JVM性能调优详解_directmemorysize 优化
7
TypeScript 基础 - 05 (模块的导入、导出)_ts export default
8
自然语言处理中的命名实体识别:技术与挑战
9
基于Springboot框架高校学校实验室预约系统设计与实现(安装部署+源码+文档)
10
RabbitMQ的五种消息模型_rabbitmq五种消息模型
当前位置:
article
> 正文
alsa声卡/dev/snd/pcmC0D0p的open打开流程
作者:知新_RL | 2024-03-27 18:09:50
赞
踩
/dev/snd/pcmc0d0p
alsa声卡/dev/snd/pcmC0D0p的open打开流程
soc_probe
==> snd_soc_register_card或者snd_soc_register_dai或者snd_soc_register_platform或者snd_soc_register_codec
==> snd_soc_instantiate_cards
==> snd_soc_instantiate_card
==> codec_dev->probe
==> uda134x_soc_probe
==> snd_soc_new_pcms
==> soc_new_pcm
==> snd_pcm_new
snd_soc_new_pcms
snd_card_create
snd_ctl_create
snd_ctl_dev_register创建"controlC%i"声卡对应的控制节点,
他的fops为snd_ctl_f_ops
snd_pcm_dev_register
snd_register_device_for_dev
创建"pcmC%iD%ip"或者"pcmC%iD%ic"设备节点,它的fops为snd_pcm_f_ops[2]
snd_pcm_f_ops[2]
==> snd_pcm_playback_open或者snd_pcm_capture_open
==> snd_pcm_open或者oss的snd_pcm_oss_f_reg.snd_pcm_oss_open,这就对应/dev/dsp了
==> snd_pcm_open_file或者oss的snd_pcm_oss_open_file
==> snd_pcm_open_substream
==> soc_pcm_open
/* ASoC PCM operations */
static struct snd_pcm_ops soc_pcm_ops = {
.open = soc_pcm_open,
.close = soc_codec_close,
.hw_params = soc_pcm_hw_params,
.hw_free = soc_pcm_hw_free,
.prepare = soc_pcm_prepare,
.trigger = soc_pcm_trigger,
};
==> soc_pcm_open
cpu_dai->ops->startup // 无
platform->pcm_ops->open // s3c_dma_open 分配DMA空间
codec_dai->ops->startup // uda134x_startup
card_dai_link->ops->startup // s3c24xx_uda134x_startup 获取clock时钟源
// cpu_dai单元
struct snd_soc_dai s3c24xx_i2s_dai = {
.name = "s3c24xx-i2s",
.id = 0,
.probe = s3c24xx_i2s_probe,
.suspend = s3c24xx_i2s_suspend,
.resume = s3c24xx_i2s_resume,
.playback = {
.channels_min = 2,
.channels_max = 2,
.rates = S3C24XX_I2S_RATES,
.formats = SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE,},
.capture = {
.channels_min = 2,
.channels_max = 2,
.rates = S3C24XX_I2S_RATES,
.formats = SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE,},
.ops = &s3c24xx_i2s_dai_ops,
};
//platform单元
struct snd_soc_platform s3c24xx_soc_platform = {
.name = "s3c24xx-audio",
.pcm_ops = &s3c_dma_ops,
.pcm_new = s3c_dma_new,
.pcm_free = s3c_dma_free_dma_buffers,
};
static struct snd_pcm_ops s3c_dma_ops = {
.open = s3c_dma_open,
.close = s3c_dma_close,
.ioctl = snd_pcm_lib_ioctl,
.hw_params = s3c_dma_hw_params,
.hw_free = s3c_dma_hw_free,
.prepare = s3c_dma_prepare,
.trigger = s3c_dma_trigger,
.pointer = s3c_dma_pointer,
.mmap = s3c_dma_mmap,
};
// codec_dai单元
struct snd_soc_dai uda134x_dai = {
.name = "UDA134X",
/* playback capabilities */
.playback = {
.stream_name = "Playback",
.channels_min = 1,
.channels_max = 2,
.rates = UDA134X_RATES,
.formats = UDA134X_FORMATS,
},
/* capture capabilities */
.capture = {
.stream_name = "Capture",
.channels_min = 1,
.channels_max = 2,
.rates = UDA134X_RATES,
.formats = UDA134X_FORMATS,
},
/* pcm operations */
.ops = &uda134x_dai_ops,
};
//card_dai_link单元
static struct snd_soc_dai_link s3c24xx_uda134x_dai_link = {
.name = "UDA134X",
.stream_name = "UDA134X",
.codec_dai = &uda134x_dai,
.cpu_dai = &s3c24xx_i2s_dai,
.ops = &s3c24xx_uda134x_ops,
};
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/知新_RL/article/detail/326088?site
推荐阅读
article
微信开发者工具 第一个微信小程序 成功了!_
wx
.
c
aniuse
(
'
open
-
data
.
type
...
//index.js//获取应用实例
c
onstapp=getApp()Page({
data
:{motto:
'
HelloW...
赞
踩
article
【配环境】
pytorch3d
版本不匹配导致ImportError:
libtorch
_
cu
da
_
cu
...
之前直接用pip install下载的
pytorch3d
版本和环境不匹配,需要考虑到
cu
da
、pytorch、pytho...
赞
踩
article
OpenSSH
升级后 libcrypto.so.1.1:
cannot
open
shared
ob...
解决报错libssl.so.1.1:
cannot
open
shared
object
file
: No such f...
赞
踩
article
Android 通过图库选择图片提示找不到路径
open
failed
:
EROFS
(
Read
-o...
app中用户信息上传头像这个挺常见的,一般的都是拍照或选择图片上传。这样一般会出现三个常见问题。1.进入照相机或图库后,...
赞
踩
article
fatal
:
unable
to
access
‘
https
://
git
hub.com/
open
-m...
fatal
:
unable
to
access
‘
https
://
git
hub.com/
open
-
mmlab
/mmcv....
赞
踩
article
CV深度学习项目调试开发过程中报错记录【持续更新】_
can
'
t
open
/
read
file
: ch...
我排查定位到问题图片后分析出来的原因就是图片的命名中出现一些特殊的字符或者是无法被解析的字符,连续两个下划线也是不可以的...
赞
踩
article
编译
android
内核
,
编译
内核
|
Android
开源项目 |
Android
Op...
本页详细介绍了如何仅
编译
内核
。以下说明假设您尚未下载整个 AOSP;如果您已完成下载,则可以跳过 git clone 对...
赞
踩
article
Semi
-
supervised
Open
-World
Object
Detection...
传统的开放世界对象检测(OWOD)问题设置首先区分已知和未知类别,然后在后续任务中引入标签时逐步学习未知对象。然而,当前...
赞
踩
article
android
查询
快捷方式
,
微件
/
快捷方式
|
Android
开源项目 | Androi...
借助
Android
8.0 中新增的用于添加
快捷方式
和
微件
的流程 API,应用开发者可以从应用内添加
快捷方式
和
微件
,而...
赞
踩
article
识别
一切(
Tag2
Text
/
RAM
/
RAM
++
)之
RAM
++
论文详细阅读:
Open
-Set Imag...
在本文中,我们介绍了 Recognize Anything Plus Model(
RAM
++
),这是一种有效利用多粒度文...
赞
踩
article
open Harmony开发 API9 npm迁移到
ohpm
出错_
since
api
version
...
解决方法:工程级目录下的oh-
package
.json5文件中修改hypium一行由原始变为修改后即可解决,如图。在新拉...
赞
踩
article
DevEnc
Studio
预览报错
Preview
failed
. Unable to start t...
DevEnc
Studio
预览报错
Preview
failed
. Unable to start the preview...
赞
踩
article
securityCRT 中
virt
-
manager
报Gtk-WARNING **
:
cannot
...
1.安装虚拟化相关工具,包括图形化工具(推荐使用组包安装,不容易遗漏软件包)#yum groupinstall "Vir...
赞
踩
article
virt
-
manager
cannot
open
display
问题...
1.首先查看本机sshd是否开启X11转发grep X11Forwarding /etc/ssh/sshd_config...
赞
踩
article
xming
Error
: Can‘
t
open
display
:_
xming
error
: can'...
LinuxCen
t
os7安装oracle 11gR2_
xming
error
: can'
t
open
display
xm...
赞
踩
article
【Android
Audio
入门 一】---
Audio
ALSA
Driver
_
soc
_sing...
【
Audio
System 01】---
Audio
Driver
一、
ALSA
音频体系介绍1. ASoC介绍(Mac...
赞
踩
article
Android Studio安装
Flutter
插件后找不到设备(no
devices
)_you...
No connected
devices
found; please connect a device, or see ...
赞
踩
article
android
系统
底层的
updater
命令
,
实现
A/B
更新
|
Android
开源项目 ...
想要
实现
A/B
系统
更新
的原始设备制造商 (OEM) 和 SoC 供应商必须确保其引导加载程序
实现
boot_cont...
赞
踩
article
鸿蒙踩坑合集_
build
task
failed
. open the
build
window
to...
各位网络中的小伙们,关于鸿蒙的踩坑陆陆续续收集中,本文章会持续更新,希望对您有所帮助。_
build
task
faile...
赞
踩
article
Waymo
数据
集
使用介绍(
waymo
-
open
-
dataset
)_
waymo
open
datase...
关于
waymo
数据
集
的介绍很多博客都有详细说明了,但是具体有哪些
数据
?
waymo
可视化工具如何使用?这些信息又如何读取?...
赞
踩
相关标签
pytorch
人工智能
python
3d
linux
centos
ssh
android
图片上传
resultCode
open failed EROFS Re
开发语言
编译 android 内核
目标检测
计算机视觉
android 查询快捷方式
深度学习
图像处理
鸿蒙
harmonyos
运维
服务器