免费注册 查看新帖 |

Chinaunix

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

register_framebuffer的问题,急死了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-13 10:37 |只看该作者 |倒序浏览
在register_framebuffer中有一个fb_notifier_call_chain函数,进去后系统就一直挂着了,好像在等什么东西,这个fb_notifier_call_chain函数是干嘛的,有可能问题出在哪里,哪位大哥知道的帮忙指点一下,我的内核是2.6.23,板子是2410的。

论坛徽章:
0
2 [报告]
发表于 2012-11-28 13:58 |只看该作者
3年前的问题,呵呵,
现在回答虽然有点太迟了。
但希望能对后来人有帮助。

fb_notifier_call_chain 函数是用来通知 挂在 fb_notifier_chain(姑且称作 fb 链)上的设备的。
当fb有什么动作,比如blank,unblank时, 挂在fb链上的设备可能要根据fb的动作做出反应,比如blank时, 背光设备就可以关闭了免得浪费,
那么fb就可以通过这个call_chain函数,告诉背光设备自己要blank了(通过参数区别开动作),然后背光设备自己做出反应自己关闭了,但前提是背光设备要先在这个fb链上注册自己。

一般在这个fb链上注册的设备有 背光, lcd, 等。

论坛徽章:
0
3 [报告]
发表于 2013-05-19 01:10 |只看该作者
虽然帖在很早了,我也想问同样一个问题。

register_framebuffer()时,表面上会hang 在fb_notifier_call_chain()这里,最终hang vt.c   take_over_console()  
int take_over_console(const struct consw *csw, int first, int last, int deflt)
{
        int err;

        err = register_con_driver(csw, first, last);
        /* if we get an busy error we still want to bind the console driver
         * and return success, as we may have unbound the console driver
        聽* but not unregistered it.
        */
        if (err == -EBUSY)
                err = 0;
        if (!err)
                bind_con_driver(csw, first, last, deflt);

        return err;
}

因为bind_con_driver() 拿不到名为console_sem 的semaphore 。

做过如下测试:
1.bind_con_driver() 之前名为console_sem 的semaphore 是可以获取的。  

论坛徽章:
0
4 [报告]
发表于 2015-06-13 22:57 |只看该作者
回复 3# 孤行者_cuit

呀呀,今天使用sd1289控制器的屏时也遇到了同样的问题,请问大侠是怎么解决的?

   

论坛徽章:
0
5 [报告]
发表于 2015-06-13 22:58 |只看该作者
回复 1# hwa_super


   今天使用sd1289控制器的屏时也遇到了同样的问题,一模一样的错误,请问大侠是怎么解决的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP