powerpan 发表于 2011-04-05 22:39

frame buffer驱动问题

目前正在改写一个spi的lcd驱动,但是碰到个问题,dma在linux video驱动是在哪里实现的?因为spi本身就带了dma,所以在frame buffer就不需要初始化dma了,我暂时还没有看明白 fb的框架里面是如何把数据送出去的,请知道的大虾指导一下,谢谢!

flandy1982 发表于 2011-04-07 09:55

是在fb driver的probe里面分配的dma的,数据是通过fb_info与应用层通信的。

RUNONMIPS 发表于 2011-04-07 10:14

dma的设置一般都显示芯片中的一些寄存器,这个你要在spec上找。一般就是设置取数据的大小,物理地址首地址什么的。然后就是把dma的地址map一下,返回到上层去用

T-Bagwell 发表于 2011-04-07 14:21


325
326 static int __init lcdc_fuck_probe(struct platform_device *pdev)
327 {
328   if (pdev->id == 0)
329         platform_data = pdev->dev.platform_data;
330   if (pdev->id == 1) {
331         lcdc_fuck_config_gpios();
332         msm_fb_add_device(pdev);
333   }
334   return 0;
335 }

一般是pdev和他联系起来的
具体的就看msm_fb_add_device里面

Trigger_Huang 发表于 2011-04-08 22:19

probe里面用dma_alloc_writecombie等等函数,单调双返回,返回的虚拟地址给CPU,物理地址给DMA……
页: [1]
查看完整版本: frame buffer驱动问题