Em Fri, 3 Jul 2009 20:35:08 +0200 (CEST) Guennadi Liakhovetski <g.liakhovetski@xxxxxx> escreveu: > (re-adding the mailing list) > > On Fri, 3 Jul 2009, Wally wrote: > > > Hello Guennadi, hello Mauro > > > > that's means i have to wait > > or is there a workaround or something else i can do for now ? > > you can either wait, or hack the mt9m001 driver to work for you, or help > with development. The change at em28xx for it should be trivial. The enclosed patch should provide the mt9v001 glue, once having it ported to v4l2 dev/subdev. You'll need to use this patch _and_ the v4l dev/subdev version of mt9m001 driver. Change Huaqi to use mt9m001 driver. Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> diff --git a/linux/drivers/media/video/em28xx/em28xx-cards.c b/linux/drivers/media/video/em28xx/em28xx-cards.c --- a/linux/drivers/media/video/em28xx/em28xx-cards.c +++ b/linux/drivers/media/video/em28xx/em28xx-cards.c @@ -512,8 +512,9 @@ struct em28xx_board em28xx_boards[] = { [EM2860_BOARD_NETGMBH_CAM] = { /* Beijing Huaqi Information Digital Technology Co., Ltd */ .name = "NetGMBH Cam", - .valid = EM28XX_BOARD_NOT_VALIDATED, - .tuner_type = TUNER_ABSENT, /* This is a webcam */ + .tuner_type = TUNER_ABSENT, + .is_27xx = 1, + .decoder = EM28XX_MT9M001, .input = { { .type = EM28XX_VMUX_COMPOSITE1, .vmux = 0, @@ -1804,6 +1805,12 @@ static int em28xx_hint_sensor(struct em2 dev->model = EM2820_BOARD_SILVERCREST_WEBCAM; sensor_name = "mt9v011"; break; + case 0x8411: + case 0x8421: + case 0x8431: + dev->model = EM2750_BOARD_DLCW_130; + sensor_name = "mt9m001"; + break; default: printk("Unknown Sensor 0x%04x\n", be16_to_cpu(version)); return -EINVAL; @@ -2371,6 +2378,10 @@ void em28xx_card_setup(struct em28xx *de v4l2_i2c_new_probed_subdev(&dev->v4l2_dev, &dev->i2c_adap, "mt9v011", "mt9v011", mt9v011_addrs); + if (dev->board.decoder == EM28XX_MT9M001) + v4l2_i2c_new_probed_subdev(&dev->v4l2_dev, &dev->i2c_adap, + "mt9m001", "mt9m001", mt9v011_addrs); + if (dev->board.adecoder == EM28XX_TVAUDIO) v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap, "tvaudio", "tvaudio", dev->board.tvaudio_addr); diff --git a/linux/drivers/media/video/em28xx/em28xx.h b/linux/drivers/media/video/em28xx/em28xx.h --- a/linux/drivers/media/video/em28xx/em28xx.h +++ b/linux/drivers/media/video/em28xx/em28xx.h @@ -363,6 +363,7 @@ enum em28xx_decoder { EM28XX_TVP5150, EM28XX_SAA711X, EM28XX_MT9V011, + EM28XX_MT9M001, }; enum em28xx_adecoder { Cheers, Mauro -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html