From 7118b4431b185a101e700ac79fa011000b2b71c3 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Mon, 25 Mar 2013 06:52:19 -0300 Subject: [PATCH] [media] go7007: update the README Include the patch required to add support for the go7007 to saa7134. To be applied once the driver is moved out of staging. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- drivers/staging/media/go7007/README | 142 ++++++++++++++++++++++++++-- 1 file changed, 134 insertions(+), 8 deletions(-) diff --git a/drivers/staging/media/go7007/README b/drivers/staging/media/go7007/README index aeba1324a9c5..3af0d9062811 100644 --- a/drivers/staging/media/go7007/README +++ b/drivers/staging/media/go7007/README @@ -1,11 +1,137 @@ Todo: - - checkpatch.pl cleanups - - sparse cleanups - - lots of little modules, should be merged together - and added to the build. - - testing? - - handle churn in v4l layer. + - create an API for motion detection + - let s2250-board use i2c subdevs as well instead of hardcoding + support for the i2c devices. + - when the driver is moved out of staging, support for saa7134-go7007 + should be added to the saa7134 driver. The patch for that is + included below. -Please send patches to Greg Kroah-Hartman and Cc: Ross -Cohen as well. +Patch for saa7134: +diff --git a/drivers/media/pci/saa7134/saa7134-cards.c b/drivers/media/pci/saa7134/saa7134-cards.c +index dc68cf1..9a53794 100644 +--- a/drivers/media/pci/saa7134/saa7134-cards.c ++++ b/drivers/media/pci/saa7134/saa7134-cards.c +@@ -5790,6 +5790,29 @@ struct saa7134_board saa7134_boards[] = { + .gpio = 0x6010000, + } }, + }, ++ [SAA7134_BOARD_WIS_VOYAGER] = { ++ .name = "WIS Voyager or compatible", ++ .audio_clock = 0x00200000, ++ .tuner_type = TUNER_PHILIPS_TDA8290, ++ .radio_type = UNSET, ++ .tuner_addr = ADDR_UNSET, ++ .radio_addr = ADDR_UNSET, ++ .mpeg = SAA7134_MPEG_GO7007, ++ .inputs = { { ++ .name = name_comp1, ++ .vmux = 0, ++ .amux = LINE2, ++ }, { ++ .name = name_tv, ++ .vmux = 3, ++ .amux = TV, ++ .tv = 1, ++ }, { ++ .name = name_svideo, ++ .vmux = 6, ++ .amux = LINE1, ++ } }, ++ }, + + }; + +@@ -7037,6 +7060,12 @@ struct pci_device_id saa7134_pci_tbl[] = { + .subdevice = 0x0911, + .driver_data = SAA7134_BOARD_SENSORAY811_911, + }, { ++ .vendor = PCI_VENDOR_ID_PHILIPS, ++ .device = PCI_DEVICE_ID_PHILIPS_SAA7133, ++ .subvendor = 0x1905, /* WIS */ ++ .subdevice = 0x7007, ++ .driver_data = SAA7134_BOARD_WIS_VOYAGER, ++ }, { + /* --- boards without eeprom + subsystem ID --- */ + .vendor = PCI_VENDOR_ID_PHILIPS, + .device = PCI_DEVICE_ID_PHILIPS_SAA7134, +diff --git a/drivers/media/pci/saa7134/saa7134-core.c b/drivers/media/pci/saa7134/saa7134-core.c +index 8fd24e7..0a849ea 100644 +--- a/drivers/media/pci/saa7134/saa7134-core.c ++++ b/drivers/media/pci/saa7134/saa7134-core.c +@@ -156,6 +156,8 @@ static void request_module_async(struct work_struct *work){ + request_module("saa7134-empress"); + if (card_is_dvb(dev)) + request_module("saa7134-dvb"); ++ if (card_is_go7007(dev)) ++ request_module("saa7134-go7007"); + if (alsa) { + if (dev->pci->device != PCI_DEVICE_ID_PHILIPS_SAA7130) + request_module("saa7134-alsa"); +@@ -557,8 +559,12 @@ static irqreturn_t saa7134_irq(int irq, void *dev_id) + saa7134_irq_vbi_done(dev,status); + + if ((report & SAA7134_IRQ_REPORT_DONE_RA2) && +- card_has_mpeg(dev)) +- saa7134_irq_ts_done(dev,status); ++ card_has_mpeg(dev)) { ++ if (dev->mops->irq_ts_done != NULL) ++ dev->mops->irq_ts_done(dev, status); ++ else ++ saa7134_irq_ts_done(dev, status); ++ } + + if (report & SAA7134_IRQ_REPORT_GPIO16) { + switch (dev->has_remote) { +diff --git a/drivers/media/pci/saa7134/saa7134.h b/drivers/media/pci/saa7134/saa7134.h +index 62169dd..5fad39a 100644 +--- a/drivers/media/pci/saa7134/saa7134.h ++++ b/drivers/media/pci/saa7134/saa7134.h +@@ -334,6 +334,7 @@ struct saa7134_card_ir { + #define SAA7134_BOARD_KWORLD_PC150U 189 + #define SAA7134_BOARD_ASUSTeK_PS3_100 190 + #define SAA7134_BOARD_HAWELL_HW_9004V1 191 ++#define SAA7134_BOARD_WIS_VOYAGER 192 + + #define SAA7134_MAXBOARDS 32 + #define SAA7134_INPUT_MAX 8 +@@ -364,6 +365,7 @@ enum saa7134_mpeg_type { + SAA7134_MPEG_UNUSED, + SAA7134_MPEG_EMPRESS, + SAA7134_MPEG_DVB, ++ SAA7134_MPEG_GO7007, + }; + + enum saa7134_mpeg_ts_type { +@@ -403,6 +405,7 @@ struct saa7134_board { + #define card_has_radio(dev) (NULL != saa7134_boards[dev->board].radio.name) + #define card_is_empress(dev) (SAA7134_MPEG_EMPRESS == saa7134_boards[dev->board].mpeg) + #define card_is_dvb(dev) (SAA7134_MPEG_DVB == saa7134_boards[dev->board].mpeg) ++#define card_is_go7007(dev) (SAA7134_MPEG_GO7007 == saa7134_boards[dev->board].mpeg) + #define card_has_mpeg(dev) (SAA7134_MPEG_UNUSED != saa7134_boards[dev->board].mpeg) + #define card(dev) (saa7134_boards[dev->board]) + #define card_in(dev,n) (saa7134_boards[dev->board].inputs[n]) +@@ -535,6 +538,8 @@ struct saa7134_mpeg_ops { + int (*init)(struct saa7134_dev *dev); + int (*fini)(struct saa7134_dev *dev); + void (*signal_change)(struct saa7134_dev *dev); ++ void (*irq_ts_done)(struct saa7134_dev *dev, ++ unsigned long status); + }; + + /* global device status */ +diff --git a/drivers/staging/media/go7007/Makefile b/drivers/staging/media/go7007/Makefile +index 9c6ad4a..1b23689 100644 +--- a/drivers/staging/media/go7007/Makefile ++++ b/drivers/staging/media/go7007/Makefile +@@ -8,8 +8,7 @@ go7007-y := go7007-v4l2.o go7007-driver.o go7007-i2c.o go7007-fw.o \ + + s2250-y := s2250-board.o + +-# Uncomment when the saa7134 patches get into upstream +-#obj-$(CONFIG_VIDEO_SAA7134) += saa7134-go7007.o +-#ccflags-$(CONFIG_VIDEO_SAA7134:m=y) += -Idrivers/media/pci/saa7134 ++obj-$(CONFIG_VIDEO_SAA7134) += saa7134-go7007.o ++ccflags-$(CONFIG_VIDEO_SAA7134:m=y) += -Idrivers/media/pci/saa7134 + + ccflags-$(CONFIG_VIDEO_GO7007_LOADER:m=y) += -Idrivers/media/common -- 2.20.1