免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1740 | 回复: 2
打印 上一主题 下一主题

[驱动] 原本把LCD编译进内核的,现在单独把lcd编译成module,求解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-07 11:48 |只看该作者 |倒序浏览
[root@ewell ~]$ insmod  ak37fb_drv.ko 
lcd probe id = 0x5180, and device id = 0x5180
match lcd, id = 0x5180
ak37-lcd ak37-lcd: alloc framebuffer 261120 bytes.
ak37-lcd: probe of ak37-lcd failed with error -1
[root@ewell ~]$

我的做法是修改内核driver/video里的makefile  把里面的obj -y  改成obj -m 来编译成module。如上面,驱动是ak37fb_drv.ko,但是这样手动加载时出现上述问题。

这方面没经验,不知所措。。。

  平台相关的lcddevice的注册已经添加上去。

论坛徽章:
0
2 [报告]
发表于 2014-06-07 14:07 |只看该作者
如此无助:跟踪进去,通过printk打印,确定dma_alloc_writecombine调用失败。

论坛徽章:
0
3 [报告]
发表于 2014-06-11 15:38 |只看该作者
哎,没想到是自己来盖楼。。。。。。。。。。。。。。。。
小弟解决了,问题是缓冲区不够大,作为内核菜鸟,谷歌参考文章(奶奶的,这几天谷歌被墙的太厉害了)。办法是修改:dma_alloc_writecombine申请内存空间大小的限制。
找到<mach/memory.h>文件arch/arm/mach-xxx/include/mach/memory.h,在其中添加CONSISTENT_DMA_SIZE的定义即可,如:
#define CONSISTENT_DMA_SIZE SZ_4M
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP