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, ...
随机推荐
- 辛星浅析raid
我们来分析一下影响计算机性能的主要组件,主要就是CPU.主板的总线IO.内存IO.硬盘IO.网卡IO等等,并且如今CPU的性能已经非常好了,可是计算机的总体的IO性能却较低,严重影响了计算机的性能,如 ...
- angular - 配置package.json -3
package.json 包含了所有的开发包以及全局包以及其它项目信息,我们这个项目需要用到 bootstrap,所以我们添加信息. 添加包信息以后,我们用 npm install 安装,npm包管理 ...
- 2.Qt Creator的使用
下面以一个简单的程序来说明Qt Creator的使用: 首先,按图片步骤创建一个Qt项目 创建完成后 上图标记处工具栏提供了简化树形视图.分栏等功能(自行尝试吧...) 在使用Qt制作一个界面时,我们 ...
- ruby on rails模拟HTTP请求错误发生:end of file reached
在文章 Ruby On Rails中REST API使用演示样例--基于云平台+云服务打造自己的在线翻译工具 中,利用ruby的Net::HTTP发起http请求訪问IBM Bluemix上的sour ...
- kubernetes调度之资源配额
系列目录 当多个用户或者开发团队共享一个有固定节点的的kubernetes集群时,一个团队或者一个用户使用的资源超过他应当使用的资源是需要关注的问题,资源配额是管理员用来解决这个问题的一个工具. 资源 ...
- 机器学习资源汇总----来自于tensorflow中文社区
新手入门完整教程进阶指南 API中文手册精华文章TF社区 INTRODUCTION 1. 新手入门 1.1. 介绍 1.2. 下载及安装 1.3. 基本用法 2. 完整教程 2.1. 总览 2.2. ...
- Linux内核RCU(Read Copy Update)锁简析
在非常早曾经,大概是2009年的时候.写过一篇关于Linux RCU锁的文章<RCU锁在linux内核的演变>,如今我承认.那个时候我尽管懂了RCU锁,可是我没有能力用一种非常easy的描 ...
- iOS UILabel文字缩进
使用NSMutableParagraphStyle实现label文字首尾的缩进 NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphSty ...
- 【BZOJ2111】[ZJOI2010]Perm 排列计数 组合数
[BZOJ2111][ZJOI2010]Perm 排列计数 Description 称一个1,2,...,N的排列P1,P2...,Pn是Magic的,当且仅当2<=i<=N时,Pi> ...
- EasyPlayer实现视频播放局部缩放、广角平移功能(类似水滴直播,快手视频)
本文转自:http://blog.csdn.net/jyt0551/article/details/56063869 视频播放局部缩放.广角平移功能 在预览图片的时候,利用手势控制图片的缩放.平移,已 ...