Linux kernel RaspberryPi:snd_bcm2835端口到主线内核

Linux kernel RaspberryPi:snd_bcm2835端口到主线内核,linux-kernel,raspberry-pi,Linux Kernel,Raspberry Pi,我正在尝试将snd_bcm2835移植到主线内核(主要是因为rpi官方内核不使用设备树) 现在vcio、vchiq、snd_bcm2835都可以插入内核,但仍然没有有效的音频播放设备。 snd_bcm2835模块的module_init函数是bcm2835_alsa_device_init(),它的主要工作是(简化版本): 当i insmod snd_bcm2835时调用此bcm2835_alsa_device_init函数,它可以无错误地运行 结构bcm2835_-alsa0_驱动程序bcm2

我正在尝试将snd_bcm2835移植到主线内核(主要是因为rpi官方内核不使用设备树)

现在vcio、vchiq、snd_bcm2835都可以插入内核,但仍然没有有效的音频播放设备。 snd_bcm2835模块的module_init函数是bcm2835_alsa_device_init(),它的主要工作是(简化版本):

当i insmod snd_bcm2835时调用此bcm2835_alsa_device_init函数,它可以无错误地运行

结构bcm2835_-alsa0_驱动程序bcm2835_-alsa1_驱动程序如下所示:

 static struct platform_driver bcm2835_alsa0_driver = {
    .probe = snd_bcm2835_alsa_probe,
    .remove = snd_bcm2835_alsa_remove,
    //...
 }
.probe函数snd_bcm2835_alsa_probe是主要的工作机制,但没有被调用


所以问题是这个snd\u bcm2835\u alsa\u探针什么时候会被调用?

我已经使用elinux给出的以下步骤在raspberry pi上移植了4.0,我成功了。所以你也可以试试看:

是不是已经在主线上了?检查
声音/soc/bcm/bcm2835-i2s.c
。更新:啊,看来你正在开发PCM驱动程序…
 static struct platform_driver bcm2835_alsa0_driver = {
    .probe = snd_bcm2835_alsa_probe,
    .remove = snd_bcm2835_alsa_remove,
    //...
 }