一、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(&notifier);
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 流程的更多相关文章

  1. MTK touchscreen 流程

    1. kernel-3.18/drivers/input/touchscreen/mediatek/tpd_common_probe.c static int __init tpd_probe_ini ...

  2. MTK OTG 流程

    一.注册mt_usb驱动 kernel-3.18/drivers/misc/mediatek/usb20/mt6735/usb20.c static int __init usb20_init(voi ...

  3. android MTK驱动背光唤醒流程

    在标准的android驱动中,睡眠唤醒流程非常清晰,能够较方便的更改lcd唤醒时间和led背光的点亮时间,但是也很容易出现问题,比如说闪屏,唤醒慢! 出现闪屏有两个原因 1. 开背光时间在唤醒lcd前 ...

  4. MTK Camera 开机启动流程(转载)

    一.MTK平台Camera框架 MTK平台的Camera的架构见下图, 这里主要介绍kernel部分和HAL层部分. 1.Kernel 部分主要有两块: 1.1.image sensordriver, ...

  5. HDMI介绍与流程

    HDMI接口 http://baike.c114.net/view.asp?id=17671-21565442 DDC(Display Data Channel)通道用于HDMI发送和接收端之间交换一 ...

  6. andorid之摄像头驱动流程--MTK平台

    原文地址:andorid之摄像头驱动流程--MTK平台 作者:守候心田 camera成像原理: 景物通过镜头生产光学图像投射到sensor表面上,然后转为模拟电信号,经过数模变成数字图像信号,在经过D ...

  7. 【转】 HDMI介绍与流程

    转自:https://www.cnblogs.com/TaigaCon/p/3840653.html HDMI,全称为(High Definition Multimedia Interface)高清多 ...

  8. 居于mtk芯片安卓车机系统具体流程

    一:车机系统框架  MCU 功能  电源控制  Radio 控制(RDS)  按键检测(Panel/Remote/SW)  常见信号检查(倒车/大灯/刹车)  CAN 模块通讯  ARM- ...

  9. 转:HDMI介绍与流程

    HDMI介绍与流程   HDMI,全称为(High Definition Multimedia Interface)高清多媒体接口,主要用于传输高清音视频信号. HDMI引脚: HDMI有A,B,C, ...

随机推荐

  1. 何时才使用https访问项目

    利用keytools生产证书,然后将证书导入到jvm和tomcat中,则访问该项目的时候就以https访问

  2. 微信小程序制作商 业务流程

  3. 合并SO为单独交货单

    本场景为单步交货     为客户建立专用的route.     增加一个pull rule         在做订单的时候,为订单行选择 上面建立好的route,     连续建立了 2个 订单 SO ...

  4. 关于C++ 命名空间Namespace 的解析

    使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突.在C++中,变量.函数和类都是大量存在的.如果没有命名空间,这些变量.函数.类的名称将都存在于全局命名空间中,会导致很多冲突.比如,如果我 ...

  5. What is the relationship between Xcode, Swift and Cocoa?

    Xcode is an IDE for developing Swift or Objective-C applications, which can use the Cocoa API (which ...

  6. leetCode 104.Maximum Depth of Binary Tree(二叉树最大深度) 解题思路和方法

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...

  7. NYOJ 116 士兵杀敌(二)【线段树 单点更新】

    题意:题意非常清楚: 策略:如题. 这道题就是简单的线段树应用,据说还能够用树状数组来做,等我学了之后在说吧. 代码: #include<stdio.h> #include<stri ...

  8. C#XML的序列化与反序列化

    要序列化的对象的类: [Serializable]public class Person{private string name;public string Name{get{return name; ...

  9. CSS入门学习

    一.What? CSS的全称是CascadingStyle Sheet,汉语意思是"级联样式表".通常又称为"风格样式表(StyleSheet)".它是用来进行 ...

  10. 通过Pojo对象 field 属性加注解实现格式校验,极大的降低代码量

    近期做一个接口.接受外系统的报文,通过XStream转换成java对象以后.须要对当中的字段做格式校验. 要求例如以下: 传统的方式是硬编码校验.可是对于field非常多的情况.代码量暴增.easy出 ...