[PATCH] [media] Add remote control support for mantis

2011-06-08 Thread Christoph Pinkl

Signed-off-by: Christoph Pinkl 
---
 drivers/media/dvb/mantis/hopper_cards.c|2 +-
 drivers/media/dvb/mantis/mantis_cards.c|   27 +++-
 drivers/media/dvb/mantis/mantis_common.h   |   23 ++-
 drivers/media/dvb/mantis/mantis_input.c|  169 +++
 drivers/media/dvb/mantis/mantis_input.h|   28 
 drivers/media/dvb/mantis/mantis_uart.c |   18 +--
 drivers/media/dvb/mantis/mantis_vp1041.c   |   20 +++
 drivers/media/dvb/mantis/mantis_vp2033.c   |4 +
 drivers/media/dvb/mantis/mantis_vp2040.c   |4 +
 drivers/media/rc/keymaps/Makefile  |3 +
 .../media/rc/keymaps/rc-terratec-cinergy-c-pci.c   |   85 ++
 .../media/rc/keymaps/rc-terratec-cinergy-s2-hd.c   |   85 ++
 drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c   |   95 +++
 include/media/rc-map.h |3 +
 14 files changed, 439 insertions(+), 127 deletions(-)
 create mode 100644 drivers/media/dvb/mantis/mantis_input.h
 create mode 100644 drivers/media/rc/keymaps/rc-terratec-cinergy-c-pci.c
 create mode 100644 drivers/media/rc/keymaps/rc-terratec-cinergy-s2-hd.c
 create mode 100644 drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c

diff --git a/drivers/media/dvb/mantis/hopper_cards.c 
b/drivers/media/dvb/mantis/hopper_cards.c
index 1402062..0b76664 100644
--- a/drivers/media/dvb/mantis/hopper_cards.c
+++ b/drivers/media/dvb/mantis/hopper_cards.c
@@ -107,7 +107,7 @@ static irqreturn_t hopper_irq_handler(int irq, void *dev_id)
}
if (stat & MANTIS_INT_IRQ1) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
-   schedule_work(&mantis->uart_work);
+   tasklet_schedule(&mantis->uart_tasklet);
}
if (stat & MANTIS_INT_OCERR) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]);
diff --git a/drivers/media/dvb/mantis/mantis_cards.c 
b/drivers/media/dvb/mantis/mantis_cards.c
index 05cbb9d..8eca749 100644
--- a/drivers/media/dvb/mantis/mantis_cards.c
+++ b/drivers/media/dvb/mantis/mantis_cards.c
@@ -49,6 +49,7 @@
 #include "mantis_pci.h"
 #include "mantis_i2c.h"
 #include "mantis_reg.h"
+#include "mantis_input.h"
 
 static unsigned int verbose;
 module_param(verbose, int, 0644);
