RaspberryPi:snd_bcm2835到主线内核的端口

时间:2015-02-28 09:50:31

标签: linux-kernel raspberry-pi

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

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

 static int bcm2835_alsa_device_init(void)
 {
    platform_driver_register(&bcm2835_alsa0_driver);
    platform_driver_register(&bcm2835_alsa1_driver);
    //...repeat for 8 times
 }

这个bcm2835_alsa_device_init函数在我insmod snd_bcm2835时被调用,它可以无误地运行。

和struct bcm2835_alsa0_driver,bcm2835_alsa1_driver看起来像:

 static struct platform_driver bcm2835_alsa0_driver = {
    .probe = snd_bcm2835_alsa_probe,
    .remove = snd_bcm2835_alsa_remove,
    //...
 }
<。> .probe函数snd_bcm2835_alsa_probe是主要的主力,但它没有被调用。

所以问题是这个snd_bcm2835_alsa_probe何时被调用?

1 个答案:

答案 0 :(得分:0)

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