Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 219390
b: refs/heads/master
c: 1247ff5
h: refs/heads/master
v: v3
  • Loading branch information
Steven Toth authored and Mauro Carvalho Chehab committed Oct 21, 2010
1 parent b02a3f8 commit 740faeb
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0b62ceb03545099f0ab43a787cef5307b34b2fe4
refs/heads/master: 1247ff5c0acb0fb50b076e390bb770acc95d1d7e
25 changes: 25 additions & 0 deletions trunk/drivers/media/video/saa7164/saa7164-api.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,31 @@

#include "saa7164.h"

int saa7164_api_get_load_info(struct saa7164_dev *dev, tmFwInfoStruct_t *i)
{
int ret, debug;

if (!(debug & DBGLVL_CPU))
return 0;

dprintk(DBGLVL_API, "%s()\n", __func__);

i->deviceinst = 0;
i->devicespec = 0;
i->mode = 0;
i->status = 0;

ret = saa7164_cmd_send(dev, 0, GET_CUR,
GET_FW_STATUS_CONTROL, sizeof(tmFwInfoStruct_t), i);
if (ret != SAA_OK) {
printk(KERN_ERR "%s() error, ret = 0x%x\n", __func__, ret);
}

printk(KERN_INFO "saa7164[%d]-CPU: %d percent", dev->nr, i->CPULoad);

return ret;
}

int saa7164_api_collect_debug(struct saa7164_dev *dev)
{
tmComResDebugGetData_t d;
Expand Down
10 changes: 10 additions & 0 deletions trunk/drivers/media/video/saa7164/saa7164-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1191,6 +1191,8 @@ static int saa7164_proc_create(void)
static int saa7164_thread_function(void *data)
{
struct saa7164_dev *dev = data;
tmFwInfoStruct_t fwinfo;
u64 last_poll_time = 0;

dprintk(DBGLVL_THR, "thread started\n");

Expand All @@ -1205,8 +1207,16 @@ static int saa7164_thread_function(void *data)
dprintk(DBGLVL_THR, "thread running\n");

/* Dump the firmware debug message to console */
/* Polling this costs us 1-2% of the arm CPU */
/* convert this into a respnde to interrupt 0x7a */
saa7164_api_collect_debug(dev);

/* Monitor CPU load every 1 second */
if ((last_poll_time + 1000 /* ms */) < jiffies_to_msecs(jiffies)) {
saa7164_api_get_load_info(dev, &fwinfo);
last_poll_time = jiffies_to_msecs(jiffies);
}

}

dprintk(DBGLVL_THR, "thread exiting\n");
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/media/video/saa7164/saa7164-reg.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
#define GET_STRING_CONTROL 0x03
#define GET_LANGUAGE_CONTROL 0x05
#define SET_POWER_CONTROL 0x07
#define GET_FW_STATUS_CONTROL 0x08
#define GET_FW_VERSION_CONTROL 0x09
#define SET_DEBUG_LEVEL_CONTROL 0x0B
#define GET_DEBUG_DATA_CONTROL 0x0C
Expand Down
12 changes: 12 additions & 0 deletions trunk/drivers/media/video/saa7164/saa7164-types.h
Original file line number Diff line number Diff line change
Expand Up @@ -446,3 +446,15 @@ typedef struct
u8 ucDebugData[256];
} __attribute__((packed)) tmComResDebugGetData_t;

typedef struct
{
u32 status;
u32 mode;
u32 devicespec;
u32 deviceinst;
u32 CPULoad;
u32 RemainHeap;
u32 CPUClock;
u32 RAMSpeed;
} __attribute__((packed)) tmFwInfoStruct_t;

2 changes: 2 additions & 0 deletions trunk/drivers/media/video/saa7164/saa7164.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@
#define DBGLVL_ENC 1024
#define DBGLVL_VBI 2048
#define DBGLVL_THR 4096
#define DBGLVL_CPU 8192

#define SAA7164_NORMS ( V4L2_STD_NTSC_M | V4L2_STD_NTSC_M_JP | V4L2_STD_NTSC_443 )

Expand Down Expand Up @@ -551,6 +552,7 @@ int saa7164_api_get_videomux(struct saa7164_port *port);
int saa7164_api_set_vbi_format(struct saa7164_port *port);
int saa7164_api_set_debug(struct saa7164_dev *dev, u8 level);
int saa7164_api_collect_debug(struct saa7164_dev *dev);
int saa7164_api_get_load_info(struct saa7164_dev *dev, tmFwInfoStruct_t *i);

/* ----------------------------------------------------------- */
/* saa7164-cards.c */
Expand Down

0 comments on commit 740faeb

Please sign in to comment.