@@ -115,7 +116,7 @@ static irqreturn_t mantis_irq_handler(int irq, void *dev_id)
}
if (stat & MANTIS_INT_IRQ1) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
-   schedule_work(&mantis->uart_work);
+   tasklet_schedule(&mantis->uart_tasklet);
}
if (stat & MANTIS_INT_OCERR) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]);
@@ -180,6 +181,14 @@ static int __devinit mantis_pci_probe(struct pci_dev 
*pdev, const struct pci_dev
config->irq_handler = &mantis_irq_handler;
mantis->hwconfig= config;
 
+   if (mantis->hwconfig->config_init != NULL) {
+   dprintk(MANTIS_ERROR, 1,
+   "Mantis-subsystem: vendor:0x%04x, device:0x%04x\n",
+   mantis->pdev->subsystem_vendor,
+   mantis->pdev->subsystem_device);
+   mantis->hwconfig->config_init(mantis);
+   }
+
err = mantis_pci_init(mantis);
if (err) {
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis PCI initialization 
failed <%d>", err);
@@ -215,21 +224,32 @@ static int __devinit mantis_pci_probe(struct pci_dev 
*pdev, const struct pci_dev
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DVB initialization 
failed <%d>", err);
goto fail4;
}
+
+   err = mantis_input_init(mantis);
+   if (err < 0) {
+   dprintk(MANTIS_ERROR, 1, "ERROR: Mantis INPUT initialization 
failed <%d>", err);
+   goto fail6;
+   }
+
+
err = mantis_uart_init(mantis);
if (err < 0) {
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART initialization 
failed <%d>", err);
-   goto fail6;
+   goto fail7;
}
 
devs++;
 
return err;
 
-
+fail7:
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART exit! <%d>", err);
mantis_uart_exit(mantis);
 
 fail6:
+   dprintk(MANTIS_ERROR, 1, "ERROR: Mantis INPUT exit! <%d>", err);
+   mantis_input_exit(mantis);
+
 fail4:
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DMA exit! <%d>", err);
mantis_dma_exit(mantis);
@@ -257,6 +277,7 @@ static void __devexit mantis_pci_remove(struct pci_dev 
*pdev)
if (mantis) {
 
mantis_uart_exit(mantis);
+   mantis_input_exit(mantis);
   

[PATCH] Add remote control support for mantis

2011-06-01 Thread Christoph Pinkl
Sorry forgot signoff
Signed-off-by: Christoph Pinkl 
---
 drivers/media/dvb/mantis/hopper_cards.c|2 +-
 drivers/media/dvb/mantis/mantis_cards.c|   27 +++-
 drivers/media/dvb/mantis/mantis_common.h   |   23 ++-
 drivers/media/dvb/mantis/mantis_input.c|  169 +++
 drivers/media/dvb/mantis/mantis_input.h|   28 
 drivers/media/dvb/mantis/mantis_uart.c |   18 +--
 drivers/media/dvb/mantis/mantis_vp1041.c   |   20 +++
 drivers/media/dvb/mantis/mantis_vp2033.c   |4 +
 drivers/media/dvb/mantis/mantis_vp2040.c   |4 +
 drivers/media/rc/keymaps/Makefile  |3 +
 .../media/rc/keymaps/rc-terratec-cinergy-c-pci.c   |   85 ++
 .../media/rc/keymaps/rc-terratec-cinergy-s2-hd.c   |   85 ++
 drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c   |   95 +++
 include/media/rc-map.h |3 +
 14 files changed, 439 insertions(+), 127 deletions(-)
 create mode 100644 drivers/media/dvb/mantis/mantis_input.h
 create mode 100644 drivers/media/rc/keymaps/rc-terratec-cinergy-c-pci.c
 create mode 100644 drivers/media/rc/keymaps/rc-terratec-cinergy-s2-hd.c
 create mode 100644 drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c

diff --git a/drivers/media/dvb/mantis/hopper_cards.c 
b/drivers/media/dvb/mantis/hopper_cards.c
index 1402062..0b76664 100644
--- a/drivers/media/dvb/mantis/hopper_cards.c
+++ b/drivers/media/dvb/mantis/hopper_cards.c
@@ -107,7 +107,7 @@ static irqreturn_t hopper_irq_handler(int irq, void *dev_id)
}
if (stat & MANTIS_INT_IRQ1) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
-   schedule_work(&mantis->uart_work);
+   tasklet_schedule(&mantis->uart_tasklet);
}
if (stat & MANTIS_INT_OCERR) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]);
diff --git a/drivers/media/dvb/mantis/mantis_cards.c 
b/drivers/media/dvb/mantis/mantis_cards.c
index 05cbb9d..8eca749 100644
--- a/drivers/media/dvb/mantis/mantis_cards.c
+++ b/drivers/media/dvb/mantis/mantis_cards.c
@@ -49,6 +49,7 @@
 #include "mantis_pci.h"
 #include "mantis_i2c.h"
 #include "mantis_reg.h"
+#include "mantis_input.h"
 
 static unsigned int verbose;
 module_param(verbose, int, 0644);
