From: Davor Emard <davoremard@gmail.com>
To: linux-media@vger.kernel.org
Subject: [PATCH] Compro videmate T750f for 2.6.35.7
Date: Sat, 2 Oct 2010 07:53:55 +0200 [thread overview]
Message-ID: <20101002055354.GB12113@emard.lan> (raw)
HI
This is my update for compro videomate t750f v19 for kernel 2.6.35.7
which has separated IR remote in a file.
There seem to be different types of this card which I don't know
how to distinguish. This patch works for my card but may not work
for other types.
Best regards, Davor
--- linux-2.6.35.7/drivers/media/video/saa7134/saa7134-input.c.orig 2010-09-29 03:09:08.000000000 +0200
+++ linux-2.6.35.7/drivers/media/video/saa7134/saa7134-input.c 2010-10-02 05:45:01.467990234 +0200
@@ -816,6 +816,11 @@ int saa7134_input_init1(struct saa7134_d
mask_keycode = 0x003f00;
mask_keydown = 0x040000;
break;
+ case SAA7134_BOARD_VIDEOMATE_T750:
+ ir_codes = RC_MAP_VIDEOMATE_T750;
+ mask_keycode = 0x003f00;
+ mask_keyup = 0x040000;
+ break;
case SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S:
ir_codes = RC_MAP_WINFAST;
mask_keycode = 0x5f00;
--- linux-2.6.35.7/drivers/media/video/saa7134/saa7134-cards.c.orig 2010-09-29 03:09:08.000000000 +0200
+++ linux-2.6.35.7/drivers/media/video/saa7134/saa7134-cards.c 2010-10-02 05:43:50.639315788 +0200
@@ -4915,12 +4915,14 @@ struct saa7134_board saa7134_boards[] =
},
[SAA7134_BOARD_VIDEOMATE_T750] = {
/* John Newbigin <jn@it.swin.edu.au> */
+ /* Emard 2010-05-10 v18 <davoremard@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,
@@ -6722,6 +6724,11 @@ static int saa7134_xc2028_callback(struc
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;
}
@@ -7142,6 +7149,11 @@ int saa7134_board_init1(struct saa7134_d
saa7134_set_gpio(dev, 1, 1);
dev->has_remote = SAA7134_REMOTE_GPIO;
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;
}
--- linux-2.6.35.7/drivers/media/video/saa7134/saa7134-dvb.c.orig 2010-09-29 03:09:08.000000000 +0200
+++ linux-2.6.35.7/drivers/media/video/saa7134/saa7134-dvb.c 2010-10-02 05:43:50.639315788 +0200
@@ -54,6 +54,7 @@
#include "tda8290.h"
#include "zl10353.h"
+#include "qt1010.h"
#include "zl10036.h"
#include "zl10039.h"
@@ -885,6 +886,17 @@ static struct zl10353_config behold_x7_c
.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
*/
@@ -1564,6 +1576,21 @@ static int dvb_init(struct saa7134_dev *
__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,
--- linux-2.6.35.7/drivers/media/IR/keymaps/Makefile.orig 2010-09-29 03:09:08.000000000 +0200
+++ linux-2.6.35.7/drivers/media/IR/keymaps/Makefile 2010-10-01 21:32:01.207530164 +0200
@@ -63,6 +63,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t
rc-tevii-nec.o \
rc-tt-1500.o \
rc-videomate-s350.o \
+ rc-videomate-t750.o \
rc-videomate-tv-pvr.o \
rc-winfast.o \
rc-winfast-usbii-deluxe.o
--- linux-2.6.35.7/drivers/media/IR/keymaps/rc-videomate-t750.c.orig 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.35.7/drivers/media/IR/keymaps/rc-videomate-t750.c 2010-10-02 05:49:23.664275732 +0200
@@ -0,0 +1,123 @@
+/* videomate-s350.h - Keytable for videomate_s350 Remote Controller
+ *
+ * keymap imported from ir-keymaps.c
+ *
+ * Copyright (c) 2010 by Mauro Carvalho Chehab <mchehab@redhat.com>
+ *
+ * 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 <davoremard@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_t750[] = {
+ { 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_t750_map = {
+ .map = {
+ .scan = videomate_t750,
+ .size = ARRAY_SIZE(videomate_t750),
+ .ir_type = IR_TYPE_UNKNOWN, /* Legacy IR type */
+ .name = RC_MAP_VIDEOMATE_T750,
+ }
+};
+
+static int __init init_rc_map_videomate_t750(void)
+{
+ return ir_register_map(&videomate_t750_map);
+}
+
+static void __exit exit_rc_map_videomate_t750(void)
+{
+ ir_unregister_map(&videomate_t750_map);
+}
+
+module_init(init_rc_map_videomate_t750)
+module_exit(exit_rc_map_videomate_t750)
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Davor Emard <davoremard@gmail.com>");
--- linux-2.6.35.7/include/media/rc-map.h.orig 2010-10-01 21:30:52.156604735 +0200
+++ linux-2.6.35.7/include/media/rc-map.h 2010-10-01 21:31:13.515998577 +0200
@@ -113,6 +113,7 @@ void rc_map_init(void);
#define RC_MAP_TEVII_NEC "rc-tevii-nec"
#define RC_MAP_TT_1500 "rc-tt-1500"
#define RC_MAP_VIDEOMATE_S350 "rc-videomate-s350"
+#define RC_MAP_VIDEOMATE_T750 "rc-videomate-t750"
#define RC_MAP_VIDEOMATE_TV_PVR "rc-videomate-tv-pvr"
#define RC_MAP_WINFAST "rc-winfast"
#define RC_MAP_WINFAST_USBII_DELUXE "rc-winfast-usbii-deluxe"
next reply other threads:[~2010-10-02 5:54 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-02 5:53 Davor Emard [this message]
2010-10-16 2:59 ` [PATCH] Compro videmate T750f for 2.6.35.7 Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101002055354.GB12113@emard.lan \
--to=davoremard@gmail.com \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.