MTK摄像头Android驱动新版本升级指南


MTK摄像头的驱动包含有kernel部分和hal层2个部分,在Android版本升级之后,内核版本也进行了升级,在旧版本往新版本移植的过程中,要注意以下几个部分:

公共部分的修改:

1、 注释掉log 输出的头文件,在kernel的驱动中找到:

#include <linux/xlog.h>

改为:

//#include <linux/xlog.h>

2、 删除只定义而没有使用的变量,新版本的gcc对定义未使用的变量会报错,导致编译失败。

3、 修正log中打印的参数个数和格式输出不匹配,新版本的gcc会检查此部分内容。

4、 删除值定义而未使用的函数, 若函数只是定义了,而没有其他地方调用,请注释或删除掉。

5、 函数的形参不能会空,若函数没有带入形参,请设定为void 。

6、 修正log 中打印的参数和格式输出的类型不匹配,如:定义的变量为longlong 型,则输出格式也要设定为longlong 型,使用”%lld”表示。

以上部分为新版本的kernel进行驱动移植时候都会遇到的问题,下面是MTK平台的一些修改:

Kernel部分:

1、 上电文件的位置更改,driver中包含的上电文件头文件需要修改:

#include "kd_camera_hw.h"

改为:

#include "kd_camera_typedef.h"

上电文件位置变更为:M0\kernel-3.10\drivers\misc\mediatek\imgsensor\src\$flatform\camera_hw

2、 kd_imgsensor.h 头文件的位置新增了:M0\device\mediatek\common\kernel-headers\kd_imgsensor.h

3、 log 输出函数修改,kernel 中的log输出不使用printk 函数时,可以修改定义成如下:

原有的:

 #define LOG_INF(format, args...)    xlog_printk(ANDROID_LOG_INFO, PFX, "[%s] " format, __FUNCTION__, ##args)

改为:

#define LOG_INF(format, args...)	pr_debug(PFX "[%s] " format, __func__, ##args)

HAL部分:

1、 tuning 参数部分没有变化,可以直接使用原来的tuning 参数。

2、 camera_flicker_para_xxxxx_raw.cpp文件修改打印部分的宏和打印信息,具体如下:

修改:

#include <cutils/xlog.h> 

为:

//#include <cutils/xlog.h>

注释掉所有:XLOGD的打印信息。

3、 修改feature table config.ftbl.xxx.h 文件,将:FTABLE_CONFIG_AS_TYPE_OF_USER 的 ITEM_AS_DEFAULT_ 的(“30000,30000”), 修改为:(“5000,30000”),防止固定30fps导致的预览亮度不足。

通过上述的部分修改,早期的摄像头驱动,也可以在新系统上正常使用。

新添加请参考:MTK平台新增摄像头指南

版权所有丨如未注明,均为原创,转载请注明转自:https://whonee.net/mtk-senser-driver-for-android-update-instruction.html

《MTK摄像头Android驱动新版本升级指南》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注