@@ -115,7 +116,7 @@ static irqreturn_t mantis_irq_handler(int irq, void *dev_id)
}
if (stat & MANTIS_INT_IRQ1) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
-   schedule_work(&mantis->uart_work);
+   tasklet_schedule(&mantis->uart_tasklet);
}
if (stat & MANTIS_INT_OCERR) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]);
@@ -180,6 +181,14 @@ static int __devinit mantis_pci_probe(struct pci_dev 
*pdev, const struct pci_dev
config->irq_handler = &mantis_irq_handler;
mantis->hwconfig= config;
 
+   if (mantis->hwconfig->config_init != NULL) {
+   dprintk(MANTIS_ERROR, 1,
+   "Mantis-subsystem: vendor:0x%04x, device:0x%04x\n",
+   mantis->pdev->subsystem_vendor,
+   mantis->pdev->subsystem_device);
+   mantis->hwconfig->config_init(mantis);
+   }
+
err = mantis_pci_init(mantis);
if (err) {
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis PCI initialization 
failed <%d>", err);
@@ -215,21 +224,32 @@ static int __devinit mantis_pci_probe(struct pci_dev 
*pdev, const struct pci_dev
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DVB initialization 
failed <%d>", err);
goto fail4;
}
+
+   err = mantis_input_init(mantis);
+   if (err < 0) {
+   dprintk(MANTIS_ERROR, 1, "ERROR: Mantis INPUT initialization 
failed <%d>", err);
+   goto fail6;
+   }
+
+
err = mantis_uart_init(mantis);
if (err < 0) {
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART initialization 
failed <%d>", err);
-   goto fail6;
+   goto fail7;
}
 
devs++;
 
return err;
 
-
+fail7:
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART exit! <%d>", err);
mantis_uart_exit(mantis);
 
 fail6:
+   dprintk(MANTIS_ERROR, 1, "ERROR: Mantis INPUT exit! <%d>", err);
+   mantis_input_exit(mantis);
+
 fail4:
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DMA exit! <%d>", err);
mantis_dma_exit(mantis);
@@ -257,6 +277,7 @@ static void __devexit mantis_pci_remove(struct pci_dev 
*pdev)
if (mantis) {
 
mantis_uart_exit(mantis);
+   mantis_input_exit(ma

[PATCH] Add remote control support for mantis

2011-06-01 Thread Christoph Pinkl
---
 drivers/media/dvb/mantis/hopper_cards.c|2 +-
 drivers/media/dvb/mantis/mantis_cards.c|   27 +++-
 drivers/media/dvb/mantis/mantis_common.h   |   23 ++-
 drivers/media/dvb/mantis/mantis_input.c|  169 +++
 drivers/media/dvb/mantis/mantis_input.h|   28 
 drivers/media/dvb/mantis/mantis_uart.c |   18 +--
 drivers/media/dvb/mantis/mantis_vp1041.c   |   20 +++
 drivers/media/dvb/mantis/mantis_vp2033.c   |4 +
 drivers/media/dvb/mantis/mantis_vp2040.c   |4 +
 drivers/media/rc/keymaps/Makefile  |3 +
 .../media/rc/keymaps/rc-terratec-cinergy-c-pci.c   |   85 ++
 .../media/rc/keymaps/rc-terratec-cinergy-s2-hd.c   |   85 ++
 drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c   |   95 +++
 include/media/rc-map.h |3 +
 14 files changed, 439 insertions(+), 127 deletions(-)
 create mode 100644 drivers/media/dvb/mantis/mantis_input.h
 create mode 100644 drivers/media/rc/keymaps/rc-terratec-cinergy-c-pci.c
 create mode 100644 drivers/media/rc/keymaps/rc-terratec-cinergy-s2-hd.c
 create mode 100644 drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c

diff --git a/drivers/media/dvb/mantis/hopper_cards.c 
b/drivers/media/dvb/mantis/hopper_cards.c
index 1402062..0b76664 100644
--- a/drivers/media/dvb/mantis/hopper_cards.c
+++ b/drivers/media/dvb/mantis/hopper_cards.c
@@ -107,7 +107,7 @@ static irqreturn_t hopper_irq_handler(int irq, void *dev_id)
}
if (stat & MANTIS_INT_IRQ1) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
-   schedule_work(&mantis->uart_work);
+   tasklet_schedule(&mantis->uart_tasklet);
}
if (stat & MANTIS_INT_OCERR) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]);
diff --git a/drivers/media/dvb/mantis/mantis_cards.c 
b/drivers/media/dvb/mantis/mantis_cards.c
index 05cbb9d..8eca749 100644
--- a/drivers/media/dvb/mantis/mantis_cards.c
+++ b/drivers/media/dvb/mantis/mantis_cards.c
@@ -49,6 +49,7 @@
 #include "mantis_pci.h"
 #include "mantis_i2c.h"
 #include "mantis_reg.h"
+#include "mantis_input.h"
 
 static unsigned int verbose;
 module_param(verbose, int, 0644);
@@ -115,7 +116,7 @@ static irqreturn_t mantis_irq_handler(int irq, void *dev_id)
}
if (stat & MANTIS_INT_IRQ1) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
-   schedule_work(&mantis->uart_work);
+   tasklet_schedule(&mantis->uart_tasklet);
}
if (stat & MANTIS_INT_OCERR) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]);
@@ -180,6 +181,14 @@ static int __devinit mantis_pci_probe(struct pci_dev 
*pdev, const struct pci_dev
config->irq_handler = &mantis_irq_handler;
mantis->hwconfig= config;
 
+   if (mantis->hwconfig->config_init != NULL) {
+   dprintk(MANTIS_ERROR, 1,
+   "Mantis-subsystem: vendor:0x%04x, device:0x%04x\n",
+   mantis->pdev->subsystem_vendor,
+   mantis->pdev->subsystem_device);
+   mantis->hwconfig->config_init(mantis);
+   }
+
err = mantis_pci_init(mantis);
if (err) {
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis PCI initialization 
failed <%d>", err);
@@ -215,21 +224,32 @@ static int __devinit mantis_pci_probe(struct pci_dev 
*pdev, const struct pci_dev
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DVB initialization 
failed <%d>", err);
goto fail4;
}
+
+   err = mantis_input_init(mantis);
+   if (err < 0) {
+   dprintk(MANTIS_ERROR, 1, "ERROR: Mantis INPUT initialization 
failed <%d>", err);
+   goto fail6;
+   }
+
+
err = mantis_uart_init(mantis);
if (err < 0) {
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART initialization 
failed <%d>", err);
-   goto fail6;
+   goto fail7;
}
 
devs++;
 
return err;
 
-
+fail7:
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART exit! <%d>", err);
mantis_uart_exit(mantis);
 
 fail6:
+   dprintk(MANTIS_ERROR, 1, "ERROR: Mantis INPUT exit! <%d>", err);
+   mantis_input_exit(mantis);
+
 fail4:
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DMA exit! <%d>", err);
mantis_dma_exit(mantis);
@@ -257,6 +277,7 @@ static void __devexit mantis_pci_remove(struct pci_dev 
*pdev)
if (mantis) {
 
mantis_uart_exit(mantis);
+   mantis_input_exit(mantis);
mantis_dvb_exit(mantis);
mantis_dma_exit(mantis);
mantis_i2c_exit(mantis);
diff --git a/drivers/media/dvb/mantis/mantis_common.h 
b/drivers/media/dvb/mantis/mantis_common.h
index bd400d2..a61046d 100644
--- a/drivers/media/dvb/mantis/mantis_common.h
+++ b/drivers/media/dvb/mantis/mantis_common.h
@@ -23,6 +23,

[PATCH] Add remote control support for mantis

2011-05-26 Thread Christoph Pinkl
This patch replaces my previous patch https://patchwork.kernel.org/patch/816592/
It adds the rc_dev->dev.parent definition missing in the previous version.
---
 drivers/media/dvb/mantis/hopper_cards.c|2 +-
 drivers/media/dvb/mantis/mantis_cards.c|   27 +++-
 drivers/media/dvb/mantis/mantis_common.h   |   23 ++-
 drivers/media/dvb/mantis/mantis_input.c|  169 +++
 drivers/media/dvb/mantis/mantis_input.h|   28 
 drivers/media/dvb/mantis/mantis_uart.c |   18 +--
 drivers/media/dvb/mantis/mantis_vp1041.c   |   20 +++
 drivers/media/dvb/mantis/mantis_vp2033.c   |4 +
 drivers/media/dvb/mantis/mantis_vp2040.c   |4 +
 drivers/media/rc/keymaps/Makefile  |3 +
 .../media/rc/keymaps/rc-terratec-cinergy-c-pci.c   |   85 ++
 .../media/rc/keymaps/rc-terratec-cinergy-s2-hd.c   |   85 ++
 drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c   |   95 +++
 include/media/rc-map.h |3 +
 14 files changed, 439 insertions(+), 127 deletions(-)
 create mode 100644 drivers/media/dvb/mantis/mantis_input.h
 create mode 100644 drivers/media/rc/keymaps/rc-terratec-cinergy-c-pci.c
 create mode 100644 drivers/media/rc/keymaps/rc-terratec-cinergy-s2-hd.c
 create mode 100644 drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c

diff --git a/drivers/media/dvb/mantis/hopper_cards.c 
b/drivers/media/dvb/mantis/hopper_cards.c
index 1402062..0b76664 100644
--- a/drivers/media/dvb/mantis/hopper_cards.c
+++ b/drivers/media/dvb/mantis/hopper_cards.c
@@ -107,7 +107,7 @@ static irqreturn_t hopper_irq_handler(int irq, void *dev_id)
}
if (stat & MANTIS_INT_IRQ1) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
-   schedule_work(&mantis->uart_work);
+   tasklet_schedule(&mantis->uart_tasklet);
}
if (stat & MANTIS_INT_OCERR) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]);
diff --git a/drivers/media/dvb/mantis/mantis_cards.c 
b/drivers/media/dvb/mantis/mantis_cards.c
index 05cbb9d..8eca749 100644
--- a/drivers/media/dvb/mantis/mantis_cards.c
+++ b/drivers/media/dvb/mantis/mantis_cards.c
@@ -49,6 +49,7 @@
 #include "mantis_pci.h"
 #include "mantis_i2c.h"
 #include "mantis_reg.h"
