summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hunold <devnull@localhost>2003-01-09 10:27:22 +0000
committerMichael Hunold <devnull@localhost>2003-01-09 10:27:22 +0000
commit096166622785876bd4360f2cdb1495665ca03c6c (patch)
tree9a152955f0010e8dcb74aed11528d55f3c5747c6
parentd943bbf1e37291d4aa2aacd696898ae8a596bb1c (diff)
downloadmediapointer-dvb-s2-096166622785876bd4360f2cdb1495665ca03c6c.tar.gz
mediapointer-dvb-s2-096166622785876bd4360f2cdb1495665ca03c6c.tar.bz2
Fixes for 2.5.55 all over the place:
- removed the patches, they are not needed any more. you can now use a vanilla 2.5.55 kernel - created a new backport for video-buf and videodev from the 2.5.55 sources - necessary fixes to the saa7146 driver due to changes in 2.5.55 - the core budget functions are now provided by a module called "budget-core.o". (otherwise static compilation is not possible...) - removed #ifdef MODULE crap from all files Misc. - "xawtv" (using xv extension) resulted in wrong colors. the problem is within "xawtv". Gerd Knorr told me, that it'll be fixed in the next release. I tested this version with 2.4.20, 2.5.55 (modules) and 2.5.55 (static).
-rw-r--r--linux/drivers/media/common/saa7146.h9
-rw-r--r--linux/drivers/media/common/saa7146_fops.c28
-rw-r--r--linux/drivers/media/common/saa7146_vbi.c4
-rw-r--r--linux/drivers/media/common/saa7146_video.c9
-rw-r--r--linux/drivers/media/common/saa7146_vv.h2
-rw-r--r--linux/drivers/media/dvb/ttpci-budget/Makefile8
-rw-r--r--linux/drivers/media/video/mxb.c87
-rw-r--r--linux/drivers/media/video/saa7111.c16
-rw-r--r--linux/drivers/media/video/tda9840.c27
-rw-r--r--linux/drivers/media/video/tea6415c.c37
-rw-r--r--linux/drivers/media/video/tea6420.c27
11 files changed, 91 insertions, 163 deletions
diff --git a/linux/drivers/media/common/saa7146.h b/linux/drivers/media/common/saa7146.h
index 2b1329f89..d9354a5d2 100644
--- a/linux/drivers/media/common/saa7146.h
+++ b/linux/drivers/media/common/saa7146.h
@@ -1,10 +1,6 @@
#ifndef __SAA7146__
#define __SAA7146__
-/* fixme: this triggers bugs in video_read(), resulting
-from flaws in video-buf.c => Gerd Knorr */
-//#define DEBUG_SPINLOCKS 1
-
#include <linux/version.h> /* for version macros */
#include <linux/module.h> /* for module-version */
#include <linux/delay.h> /* for delay-stuff */
@@ -82,11 +78,6 @@ struct saa7146_extension
struct pci_driver driver;
struct pci_device_id *pci_tbl;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,51)
- void (*inc_use)(struct saa7146_dev*);
- void (*dec_use)(struct saa7146_dev*);
-#endif
-
/* extension functions */
int (*probe)(struct saa7146_dev *);
int (*attach)(struct saa7146_dev *, struct saa7146_pci_extension_data *);
diff --git a/linux/drivers/media/common/saa7146_fops.c b/linux/drivers/media/common/saa7146_fops.c
index 2c5596e77..217b85f14 100644
--- a/linux/drivers/media/common/saa7146_fops.c
+++ b/linux/drivers/media/common/saa7146_fops.c
@@ -4,6 +4,19 @@
#define KBUILD_MODNAME saa7146
#endif
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,48))
+static inline
+int try_module_get(struct module *mod)
+{
+ if (!MOD_CAN_QUERY(mod))
+ return 0;
+ __MOD_INC_USE_COUNT(mod);
+ return 1;
+}
+
+#define module_put(mod) __MOD_DEC_USE_COUNT(mod)
+#endif
+
#define BOARD_CAN_DO_VBI(dev) (dev->revision != 0 && dev->vv_data->vbi_minor != -1)
/********************************************************************************/
@@ -203,17 +216,14 @@ int fops_open(struct inode *inode, struct file *file)
goto out;
}
memset(fh,0,sizeof(*fh));
+
+ // FIXME: do we need to increase *our* usage count?
- /* fixme: increase some usage counts */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,51)
- dev->ext->inc_use(dev);
- MOD_INC_USE_COUNT;
-#else
if( 0 == try_module_get(dev->ext->module)) {
result = -EINVAL;
goto out;
}
-#endif
+
file->private_data = fh;
fh->dev = dev;
fh->type = type;
@@ -247,13 +257,7 @@ static int fops_release(struct inode *inode, struct file *file)
saa7146_vbi_uops.release(dev,fh,file);
}
- /* fixme: decrease some usage counts */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,51)
- dev->ext->dec_use(dev);
- MOD_DEC_USE_COUNT;
-#else
module_put(dev->ext->module);
-#endif
file->private_data = NULL;
kfree(fh);
diff --git a/linux/drivers/media/common/saa7146_vbi.c b/linux/drivers/media/common/saa7146_vbi.c
index baee2669f..664d8a484 100644
--- a/linux/drivers/media/common/saa7146_vbi.c
+++ b/linux/drivers/media/common/saa7146_vbi.c
@@ -212,7 +212,7 @@ int buffer_activate(struct saa7146_dev *dev,
}
static
-int buffer_prepare(struct file *file, struct videobuf_buffer *vb)
+int buffer_prepare(struct file *file, struct videobuf_buffer *vb,enum v4l2_field field)
{
struct saa7146_fh *fh = file->private_data;
struct saa7146_dev *dev = fh->dev;
@@ -239,6 +239,7 @@ int buffer_prepare(struct file *file, struct videobuf_buffer *vb)
buf->vb.width = llength;
buf->vb.height = lines;
buf->vb.size = size;
+ buf->vb.field = field; // FIXME: check this
saa7146_pgtable_free(dev->pci, &buf->pt[2]);
saa7146_pgtable_alloc(dev->pci, &buf->pt[2]);
@@ -379,6 +380,7 @@ void vbi_open(struct saa7146_dev *dev, struct saa7146_fh *fh)
videobuf_queue_init(&fh->vbi_q, &vbi_qops,
dev->pci, &dev->slock,
V4L2_BUF_TYPE_VBI_CAPTURE,
+ V4L2_FIELD_SEQ_TB, // FIXME: does this really work?
sizeof(struct saa7146_buf));
init_MUTEX(&fh->vbi_q.lock);
diff --git a/linux/drivers/media/common/saa7146_video.c b/linux/drivers/media/common/saa7146_video.c
index e1ce84f4d..cdeeada3b 100644
--- a/linux/drivers/media/common/saa7146_video.c
+++ b/linux/drivers/media/common/saa7146_video.c
@@ -1100,8 +1100,8 @@ int buffer_activate (struct saa7146_dev *dev,
return 0;
}
-static
-int buffer_prepare(struct file *file, struct videobuf_buffer *vb)
+static
+int buffer_prepare(struct file *file, struct videobuf_buffer *vb, enum v4l2_field field)
{
struct saa7146_fh *fh = file->private_data;
struct saa7146_dev *dev = fh->dev;
@@ -1128,7 +1128,8 @@ int buffer_prepare(struct file *file, struct videobuf_buffer *vb)
fh->video_fmt.width,fh->video_fmt.height,size,v4l2_field_names[fh->video_fmt.field]));
if (buf->vb.width != fh->video_fmt.width ||
buf->vb.height != fh->video_fmt.height ||
- buf->vb.size != size ||
+ buf->vb.size != size ||
+ buf->vb.field != field ||
buf->vb.field != fh->video_fmt.field ||
buf->fmt != &fh->video_fmt) {
saa7146_dma_free(dev,buf);
@@ -1140,6 +1141,7 @@ int buffer_prepare(struct file *file, struct videobuf_buffer *vb)
buf->vb.width = fh->video_fmt.width;
buf->vb.height = fh->video_fmt.height;
buf->vb.size = size;
+ buf->vb.field = field;
buf->fmt = &fh->video_fmt;
buf->vb.field = fh->video_fmt.field;
@@ -1266,6 +1268,7 @@ void video_open(struct saa7146_dev *dev, struct saa7146_fh *fh)
videobuf_queue_init(&fh->video_q, &video_qops,
dev->pci, &dev->slock,
V4L2_BUF_TYPE_VIDEO_CAPTURE,
+ V4L2_FIELD_INTERLACED,
sizeof(struct saa7146_buf));
init_MUTEX(&fh->video_q.lock);
diff --git a/linux/drivers/media/common/saa7146_vv.h b/linux/drivers/media/common/saa7146_vv.h
index 917f2b007..062622329 100644
--- a/linux/drivers/media/common/saa7146_vv.h
+++ b/linux/drivers/media/common/saa7146_vv.h
@@ -220,7 +220,7 @@ extern struct saa7146_use_ops saa7146_vbi_uops;
#define V_OFFSET_SECAM 0x14
/* number of horizontal pixels to process */
-#define H_PIXELS_PAL 720
+#define H_PIXELS_PAL 680
#define H_PIXELS_NTSC 708
#define H_PIXELS_SECAM 720
diff --git a/linux/drivers/media/dvb/ttpci-budget/Makefile b/linux/drivers/media/dvb/ttpci-budget/Makefile
index efa90b4d6..a5a8c7e8f 100644
--- a/linux/drivers/media/dvb/ttpci-budget/Makefile
+++ b/linux/drivers/media/dvb/ttpci-budget/Makefile
@@ -2,10 +2,10 @@
# Makefile for the kernel AV7110 DVB device driver
#
-dvb-ttpci-budget-objs := budget-core.o budget.o
-dvb-ttpci-budget-av-objs := budget-core.o budget-av.o
+dvb-ttpci-budget-objs := budget.o
+dvb-ttpci-budget-av-objs := budget-av.o
-obj-$(CONFIG_DVB_BUDGET) += dvb-ttpci-budget.o
-obj-$(CONFIG_DVB_BUDGET_AV) += dvb-ttpci-budget-av.o
+obj-$(CONFIG_DVB_BUDGET) += budget-core.o dvb-ttpci-budget.o
+obj-$(CONFIG_DVB_BUDGET_AV) += budget-core.o dvb-ttpci-budget-av.o
EXTRA_CFLAGS = -Idrivers/media/dvb/dvb-core/ -I$(src)/../../common/ -I$(src)/../../common/saa7146
diff --git a/linux/drivers/media/video/mxb.c b/linux/drivers/media/video/mxb.c
index a65f6ebff..29be50726 100644
--- a/linux/drivers/media/video/mxb.c
+++ b/linux/drivers/media/video/mxb.c
@@ -1,7 +1,7 @@
/*
mxb.c - v4l2 driver for the Multimedia eXtension Board
- Copyright (C) 1998-2002 Michael Hunold <michael@mihu.de>
+ Copyright (C) 1998-2003 Michael Hunold <michael@mihu.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -70,15 +70,8 @@ static int mxb_num = 0;
channel called "phoenix" */
static int freq = 4148;
-/* debug verbosity */
-static int debug = 0;
-
-#ifdef MODULE
MODULE_PARM(freq,"i");
MODULE_PARM_DESC(freq, "initial frequency the tuner will be tuned to while setup");
-MODULE_PARM(debug,"i");
-MODULE_PARM_DESC(debug, "debug verbosity");
-#endif
#define MXB_INPUTS 4
enum { TUNER, AUX1, AUX3, AUX3_YC };
@@ -201,7 +194,7 @@ static int mxb_vbi_bypass(struct saa7146_dev* dev)
return 0;
}
-static int mxb_probe(struct saa7146_dev* dev, unsigned int subvendor, unsigned int subdevice)
+static int mxb_probe(struct saa7146_dev* dev)
{
struct mxb* mxb = 0;
@@ -361,7 +354,7 @@ static int mxb_init_done(struct saa7146_dev* dev)
/* write configuration to saa7111a */
i = i2c_master_send(mxb->saa7111a, init, sizeof(init));
if (i < 0) {
- DEB_D(("failed to initialize saa7111a. this should never happen.\n"));
+ printk("failed to initialize saa7111a. this should never happen.\n");
}
/* select tuner-output on saa7111a */
@@ -457,7 +450,7 @@ void mxb_irq_bh(struct saa7146_dev* dev, u32* irq_mask)
*/
/* this function only gets called when the probing was successful */
-static int mxb_attach(struct saa7146_dev* dev, struct saa7146_sub_info *info)
+static int mxb_attach(struct saa7146_dev* dev, struct saa7146_pci_extension_data *info)
{
struct mxb* mxb = (struct mxb*)dev->ext_priv;
@@ -479,15 +472,18 @@ static int mxb_attach(struct saa7146_dev* dev, struct saa7146_sub_info *info)
}
}
- i2c_inc_use_client(mxb->tea6420_1);
- i2c_inc_use_client(mxb->tea6420_2);
- i2c_inc_use_client(mxb->tea6415c);
- i2c_inc_use_client(mxb->tda9840);
- i2c_inc_use_client(mxb->saa7111a);
- i2c_inc_use_client(mxb->tuner);
+ i2c_use_client(mxb->tea6420_1);
+ i2c_use_client(mxb->tea6420_2);
+ i2c_use_client(mxb->tea6415c);
+ i2c_use_client(mxb->tda9840);
+ i2c_use_client(mxb->saa7111a);
+ i2c_use_client(mxb->tuner);
+
+ printk("mxb: found 'Multimedia eXtension Board'-%d.\n",mxb_num);
mxb_num++;
- return mxb_init_done(dev);
+ mxb_init_done(dev);
+ return 0;
}
static int mxb_detach(struct saa7146_dev* dev)
@@ -496,12 +492,12 @@ static int mxb_detach(struct saa7146_dev* dev)
DEB_EE(("dev:%p\n",dev));
- i2c_dec_use_client(mxb->tea6420_1);
- i2c_dec_use_client(mxb->tea6420_2);
- i2c_dec_use_client(mxb->tea6415c);
- i2c_dec_use_client(mxb->tda9840);
- i2c_dec_use_client(mxb->saa7111a);
- i2c_dec_use_client(mxb->tuner);
+ i2c_release_client(mxb->tea6420_1);
+ i2c_release_client(mxb->tea6420_2);
+ i2c_release_client(mxb->tea6415c);
+ i2c_release_client(mxb->tda9840);
+ i2c_release_client(mxb->saa7111a);
+ i2c_release_client(mxb->tuner);
saa7146_unregister_device(&mxb->video_dev,dev);
if( 0 != MXB_BOARD_CAN_DO_VBI(dev)) {
@@ -989,28 +985,30 @@ static struct saa7146_standard standard[] = {
{ "SECAM", V4L2_STD_SECAM, SAA7146_SECAM_VALUES },
};
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,51)
-static void mxb_inc_use(struct saa7146_dev *dev)
-{
- MOD_INC_USE_COUNT;
-}
+static
+struct saa7146_extension extension;
-static void mxb_dec_use(struct saa7146_dev *dev)
-{
- MOD_DEC_USE_COUNT;
-}
-#endif
+static
+struct saa7146_pci_extension_data mxb = {
+ .ext_priv = "Multimedia eXtension Board",
+ .ext = &extension,
+};
-static struct saa7146_sub_info sub_data[] = {
- { 0x0000, 0x0000 },
- { 0xffff, 0xffff },
+static
+struct pci_device_id pci_tbl[] = {
+ {
+ .vendor = PCI_VENDOR_ID_PHILIPS,
+ .device = PCI_DEVICE_ID_PHILIPS_SAA7146,
+ .subvendor = 0x0000,
+ .subdevice = 0x0000,
+ .driver_data = (unsigned long)&mxb,
+ }
};
static
struct saa7146_ext_vv vv_data = {
.inputs = MXB_INPUTS,
.capabilities = V4L2_CAP_TUNER | V4L2_CAP_VBI_CAPTURE,
- .flags = 0,
.stds = &standard[0],
.num_stds = sizeof(standard)/sizeof(struct saa7146_standard),
.std_callback = &std_callback,
@@ -1023,15 +1021,10 @@ struct saa7146_extension extension = {
.name = MXB_IDENTIFIER,
.flags = SAA7146_USE_I2C_IRQ,
- .devices = &sub_data[0],
+ .pci_tbl = &pci_tbl[0],
.module = THIS_MODULE,
.ext_vv_data = &vv_data,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,51)
- .inc_use = mxb_inc_use,
- .dec_use = mxb_dec_use,
-#endif
-
.probe = mxb_probe,
.attach = mxb_attach,
.detach = mxb_detach,
@@ -1042,8 +1035,6 @@ struct saa7146_extension extension = {
int __init mxb_init_module(void)
{
- struct saa7146_dev *dev = NULL;
-
if( 0 != saa7146_register_extension(&extension)) {
DEB_S(("failed to register extension.\n"));
return -ENODEV;
@@ -1054,14 +1045,12 @@ int __init mxb_init_module(void)
void __exit mxb_cleanup_module(void)
{
- struct saa7146_dev *dev = NULL;
-
saa7146_unregister_extension(&extension);
}
module_init(mxb_init_module);
module_exit(mxb_cleanup_module);
-MODULE_DESCRIPTION("video4linux driver for the Siemens-Nixdorf 'Multimedia eXtension board'");
+MODULE_DESCRIPTION("video4linux-2 driver for the Siemens-Nixdorf 'Multimedia eXtension board'");
MODULE_AUTHOR("Michael Hunold <michael@mihu.de>");
MODULE_LICENSE("GPL");
diff --git a/linux/drivers/media/video/saa7111.c b/linux/drivers/media/video/saa7111.c
index 461e797cc..7dc3bae14 100644
--- a/linux/drivers/media/video/saa7111.c
+++ b/linux/drivers/media/video/saa7111.c
@@ -57,8 +57,6 @@ struct saa7111 {
int sat;
};
-/* hmm, the saa7111(a) specs don't say anything about address 34>>1 (= 17 = 0x11),
- only for 0x24 and 0x25 ... */
static unsigned short normal_i2c[] = { 0x24, 0x25, I2C_CLIENT_END };
static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
@@ -205,17 +203,6 @@ static int saa7111_command(struct i2c_client *client, unsigned int cmd,
cap->outputs = 1;
}
break;
- case DECODER_INIT:
- {
- int i = 0;
- struct video_decoder_init *init = arg;
- i = i2c_master_send(client, init->data, init->count);
- if (i < 0) {
- return -EFAULT;
- } else {
- }
- }
- break;
case DECODER_GET_STATUS:
{
int *iarg = arg;
@@ -401,6 +388,9 @@ static int saa7111_command(struct i2c_client *client, unsigned int cmd,
/* ----------------------------------------------------------------------- */
static struct i2c_driver i2c_driver_saa7111 = {
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,54)
+ .owner = THIS_MODULE,
+#endif
.name = "saa7111", /* name */
.id = I2C_DRIVERID_SAA7111A, /* ID */
.flags = I2C_DF_NOTIFY,
diff --git a/linux/drivers/media/video/tda9840.c b/linux/drivers/media/video/tda9840.c
index 116b59f74..dfdf04968 100644
--- a/linux/drivers/media/video/tda9840.c
+++ b/linux/drivers/media/video/tda9840.c
@@ -1,3 +1,4 @@
+#include <linux/version.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/poll.h>
@@ -7,11 +8,8 @@
#include "tda9840.h"
-#ifdef MODULE
-MODULE_PARM(debug,"i");
-#endif
-
static int debug = 0; /* insmod parameter */
+MODULE_PARM(debug,"i");
#define dprintk if (debug) printk
#define SWITCH 0x00
@@ -227,29 +225,16 @@ static int tda9840_detach(struct i2c_client *client)
return 0;
}
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,51)
-static void tda9840_inc_use(struct i2c_client *client)
-{
- MOD_INC_USE_COUNT;
-}
-
-static void tda9840_dec_use(struct i2c_client *client)
-{
- MOD_DEC_USE_COUNT;
-}
-#endif
-
static struct i2c_driver driver = {
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,54)
+ .owner = THIS_MODULE,
+#endif
.name = "tda9840 driver",
.id = I2C_DRIVERID_TDA9840,
.flags = I2C_DF_NOTIFY,
.attach_adapter = tda9840_attach,
.detach_client = tda9840_detach,
.command = tda9840_command,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,51)
- .inc_use = tda9840_inc_use,
- .dec_use = tda9840_dec_use,
-#endif
};
static int tda9840_init_module(void)
@@ -266,9 +251,7 @@ static void tda9840_cleanup_module(void)
module_init(tda9840_init_module);
module_exit(tda9840_cleanup_module);
-#ifdef MODULE
MODULE_AUTHOR("Michael Hunold <michael@mihu.de>");
MODULE_DESCRIPTION("tda9840 driver");
MODULE_LICENSE("GPL");
-#endif
diff --git a/linux/drivers/media/video/tea6415c.c b/linux/drivers/media/video/tea6415c.c
index d6d8b5c97..dd65664d4 100644
--- a/linux/drivers/media/video/tea6415c.c
+++ b/linux/drivers/media/video/tea6415c.c
@@ -1,3 +1,4 @@
+#include <linux/version.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/poll.h>
@@ -6,11 +7,8 @@
#include <linux/init.h>
#include "tea6415c.h"
-#ifdef MODULE
-MODULE_PARM(debug,"i");
-#endif
-
static int debug = 0; /* insmod parameter */
+MODULE_PARM(debug,"i");
#define dprintk if (debug) printk
#define TEA6415C_NUM_INPUTS 8
@@ -174,29 +172,16 @@ static int tea6415c_command(struct i2c_client *client, unsigned int cmd, void* a
return 0;
}
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,51)
-static void tea6415c_inc_use(struct i2c_client *client)
-{
- MOD_INC_USE_COUNT;
-}
-
-static void tea6415c_dec_use(struct i2c_client *client)
-{
- MOD_DEC_USE_COUNT;
-}
-#endif
-
static struct i2c_driver driver = {
- "tea6415c driver",
- I2C_DRIVERID_TEA6415C,
- I2C_DF_NOTIFY,
- tea6415c_attach,
- tea6415c_detach,
- tea6415c_command,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,51)
- tea6415c_inc_use,
- tea6415c_dec_use,
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,54)
+ .owner = THIS_MODULE,
#endif
+ .name = "tea6415c driver",
+ .id = I2C_DRIVERID_TEA6415C,
+ .flags = I2C_DF_NOTIFY,
+ .attach_adapter = tea6415c_attach,
+ .detach_client = tea6415c_detach,
+ .command = tea6415c_command,
};
static int tea6415c_init_module(void)
@@ -213,9 +198,7 @@ static void tea6415c_cleanup_module(void)
module_init(tea6415c_init_module);
module_exit(tea6415c_cleanup_module);
-#ifdef MODULE
MODULE_AUTHOR("Michael Hunold <michael@mihu.de>");
MODULE_DESCRIPTION("tea6415c driver");
MODULE_LICENSE("GPL");
-#endif
diff --git a/linux/drivers/media/video/tea6420.c b/linux/drivers/media/video/tea6420.c
index 4f1aff624..38bd85b6a 100644
--- a/linux/drivers/media/video/tea6420.c
+++ b/linux/drivers/media/video/tea6420.c
@@ -1,3 +1,4 @@
+#include <linux/version.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/poll.h>
@@ -7,11 +8,8 @@
#include "tea6420.h"
-#ifdef MODULE
-MODULE_PARM(debug,"i");
-#endif
-
static int debug = 0; /* insmod parameter */
+MODULE_PARM(debug,"i");
#define dprintk if (debug) printk
/* addresses to scan, found only at 0x4c and/or 0x4d (7-Bit) */
@@ -154,29 +152,16 @@ static int tea6420_command(struct i2c_client *client, unsigned int cmd, void* ar
return 0;
}
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,51)
-static void tea6420_inc_use(struct i2c_client *client)
-{
- MOD_INC_USE_COUNT;
-}
-
-static void tea6420_dec_use(struct i2c_client *client)
-{
- MOD_DEC_USE_COUNT;
-}
-#endif
-
static struct i2c_driver driver = {
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,54)
+ .owner = THIS_MODULE,
+#endif
.name = "tea6420 driver",
.id = I2C_DRIVERID_TEA6420,
.flags = I2C_DF_NOTIFY,
.attach_adapter = tea6420_attach,
.detach_client = tea6420_detach,
.command = tea6420_command,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,51)
- .inc_use = tea6420_inc_use,
- .dec_use = tea6420_dec_use,
-#endif
};
static int tea6420_init_module(void)
@@ -193,8 +178,6 @@ static void tea6420_cleanup_module(void)
module_init(tea6420_init_module);
module_exit(tea6420_cleanup_module);
-#ifdef MODULE
MODULE_AUTHOR("Michael Hunold <michael@mihu.de>");
MODULE_DESCRIPTION("tea6420 driver");
MODULE_LICENSE("GPL");
-#endif