MTK HDMI 流程
一、HDMI初始化
1. kernel-3.18/drivers/misc/mediatek/ext_disp/mtk_extd_mgr.c
static int __init mtk_extd_mgr_init(void)
{
int i = ;
int ret = ;
/* struct notifier_block notifier;*/ EXT_MGR_FUNC(); extd_driver[DEV_MHL] = EXTD_HDMI_Driver();
extd_driver[DEV_EINK] = EXTD_EPD_Driver();
extd_factory_driver[DEV_MHL] = EXTD_Factory_HDMI_Driver(); for (i = DEV_MHL; i < DEV_MAX_NUM - ; i++) {
if (extd_driver[i]->init)
extd_driver[i]->init();
} if (platform_driver_register(&external_display_driver)) {//注册external_display_driver驱动程序
EXT_MGR_ERR("failed to register mtkfb driver\n");
return -;
} notifier.notifier_call = fb_notifier_callback;
ret = fb_register_client(¬ifier);
if (ret)
EXT_MGR_ERR("unable to register fb callback!\n"); #ifdef CONFIG_HAS_EARLYSUSPEND
register_early_suspend(&extd_early_suspend_handler);
#endif
return ;
}
2. kernel-3.18/drivers/misc/mediatek/ext_disp/extd_hdmi.c
int hdmi_init(void)
{
int ret = ; HDMI_ERR(" start\n");
/* for support hdmi hotplug, inform AP the event */
hdmi_switch_data.name = "hdmi";
hdmi_switch_data.index = ;
hdmi_switch_data.state = HDMI_STATE_NO_DEVICE;
ret = switch_dev_register(&hdmi_switch_data); if (ret)
HDMI_ERR("[hdmi][HDMI]switch_dev_register failed, returned:%d!\n", ret); hdmires_switch_data.name = "res_hdmi";
hdmires_switch_data.index = ;
hdmires_switch_data.state = ;
ret = switch_dev_register(&hdmires_switch_data); if (ret)
HDMI_ERR("[hdmi][HDMI]switch_dev_register failed, returned:%d!\n", ret);
HDMI_ERR(" done\n");
return ;
}
3. kernel-3.18/drivers/misc/mediatek/ext_disp/mtk_extd_mgr.c
static int mtk_extd_mgr_probe(struct platform_device *pdev)
{
int ret = ;
int i = ;
struct class_device *class_dev = NULL; EXT_MGR_FUNC(); /* Allocate device number for hdmi driver */
ret = alloc_chrdev_region(&extd_devno, , , EXTD_DEVNAME); if (ret) {
EXT_MGR_LOG("alloc_chrdev_region fail\n");
return -;
} /* For character driver register to system, device number binded to file operations */
extd_cdev = cdev_alloc();
extd_cdev->owner = THIS_MODULE;
extd_cdev->ops = &external_display_fops;
ret = cdev_add(extd_cdev, extd_devno, ); /* For device number binded to device name(hdmitx), one class is corresponeded to one node */
extd_class = class_create(THIS_MODULE, EXTD_DEVNAME);
/* mknod /dev/hdmitx */
class_dev = (struct class_device *)device_create(extd_class, NULL, extd_devno, NULL, EXTD_DEVNAME);
ext_dev_context = (struct device *)&(pdev->dev); for (i = DEV_MHL; i < DEV_MAX_NUM - ; i++) {
if (extd_driver[i]->post_init != )
extd_driver[i]->post_init();
} EXT_MGR_LOG("[%s] out\n", __func__);
return ;
}
MTK HDMI 流程的更多相关文章
- MTK touchscreen 流程
1. kernel-3.18/drivers/input/touchscreen/mediatek/tpd_common_probe.c static int __init tpd_probe_ini ...
- MTK OTG 流程
一.注册mt_usb驱动 kernel-3.18/drivers/misc/mediatek/usb20/mt6735/usb20.c static int __init usb20_init(voi ...
- android MTK驱动背光唤醒流程
在标准的android驱动中,睡眠唤醒流程非常清晰,能够较方便的更改lcd唤醒时间和led背光的点亮时间,但是也很容易出现问题,比如说闪屏,唤醒慢! 出现闪屏有两个原因 1. 开背光时间在唤醒lcd前 ...
- MTK Camera 开机启动流程(转载)
一.MTK平台Camera框架 MTK平台的Camera的架构见下图, 这里主要介绍kernel部分和HAL层部分. 1.Kernel 部分主要有两块: 1.1.image sensordriver, ...
- HDMI介绍与流程
HDMI接口 http://baike.c114.net/view.asp?id=17671-21565442 DDC(Display Data Channel)通道用于HDMI发送和接收端之间交换一 ...
- andorid之摄像头驱动流程--MTK平台
原文地址:andorid之摄像头驱动流程--MTK平台 作者:守候心田 camera成像原理: 景物通过镜头生产光学图像投射到sensor表面上,然后转为模拟电信号,经过数模变成数字图像信号,在经过D ...
- 【转】 HDMI介绍与流程
转自:https://www.cnblogs.com/TaigaCon/p/3840653.html HDMI,全称为(High Definition Multimedia Interface)高清多 ...
- 居于mtk芯片安卓车机系统具体流程
一:车机系统框架 MCU 功能 电源控制 Radio 控制(RDS) 按键检测(Panel/Remote/SW) 常见信号检查(倒车/大灯/刹车) CAN 模块通讯 ARM- ...
- 转:HDMI介绍与流程
HDMI介绍与流程 HDMI,全称为(High Definition Multimedia Interface)高清多媒体接口,主要用于传输高清音视频信号. HDMI引脚: HDMI有A,B,C, ...
随机推荐
- Naive Bayesian文本分类器
贝叶斯学习方法中有用性非常高的一种为朴素贝叶斯学习期,常被称为朴素贝叶斯分类器. 在某些领域中与神经网络和决策树学习相当.尽管朴素贝叶斯分类器忽略单词间的依赖关系.即如果全部单词是条件独立的,但朴素贝 ...
- python 图像识别转文字
rom PIL import Image import pytesseract #上面都是导包,只需要下面这一行就能实现图片文字识别 #text=pytesseract.image_to_string ...
- Toolbar的使用.md
1.什么是Toolbar Toolbar是在Android5.0时出现的一个新控件,其目的用于取代Actionbar,它与Actionbar最大的差别就是Toolbar使用更加灵活.自由,而且Tool ...
- 【足迹C++primer】39、动态内存与智能指针(3)
动态内存与智能指针(3) /** * 功能:动态内存与智能指针 * 时间:2014年7月8日15:33:58 * 作者:cutter_point */ #include<iostream> ...
- jquery的一点点认识
概述 JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 .它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, O ...
- UVA 610 - Street Directions(割边)
UVA 610 - Street Directions option=com_onlinejudge&Itemid=8&page=show_problem&category=5 ...
- 转:学习linux驱动经典书籍
Linux驱动学习的最大困惑在于书籍的缺乏,市面上最常见的书为<linux_device_driver 3rd Edition>,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本 ...
- Android------Intent.createChooser
Intent的匹配过程中有三个步骤,包含Action , category与data 的匹配. 假设匹配出了多个结果.系统会显示一个dialog让用户来选 择.例如以下图: 那么今天我们主要是解 ...
- css实现轮播效果图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- kubernetes对象之secrets
系列目录 Secrets是Kubernetes中一种对象类型,用来保存密码.私钥.口令等敏感信息.与直接将敏感信息嵌入image.pod相比,Secrets更安全.更灵活,用户对敏感信息的控制力更强. ...