summaryrefslogtreecommitdiff
path: root/v4l_experimental/pvrusb2
diff options
context:
space:
mode:
Diffstat (limited to 'v4l_experimental/pvrusb2')
-rw-r--r--v4l_experimental/pvrusb2/README2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-audio.c2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-audio.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-context.c2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-context.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-debug.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-debugifc.c2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-debugifc.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-demod.c2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-demod.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-eeprom.c48
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-eeprom.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-encoder.c2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-encoder.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-hdw-internal.h9
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-hdw.c39
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-hdw.h8
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-i2c-chips-v4l2.c7
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-i2c-cmd-v4l2.c23
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-i2c-cmd-v4l2.h3
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-i2c-core.c4
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-i2c-core.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-io.c2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-io.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-ioread.c2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-ioread.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-main.c2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-sysfs.c3
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-sysfs.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-tuner.c2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-tuner.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-util.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-v4l2.c8
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-v4l2.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-video-v4l.c2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2-video-v4l.h2
-rw-r--r--v4l_experimental/pvrusb2/pvrusb2.h2
37 files changed, 155 insertions, 51 deletions
diff --git a/v4l_experimental/pvrusb2/README b/v4l_experimental/pvrusb2/README
index 073491307..c73a32c34 100644
--- a/v4l_experimental/pvrusb2/README
+++ b/v4l_experimental/pvrusb2/README
@@ -1,5 +1,5 @@
-$Id: README,v 1.2 2006/01/01 08:26:03 mcisely Exp $
+$Id$
Mike Isely <isely@pobox.com>
pvrusb2 driver
diff --git a/v4l_experimental/pvrusb2/pvrusb2-audio.c b/v4l_experimental/pvrusb2/pvrusb2-audio.c
index 067a686e0..88aeb1926 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-audio.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-audio.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-audio.c,v 1.9 2006/01/23 07:00:31 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
diff --git a/v4l_experimental/pvrusb2/pvrusb2-audio.h b/v4l_experimental/pvrusb2/pvrusb2-audio.h
index 0a278927e..536339b68 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-audio.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-audio.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-audio.h,v 1.2 2006/01/01 08:26:03 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
diff --git a/v4l_experimental/pvrusb2/pvrusb2-context.c b/v4l_experimental/pvrusb2/pvrusb2-context.c
index 1f8b400a0..7044ba027 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-context.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-context.c
@@ -1,5 +1,5 @@
/*
- * $Id: pvrusb2-context.c,v 1.3 2006/01/23 06:58:06 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-context.h b/v4l_experimental/pvrusb2/pvrusb2-context.h
index 229a8ef0e..e721cc559 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-context.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-context.h
@@ -1,5 +1,5 @@
/*
- * $Id: pvrusb2-context.h,v 1.3 2006/01/23 06:58:06 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-debug.h b/v4l_experimental/pvrusb2/pvrusb2-debug.h
index 70a143736..078f5f5a0 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-debug.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-debug.h
@@ -1,5 +1,5 @@
/*
- * $Id: pvrusb2-debug.h,v 1.5 2006/01/14 22:09:52 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-debugifc.c b/v4l_experimental/pvrusb2/pvrusb2-debugifc.c
index f56b96f56..5ecf98c77 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-debugifc.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-debugifc.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-debugifc.c,v 1.2 2006/01/01 08:26:03 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-debugifc.h b/v4l_experimental/pvrusb2/pvrusb2-debugifc.h
index 59f4373d6..990b02d35 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-debugifc.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-debugifc.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-debugifc.h,v 1.1 2005/11/14 13:31:24 mchehab Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-demod.c b/v4l_experimental/pvrusb2/pvrusb2-demod.c
index f7545b773..dca787dfa 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-demod.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-demod.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-demod.c,v 1.5 2006/01/22 03:48:34 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
diff --git a/v4l_experimental/pvrusb2/pvrusb2-demod.h b/v4l_experimental/pvrusb2/pvrusb2-demod.h
index 0067872ea..4c4e40ffb 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-demod.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-demod.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-demod.h,v 1.1 2006/01/01 08:26:03 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-eeprom.c b/v4l_experimental/pvrusb2/pvrusb2-eeprom.c
index 9df9fd3eb..60ee45ca2 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-eeprom.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-eeprom.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-eeprom.c,v 1.5 2006/01/14 19:09:50 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
@@ -86,21 +86,22 @@
*/
-#define PVR_EEPROM_I2C_ADDR 0x50
-
#include <media/tveeprom.h>
-/* We seem to only be interested in the back half of the EEPROM */
+/* We seem to only be interested in the last 128 bytes of the EEPROM */
#define EEPROM_SIZE 128
-#define EEPROM_OFFS 128
/* Grab EEPROM contents, needed for direct method. */
static u8 *pvr2_eeprom_fetch(struct pvr2_hdw *hdw)
{
struct i2c_msg msg[2];
u8 *eeprom;
- u8 offs;
+ u8 iadd[2];
+ u8 addr;
+ u16 eepromSize;
+ unsigned int offs;
int ret;
+ int mode16 = 0;
unsigned pcnt,tcnt;
eeprom = kmalloc(EEPROM_SIZE,GFP_KERNEL);
if (!eeprom) {
@@ -110,11 +111,28 @@ static u8 *pvr2_eeprom_fetch(struct pvr2_hdw *hdw)
return 0;
}
- msg[0].addr = PVR_EEPROM_I2C_ADDR;
+ trace_eeprom("Value for eeprom addr from controller was 0x%x",
+ hdw->eeprom_addr);
+ addr = hdw->eeprom_addr;
+ /* Seems that if the high bit is set, then the *real* eeprom
+ address is shifted right now bit position (noticed this in
+ newer PVR USB2 hardware) */
+ if (addr & 0x80) addr >>= 1;
+
+ /* FX2 documentation states that a 16bit-addressed eeprom is
+ expected if the I2C address is an odd number (yeah, this is
+ strange bit it's what they do) */
+ mode16 = (addr & 1);
+ eepromSize = (mode16 ? 4096 : 256);
+ trace_eeprom("Examining %d byte eeprom at location 0x%x"
+ " using %d bit addressing",eepromSize,addr,
+ mode16 ? 16 : 8);
+
+ msg[0].addr = addr;
msg[0].flags = 0;
- msg[0].len = 1;
- msg[0].buf = &offs;
- msg[1].addr = PVR_EEPROM_I2C_ADDR;
+ msg[0].len = mode16 ? 2 : 1;
+ msg[0].buf = iadd;
+ msg[1].addr = hdw->eeprom_addr;
msg[1].flags = I2C_M_RD;
/* We have to do the actual eeprom data fetch ourselves, because
@@ -125,7 +143,13 @@ static u8 *pvr2_eeprom_fetch(struct pvr2_hdw *hdw)
for (tcnt = 0; tcnt < EEPROM_SIZE; tcnt += pcnt) {
pcnt = 16;
if (pcnt + tcnt > EEPROM_SIZE) pcnt = EEPROM_SIZE-tcnt;
- offs = tcnt + EEPROM_OFFS;
+ offs = tcnt + (eepromSize - EEPROM_SIZE);
+ if (mode16) {
+ iadd[0] = offs >> 8;
+ iadd[1] = offs;
+ } else {
+ iadd[0] = offs;
+ }
msg[1].len = pcnt;
msg[1].buf = eeprom+tcnt;
if ((ret = i2c_transfer(
@@ -163,7 +187,7 @@ int pvr2_eeprom_analyze(struct pvr2_hdw *hdw)
{
struct i2c_client fake_client;
/* Newer version expects a useless client interface */
- fake_client.addr = PVR_EEPROM_I2C_ADDR;
+ fake_client.addr = hdw->eeprom_addr;
fake_client.adapter = &hdw->i2c_adap;
tveeprom_hauppauge_analog(&fake_client,&tvdata,eeprom);
}
diff --git a/v4l_experimental/pvrusb2/pvrusb2-eeprom.h b/v4l_experimental/pvrusb2/pvrusb2-eeprom.h
index edc80b62e..061cecd91 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-eeprom.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-eeprom.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-eeprom.h,v 1.1 2005/11/14 13:31:24 mchehab Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
diff --git a/v4l_experimental/pvrusb2/pvrusb2-encoder.c b/v4l_experimental/pvrusb2/pvrusb2-encoder.c
index 046cd9f1f..9fb036356 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-encoder.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-encoder.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-encoder.c,v 1.5 2006/01/14 20:11:08 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
diff --git a/v4l_experimental/pvrusb2/pvrusb2-encoder.h b/v4l_experimental/pvrusb2/pvrusb2-encoder.h
index 4a35e8ac0..01b5a0b89 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-encoder.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-encoder.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-encoder.h,v 1.1 2005/11/14 13:31:24 mchehab Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
diff --git a/v4l_experimental/pvrusb2/pvrusb2-hdw-internal.h b/v4l_experimental/pvrusb2/pvrusb2-hdw-internal.h
index c4b1cbdcd..12934d3a4 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-hdw-internal.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-hdw-internal.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-hdw-internal.h,v 1.6 2006/01/23 06:58:06 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
@@ -176,6 +176,10 @@ struct pvr2_hdw {
// Which subsystems are manipulated to enable streaming
unsigned long subsys_stream_mask;
+ // True if there is a request to trigger logging of state in each
+ // module.
+ int log_requested;
+
/* Tuner / frequency control stuff */
unsigned int tuner_type;
int tuner_updated;
@@ -188,6 +192,9 @@ struct pvr2_hdw {
be no v4l junk here). Probably a better way to do this. */
int v4l_minor_number;
+ /* Location of eeprom or a negative number if none */
+ int eeprom_addr;
+
enum pvr2_config config;
/* Information about what audio signal we're hearing */
diff --git a/v4l_experimental/pvrusb2/pvrusb2-hdw.c b/v4l_experimental/pvrusb2/pvrusb2-hdw.c
index 20206cff9..a2620e421 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-hdw.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-hdw.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-hdw.c,v 1.13 2006/01/23 06:58:06 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
@@ -954,6 +954,7 @@ static unsigned int get_default_error_tolerance(struct pvr2_hdw *hdw)
static void pvr2_hdw_setup_low(struct pvr2_hdw *hdw)
{
+ int ret;
unsigned int idx;
if (hdw->usb_intf->cur_altsetting->desc.bNumEndpoints == 0) {
if (pvr2_upload_firmware1(hdw) != 0) {
@@ -987,8 +988,16 @@ static void pvr2_hdw_setup_low(struct pvr2_hdw *hdw)
pvr2_reset_ctl_endpoints(hdw);
if (!pvr2_hdw_dev_ok(hdw)) return;
- pvr2_eeprom_analyze(hdw);
+ ret = pvr2_hdw_get_eeprom_addr(hdw);
if (!pvr2_hdw_dev_ok(hdw)) return;
+ if (ret < 0) {
+ pvr2_trace(PVR2_TRACE_ERROR_LEGS,
+ "Unable to determine location of eeprom, skipping");
+ } else {
+ hdw->eeprom_addr = ret;
+ pvr2_eeprom_analyze(hdw);
+ if (!pvr2_hdw_dev_ok(hdw)) return;
+ }
if (!get_default_tuner_type(hdw)) {
pvr2_trace(PVR2_TRACE_INIT,
@@ -1115,6 +1124,7 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf)
pvr2_trace(PVR2_TRACE_INIT,"pvr2_hdw_create: hdw=%p",hdw);
if (!hdw) goto fail;
memset(hdw,0,sizeof(*hdw));
+ hdw->eeprom_addr = -1;
hdw->unit_number = -1;
hdw->v4l_minor_number = -1;
hdw->ctl_write_buffer = kmalloc(PVR2_CTL_BUFFSIZE,GFP_KERNEL);
@@ -1697,6 +1707,16 @@ struct pvr2_stream *pvr2_hdw_get_video_stream(struct pvr2_hdw *hp)
}
+void pvr2_hdw_trigger_module_log(struct pvr2_hdw *hdw)
+{
+ LOCK_TAKE(hdw->big_lock); do {
+ hdw->log_requested = !0;
+ pvr2_i2c_core_check_stale(hdw);
+ hdw->log_requested = 0;
+ pvr2_i2c_core_sync(hdw);
+ } while (0); LOCK_GIVE(hdw->big_lock);
+}
+
void pvr2_hdw_cpufw_set_enabled(struct pvr2_hdw *hdw, int enable_flag)
{
int ret;
@@ -2327,6 +2347,21 @@ int pvr2_hdw_gpio_chg_out(struct pvr2_hdw *hdw,u32 msk,u32 val)
}
+int pvr2_hdw_get_eeprom_addr(struct pvr2_hdw *hdw)
+{
+ int result;
+ LOCK_TAKE(hdw->ctl_lock); do {
+ hdw->cmd_buffer[0] = 0xeb;
+ result = pvr2_send_request(hdw,
+ hdw->cmd_buffer,1,
+ hdw->cmd_buffer,1);
+ if (result < 0) break;
+ result = hdw->cmd_buffer[0];
+ } while(0); LOCK_GIVE(hdw->ctl_lock);
+ return result;
+}
+
+
/*
Stuff for Emacs to see, in order to encourage consistent editing style:
*** Local Variables: ***
diff --git a/v4l_experimental/pvrusb2/pvrusb2-hdw.h b/v4l_experimental/pvrusb2/pvrusb2-hdw.h
index d813d07d4..af70b7545 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-hdw.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-hdw.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-hdw.h,v 1.6 2006/01/14 21:11:17 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
@@ -353,6 +353,9 @@ int pvr2_hdw_cmd_soft_reset(struct pvr2_hdw *);
/* Stop / start video stream transport */
int pvr2_hdw_cmd_usbstream(struct pvr2_hdw *hdw,int runFl);
+/* Find I2C address of eeprom */
+int pvr2_hdw_get_eeprom_addr(struct pvr2_hdw *);
+
/* Direct manipulation of GPIO bits */
int pvr2_hdw_gpio_get_dir(struct pvr2_hdw *hdw,u32 *);
int pvr2_hdw_gpio_get_out(struct pvr2_hdw *hdw,u32 *);
@@ -387,6 +390,9 @@ struct pvr2_hdw_debug_info {
void pvr2_hdw_get_debug_info(const struct pvr2_hdw *hdw,
struct pvr2_hdw_debug_info *);
+/* Cause modules to log their state once */
+void pvr2_hdw_trigger_module_log(struct pvr2_hdw *hdw);
+
/* Cause encoder firmware to be uploaded into the device. This is normally
done autonomously, but the interface is exported here because it is also
a debugging aid. */
diff --git a/v4l_experimental/pvrusb2/pvrusb2-i2c-chips-v4l2.c b/v4l_experimental/pvrusb2/pvrusb2-i2c-chips-v4l2.c
index ff8d38063..2d97653d5 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-i2c-chips-v4l2.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-i2c-chips-v4l2.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-i2c-chips-v4l2.c,v 1.3 2006/01/22 03:55:03 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
@@ -37,6 +37,7 @@
#define OP_FREQ 3
#define OP_AUDIORATE 4
#define OP_SIZE 5
+#define OP_LOG 6
static const struct pvr2_i2c_op * const ops[] = {
[OP_STANDARD] = &pvr2_i2c_op_v4l2_standard,
@@ -44,6 +45,7 @@ static const struct pvr2_i2c_op * const ops[] = {
[OP_VOLUME] = &pvr2_i2c_op_v4l2_volume,
[OP_FREQ] = &pvr2_i2c_op_v4l2_frequency,
[OP_SIZE] = &pvr2_i2c_op_v4l2_size,
+ [OP_LOG] = &pvr2_i2c_op_v4l2_log,
};
void pvr2_i2c_probe(struct pvr2_hdw *hdw,struct pvr2_i2c_client *cp)
@@ -54,7 +56,8 @@ void pvr2_i2c_probe(struct pvr2_hdw *hdw,struct pvr2_i2c_client *cp)
(1 << OP_BCSH) |
(1 << OP_VOLUME) |
(1 << OP_FREQ) |
- (1 << OP_SIZE));
+ (1 << OP_SIZE) |
+ (1 << OP_LOG));
if (id == I2C_DRIVERID_MSP3400) {
if (pvr2_i2c_msp3400_setup(hdw,cp)) {
diff --git a/v4l_experimental/pvrusb2/pvrusb2-i2c-cmd-v4l2.c b/v4l_experimental/pvrusb2/pvrusb2-i2c-cmd-v4l2.c
index 92f2dfa6a..69864782b 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-i2c-cmd-v4l2.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-i2c-cmd-v4l2.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-i2c-cmd-v4l2.c,v 1.1 2006/01/01 08:26:03 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
@@ -218,6 +218,27 @@ const struct pvr2_i2c_op pvr2_i2c_op_v4l2_size = {
};
+static void do_log(struct pvr2_hdw *hdw)
+{
+ pvr2_trace(PVR2_TRACE_CHIPS,"i2c v4l2 do_log()");
+ pvr2_i2c_core_cmd(hdw,VIDIOC_LOG_STATUS,0);
+
+}
+
+
+static int check_log(struct pvr2_hdw *hdw)
+{
+ return hdw->log_requested != 0;
+}
+
+
+const struct pvr2_i2c_op pvr2_i2c_op_v4l2_log = {
+ .check = check_log,
+ .update = do_log,
+ .name = "v4l2_log",
+};
+
+
/*
Stuff for Emacs to see, in order to encourage consistent editing style:
*** Local Variables: ***
diff --git a/v4l_experimental/pvrusb2/pvrusb2-i2c-cmd-v4l2.h b/v4l_experimental/pvrusb2/pvrusb2-i2c-cmd-v4l2.h
index 8c3945e93..fa0a3af7e 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-i2c-cmd-v4l2.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-i2c-cmd-v4l2.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-i2c-cmd-v4l2.h,v 1.1 2006/01/01 08:26:03 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
@@ -31,6 +31,7 @@ extern const struct pvr2_i2c_op pvr2_i2c_op_v4l2_bcsh;
extern const struct pvr2_i2c_op pvr2_i2c_op_v4l2_volume;
extern const struct pvr2_i2c_op pvr2_i2c_op_v4l2_frequency;
extern const struct pvr2_i2c_op pvr2_i2c_op_v4l2_size;
+extern const struct pvr2_i2c_op pvr2_i2c_op_v4l2_log;
#endif /* __PVRUSB2_CMD_V4L2_H */
diff --git a/v4l_experimental/pvrusb2/pvrusb2-i2c-core.c b/v4l_experimental/pvrusb2/pvrusb2-i2c-core.c
index b45463a2d..245747341 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-i2c-core.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-i2c-core.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-i2c-core.c,v 1.5 2006/01/23 06:58:06 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
@@ -289,7 +289,7 @@ static int pvr2_i2c_control(struct i2c_adapter *adapter,
static u32 pvr2_i2c_functionality(struct i2c_adapter *adap)
{
- return I2C_FUNC_SMBUS_EMUL;
+ return I2C_FUNC_SMBUS_EMUL | I2C_FUNC_I2C;
}
static int pvr2_i2c_core_singleton(struct i2c_client *cp,
diff --git a/v4l_experimental/pvrusb2/pvrusb2-i2c-core.h b/v4l_experimental/pvrusb2/pvrusb2-i2c-core.h
index 3e8f71962..e8af5b0ed 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-i2c-core.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-i2c-core.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-i2c-core.h,v 1.1 2006/01/01 08:26:03 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-io.c b/v4l_experimental/pvrusb2/pvrusb2-io.c
index d53c63785..0af346591 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-io.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-io.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-io.c,v 1.3 2006/01/23 06:58:06 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-io.h b/v4l_experimental/pvrusb2/pvrusb2-io.h
index 5dc72b1ef..eaa866c92 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-io.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-io.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-io.h,v 1.2 2006/01/09 06:54:46 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-ioread.c b/v4l_experimental/pvrusb2/pvrusb2-ioread.c
index 375dd8acb..4182d75b7 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-ioread.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-ioread.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-ioread.c,v 1.2 2006/01/23 06:58:06 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-ioread.h b/v4l_experimental/pvrusb2/pvrusb2-ioread.h
index ec2a23325..e6205f123 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-ioread.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-ioread.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-ioread.h,v 1.1 2005/11/14 13:31:24 mchehab Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-main.c b/v4l_experimental/pvrusb2/pvrusb2-main.c
index 72b5132e6..0003c7a07 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-main.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-main.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-main.c,v 1.7 2006/01/22 03:51:19 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
diff --git a/v4l_experimental/pvrusb2/pvrusb2-sysfs.c b/v4l_experimental/pvrusb2/pvrusb2-sysfs.c
index 7d17ee749..f665e79f9 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-sysfs.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-sysfs.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-sysfs.c,v 1.2 2006/01/22 03:51:19 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
@@ -766,6 +766,7 @@ static ssize_t debuginfo_show(struct class_device *class_dev,char *buf)
struct pvr2_sysfs *sfp;
sfp = (struct pvr2_sysfs *)class_dev->class_data;
if (!sfp) return -EINVAL;
+ pvr2_hdw_trigger_module_log(sfp->channel.hdw);
return pvr2_debugifc_print_info(sfp->channel.hdw,buf,PAGE_SIZE);
}
diff --git a/v4l_experimental/pvrusb2/pvrusb2-sysfs.h b/v4l_experimental/pvrusb2/pvrusb2-sysfs.h
index 20dcc3256..150260e90 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-sysfs.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-sysfs.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-sysfs.h,v 1.1 2005/11/14 13:31:24 mchehab Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-tuner.c b/v4l_experimental/pvrusb2/pvrusb2-tuner.c
index 4a6f99177..f829c0acc 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-tuner.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-tuner.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-tuner.c,v 1.12 2006/01/22 03:48:34 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
diff --git a/v4l_experimental/pvrusb2/pvrusb2-tuner.h b/v4l_experimental/pvrusb2/pvrusb2-tuner.h
index 83d92d06d..556f12aa9 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-tuner.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-tuner.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-tuner.h,v 1.2 2006/01/01 08:26:03 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-util.h b/v4l_experimental/pvrusb2/pvrusb2-util.h
index e8c2cc940..c1c6d77fb 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-util.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-util.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-util.h,v 1.1 2005/11/14 13:31:24 mchehab Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-v4l2.c b/v4l_experimental/pvrusb2/pvrusb2-v4l2.c
index 0a78a6646..4beea06b0 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-v4l2.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-v4l2.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-v4l2.c,v 1.9 2006/01/23 06:58:06 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
@@ -839,6 +839,12 @@ static int pvr2_v4l2_do_ioctl(struct inode *inode, struct file *file,
break;
}
+ case VIDIOC_LOG_STATUS:
+ {
+ pvr2_hdw_trigger_module_log(hdw);
+ break;
+ }
+
default :
ret = v4l_compat_translate_ioctl(inode,file,cmd,
arg,pvr2_v4l2_do_ioctl);
diff --git a/v4l_experimental/pvrusb2/pvrusb2-v4l2.h b/v4l_experimental/pvrusb2/pvrusb2-v4l2.h
index 9dd446469..9a995e2d2 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-v4l2.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-v4l2.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-v4l2.h,v 1.1 2005/11/14 13:31:24 mchehab Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
*
diff --git a/v4l_experimental/pvrusb2/pvrusb2-video-v4l.c b/v4l_experimental/pvrusb2/pvrusb2-video-v4l.c
index f4948a7a7..96a748dde 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-video-v4l.c
+++ b/v4l_experimental/pvrusb2/pvrusb2-video-v4l.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-video-v4l.c,v 1.10 2006/01/22 03:48:34 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
diff --git a/v4l_experimental/pvrusb2/pvrusb2-video-v4l.h b/v4l_experimental/pvrusb2/pvrusb2-video-v4l.h
index b47e64791..1c0c98efb 100644
--- a/v4l_experimental/pvrusb2/pvrusb2-video-v4l.h
+++ b/v4l_experimental/pvrusb2/pvrusb2-video-v4l.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2-video-v4l.h,v 1.3 2006/01/14 19:09:50 mcisely Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
diff --git a/v4l_experimental/pvrusb2/pvrusb2.h b/v4l_experimental/pvrusb2/pvrusb2.h
index f4e99ad3b..074533e9c 100644
--- a/v4l_experimental/pvrusb2/pvrusb2.h
+++ b/v4l_experimental/pvrusb2/pvrusb2.h
@@ -1,6 +1,6 @@
/*
*
- * $Id: pvrusb2.h,v 1.1 2005/11/14 13:31:24 mchehab Exp $
+ * $Id$
*
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
* Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>