+#include "mantis_input.h"
 
 static unsigned int verbose;
 module_param(verbose, int, 0644);
@@ -115,7 +116,7 @@ static irqreturn_t mantis_irq_handler(int irq, void *dev_id)
}
if (stat & MANTIS_INT_IRQ1) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
-   schedule_work(&mantis->uart_work);
+   tasklet_schedule(&mantis->uart_tasklet);
}
if (stat & MANTIS_INT_OCERR) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]);
@@ -180,6 +181,14 @@ static int __devinit mantis_pci_probe(struct pci_dev 
*pdev, const struct pci_dev
config->irq_handler = &mantis_irq_handler;
mantis->hwconfig= config;
 
+   if (mantis->hwconfig->config_init != NULL) {
+   dprintk(MANTIS_ERROR, 1,
+   "Mantis-subsystem: vendor:0x%04x, device:0x%04x\n",
+   mantis->pdev->subsystem_vendor,
+   mantis->pdev->subsystem_device);
+   mantis->hwconfig->config_init(mantis);
+   }
+
err = mantis_pci_init(mantis);
if (err) {
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis PCI initialization 
failed <%d>", err);
@@ -215,21 +224,32 @@ static int __devinit mantis_pci_probe(struct pci_dev 
*pdev, const struct pci_dev
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DVB initialization 
failed <%d>", err);
goto fail4;
}
+
+   err = mantis_input_init(mantis);
+   if (err < 0) {
+   dprintk(MANTIS_ERROR, 1, "ERROR: Mantis INPUT initialization 
failed <%d>", err);
+   goto fail6;
+   }
+
+
err = mantis_uart_init(mantis);
if (err < 0) {
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART initialization 
failed <%d>", err);
-   goto fail6;
+   goto fail7;
}
 
devs++;
 
return err;
 
-
+fail7:
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART exit! <%d>", err);
mantis_uart_exit(mantis);
 
 fail6:
+   dprintk(MANTIS_ERROR, 1, "ERROR: Mantis INPUT exit! <%d>", err);
+   mantis_input_exit(mantis);
+
 fail4:
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DMA exit! <%d>", err);
mantis_dma_exit(mantis);
@@ -257,6 +277,7 @@ static void __devexit mantis_pci_remove(struct pci_dev 
*pdev)
if (mantis) {
 
mantis_uart_exit(mantis);
+   mantis_input_exit(mantis);
mantis_dvb_exit(mantis);
mantis_dma_exit(mantis);
mantis_i2c_exit(mantis);
diff --git a/drivers/media/dvb/mantis/mantis_common.h 
b/drivers/media/dvb/mant

[PATCH] Add remote control support for mantis

2011-05-25 Thread Christoph Pinkl

Signed-off-by: Christoph Pinkl 
---
 drivers/media/dvb/mantis/hopper_cards.c|2 +-
 drivers/media/dvb/mantis/mantis_cards.c|   27 +++-
 drivers/media/dvb/mantis/mantis_common.h   |   23 ++-
 drivers/media/dvb/mantis/mantis_input.c|  168 +++-
 drivers/media/dvb/mantis/mantis_input.h|   28 
 drivers/media/dvb/mantis/mantis_uart.c |   18 +--
 drivers/media/dvb/mantis/mantis_vp1041.c   |   20 +++
 drivers/media/dvb/mantis/mantis_vp2033.c   |4 +
 drivers/media/dvb/mantis/mantis_vp2040.c   |4 +
 drivers/media/rc/keymaps/Makefile  |3 +
 .../media/rc/keymaps/rc-terratec-cinergy-c-pci.c   |   85 ++
 .../media/rc/keymaps/rc-terratec-cinergy-s2-hd.c   |   85 ++
 drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c   |   95 +++
 include/media/rc-map.h |3 +
 14 files changed, 438 insertions(+), 127 deletions(-)
 create mode 100644 drivers/media/dvb/mantis/mantis_input.h
 create mode 100644 drivers/media/rc/keymaps/rc-terratec-cinergy-c-pci.c
 create mode 100644 drivers/media/rc/keymaps/rc-terratec-cinergy-s2-hd.c
 create mode 100644 drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c

diff --git a/drivers/media/dvb/mantis/hopper_cards.c 
b/drivers/media/dvb/mantis/hopper_cards.c
index 1402062..0b76664 100644
--- a/drivers/media/dvb/mantis/hopper_cards.c
+++ b/drivers/media/dvb/mantis/hopper_cards.c
@@ -107,7 +107,7 @@ static irqreturn_t hopper_irq_handler(int irq, void *dev_id)
}
if (stat & MANTIS_INT_IRQ1) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
-   schedule_work(&mantis->uart_work);
+   tasklet_schedule(&mantis->uart_tasklet);
}
if (stat & MANTIS_INT_OCERR) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]);
diff --git a/drivers/media/dvb/mantis/mantis_cards.c 
b/drivers/media/dvb/mantis/mantis_cards.c
index 05cbb9d..8eca749 100644
--- a/drivers/media/dvb/mantis/mantis_cards.c
+++ b/drivers/media/dvb/mantis/mantis_cards.c
@@ -49,6 +49,7 @@
 #include "mantis_pci.h"
 #include "mantis_i2c.h"
 #include "mantis_reg.h"
