From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: "nibble.max" <nibble.max@gmail.com>
Cc: linux-media <linux-media@vger.kernel.org>
Subject: Re: [PATCH 4/6] m88ds3103, dvbsky dvb-s2 cx23885 pcie card.
Date: Thu, 19 Apr 2012 15:11:54 -0300 [thread overview]
Message-ID: <4F90556A.2070508@redhat.com> (raw)
In-Reply-To: <201204152353392650604@gmail.com>
Em 15-04-2012 12:53, nibble.max escreveu:
> dvbsky dvb-s2 pcie based on montage m88ds3103 demodulator.
>
> Signed-off-by: Max nibble <nibble.max@gmail.com>
> ---
> drivers/media/video/cx23885/Kconfig | 1 +
> drivers/media/video/cx23885/cx23885-cards.c | 107 +++++++++++++++++++++++++++
> drivers/media/video/cx23885/cx23885-dvb.c | 52 +++++++++++++
> drivers/media/video/cx23885/cx23885-f300.c | 55 ++++++++++++++
> drivers/media/video/cx23885/cx23885-f300.h | 6 ++
> drivers/media/video/cx23885/cx23885-input.c | 15 ++++
> drivers/media/video/cx23885/cx23885.h | 3 +
> 7 files changed, 239 insertions(+)
>
> diff --git a/drivers/media/video/cx23885/Kconfig b/drivers/media/video/cx23885/Kconfig
> index b391e9b..20337c7 100644
> --- a/drivers/media/video/cx23885/Kconfig
> +++ b/drivers/media/video/cx23885/Kconfig
> @@ -20,6 +20,7 @@ config VIDEO_CX23885
> select DVB_LNBP21 if !DVB_FE_CUSTOMISE
> select DVB_STV6110 if !DVB_FE_CUSTOMISE
> select DVB_CX24116 if !DVB_FE_CUSTOMISE
> + select DVB_M88DS3103 if !DVB_FE_CUSTOMISE
> select DVB_STV0900 if !DVB_FE_CUSTOMISE
> select DVB_DS3000 if !DVB_FE_CUSTOMISE
> select DVB_STV0367 if !DVB_FE_CUSTOMISE
> diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
> index 19b5499..fdf9d0f 100644
> --- a/drivers/media/video/cx23885/cx23885-cards.c
> +++ b/drivers/media/video/cx23885/cx23885-cards.c
> @@ -497,6 +497,20 @@ struct cx23885_board cx23885_boards[] = {
> .name = "TerraTec Cinergy T PCIe Dual",
> .portb = CX23885_MPEG_DVB,
> .portc = CX23885_MPEG_DVB,
> + },
> +
> + [CX23885_BOARD_BST_PS8512] = {
> + .name = "Bestunar PS8512",
> + .portb = CX23885_MPEG_DVB,
> + },
> + [CX23885_BOARD_DVBSKY_S950] = {
> + .name = "DVBSKY S950",
> + .portb = CX23885_MPEG_DVB,
> + },
> + [CX23885_BOARD_DVBSKY_S952] = {
> + .name = "DVBSKY S952",
> + .portb = CX23885_MPEG_DVB,
> + .portc = CX23885_MPEG_DVB,
> }
> };
> const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
> @@ -705,6 +719,18 @@ struct cx23885_subid cx23885_subids[] = {
> .subvendor = 0x153b,
> .subdevice = 0x117e,
> .card = CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL,
> + }, {
> + .subvendor = 0x14f1,
> + .subdevice = 0x8512,
> + .card = CX23885_BOARD_BST_PS8512,
> + }, {
> + .subvendor = 0x4254,
> + .subdevice = 0x0950,
> + .card = CX23885_BOARD_DVBSKY_S950,
> + }, {
> + .subvendor = 0x4254,
> + .subdevice = 0x0952,
> + .card = CX23885_BOARD_DVBSKY_S952,
> },
> };
> const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
> @@ -1216,9 +1242,57 @@ void cx23885_gpio_setup(struct cx23885_dev *dev)
> /* enable irq */
> cx_write(GPIO_ISM, 0x00000000);/* INTERRUPTS active low*/
> break;
> + case CX23885_BOARD_DVBSKY_S950:
> + case CX23885_BOARD_BST_PS8512:
> + cx23885_gpio_enable(dev, GPIO_2, 1);
> + cx23885_gpio_clear(dev, GPIO_2);
> + msleep(100);
> + cx23885_gpio_set(dev, GPIO_2);
> + break;
> + case CX23885_BOARD_DVBSKY_S952:
> + cx_write(MC417_CTL, 0x00000037);/* enable GPIO3-18 pins */
> +
> + cx23885_gpio_enable(dev, GPIO_2, 1);
> + cx23885_gpio_enable(dev, GPIO_11, 1);
> +
> + cx23885_gpio_clear(dev, GPIO_2);
> + cx23885_gpio_clear(dev, GPIO_11);
> + msleep(100);
> + cx23885_gpio_set(dev, GPIO_2);
> + cx23885_gpio_set(dev, GPIO_11);
> +
> + break;
> }
> }
>
> +static int cx23885_ir_patch(struct i2c_adapter *i2c, u8 reg, u8 mask)
> +{
> + struct i2c_msg msgs[2];
> + u8 tx_buf[2], rx_buf[1];
> + /* Write register address */
> + tx_buf[0] = reg;
> + msgs[0].addr = 0x4c;
> + msgs[0].flags = 0;
> + msgs[0].len = 1;
> + msgs[0].buf = (char *) tx_buf;
> + /* Read data from register */
> + msgs[1].addr = 0x4c;
> + msgs[1].flags = I2C_M_RD;
> + msgs[1].len = 1;
> + msgs[1].buf = (char *) rx_buf;
> +
> + i2c_transfer(i2c, msgs, 2);
> +
> + tx_buf[0] = reg;
> + tx_buf[1] = rx_buf[0] | mask;
> + msgs[0].addr = 0x4c;
> + msgs[0].flags = 0;
> + msgs[0].len = 2;
> + msgs[0].buf = (char *) tx_buf;
> +
> + return i2c_transfer(i2c, msgs, 1);
> +}
> +
> int cx23885_ir_init(struct cx23885_dev *dev)
> {
> static struct v4l2_subdev_io_pin_config ir_rxtx_pin_cfg[] = {
> @@ -1301,6 +1375,20 @@ int cx23885_ir_init(struct cx23885_dev *dev)
> v4l2_subdev_call(dev->sd_cx25840, core, s_io_pin_config,
> ir_rx_pin_cfg_count, ir_rx_pin_cfg);
> break;
> + case CX23885_BOARD_BST_PS8512:
> + case CX23885_BOARD_DVBSKY_S950:
> + case CX23885_BOARD_DVBSKY_S952:
> + dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_AV_CORE);
> + if (dev->sd_ir == NULL) {
> + ret = -ENODEV;
> + break;
> + }
> + v4l2_subdev_call(dev->sd_cx25840, core, s_io_pin_config,
> + ir_rx_pin_cfg_count, ir_rx_pin_cfg);
> +
> + cx23885_ir_patch(&(dev->i2c_bus[2].i2c_adap),0x1f,0x80);
> + cx23885_ir_patch(&(dev->i2c_bus[2].i2c_adap),0x23,0x80);
> + break;
> case CX23885_BOARD_HAUPPAUGE_HVR1250:
> if (!enable_885_ir)
> break;
> @@ -1332,6 +1420,9 @@ void cx23885_ir_fini(struct cx23885_dev *dev)
> break;
> case CX23885_BOARD_TEVII_S470:
> case CX23885_BOARD_HAUPPAUGE_HVR1250:
> + case CX23885_BOARD_BST_PS8512:
> + case CX23885_BOARD_DVBSKY_S950:
> + case CX23885_BOARD_DVBSKY_S952:
> cx23885_irq_remove(dev, PCI_MSK_AV_CORE);
> /* sd_ir is a duplicate pointer to the AV Core, just clear it */
> dev->sd_ir = NULL;
> @@ -1375,6 +1466,9 @@ void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
> break;
> case CX23885_BOARD_TEVII_S470:
> case CX23885_BOARD_HAUPPAUGE_HVR1250:
> + case CX23885_BOARD_BST_PS8512:
> + case CX23885_BOARD_DVBSKY_S950:
> + case CX23885_BOARD_DVBSKY_S952:
> if (dev->sd_ir)
> cx23885_irq_add_enable(dev, PCI_MSK_AV_CORE);
> break;
> @@ -1459,6 +1553,8 @@ void cx23885_card_setup(struct cx23885_dev *dev)
> ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
> ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
> break;
> + case CX23885_BOARD_BST_PS8512:
> + case CX23885_BOARD_DVBSKY_S950:
> case CX23885_BOARD_TEVII_S470:
> case CX23885_BOARD_DVBWORLD_2005:
> ts1->gen_ctrl_val = 0x5; /* Parallel */
> @@ -1489,6 +1585,14 @@ void cx23885_card_setup(struct cx23885_dev *dev)
> ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
> ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
> break;
> + case CX23885_BOARD_DVBSKY_S952:
> + ts1->gen_ctrl_val = 0x5; /* Parallel */
> + ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
> + ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
> + ts2->gen_ctrl_val = 0xe; /* Serial bus + punctured clock */
> + ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
> + ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
> + break;
> case CX23885_BOARD_HAUPPAUGE_HVR1250:
> case CX23885_BOARD_HAUPPAUGE_HVR1500:
> case CX23885_BOARD_HAUPPAUGE_HVR1500Q:
> @@ -1541,6 +1645,9 @@ void cx23885_card_setup(struct cx23885_dev *dev)
> case CX23885_BOARD_MPX885:
> case CX23885_BOARD_MYGICA_X8507:
> case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
> + case CX23885_BOARD_BST_PS8512:
> + case CX23885_BOARD_DVBSKY_S950:
> + case CX23885_BOARD_DVBSKY_S952:
> dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev,
> &dev->i2c_bus[2].i2c_adap,
> "cx25840", 0x88 >> 1, NULL);
> diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
> index 6835eb1..c5a3fa3 100644
> --- a/drivers/media/video/cx23885/cx23885-dvb.c
> +++ b/drivers/media/video/cx23885/cx23885-dvb.c
> @@ -51,6 +51,7 @@
> #include "stv6110.h"
> #include "lnbh24.h"
> #include "cx24116.h"
> +#include "m88ds3103.h"
> #include "cimax2.h"
> #include "lgs8gxx.h"
> #include "netup-eeprom.h"
> @@ -489,6 +490,30 @@ static struct xc5000_config mygica_x8506_xc5000_config = {
> .if_khz = 5380,
> };
>
> +/* bestunar single dvb-s2 */
> +static struct m88ds3103_config bst_ds3103_config = {
> + .demod_address = 0x68,
> + .ci_mode = 0,
> + .pin_ctrl = 0x82,
> + .ts_mode = 0,
> + .set_voltage = bst_set_voltage,
> +};
> +/* DVBSKY dual dvb-s2 */
> +static struct m88ds3103_config dvbsky_ds3103_config_pri = {
> + .demod_address = 0x68,
> + .ci_mode = 0,
> + .pin_ctrl = 0x82,
> + .ts_mode = 0,
> + .set_voltage = bst_set_voltage,
> +};
> +static struct m88ds3103_config dvbsky_ds3103_config_sec = {
> + .demod_address = 0x68,
> + .ci_mode = 0,
> + .pin_ctrl = 0x82,
> + .ts_mode = 1,
> + .set_voltage = dvbsky_set_voltage_sec,
> +};
> +
> static int cx23885_dvb_set_frontend(struct dvb_frontend *fe)
> {
> struct dtv_frontend_properties *p = &fe->dtv_property_cache;
> @@ -1173,6 +1198,33 @@ static int dvb_register(struct cx23885_tsport *port)
> break;
> }
> break;
> +
> + case CX23885_BOARD_BST_PS8512:
> + case CX23885_BOARD_DVBSKY_S950:
> + i2c_bus = &dev->i2c_bus[1];
> + fe0->dvb.frontend = dvb_attach(m88ds3103_attach,
> + &bst_ds3103_config,
> + &i2c_bus->i2c_adap);
> + break;
> +
> + case CX23885_BOARD_DVBSKY_S952:
> + switch (port->nr) {
> + /* port B */
> + case 1:
> + i2c_bus = &dev->i2c_bus[1];
> + fe0->dvb.frontend = dvb_attach(m88ds3103_attach,
> + &dvbsky_ds3103_config_pri,
> + &i2c_bus->i2c_adap);
> + break;
> + /* port C */
> + case 2:
> + i2c_bus = &dev->i2c_bus[0];
> + fe0->dvb.frontend = dvb_attach(m88ds3103_attach,
> + &dvbsky_ds3103_config_sec,
> + &i2c_bus->i2c_adap);
> + break;
> + }
> + break;
> default:
> printk(KERN_INFO "%s: The frontend of your DVB/ATSC card "
> " isn't supported yet\n",
> diff --git a/drivers/media/video/cx23885/cx23885-f300.c b/drivers/media/video/cx23885/cx23885-f300.c
> index 93998f2..6be0369 100644
> --- a/drivers/media/video/cx23885/cx23885-f300.c
> +++ b/drivers/media/video/cx23885/cx23885-f300.c
> @@ -175,3 +175,58 @@ int f300_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
>
> return f300_xfer(fe, buf);
> }
> +
> +/* bst control */
> +int bst_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
> +{
> + struct cx23885_tsport *port = fe->dvb->priv;
> + struct cx23885_dev *dev = port->dev;
> +
> + cx23885_gpio_enable(dev, GPIO_1, 1);
> + cx23885_gpio_enable(dev, GPIO_0, 1);
> +
> + switch (voltage) {
> + case SEC_VOLTAGE_13:
> + cx23885_gpio_set(dev, GPIO_1);
> + cx23885_gpio_clear(dev, GPIO_0);
> + break;
> + case SEC_VOLTAGE_18:
> + cx23885_gpio_set(dev, GPIO_1);
> + cx23885_gpio_set(dev, GPIO_0);
> + break;
> + case SEC_VOLTAGE_OFF:
> + cx23885_gpio_clear(dev, GPIO_1);
> + cx23885_gpio_clear(dev, GPIO_0);
> + break;
> + }
> +
> +
> + return 0;
> +}
> +
> +int dvbsky_set_voltage_sec(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
> +{
> + struct cx23885_tsport *port = fe->dvb->priv;
> + struct cx23885_dev *dev = port->dev;
> +
> + cx23885_gpio_enable(dev, GPIO_12, 1);
> + cx23885_gpio_enable(dev, GPIO_13, 1);
> +
> + switch (voltage) {
> + case SEC_VOLTAGE_13:
> + cx23885_gpio_set(dev, GPIO_13);
> + cx23885_gpio_clear(dev, GPIO_12);
> + break;
> + case SEC_VOLTAGE_18:
> + cx23885_gpio_set(dev, GPIO_13);
> + cx23885_gpio_set(dev, GPIO_12);
> + break;
> + case SEC_VOLTAGE_OFF:
> + cx23885_gpio_clear(dev, GPIO_13);
> + cx23885_gpio_clear(dev, GPIO_12);
> + break;
> + }
> +
> +
> + return 0;
> +}
> \ No newline at end of file
Please add a new line.
> diff --git a/drivers/media/video/cx23885/cx23885-f300.h b/drivers/media/video/cx23885/cx23885-f300.h
> index e73344c..cd02d02 100644
> --- a/drivers/media/video/cx23885/cx23885-f300.h
> +++ b/drivers/media/video/cx23885/cx23885-f300.h
> @@ -1,2 +1,8 @@
> +extern int dvbsky_set_voltage_sec(struct dvb_frontend *fe,
> + fe_sec_voltage_t voltage);
> +
> +extern int bst_set_voltage(struct dvb_frontend *fe,
> + fe_sec_voltage_t voltage);
> +
> extern int f300_set_voltage(struct dvb_frontend *fe,
> fe_sec_voltage_t voltage);
> diff --git a/drivers/media/video/cx23885/cx23885-input.c b/drivers/media/video/cx23885/cx23885-input.c
> index ce765e3..69c01f3 100644
> --- a/drivers/media/video/cx23885/cx23885-input.c
> +++ b/drivers/media/video/cx23885/cx23885-input.c
> @@ -87,6 +87,9 @@ void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events)
> case CX23885_BOARD_HAUPPAUGE_HVR1290:
> case CX23885_BOARD_TEVII_S470:
> case CX23885_BOARD_HAUPPAUGE_HVR1250:
> + case CX23885_BOARD_BST_PS8512:
> + case CX23885_BOARD_DVBSKY_S950:
> + case CX23885_BOARD_DVBSKY_S952:
> /*
> * The only boards we handle right now. However other boards
> * using the CX2388x integrated IR controller should be similar
> @@ -138,6 +141,9 @@ static int cx23885_input_ir_start(struct cx23885_dev *dev)
> case CX23885_BOARD_HAUPPAUGE_HVR1850:
> case CX23885_BOARD_HAUPPAUGE_HVR1290:
> case CX23885_BOARD_HAUPPAUGE_HVR1250:
> + case CX23885_BOARD_BST_PS8512:
> + case CX23885_BOARD_DVBSKY_S950:
> + case CX23885_BOARD_DVBSKY_S952:
> /*
> * The IR controller on this board only returns pulse widths.
> * Any other mode setting will fail to set up the device.
> @@ -279,6 +285,15 @@ int cx23885_input_init(struct cx23885_dev *dev)
> /* A guess at the remote */
> rc_map = RC_MAP_TEVII_NEC;
> break;
> + case CX23885_BOARD_BST_PS8512:
> + case CX23885_BOARD_DVBSKY_S950:
> + case CX23885_BOARD_DVBSKY_S952:
> + /* Integrated CX2388[58] IR controller */
> + driver_type = RC_DRIVER_IR_RAW;
> + allowed_protos = RC_TYPE_ALL;
> + /* A guess at the remote */
> + rc_map = RC_MAP_DVBSKY;
> + break;
> default:
> return -ENODEV;
> }
> diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h
> index f020f05..2724148 100644
> --- a/drivers/media/video/cx23885/cx23885.h
> +++ b/drivers/media/video/cx23885/cx23885.h
> @@ -89,6 +89,9 @@
> #define CX23885_BOARD_MPX885 32
> #define CX23885_BOARD_MYGICA_X8507 33
> #define CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL 34
> +#define CX23885_BOARD_BST_PS8512 35
> +#define CX23885_BOARD_DVBSKY_S952 36
> +#define CX23885_BOARD_DVBSKY_S950 37
>
> #define GPIO_0 0x00000001
> #define GPIO_1 0x00000002
next prev parent reply other threads:[~2012-04-19 18:11 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-22 10:38 [PATCH 1/3] m88brs2000 DVB-S frontend and tuner module Malcolm Priestley
2012-01-26 16:56 ` Mauro Carvalho Chehab
2012-01-27 22:26 ` Malcolm Priestley
2012-04-15 15:53 ` [PATCH 1/6] m88ds3103, montage dvb-s/s2 demodulator driver nibble.max
2012-04-19 18:06 ` Mauro Carvalho Chehab
2012-04-20 8:01 ` nibble.max
2012-04-19 20:08 ` Mauro Carvalho Chehab
2012-04-20 8:01 ` nibble.max
2012-04-20 9:47 ` Antti Palosaari
2012-04-20 17:24 ` Mauro Carvalho Chehab
2012-04-21 2:45 ` nibble.max
2012-04-23 16:41 ` Antti Palosaari
2012-04-23 19:51 ` Konstantin Dimitrov
2012-04-23 21:04 ` Antti Palosaari
2012-04-27 18:44 ` Konstantin Dimitrov
2012-04-23 21:49 ` Mauro Carvalho Chehab
2012-04-27 19:01 ` Konstantin Dimitrov
2012-04-27 19:36 ` Mauro Carvalho Chehab
2012-04-27 20:37 ` Konstantin Dimitrov
2012-04-27 20:40 ` Konstantin Dimitrov
2012-04-27 20:54 ` Antti Palosaari
2012-04-27 21:01 ` Konstantin Dimitrov
2012-04-27 19:55 ` Antti Palosaari
2012-04-27 20:21 ` Konstantin Dimitrov
2012-04-27 20:42 ` Antti Palosaari
2012-04-27 21:13 ` Konstantin Dimitrov
2012-04-28 3:54 ` nibble.max
2012-04-28 9:17 ` Demod hardware pid filter implement nibble.max
2012-04-28 10:15 ` Antti Palosaari
2012-04-24 2:45 ` Re: [PATCH 1/6] m88ds3103, montage dvb-s/s2 demodulator driver nibble.max
2012-04-26 13:03 ` nibble.max
2012-04-26 13:24 ` Mauro Carvalho Chehab
2012-04-27 7:06 ` [PATCH 1/6 v2] dvbsky, montage dvb-s/s2 TS202x tuner and M88DS3103 " nibble.max
2012-04-27 11:06 ` Mauro Carvalho Chehab
2012-04-27 14:17 ` Re: [PATCH 1/6 v2] dvbsky, montage dvb-s/s2 TS202x tuner and M88DS3103demodulator driver nibble.max
2012-04-27 14:35 ` Mauro Carvalho Chehab
2012-04-27 18:03 ` Konstantin Dimitrov
2012-04-27 7:06 ` [PATCH 2/6 v2] dvbsky, dvb-s/s2 usb box nibble.max
2013-06-30 3:07 ` Fwd: " P. van Gaans
2014-01-15 19:30 ` Mauro Carvalho Chehab
2012-04-27 7:06 ` [PATCH 3/6 v2] dvbsky, dvb-s/s2 PCIe card nibble.max
2012-04-27 7:07 ` [PATCH 4/6 v2] dvbsky, dvb-s/s2 PCI card nibble.max
2012-04-27 7:07 ` [PATCH 5/6 v2] dvbsky, remote control key map nibble.max
2012-04-27 7:07 ` [PATCH 6/6 v2] dvbsky, remote control include header file nibble.max
2012-04-20 17:10 ` [PATCH 1/6] m88ds3103, montage dvb-s/s2 demodulator driver Mauro Carvalho Chehab
2012-04-15 15:53 ` [PATCH 2/6] m88ds3103, dvbsky dvb-s2 usb box nibble.max
2012-04-19 18:09 ` Mauro Carvalho Chehab
2012-04-20 8:08 ` nibble.max
2012-04-20 17:08 ` Mauro Carvalho Chehab
2012-04-15 15:53 ` [PATCH 3/6] m88ds3103, dvbsky dvb-s2 cx23883 pci card nibble.max
2012-04-15 15:53 ` [PATCH 4/6] m88ds3103, dvbsky dvb-s2 cx23885 pcie card nibble.max
2012-04-19 18:11 ` Mauro Carvalho Chehab [this message]
2012-04-15 15:53 ` [PATCH 5/6] m88ds3103, dvbsky remote control key map nibble.max
2012-04-19 18:16 ` Mauro Carvalho Chehab
2012-04-20 8:01 ` nibble.max
2012-04-15 15:53 ` [PATCH 6/6] m88ds3103, dvbsky remote control include header file nibble.max
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=4F90556A.2070508@redhat.com \
--to=mchehab@redhat.com \
--cc=linux-media@vger.kernel.org \
--cc=nibble.max@gmail.com \
/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.