2013년 7월 10일 수요일

[Android] [S5PV310 Mango310] TV5150 드라이버 포팅 (Android ICS404 버전 )



http://cafe.naver.com/embeddedcrazyboys
http://www.mangoboard.com/



Mango310 Community > Downloads > Mango310
[Android] [S5PV310 Mango310] TV5150 드라이버 포팅 (Android ICS404 버전 ) 2013-07-11
첨부파일 : diff_m310_ics404_tvp5150-patch.zip
커널 버전 : 3.0.15
base 소스 :
에서 소스를 받은 후 kernel 소스를 수정하면 됩니다.
diff 파일 첨부합니다.
링크 (http://cafe.naver.com/embeddedcrazyboys/29922 )

(망고310 ) AndroidICS , kernel 3.0.15 버전에 tvp5150 포팅 가이드
[ 37.807081] acc_open
[ 37.807120] acc_release
[ 39.998594] mtp_open
[ 50.286769] s3c-fimc-0 : FIMC0 1 opened.
[ 50.306055] tvp5150 0-005c: chip found @ 0xb8 (s3c2410-i2c)
[ 50.306538] CRZ tvp5150_port_a_power_en() onoff=1
[ 50.750201] tvp5150 0-005c: tvp5150am1 detected.
[ 50.887991] Mali: M200: HW/SW Watchdog triggered, checking for progressin 500 ms
[ 51.060206] tvp5150 0-005c: tvp5150am1 detected.
[ 51.220285] s3c-fimc-2 : FIMC2 1 opened.
[ 51.450186] tvp5150 0-005c: tvp5150am1 detected.
[ 51.680230] s3c-fimc-0 : fimc_s_fmt_vid_private: fail to s_mbus_fmt
[ 51.683136] s3c-fimc s3c-fimc.0: fimc_streamon_capture: s_stream failed
위의 문제는
static const struct v4l2_subdev_video_opstvp5150_video_ops = {
.s_routing= tvp5150_s_routing,
.s_mbus_fmt = tvp5150_s_fmt,
.s_parm= tvp5150_s_parm,
.enum_framesizes= tvp5150_enum_framesizes,
};
수정하면 해결이 됩니다.
[ 34.041390] s3c-fimc-0 : FIMC0 1 opened.
[ 34.042724] tvp5150 0-005c: chip found @ 0xb8 (s3c2410-i2c)
[ 34.045709] CRZ tvp5150_port_a_power_en() onoff=1
[ 34.360136] tvp5150 0-005c: *** unknown tvp8081 chip detected.
[ 34.360324] tvp5150 0-005c: *** Rom ver is 130.131
[ 34.391920] Mali: M200: HW/SW Watchdog triggered, checking for progressin 500 ms
[ 34.450120] tvp5150 0-005c: *** unknown tvp8081 chip detected.
[ 34.450306] tvp5150 0-005c: *** Rom ver is 130.131
[ 34.481211] s3c-fimc-2 : FIMC2 1 opened.
[ 35.060114] tvp5150 0-005c: *** unknown tvp8081 chip detected.
[ 35.060296] tvp5150 0-005c: *** Rom ver is 130.131
[ 35.096090] other type
[ 35.098410] s3c-fimc s3c-fimc.0: fimc_streamon_capture: s_stream failed
위의 에러는 아래와 같이 처리하면 됩니다.
//by crazyboy
tvp5150.c 파일에서
static inttvp5150_s_stream(struct v4l2_subdev *sd, int enable) {
struct i2c_client *client = v4l2_get_subdevdata(sd);
int err=0;
printk("CRZ %s(%d) \n", __func__, enable);
switch (enable) {
case STREAM_MODE_CAM_ON:
printk("%s STREAM_MODE_CAM_ON\n",__func__);
break;
case STREAM_MODE_CAM_OFF:
//initialized=0;
printk("%s STREAM_MODE_CAM_OFF\n",__func__);
break;
default:
break;
}
return err;
}
static conststruct v4l2_subdev_video_ops tvp5150_video_ops = {
.s_routing = tvp5150_s_routing,
//.s_fmt = tvp5150_s_fmt,
.s_mbus_fmt = tvp5150_s_fmt,
.s_parm = tvp5150_s_parm,
.enum_framesizes = tvp5150_enum_framesizes,
.s_stream = tvp5150_s_stream,//by crazyboy
};
하면 preview 됩니다

댓글 없음:

댓글 쓰기