+#include "mantis_input.h"
 
 static unsigned int verbose;
 module_param(verbose, int, 0644);
@@ -115,7 +116,7 @@ static irqreturn_t mantis_irq_handler(int irq, void *dev_id)
}
if (stat & MANTIS_INT_IRQ1) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
-   schedule_work(&mantis->uart_work);
+   tasklet_schedule(&mantis->uart_tasklet);
}
if (stat & MANTIS_INT_OCERR) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]);
@@ -180,6 +181,14 @@ static int __devinit mantis_pci_probe(struct pci_dev 
*pdev, const struct pci_dev
config->irq_handler = &mantis_irq_handler;
mantis->hwconfig= config;
 
+   if (mantis->hwconfig->config_init != NULL) {
+   dprintk(MANTIS_ERROR, 1,
+   "Mantis-subsystem: vendor:0x%04x, device:0x%04x\n",
+   mantis->pdev->subsystem_vendor,
+   mantis->pdev->subsystem_device);
+   mantis->hwconfig->config_init(mantis);
+   }
+
err = mantis_pci_init(mantis);
if (err) {
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis PCI initialization 
failed <%d>", err);
@@ -215,21 +224,32 @@ static int __devinit mantis_pci_probe(struct pci_dev 
*pdev, const struct pci_dev
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DVB initialization 
failed <%d>", err);
goto fail4;
}
+
+   err = mantis_input_init(mantis);
+   if (err < 0) {
+   dprintk(MANTIS_ERROR, 1, "ERROR: Mantis INPUT initialization 
failed <%d>", err);
+   goto fail6;
+   }
+
+
err = mantis_uart_init(mantis);
if (err < 0) {
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART initialization 
failed <%d>", err);
-   goto fail6;
+   goto fail7;
}
 
devs++;
 
return err;
 
-
+fail7:
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART exit! <%d>", err);
mantis_uart_exit(mantis);
 
 fail6:
+   dprintk(MANTIS_ERROR, 1, "ERROR: Mantis INPUT exit! <%d>", err);
+   mantis_input_exit(mantis);
+
 fail4:
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DMA exit! <%d>", err);
mantis_dma_exit(mantis);
@@ -257,6 +277,7 @@ static void __devexit mantis_pci_remove(struct pci_dev 
*pdev)
if (mantis) {
 
mantis_uart_exit(mantis);
+   mantis_input_exit(mantis);
   

[PATCH] Add remote control support for mantis

2011-05-25 Thread Christoph Pinkl
Add remote control support for mantis driver


Signed-off-by: Christoph Pinkl 
---
 drivers/media/dvb/mantis/hopper_cards.c|2 +-
 drivers/media/dvb/mantis/mantis_cards.c|   27 +++-
 drivers/media/dvb/mantis/mantis_common.h   |   23 ++-
 drivers/media/dvb/mantis/mantis_input.c|  168
+++-
 drivers/media/dvb/mantis/mantis_input.h|   28 
 drivers/media/dvb/mantis/mantis_uart.c |   18 +--
 drivers/media/dvb/mantis/mantis_vp1041.c   |   20 +++
 drivers/media/dvb/mantis/mantis_vp2033.c   |4 +
 drivers/media/dvb/mantis/mantis_vp2040.c   |4 +
 drivers/media/rc/keymaps/Makefile  |3 +
 .../media/rc/keymaps/rc-terratec-cinergy-c-pci.c   |   85 ++
 .../media/rc/keymaps/rc-terratec-cinergy-s2-hd.c   |   85 ++
 drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c   |   95 +++
 include/media/rc-map.h |3 +
 14 files changed, 438 insertions(+), 127 deletions(-)
 create mode 100644 drivers/media/dvb/mantis/mantis_input.h
 create mode 100644 drivers/media/rc/keymaps/rc-terratec-cinergy-c-pci.c
 create mode 100644 drivers/media/rc/keymaps/rc-terratec-cinergy-s2-hd.c
 create mode 100644 drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c

diff --git a/drivers/media/dvb/mantis/hopper_cards.c
b/drivers/media/dvb/mantis/hopper_cards.c
index 1402062..0b76664 100644
--- a/drivers/media/dvb/mantis/hopper_cards.c
+++ b/drivers/media/dvb/mantis/hopper_cards.c
@@ -107,7 +107,7 @@ static irqreturn_t hopper_irq_handler(int irq, void
*dev_id)
}
if (stat & MANTIS_INT_IRQ1) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
-   schedule_work(&mantis->uart_work);
+   tasklet_schedule(&mantis->uart_tasklet);
}
if (stat & MANTIS_INT_OCERR) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]);
diff --git a/drivers/media/dvb/mantis/mantis_cards.c
b/drivers/media/dvb/mantis/mantis_cards.c
index 05cbb9d..8eca749 100644
--- a/drivers/media/dvb/mantis/mantis_cards.c
+++ b/drivers/media/dvb/mantis/mantis_cards.c
@@ -49,6 +49,7 @@
 #include "mantis_pci.h"
 #include "mantis_i2c.h"
 #include "mantis_reg.h"
