Commit 18b548ca authored by Jean Delvare's avatar Jean Delvare Committed by Mauro Carvalho Chehab

V4L/DVB (5884): zr36067: clean up debug function

Debugging cleanups to the zr36067 driver:

* Use module_param_named() to declare the debug parameter, so we can
  use a single global variable to handle the debug level. This makes
  the driver a bit smaller (by 648 bytes on x86_64), thanks to one
  less level of indirection on every use.

* Change the debug parameter sysfs permissions, so that the debug
  level can be adjusted at runtime, as is done in many other
  media/video drivers.

* The debug level is between 0 and 5, not 0 and 4.

* Move the zr_debug export and dprintk macro definition to a header
  file so that we don't have to define them in each source file.

* Simplify a duplicate test on zr_debug.

Note that zr_debug was subsequently renamed to debug_zr36067 to avoid
possible conflicts with other Zoran device drivers, on a suggestion
by Trent Piepho.
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarTrent Piepho <xyzzy@speakeasy.org>
Acked-by: default avatarRonald S. Bultje <rbultje@ronald.bitfreak.net>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 63116feb
......@@ -145,10 +145,9 @@ module_param(pass_through, int, 0);
MODULE_PARM_DESC(pass_through,
"Pass TV signal through to TV-out when idling");
static int debug = 1;
int *zr_debug = &debug;
module_param(debug, int, 0);
MODULE_PARM_DESC(debug, "Debug level (0-4)");
int zr36067_debug = 1;
module_param_named(debug, zr36067_debug, int, 0644);
MODULE_PARM_DESC(debug, "Debug level (0-5)");
MODULE_DESCRIPTION("Zoran-36057/36067 JPEG codec driver");
MODULE_AUTHOR("Serguei Miridonov");
......@@ -161,12 +160,6 @@ static struct pci_device_id zr36067_pci_tbl[] = {
};
MODULE_DEVICE_TABLE(pci, zr36067_pci_tbl);
#define dprintk(num, format, args...) \
do { \
if (*zr_debug >= num) \
printk(format, ##args); \
} while (0)
int zoran_num; /* number of Buzs in use */
struct zoran zoran[BUZ_MAX];
......@@ -1075,7 +1068,7 @@ test_interrupts (struct zoran *zr)
if (timeout) {
dprintk(1, ": time spent: %d\n", 1 * HZ - timeout);
}
if (*zr_debug > 1)
if (zr36067_debug > 1)
print_interrupts(zr);
btwrite(icr, ZR36057_ICR);
}
......@@ -1158,7 +1151,7 @@ zr36057_init (struct zoran *zr)
goto exit_unregister;
zoran_init_hardware(zr);
if (*zr_debug > 2)
if (zr36067_debug > 2)
detect_guest_activity(zr);
test_interrupts(zr);
if (!pass_through) {
......@@ -1620,7 +1613,7 @@ init_dc10_cards (void)
}
/* random nonsense */
dprintk(5, KERN_DEBUG "Jotti is een held!\n");
dprintk(6, KERN_DEBUG "Jotti is een held!\n");
/* some mainboards might not do PCI-PCI data transfer well */
if (pci_pci_problems & (PCIPCI_FAIL|PCIAGP_FAIL|PCIPCI_ALIMAGIK)) {
......
......@@ -30,6 +30,14 @@
#ifndef __ZORAN_CARD_H__
#define __ZORAN_CARD_H__
extern int zr36067_debug;
#define dprintk(num, format, args...) \
do { \
if (zr36067_debug >= num) \
printk(format, ##args); \
} while (0)
/* Anybody who uses more than four? */
#define BUZ_MAX 4
extern int zoran_num;
......
......@@ -52,6 +52,7 @@
#include "videocodec.h"
#include "zoran.h"
#include "zoran_device.h"
#include "zoran_card.h"
#define IRQ_MASK ( ZR36057_ISR_GIRQ0 | \
ZR36057_ISR_GIRQ1 | \
......@@ -59,14 +60,6 @@
extern const struct zoran_format zoran_formats[];
extern int *zr_debug;
#define dprintk(num, format, args...) \
do { \
if (*zr_debug >= num) \
printk(format, ##args); \
} while (0)
static int lml33dpath = 0; /* 1 will use digital path in capture
* mode instead of analog. It can be
* used for picture adjustments using
......@@ -174,7 +167,7 @@ post_office_read (struct zoran *zr,
static void
dump_guests (struct zoran *zr)
{
if (*zr_debug > 2) {
if (zr36067_debug > 2) {
int i, guest[8];
for (i = 1; i < 8; i++) { // Don't read jpeg codec here
......@@ -1271,7 +1264,7 @@ error_handler (struct zoran *zr,
zr->num_errors++;
/* Report error */
if (*zr_debug > 1 && zr->num_errors <= 8) {
if (zr36067_debug > 1 && zr->num_errors <= 8) {
long frame;
frame =
zr->jpg_pend[zr->jpg_dma_tail & BUZ_MASK_FRAME];
......@@ -1531,7 +1524,7 @@ zoran_irq (int irq,
if (zr->codec_mode == BUZ_MODE_MOTION_DECOMPRESS ||
zr->codec_mode == BUZ_MODE_MOTION_COMPRESS) {
if (*zr_debug > 1 &&
if (zr36067_debug > 1 &&
(!zr->frame_num || zr->JPEG_error)) {
printk(KERN_INFO
"%s: first frame ready: state=0x%08x odd_even=%d field_per_buff=%d delay=%d\n",
......@@ -1568,7 +1561,7 @@ zoran_irq (int irq,
zr->JPEG_missed;
}
if (*zr_debug > 2 && zr->frame_num < 6) {
if (zr36067_debug > 2 && zr->frame_num < 6) {
int i;
printk("%s: seq=%ld stat_com:",
ZR_DEVNAME(zr), zr->jpg_seq_num);
......
......@@ -200,14 +200,6 @@ const struct zoran_format zoran_formats[] = {
// RJ: Test only - want to test BUZ_USE_HIMEM even when CONFIG_BIGPHYS_AREA is defined
extern int *zr_debug;
#define dprintk(num, format, args...) \
do { \
if (*zr_debug >= num) \
printk(format, ##args); \
} while (0)
extern int v4l_nbufs;
extern int v4l_bufsize;
extern int jpg_nbufs;
......@@ -1106,11 +1098,9 @@ jpg_sync (struct file *file,
frame = zr->jpg_pend[zr->jpg_que_tail & BUZ_MASK_FRAME];
/* buffer should now be in BUZ_STATE_DONE */
if (*zr_debug > 0)
if (zr->jpg_buffers.buffer[frame].state != BUZ_STATE_DONE)
dprintk(2,
KERN_ERR
"%s: jpg_sync() - internal state error\n",
KERN_ERR "%s: jpg_sync() - internal state error\n",
ZR_DEVNAME(zr));
*bs = zr->jpg_buffers.buffer[frame].bs;
......@@ -1389,7 +1379,7 @@ zoran_close (struct inode *inode,
/* disable interrupts */
btand(~ZR36057_ICR_IntPinEn, ZR36057_ICR);
if (*zr_debug > 1)
if (zr36067_debug > 1)
print_interrupts(zr);
/* Overlay off */
......
......@@ -48,14 +48,7 @@
#include "videocodec.h"
#include "zoran.h"
#include "zoran_procfs.h"
extern int *zr_debug;
#define dprintk(num, format, args...) \
do { \
if (*zr_debug >= num) \
printk(format, ##args); \
} while (0)
#include "zoran_card.h"
#ifdef CONFIG_PROC_FS
struct procfs_params_zr36067 {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment