};
-static int debug = 0;
-#define dprintk if (debug) printk
+static int debug;
+
+#define dprintk(arg...) do { \
+ if (debug) \
+ printk(##arg); } \
+ } while (0)
/* 16 bit registers, 8 bit values */
static int au8522_writereg(struct au8522_state *state, u16 reg, u8 data)
{ 256, 280 },
};
-static int au8522_mse2snr_lookup(struct mse2snr_tab *tab, int sz, int mse, u16 *snr)
+static int au8522_mse2snr_lookup(struct mse2snr_tab *tab, int sz, int mse,
+ u16 *snr)
{
int i, ret = -EINVAL;
dprintk("%s()\n", __func__);
dprintk("%s(0x%08x)\n", __func__, m);
- switch(m) {
+ switch (m) {
case VSB_8:
dprintk("%s() VSB_8\n", __func__);
for (i = 0; i < ARRAY_SIZE(VSB_mod_tab); i++)
msleep(100);
if (fe->ops.tuner_ops.set_params) {
- if (fe->ops.i2c_gate_ctrl) fe->ops.i2c_gate_ctrl(fe, 1);
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 1);
fe->ops.tuner_ops.set_params(fe, p);
- if (fe->ops.i2c_gate_ctrl) fe->ops.i2c_gate_ctrl(fe, 0);
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 0);
}
return 0;
*status |= FE_HAS_LOCK | FE_HAS_SYNC;
}
- switch(state->config->status_mode) {
+ switch (state->config->status_mode) {
case AU8522_DEMODLOCKING:
dprintk("%s() DEMODLOCKING\n", __func__);
if (*status & FE_HAS_VITERBI)
kfree(state);
return NULL;
}
+EXPORT_SYMBOL(au8522_attach);
static struct dvb_frontend_ops au8522_ops = {
MODULE_DESCRIPTION("Auvitek AU8522 QAM-B/ATSC Demodulator driver");
MODULE_AUTHOR("Steven Toth");
MODULE_LICENSE("GPL");
-
-EXPORT_SYMBOL(au8522_attach);
-
-/*
- * Local variables:
- * c-basic-offset: 8
- */
#include <linux/dvb/frontend.h>
-struct au8522_config
-{
+struct au8522_config {
/* the demodulator's i2c address */
u8 demod_address;
u8 status_mode;
};
-#if defined(CONFIG_DVB_AU8522) || (defined(CONFIG_DVB_AU8522_MODULE) && defined(MODULE))
+#if defined(CONFIG_DVB_AU8522) || \
+ (defined(CONFIG_DVB_AU8522_MODULE) && defined(MODULE))
extern struct dvb_frontend *au8522_attach(const struct au8522_config *config,
struct i2c_adapter *i2c);
#else
dprintk(1, "%s()\n", __func__);
- switch(dev->board) {
+ switch (dev->board) {
case AU0828_BOARD_HAUPPAUGE_HVR850:
case AU0828_BOARD_HAUPPAUGE_HVR950Q:
case AU0828_BOARD_DVICO_FUSIONHDTV7:
au0828_set(dev, REG_001, 2);
mdelay(50);
return 0;
- }
- else {
+ } else {
printk(KERN_ERR
"%s(): Unknown command.\n", __func__);
return -EINVAL;
tveeprom_read(&dev->i2c_client, eeprom, sizeof(eeprom));
}
- switch(dev->board) {
+ switch (dev->board) {
case AU0828_BOARD_HAUPPAUGE_HVR850:
case AU0828_BOARD_HAUPPAUGE_HVR950Q:
if (dev->i2c_rc == 0)
{
dprintk(1, "%s()\n", __func__);
- switch(dev->board) {
+ switch (dev->board) {
case AU0828_BOARD_HAUPPAUGE_HVR850:
case AU0828_BOARD_HAUPPAUGE_HVR950Q:
/* GPIO's
* 4 = I2C related
* 8 = Bridge related
*/
-unsigned int debug = 0;
+unsigned int debug;
module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "enable debug messages");
-unsigned int usb_debug = 0;
+unsigned int usb_debug;
module_param(usb_debug, int, 0644);
MODULE_PARM_DESC(usb_debug, "enable usb debug messages");
-unsigned int bridge_debug = 0;
+unsigned int bridge_debug;
module_param(bridge_debug, int, 0644);
MODULE_PARM_DESC(bridge_debug, "enable bridge debug messages");
u32 au0828_writereg(struct au0828_dev *dev, u16 reg, u32 val)
{
dprintk(8, "%s(0x%x, 0x%x)\n", __func__, reg, val);
- return send_control_msg(dev, CMD_REQUEST_OUT, val, reg, dev->ctrlmsg, 0);
+ return send_control_msg(dev, CMD_REQUEST_OUT, val, reg,
+ dev->ctrlmsg, 0);
}
static void cmd_msg_dump(struct au0828_dev *dev)
{
int i;
- for (i = 0;i < sizeof(dev->ctrlmsg); i+=16)
- dprintk(2,"%s() %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x "
- "%02x %02x %02x %02x %02x %02x\n",
+ for (i = 0; i < sizeof(dev->ctrlmsg); i += 16)
+ dprintk(2, "%s() %02x %02x %02x %02x %02x %02x %02x %02x "
+ "%02x %02x %02x %02x %02x %02x %02x %02x\n",
__func__,
dev->ctrlmsg[i+0], dev->ctrlmsg[i+1],
dev->ctrlmsg[i+2], dev->ctrlmsg[i+3],
if (status < 0) {
printk(KERN_ERR "%s() Failed receiving control message, error %d.\n",
__func__, status);
- }
- else
+ } else
cmd_msg_dump(dev);
}
mutex_unlock(&dev->mutex);
}
-static int au0828_usb_probe (struct usb_interface *interface,
+static int au0828_usb_probe(struct usb_interface *interface,
const struct usb_device_id *id)
{
int ifnum;
for (i = 0; i < URB_COUNT; i++) {
dev->urbs[i] = usb_alloc_urb(0, GFP_KERNEL);
- if (!dev->urbs[i]) {
+ if (!dev->urbs[i])
goto err;
- }
purb = dev->urbs[i];
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/delay.h>
-#include <asm/io.h>
+#include <linux/io.h>
#include "au0828.h"
#include <media/v4l2-common.h>
-unsigned int i2c_debug = 0;
+unsigned int i2c_debug;
module_param(i2c_debug, int, 0444);
MODULE_PARM_DESC(i2c_debug, "enable debug messages [i2c]");
-unsigned int i2c_scan = 0;
+unsigned int i2c_scan;
module_param(i2c_scan, int, 0444);
MODULE_PARM_DESC(i2c_scan, "scan i2c bus at insmod time");
};
static char *i2c_devs[128] = {
- [ 0x8e >> 1 ] = "au8522",
- [ 0xa0 >> 1 ] = "eeprom",
- [ 0xc2 >> 1 ] = "tuner/xc5000",
+ [0x8e >> 1] = "au8522",
+ [0xa0 >> 1] = "eeprom",
+ [0xc2 >> 1] = "tuner/xc5000",
};
static void do_i2c_scan(char *name, struct i2c_client *c)
rc = i2c_master_recv(c, &buf, 0);
if (rc < 0)
continue;
- printk("%s: i2c scan: found device @ 0x%x [%s]\n",
+ printk(KERN_INFO "%s: i2c scan: found device @ 0x%x [%s]\n",
name, i << 1, i2c_devs[i] ? i2c_devs[i] : "???");
}
}
dev->i2c_client.adapter = &dev->i2c_adap;
if (0 == dev->i2c_rc) {
- printk("%s: i2c bus registered\n", DRIVER_NAME);
+ printk(KERN_INFO "%s: i2c bus registered\n", DRIVER_NAME);
if (i2c_scan)
do_i2c_scan(DRIVER_NAME, &dev->i2c_client);
} else
- printk("%s: i2c bus register FAILED\n", DRIVER_NAME);
+ printk(KERN_INFO "%s: i2c bus register FAILED\n", DRIVER_NAME);
return dev->i2c_rc;
}
};
/* ----------------------------------------------------------- */
-#define au0828_read(dev,reg) au0828_readreg(dev,reg)
-#define au0828_write(dev,reg,value) au0828_writereg(dev,reg,value)
-#define au0828_andor(dev,reg,mask,value) \
- au0828_writereg(dev,reg,(au0828_readreg(dev,reg)&~(mask))|((value)&(mask)))
-
-#define au0828_set(dev,reg,bit) au0828_andor(dev,(reg),(bit),(bit))
-#define au0828_clear(dev,reg,bit) au0828_andor(dev,(reg),(bit),0)
+#define au0828_read(dev, reg) au0828_readreg(dev, reg)
+#define au0828_write(dev, reg, value) au0828_writereg(dev, reg, value)
+#define au0828_andor(dev, reg, mask, value) \
+ au0828_writereg(dev, reg, \
+ (au0828_readreg(dev, reg) & ~(mask)) | ((value) & (mask)))
+
+#define au0828_set(dev, reg, bit) au0828_andor(dev, (reg), (bit), (bit))
+#define au0828_clear(dev, reg, bit) au0828_andor(dev, (reg), (bit), 0)
/* ----------------------------------------------------------- */
/* au0828-core.c */