+#include "mantis_input.h"
 
 static unsigned int verbose;
 module_param(verbose, int, 0644);
@@ -115,7 +116,7 @@ static irqreturn_t mantis_irq_handler(int irq, void
*dev_id)
}
if (stat & MANTIS_INT_IRQ1) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
-   schedule_work(&mantis->uart_work);
+   tasklet_schedule(&mantis->uart_tasklet);
}
if (stat & MANTIS_INT_OCERR) {
dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]);
@@ -180,6 +181,14 @@ static int __devinit mantis_pci_probe(struct pci_dev
*pdev, const struct pci_dev
config->irq_handler = &mantis_irq_handler;
mantis->hwconfig= config;
 
+   if (mantis->hwconfig->config_init != NULL) {
+   dprintk(MANTIS_ERROR, 1,
+   "Mantis-subsystem: vendor:0x%04x, device:0x%04x\n",
+   mantis->pdev->subsystem_vendor,
+   mantis->pdev->subsystem_device);
+   mantis->hwconfig->config_init(mantis);
+   }
+
err = mantis_pci_init(mantis);
if (err) {
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis PCI initialization
failed <%d>", err);
@@ -215,21 +224,32 @@ static int __devinit mantis_pci_probe(struct pci_dev
*pdev, const struct pci_dev
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DVB initialization
failed <%d>", err);
goto fail4;
}
+
+   err = mantis_input_init(mantis);
+   if (err < 0) {
+   dprintk(MANTIS_ERROR, 1, "ERROR: Mantis INPUT initialization
failed <%d>", err);
+   goto fail6;
+   }
+
+
err = mantis_uart_init(mantis);
if (err < 0) {
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART initialization
failed <%d>", err);
-   goto fail6;
+   goto fail7;
}
 
devs++;
 
return err;
 
-
+fail7:
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART exit! <%d>", err);
mantis_uart_exit(mantis);
 
 fail6:
+   dprintk(MANTIS_ERROR, 1, "ERROR: Mantis INPUT exit! <%d>", err);
+   mantis_input_exit(mantis);
+
 fail4:
dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DMA exit! <%d>", err);
mantis_dma_exit(mantis);
@@ -257,6 +277,7 @@ static void __devexit mantis_pci_remove(struct pci_dev
*pdev)
if (mantis) {
 
mantis_uart_exit(mantis);
+

AW: AW: Remote control not working for Terratec Cinergy C (2.6.37 Mantis driver)

2011-05-22 Thread Christoph Pinkl
Hello,

I've removed the rc_keyup call as the timeout release the key automatically.
This seems to work better.

I also added the possibility to define different keytables for boards with
different subsystems as Lou mentioned.

Regards
Chris



mantis_ir.patch
Description: Binary data


AW: Remote control not working for Terratec Cinergy C (2.6.37 Mantis driver)

2011-05-13 Thread Christoph Pinkl
Hello,

This patch is a rework of a old patch I've posted some time ago.
It adds support for Remote-Control in the mantis driver and implements the
new rc-API.
The patch enables rc for the cards
- vp1041
- vp2033
- vp2040

It's only tested with a Terratec Cinergy S2 HD.
Would be nice to get some Feedback.

Regards
Chris


mantis_ir.patch
Description: Binary data


AW: Remote control not working for Terratec Cinergy C (2.6.37 Mantis driver)

2011-05-11 Thread Christoph Pinkl
Hello,

I've decided to rework my patch once again and send it to the list. 
It adds support for Remote-Control in the mantis driver and implements the
new rc-API.
The patch enables rc for the cards
- vp1041
- vp2033
- vp2040

It's only tested with a Terratec Cinergy S2 HD

Regards
Chris


I've reworked my patch using at home for 

> -Ursprüngliche Nachricht-
> Von: linux-media-ow...@vger.kernel.org [mailto:linux-media-
> ow...@vger.kernel.org] Im Auftrag von Adrian C.
> Gesendet: Dienstag, 10. Mai 2011 23:30
> An: linux-media@vger.kernel.org
> Betreff: Re: Remote control not working for Terratec Cinergy C (2.6.37
> Mantis driver)
> 
> On Fri, 6 May 2011, Marko Ristola wrote:
> 
> > The hardware device is active (it is enabled, messages are sent from
> > the remote to the Kernel Mantis software driver. The bytes can be
> > logged into /var/log/messages file.
> >
> > That's all the driver is designed to do at this point.
> 
> It doesn't sound promising. Thanks for the update Marko.
> 
> --
> Adrian C. (anrxc) | anrxc..sysphere.org | PGP ID: D20A0618
> PGP FP: 02A5 628A D8EE 2A93 996E  929F D5CB 31B7 D20A 0618
> --
> 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


mantis_ir.patch
Description: Binary data


IR Remote Support for Mantis VP-1041

2009-04-21 Thread Christoph Pinkl
Hello,

Here is a patch against the s2-liplianin [1] repo to support ir remote for
the mantis vp-1041 (TerraTec Cinergy S2 PCI HD) cards. This patch is based
on the remote control patch from Pauli Borodulin [2]
and adds support for the vp-1041 cards. The ir-keymap is based on the 
remote-control from the TerraTec Cinergy S2 PCI HD Card. 

[1] http://mercurial.intuxication.org/hg/s2-liplianin
[2] http://pauli.borodulin.fi/blog/?p=8

chris


mantis-rc-s2-liplianin.diff
Description: Binary data