Hi Davor,

Am Montag, den 31.05.2010, 01:48 +0200 schrieb Davor Emard:
> HI!
> 
> I have downloaded latest hg v4l and adapted the compro 
> t750f support patch. The patch is the same but v4l code is
> newer so there's some improvement
> 
> Restarting VDR is now stable. Tried it cca 10x VDR restarts, 
> DVB-T tuner always worked. Remote still has 10% keys lost.
> 
> ALSA device now appears with alsa=1 in the list
> arecord -l (but I haven't tried to capture anything yet)
> 
> Someone mentioned that MCE-alike remote is the same to all 
> f-series of the cards so I called it rc-videomate-f.
> 
> Here's the patch

likely one of the most difficult cards on that driver during the last
time.

Does't look such bad to me, after all, without having one.

Hmm, somehow its #define in the saa7134.h header is missing?

I'm also wondering, why we don't see the usual three lines offset on the
end of current patches.

Cheers,
Hermann


> diff -r 304cfde05b3f linux/drivers/media/IR/keymaps/Makefile
> --- a/linux/drivers/media/IR/keymaps/Makefile Tue May 25 23:50:51 2010 -0400
> +++ b/linux/drivers/media/IR/keymaps/Makefile Mon May 31 01:18:12 2010 +0200
> @@ -63,5 +63,6 @@
>                       rc-tt-1500.o \
>                       rc-videomate-s350.o \
>                       rc-videomate-tv-pvr.o \
> +                     rc-videomate-f.o \
>                       rc-winfast.o \
>                       rc-winfast-usbii-deluxe.o
> diff -r 304cfde05b3f linux/drivers/media/video/saa7134/saa7134-cards.c
> --- a/linux/drivers/media/video/saa7134/saa7134-cards.c       Tue May 25 
> 23:50:51 2010 -0400
> +++ b/linux/drivers/media/video/saa7134/saa7134-cards.c       Mon May 31 
> 01:18:12 2010 +0200
> @@ -4920,12 +4920,14 @@
>       },
>       [SAA7134_BOARD_VIDEOMATE_T750] = {
>               /* John Newbigin <j...@it.swin.edu.au> */
> +             /* Emard 2010-05-10 v18-v4l <davorem...@gmail.com> */
>               .name           = "Compro VideoMate T750",
>               .audio_clock    = 0x00187de7,
>               .tuner_type     = TUNER_XC2028,
>               .radio_type     = UNSET,
> -             .tuner_addr     = ADDR_UNSET,
> +             .tuner_addr     = 0x61,
>               .radio_addr     = ADDR_UNSET,
> +             .mpeg           = SAA7134_MPEG_DVB,
>               .inputs = {{
>                       .name   = name_tv,
>                       .vmux   = 3,
> @@ -6752,6 +6754,11 @@
>                       msleep(10);
>                       saa7134_set_gpio(dev, 18, 1);
>               break;
> +             case SAA7134_BOARD_VIDEOMATE_T750:
> +                     saa7134_set_gpio(dev, 20, 0);
> +                     msleep(10);
> +                     saa7134_set_gpio(dev, 20, 1);
> +             break;
>               }
>       return 0;
>       }
> @@ -7171,6 +7178,11 @@
>               saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x0000C000, 0x0000C000);
>               saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0000C000, 0x0000C000);
>               break;
> +     case SAA7134_BOARD_VIDEOMATE_T750:
> +             dev->has_remote = SAA7134_REMOTE_GPIO;
> +             saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00008000, 0x00008000);
> +             saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
> +             break;
>       }
>       return 0;
>  }
> diff -r 304cfde05b3f linux/drivers/media/video/saa7134/saa7134-dvb.c
> --- a/linux/drivers/media/video/saa7134/saa7134-dvb.c Tue May 25 23:50:51 
> 2010 -0400
> +++ b/linux/drivers/media/video/saa7134/saa7134-dvb.c Mon May 31 01:18:12 
> 2010 +0200
> @@ -55,6 +55,7 @@
>  #include "tda8290.h"
>  
>  #include "zl10353.h"
> +#include "qt1010.h"
>  
>  #include "zl10036.h"
>  #include "zl10039.h"
> @@ -886,6 +887,17 @@
>       .disable_i2c_gate_ctrl = 1,
>  };
>  
> +static struct zl10353_config videomate_t750_zl10353_config = {
> +     .demod_address  = 0x0f,
> +     .no_tuner = 1,
> +     .parallel_ts = 1,
> +};
> +
> +static struct qt1010_config videomate_t750_qt1010_config = {
> +     .i2c_address = 0x62
> +};
> +
> +
>  /* ==================================================================
>   * tda10086 based DVB-S cards, helper functions
>   */
> @@ -1569,6 +1581,21 @@
>                                       __func__);
>  
>               break;
> +     case SAA7134_BOARD_VIDEOMATE_T750:
> +             printk("Compro VideoMate T750 DVB setup\n");
> +             fe0->dvb.frontend = dvb_attach(zl10353_attach,
> +                                             &videomate_t750_zl10353_config,
> +                                             &dev->i2c_adap);
> +             if (fe0->dvb.frontend != NULL) {
> +                     // if there is a gate function then the i2c bus 
> breaks.....!
> +                     fe0->dvb.frontend->ops.i2c_gate_ctrl = 0;
> +                     if (dvb_attach(qt1010_attach,
> +                                     fe0->dvb.frontend,
> +                                     &dev->i2c_adap,
> +                                     &videomate_t750_qt1010_config) == NULL)
> +                             wprintk("error attaching QT1010\n");
> +             }
> +             break;
>       case SAA7134_BOARD_ZOLID_HYBRID_PCI:
>               fe0->dvb.frontend = dvb_attach(tda10048_attach,
>                                              &zolid_tda10048_config,
> diff -r 304cfde05b3f linux/drivers/media/video/saa7134/saa7134-input.c
> --- a/linux/drivers/media/video/saa7134/saa7134-input.c       Tue May 25 
> 23:50:51 2010 -0400
> +++ b/linux/drivers/media/video/saa7134/saa7134-input.c       Mon May 31 
> 01:18:12 2010 +0200
> @@ -865,6 +865,11 @@
>               mask_keycode = 0x003f00;
>               mask_keydown = 0x040000;
>               break;
> +     case SAA7134_BOARD_VIDEOMATE_T750:
> +             ir_codes     = RC_MAP_VIDEOMATE_F;
> +             mask_keycode = 0x003f00;
> +             mask_keyup   = 0x040000;
> +             break;
>       case SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S:
>               ir_codes     = RC_MAP_WINFAST;
>               mask_keycode = 0x5f00;
> diff -r 304cfde05b3f linux/include/media/rc-map.h
> --- a/linux/include/media/rc-map.h    Tue May 25 23:50:51 2010 -0400
> +++ b/linux/include/media/rc-map.h    Mon May 31 01:18:12 2010 +0200
> @@ -113,6 +113,7 @@
>  #define RC_MAP_TT_1500                   "rc-tt-1500"
>  #define RC_MAP_VIDEOMATE_S350            "rc-videomate-s350"
>  #define RC_MAP_VIDEOMATE_TV_PVR          "rc-videomate-tv-pvr"
> +#define RC_MAP_VIDEOMATE_F               "rc-videomate-f"
>  #define RC_MAP_WINFAST                   "rc-winfast"
>  #define RC_MAP_WINFAST_USBII_DELUXE      "rc-winfast-usbii-deluxe"
>  /*
> --- v4l-dvb/linux/drivers/media/IR/keymaps/rc-videomate-f.c.orig      
> 2010-05-31 01:31:03.000000000 +0200
> +++ v4l-dvb/linux/drivers/media/IR/keymaps/rc-videomate-f.c   2010-05-31 
> 00:54:31.000000000 +0200
> @@ -0,0 +1,119 @@
> +/* videomate-f.h - Keytable for videomate f series Remote Controller
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +
> +#include <media/rc-map.h>
> +
> +/*
> +Compro videomate vista T750F remote
> +-----------------------------------
> +Emard 2010-05-09 <davorem...@gmail.com>
> +                                            POWER
> +VIDEO           RADIO       AUDIO          CAMERA 
> +PVR             EPG         TV      DVD  SUBTITLE
> +
> +                      UP
> +                 LEFT OK RIGHT
> +                     DOWN
> +
> +BACK                 MENU                    INFO
> +
> +VOLUMEUP                                CHANNELUP
> +                     MUTE
> +VOLUMEDOWN                            CHANNELDOWN
> +
> +RECORD                                       STOP
> +REWIND               PLAY             FASTFORWARD
> +PREVIOUSSONG       PLAYPAUSE             NEXTSONG
> +
> +NUMERIC_1          NUMERIC_2         NUMERIC_3
> +NUMERIC_4          NUMERIC_5         NUMERIC_6
> +NUMERIC_7          NUMERIC_8         NUMERIC_9
> +NUMERIC_STAR       NUMERIC_0         NUMERIC_POUND
> +
> +CLEAR                ZOOM                 ENTER
> +
> +RED      GREEN      YELLOW     BLUE        TEXT
> +*/
> +static struct ir_scancode videomate_f[] = {
> +     { 0x01, KEY_POWER},
> +     { 0x31, KEY_VIDEO},
> +     { 0x33, KEY_RADIO},
> +     { 0x2f, KEY_AUDIO},
> +     { 0x30, KEY_CAMERA}, /* pictures */
> +     { 0x2d, KEY_PVR},    /* Recordings */
> +     {   23, KEY_EPG},
> +     {   44, KEY_TV},
> +     {   43, KEY_DVD},
> +     { 0x32, KEY_SUBTITLE},
> +     {   17, KEY_UP},
> +     {   19, KEY_LEFT},
> +     {   21, KEY_OK},
> +     {   20, KEY_RIGHT},
> +     {   18, KEY_DOWN},
> +     {   22, KEY_BACK},
> +     { 0x02, KEY_MENU},
> +     { 0x04, KEY_INFO},
> +     { 0x05, KEY_VOLUMEUP},
> +     { 0x06, KEY_VOLUMEDOWN},
> +     { 0x03, KEY_MUTE},
> +     { 0x07, KEY_CHANNELUP},
> +     { 0x08, KEY_CHANNELDOWN},
> +     { 0x0c, KEY_RECORD},
> +     { 0x0e, KEY_STOP},
> +     { 0x0a, KEY_REWIND},
> +     { 0x0b, KEY_PLAY},
> +     { 0x09, KEY_FASTFORWARD},
> +     { 0x10, KEY_PREVIOUSSONG},
> +     { 0x0d, KEY_PLAYPAUSE},
> +     { 0x0f, KEY_NEXTSONG},
> +     {   30, KEY_NUMERIC_1},
> +     { 0x1f, KEY_NUMERIC_2},
> +     { 0x20, KEY_NUMERIC_3},
> +     { 0x21, KEY_NUMERIC_4},
> +     { 0x22, KEY_NUMERIC_5},
> +     { 0x23, KEY_NUMERIC_6},
> +     { 0x24, KEY_NUMERIC_7},
> +     { 0x25, KEY_NUMERIC_8},
> +     { 0x26, KEY_NUMERIC_9},
> +     { 0x2a, KEY_NUMERIC_STAR},
> +     {   29, KEY_NUMERIC_0},
> +     {   41, KEY_NUMERIC_POUND},
> +     {   39, KEY_CLEAR},
> +     { 0x34, KEY_ZOOM},
> +     { 0x28, KEY_ENTER},
> +     {   25, KEY_RED},
> +     {   26, KEY_GREEN},
> +     {   27, KEY_YELLOW},
> +     {   28, KEY_BLUE},
> +     {   24, KEY_TEXT},
> +};
> +
> +static struct rc_keymap videomate_f_map = {
> +     .map = {
> +             .scan    = videomate_f,
> +             .size    = ARRAY_SIZE(videomate_f),
> +             .ir_type = IR_TYPE_UNKNOWN,     /* Legacy IR type */
> +             .name    = RC_MAP_VIDEOMATE_F,
> +     }
> +};
> +
> +static int __init init_rc_map_videomate_f(void)
> +{
> +     return ir_register_map(&videomate_f_map);
> +}
> +
> +static void __exit exit_rc_map_videomate_f(void)
> +{
> +     ir_unregister_map(&videomate_f_map);
> +}
> +
> +module_init(init_rc_map_videomate_f)
> +module_exit(exit_rc_map_videomate_f)
> +
> +MODULE_LICENSE("GPL");
> +MODULE_AUTHOR("Davor Emard <davorem...@gmail.com>");
> 
> --

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to