Commit 9c8ced51 authored by Steven Toth's avatar Steven Toth Committed by Mauro Carvalho Chehab

V4L/DVB (9251): cx23885: Checkpatch compliance

cx23885: Checkpatch compliance
Signed-off-by: default avatarSteven Toth <stoth@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 2af03eea
...@@ -39,16 +39,16 @@ struct cx23885_board cx23885_boards[] = { ...@@ -39,16 +39,16 @@ struct cx23885_board cx23885_boards[] = {
.input = {{ .input = {{
.type = CX23885_VMUX_COMPOSITE1, .type = CX23885_VMUX_COMPOSITE1,
.vmux = 0, .vmux = 0,
},{ }, {
.type = CX23885_VMUX_COMPOSITE2, .type = CX23885_VMUX_COMPOSITE2,
.vmux = 1, .vmux = 1,
},{ }, {
.type = CX23885_VMUX_COMPOSITE3, .type = CX23885_VMUX_COMPOSITE3,
.vmux = 2, .vmux = 2,
},{ }, {
.type = CX23885_VMUX_COMPOSITE4, .type = CX23885_VMUX_COMPOSITE4,
.vmux = 3, .vmux = 3,
}}, } },
}, },
[CX23885_BOARD_HAUPPAUGE_HVR1800lp] = { [CX23885_BOARD_HAUPPAUGE_HVR1800lp] = {
.name = "Hauppauge WinTV-HVR1800lp", .name = "Hauppauge WinTV-HVR1800lp",
...@@ -57,19 +57,19 @@ struct cx23885_board cx23885_boards[] = { ...@@ -57,19 +57,19 @@ struct cx23885_board cx23885_boards[] = {
.type = CX23885_VMUX_TELEVISION, .type = CX23885_VMUX_TELEVISION,
.vmux = 0, .vmux = 0,
.gpio0 = 0xff00, .gpio0 = 0xff00,
},{ }, {
.type = CX23885_VMUX_DEBUG, .type = CX23885_VMUX_DEBUG,
.vmux = 0, .vmux = 0,
.gpio0 = 0xff01, .gpio0 = 0xff01,
},{ }, {
.type = CX23885_VMUX_COMPOSITE1, .type = CX23885_VMUX_COMPOSITE1,
.vmux = 1, .vmux = 1,
.gpio0 = 0xff02, .gpio0 = 0xff02,
},{ }, {
.type = CX23885_VMUX_SVIDEO, .type = CX23885_VMUX_SVIDEO,
.vmux = 2, .vmux = 2,
.gpio0 = 0xff02, .gpio0 = 0xff02,
}}, } },
}, },
[CX23885_BOARD_HAUPPAUGE_HVR1800] = { [CX23885_BOARD_HAUPPAUGE_HVR1800] = {
.name = "Hauppauge WinTV-HVR1800", .name = "Hauppauge WinTV-HVR1800",
...@@ -84,20 +84,20 @@ struct cx23885_board cx23885_boards[] = { ...@@ -84,20 +84,20 @@ struct cx23885_board cx23885_boards[] = {
CX25840_VIN5_CH2 | CX25840_VIN5_CH2 |
CX25840_VIN2_CH1, CX25840_VIN2_CH1,
.gpio0 = 0, .gpio0 = 0,
},{ }, {
.type = CX23885_VMUX_COMPOSITE1, .type = CX23885_VMUX_COMPOSITE1,
.vmux = CX25840_VIN7_CH3 | .vmux = CX25840_VIN7_CH3 |
CX25840_VIN4_CH2 | CX25840_VIN4_CH2 |
CX25840_VIN6_CH1, CX25840_VIN6_CH1,
.gpio0 = 0, .gpio0 = 0,
},{ }, {
.type = CX23885_VMUX_SVIDEO, .type = CX23885_VMUX_SVIDEO,
.vmux = CX25840_VIN7_CH3 | .vmux = CX25840_VIN7_CH3 |
CX25840_VIN4_CH2 | CX25840_VIN4_CH2 |
CX25840_VIN8_CH1 | CX25840_VIN8_CH1 |
CX25840_SVIDEO_ON, CX25840_SVIDEO_ON,
.gpio0 = 0, .gpio0 = 0,
}}, } },
}, },
[CX23885_BOARD_HAUPPAUGE_HVR1250] = { [CX23885_BOARD_HAUPPAUGE_HVR1250] = {
.name = "Hauppauge WinTV-HVR1250", .name = "Hauppauge WinTV-HVR1250",
...@@ -106,19 +106,19 @@ struct cx23885_board cx23885_boards[] = { ...@@ -106,19 +106,19 @@ struct cx23885_board cx23885_boards[] = {
.type = CX23885_VMUX_TELEVISION, .type = CX23885_VMUX_TELEVISION,
.vmux = 0, .vmux = 0,
.gpio0 = 0xff00, .gpio0 = 0xff00,
},{ }, {
.type = CX23885_VMUX_DEBUG, .type = CX23885_VMUX_DEBUG,
.vmux = 0, .vmux = 0,
.gpio0 = 0xff01, .gpio0 = 0xff01,
},{ }, {
.type = CX23885_VMUX_COMPOSITE1, .type = CX23885_VMUX_COMPOSITE1,
.vmux = 1, .vmux = 1,
.gpio0 = 0xff02, .gpio0 = 0xff02,
},{ }, {
.type = CX23885_VMUX_SVIDEO, .type = CX23885_VMUX_SVIDEO,
.vmux = 2, .vmux = 2,
.gpio0 = 0xff02, .gpio0 = 0xff02,
}}, } },
}, },
[CX23885_BOARD_DVICO_FUSIONHDTV_5_EXP] = { [CX23885_BOARD_DVICO_FUSIONHDTV_5_EXP] = {
.name = "DViCO FusionHDTV5 Express", .name = "DViCO FusionHDTV5 Express",
...@@ -169,43 +169,43 @@ struct cx23885_subid cx23885_subids[] = { ...@@ -169,43 +169,43 @@ struct cx23885_subid cx23885_subids[] = {
.subvendor = 0x0070, .subvendor = 0x0070,
.subdevice = 0x3400, .subdevice = 0x3400,
.card = CX23885_BOARD_UNKNOWN, .card = CX23885_BOARD_UNKNOWN,
},{ }, {
.subvendor = 0x0070, .subvendor = 0x0070,
.subdevice = 0x7600, .subdevice = 0x7600,
.card = CX23885_BOARD_HAUPPAUGE_HVR1800lp, .card = CX23885_BOARD_HAUPPAUGE_HVR1800lp,
},{ }, {
.subvendor = 0x0070, .subvendor = 0x0070,
.subdevice = 0x7800, .subdevice = 0x7800,
.card = CX23885_BOARD_HAUPPAUGE_HVR1800, .card = CX23885_BOARD_HAUPPAUGE_HVR1800,
},{ }, {
.subvendor = 0x0070, .subvendor = 0x0070,
.subdevice = 0x7801, .subdevice = 0x7801,
.card = CX23885_BOARD_HAUPPAUGE_HVR1800, .card = CX23885_BOARD_HAUPPAUGE_HVR1800,
},{ }, {
.subvendor = 0x0070, .subvendor = 0x0070,
.subdevice = 0x7809, .subdevice = 0x7809,
.card = CX23885_BOARD_HAUPPAUGE_HVR1800, .card = CX23885_BOARD_HAUPPAUGE_HVR1800,
},{ }, {
.subvendor = 0x0070, .subvendor = 0x0070,
.subdevice = 0x7911, .subdevice = 0x7911,
.card = CX23885_BOARD_HAUPPAUGE_HVR1250, .card = CX23885_BOARD_HAUPPAUGE_HVR1250,
},{ }, {
.subvendor = 0x18ac, .subvendor = 0x18ac,
.subdevice = 0xd500, .subdevice = 0xd500,
.card = CX23885_BOARD_DVICO_FUSIONHDTV_5_EXP, .card = CX23885_BOARD_DVICO_FUSIONHDTV_5_EXP,
},{ }, {
.subvendor = 0x0070, .subvendor = 0x0070,
.subdevice = 0x7790, .subdevice = 0x7790,
.card = CX23885_BOARD_HAUPPAUGE_HVR1500Q, .card = CX23885_BOARD_HAUPPAUGE_HVR1500Q,
},{ }, {
.subvendor = 0x0070, .subvendor = 0x0070,
.subdevice = 0x7797, .subdevice = 0x7797,
.card = CX23885_BOARD_HAUPPAUGE_HVR1500Q, .card = CX23885_BOARD_HAUPPAUGE_HVR1500Q,
},{ }, {
.subvendor = 0x0070, .subvendor = 0x0070,
.subdevice = 0x7710, .subdevice = 0x7710,
.card = CX23885_BOARD_HAUPPAUGE_HVR1500, .card = CX23885_BOARD_HAUPPAUGE_HVR1500,
},{ }, {
.subvendor = 0x0070, .subvendor = 0x0070,
.subdevice = 0x7717, .subdevice = 0x7717,
.card = CX23885_BOARD_HAUPPAUGE_HVR1500, .card = CX23885_BOARD_HAUPPAUGE_HVR1500,
...@@ -225,11 +225,11 @@ struct cx23885_subid cx23885_subids[] = { ...@@ -225,11 +225,11 @@ struct cx23885_subid cx23885_subids[] = {
.subvendor = 0x0070, .subvendor = 0x0070,
.subdevice = 0x8010, .subdevice = 0x8010,
.card = CX23885_BOARD_HAUPPAUGE_HVR1400, .card = CX23885_BOARD_HAUPPAUGE_HVR1400,
},{ }, {
.subvendor = 0x18ac, .subvendor = 0x18ac,
.subdevice = 0xd618, .subdevice = 0xd618,
.card = CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP, .card = CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP,
},{ }, {
.subvendor = 0x18ac, .subvendor = 0x18ac,
.subdevice = 0xdb78, .subdevice = 0xdb78,
.card = CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP, .card = CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP,
...@@ -247,23 +247,25 @@ void cx23885_card_list(struct cx23885_dev *dev) ...@@ -247,23 +247,25 @@ void cx23885_card_list(struct cx23885_dev *dev)
if (0 == dev->pci->subsystem_vendor && if (0 == dev->pci->subsystem_vendor &&
0 == dev->pci->subsystem_device) { 0 == dev->pci->subsystem_device) {
printk("%s: Your board has no valid PCIe Subsystem ID and thus can't\n" printk(KERN_INFO
"%s: be autodetected. Please pass card=<n> insmod option to\n" "%s: Board has no valid PCIe Subsystem ID and can't\n"
"%s: workaround that. Redirect complaints to the vendor of\n" "%s: be autodetected. Pass card=<n> insmod option\n"
"%s: the TV card. Best regards,\n" "%s: to workaround that. Redirect complaints to the\n"
"%s: vendor of the TV card. Best regards,\n"
"%s: -- tux\n", "%s: -- tux\n",
dev->name, dev->name, dev->name, dev->name, dev->name); dev->name, dev->name, dev->name, dev->name, dev->name);
} else { } else {
printk("%s: Your board isn't known (yet) to the driver. You can\n" printk(KERN_INFO
"%s: try to pick one of the existing card configs via\n" "%s: Your board isn't known (yet) to the driver.\n"
"%s: Try to pick one of the existing card configs via\n"
"%s: card=<n> insmod option. Updating to the latest\n" "%s: card=<n> insmod option. Updating to the latest\n"
"%s: version might help as well.\n", "%s: version might help as well.\n",
dev->name, dev->name, dev->name, dev->name); dev->name, dev->name, dev->name, dev->name);
} }
printk("%s: Here is a list of valid choices for the card=<n> insmod option:\n", printk(KERN_INFO "%s: Here is a list of valid choices for the card=<n> insmod option:\n",
dev->name); dev->name);
for (i = 0; i < cx23885_bcount; i++) for (i = 0; i < cx23885_bcount; i++)
printk("%s: card=%d -> %s\n", printk(KERN_INFO "%s: card=%d -> %s\n",
dev->name, i, cx23885_boards[i].name); dev->name, i, cx23885_boards[i].name);
} }
...@@ -271,11 +273,11 @@ static void hauppauge_eeprom(struct cx23885_dev *dev, u8 *eeprom_data) ...@@ -271,11 +273,11 @@ static void hauppauge_eeprom(struct cx23885_dev *dev, u8 *eeprom_data)
{ {
struct tveeprom tv; struct tveeprom tv;
tveeprom_hauppauge_analog(&dev->i2c_bus[0].i2c_client, &tv, eeprom_data); tveeprom_hauppauge_analog(&dev->i2c_bus[0].i2c_client, &tv,
eeprom_data);
/* Make sure we support the board model */ /* Make sure we support the board model */
switch (tv.model) switch (tv.model) {
{
case 71009: case 71009:
/* WinTV-HVR1200 (PCIe, Retail, full height) /* WinTV-HVR1200 (PCIe, Retail, full height)
* DVB-T and basic analog */ * DVB-T and basic analog */
...@@ -303,21 +305,51 @@ static void hauppauge_eeprom(struct cx23885_dev *dev, u8 *eeprom_data) ...@@ -303,21 +305,51 @@ static void hauppauge_eeprom(struct cx23885_dev *dev, u8 *eeprom_data)
case 71999: case 71999:
/* WinTV-HVR1200 (PCIe, OEM, full height) /* WinTV-HVR1200 (PCIe, OEM, full height)
* DVB-T and basic analog */ * DVB-T and basic analog */
case 76601: /* WinTV-HVR1800lp (PCIe, Retail, No IR, Dual channel ATSC and MPEG2 HW Encoder */ case 76601:
case 77001: /* WinTV-HVR1500 (Express Card, OEM, No IR, ATSC and Basic analog */ /* WinTV-HVR1800lp (PCIe, Retail, No IR, Dual
case 77011: /* WinTV-HVR1500 (Express Card, Retail, No IR, ATSC and Basic analog */ channel ATSC and MPEG2 HW Encoder */
case 77041: /* WinTV-HVR1500Q (Express Card, OEM, No IR, ATSC/QAM and Basic analog */ case 77001:
case 77051: /* WinTV-HVR1500Q (Express Card, Retail, No IR, ATSC/QAM and Basic analog */ /* WinTV-HVR1500 (Express Card, OEM, No IR, ATSC
case 78011: /* WinTV-HVR1800 (PCIe, Retail, 3.5mm in, IR, No FM, Dual channel ATSC and MPEG2 HW Encoder */ and Basic analog */
case 78501: /* WinTV-HVR1800 (PCIe, OEM, RCA in, No IR, FM, Dual channel ATSC and MPEG2 HW Encoder */ case 77011:
case 78521: /* WinTV-HVR1800 (PCIe, OEM, RCA in, No IR, FM, Dual channel ATSC and MPEG2 HW Encoder */ /* WinTV-HVR1500 (Express Card, Retail, No IR, ATSC
case 78531: /* WinTV-HVR1800 (PCIe, OEM, RCA in, No IR, No FM, Dual channel ATSC and MPEG2 HW Encoder */ and Basic analog */
case 78631: /* WinTV-HVR1800 (PCIe, OEM, No IR, No FM, Dual channel ATSC and MPEG2 HW Encoder */ case 77041:
case 79001: /* WinTV-HVR1250 (PCIe, Retail, IR, full height, ATSC and Basic analog */ /* WinTV-HVR1500Q (Express Card, OEM, No IR, ATSC/QAM
case 79101: /* WinTV-HVR1250 (PCIe, Retail, IR, half height, ATSC and Basic analog */ and Basic analog */
case 79561: /* WinTV-HVR1250 (PCIe, OEM, No IR, half height, ATSC and Basic analog */ case 77051:
case 79571: /* WinTV-HVR1250 (PCIe, OEM, No IR, full height, ATSC and Basic analog */ /* WinTV-HVR1500Q (Express Card, Retail, No IR, ATSC/QAM
case 79671: /* WinTV-HVR1250 (PCIe, OEM, No IR, half height, ATSC and Basic analog */ and Basic analog */
case 78011:
/* WinTV-HVR1800 (PCIe, Retail, 3.5mm in, IR, No FM,
Dual channel ATSC and MPEG2 HW Encoder */
case 78501:
/* WinTV-HVR1800 (PCIe, OEM, RCA in, No IR, FM,
Dual channel ATSC and MPEG2 HW Encoder */
case 78521:
/* WinTV-HVR1800 (PCIe, OEM, RCA in, No IR, FM,
Dual channel ATSC and MPEG2 HW Encoder */
case 78531:
/* WinTV-HVR1800 (PCIe, OEM, RCA in, No IR, No FM,
Dual channel ATSC and MPEG2 HW Encoder */
case 78631:
/* WinTV-HVR1800 (PCIe, OEM, No IR, No FM,
Dual channel ATSC and MPEG2 HW Encoder */
case 79001:
/* WinTV-HVR1250 (PCIe, Retail, IR, full height,
ATSC and Basic analog */
case 79101:
/* WinTV-HVR1250 (PCIe, Retail, IR, half height,
ATSC and Basic analog */
case 79561:
/* WinTV-HVR1250 (PCIe, OEM, No IR, half height,
ATSC and Basic analog */
case 79571:
/* WinTV-HVR1250 (PCIe, OEM, No IR, full height,
ATSC and Basic analog */
case 79671:
/* WinTV-HVR1250 (PCIe, OEM, No IR, half height,
ATSC and Basic analog */
case 80019: case 80019:
/* WinTV-HVR1400 (Express Card, Retail, IR, /* WinTV-HVR1400 (Express Card, Retail, IR,
* DVB-T and Basic analog */ * DVB-T and Basic analog */
...@@ -329,7 +361,8 @@ static void hauppauge_eeprom(struct cx23885_dev *dev, u8 *eeprom_data) ...@@ -329,7 +361,8 @@ static void hauppauge_eeprom(struct cx23885_dev *dev, u8 *eeprom_data)
* DVB-T and MPEG2 HW Encoder */ * DVB-T and MPEG2 HW Encoder */
break; break;
default: default:
printk("%s: warning: unknown hauppauge model #%d\n", dev->name, tv.model); printk(KERN_WARNING "%s: warning: unknown hauppauge model #%d\n",
dev->name, tv.model);
break; break;
} }
...@@ -352,7 +385,7 @@ int cx23885_tuner_callback(void *priv, int component, int command, int arg) ...@@ -352,7 +385,7 @@ int cx23885_tuner_callback(void *priv, int component, int command, int arg)
return -EINVAL; return -EINVAL;
} }
switch(dev->board) { switch (dev->board) {
case CX23885_BOARD_HAUPPAUGE_HVR1400: case CX23885_BOARD_HAUPPAUGE_HVR1400:
case CX23885_BOARD_HAUPPAUGE_HVR1500: case CX23885_BOARD_HAUPPAUGE_HVR1500:
case CX23885_BOARD_HAUPPAUGE_HVR1500Q: case CX23885_BOARD_HAUPPAUGE_HVR1500Q:
...@@ -383,7 +416,7 @@ int cx23885_tuner_callback(void *priv, int component, int command, int arg) ...@@ -383,7 +416,7 @@ int cx23885_tuner_callback(void *priv, int component, int command, int arg)
void cx23885_gpio_setup(struct cx23885_dev *dev) void cx23885_gpio_setup(struct cx23885_dev *dev)
{ {
switch(dev->board) { switch (dev->board) {
case CX23885_BOARD_HAUPPAUGE_HVR1250: case CX23885_BOARD_HAUPPAUGE_HVR1250:
/* GPIO-0 cx24227 demodulator reset */ /* GPIO-0 cx24227 demodulator reset */
cx_set(GP0_IO, 0x00010001); /* Bring the part out of reset */ cx_set(GP0_IO, 0x00010001); /* Bring the part out of reset */
...@@ -617,10 +650,3 @@ void cx23885_card_setup(struct cx23885_dev *dev) ...@@ -617,10 +650,3 @@ void cx23885_card_setup(struct cx23885_dev *dev)
} }
/* ------------------------------------------------------------------ */ /* ------------------------------------------------------------------ */
/*
* Local variables:
* c-basic-offset: 8
* End:
* kate: eol "unix"; indent-width 3; remove-trailing-space on; replace-trailing-space-save on; tab-width 8; replace-tabs off; space-indent off; mixed-indent off
*/
...@@ -37,12 +37,12 @@ MODULE_AUTHOR("Steven Toth <stoth@linuxtv.org>"); ...@@ -37,12 +37,12 @@ MODULE_AUTHOR("Steven Toth <stoth@linuxtv.org>");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
static unsigned int debug; static unsigned int debug;
module_param(debug,int,0644); module_param(debug, int, 0644);
MODULE_PARM_DESC(debug,"enable debug messages"); MODULE_PARM_DESC(debug, "enable debug messages");
static unsigned int card[] = {[0 ... (CX23885_MAXBOARDS - 1)] = UNSET }; static unsigned int card[] = {[0 ... (CX23885_MAXBOARDS - 1)] = UNSET };
module_param_array(card, int, NULL, 0444); module_param_array(card, int, NULL, 0444);
MODULE_PARM_DESC(card,"card type"); MODULE_PARM_DESC(card, "card type");
#define dprintk(level, fmt, arg...)\ #define dprintk(level, fmt, arg...)\
do { if (debug >= level)\ do { if (debug >= level)\
...@@ -364,13 +364,12 @@ void cx23885_wakeup(struct cx23885_tsport *port, ...@@ -364,13 +364,12 @@ void cx23885_wakeup(struct cx23885_tsport *port,
list_del(&buf->vb.queue); list_del(&buf->vb.queue);
wake_up(&buf->vb.done); wake_up(&buf->vb.done);
} }
if (list_empty(&q->active)) { if (list_empty(&q->active))
del_timer(&q->timeout); del_timer(&q->timeout);
} else { else
mod_timer(&q->timeout, jiffies + BUFFER_TIMEOUT); mod_timer(&q->timeout, jiffies + BUFFER_TIMEOUT);
}
if (bc != 1) if (bc != 1)
printk("%s: %d buffers handled (should be 1)\n", printk(KERN_WARNING "%s: %d buffers handled (should be 1)\n",
__func__, bc); __func__, bc);
} }
...@@ -381,8 +380,7 @@ int cx23885_sram_channel_setup(struct cx23885_dev *dev, ...@@ -381,8 +380,7 @@ int cx23885_sram_channel_setup(struct cx23885_dev *dev,
unsigned int i, lines; unsigned int i, lines;
u32 cdt; u32 cdt;
if (ch->cmds_start == 0) if (ch->cmds_start == 0) {
{
dprintk(1, "%s() Erasing channel [%s]\n", __func__, dprintk(1, "%s() Erasing channel [%s]\n", __func__,
ch->name); ch->name);
cx_write(ch->ptr1_reg, 0); cx_write(ch->ptr1_reg, 0);
...@@ -418,15 +416,15 @@ int cx23885_sram_channel_setup(struct cx23885_dev *dev, ...@@ -418,15 +416,15 @@ int cx23885_sram_channel_setup(struct cx23885_dev *dev,
/* write CMDS */ /* write CMDS */
if (ch->jumponly) if (ch->jumponly)
cx_write(ch->cmds_start + 0, 8); cx_write(ch->cmds_start + 0, 8);
else else
cx_write(ch->cmds_start + 0, risc); cx_write(ch->cmds_start + 0, risc);
cx_write(ch->cmds_start + 4, 0); /* 64 bits 63-32 */ cx_write(ch->cmds_start + 4, 0); /* 64 bits 63-32 */
cx_write(ch->cmds_start + 8, cdt); cx_write(ch->cmds_start + 8, cdt);
cx_write(ch->cmds_start + 12, (lines*16) >> 3); cx_write(ch->cmds_start + 12, (lines*16) >> 3);
cx_write(ch->cmds_start + 16, ch->ctrl_start); cx_write(ch->cmds_start + 16, ch->ctrl_start);
if (ch->jumponly) if (ch->jumponly)
cx_write(ch->cmds_start + 20, 0x80000000 | (64 >> 2) ); cx_write(ch->cmds_start + 20, 0x80000000 | (64 >> 2));
else else
cx_write(ch->cmds_start + 20, 64 >> 2); cx_write(ch->cmds_start + 20, 64 >> 2);
for (i = 24; i < 80; i += 4) for (i = 24; i < 80; i += 4)
...@@ -436,9 +434,9 @@ int cx23885_sram_channel_setup(struct cx23885_dev *dev, ...@@ -436,9 +434,9 @@ int cx23885_sram_channel_setup(struct cx23885_dev *dev,
cx_write(ch->ptr1_reg, ch->fifo_start); cx_write(ch->ptr1_reg, ch->fifo_start);
cx_write(ch->ptr2_reg, cdt); cx_write(ch->ptr2_reg, cdt);
cx_write(ch->cnt2_reg, (lines*16) >> 3); cx_write(ch->cnt2_reg, (lines*16) >> 3);
cx_write(ch->cnt1_reg, (bpl >> 3) -1); cx_write(ch->cnt1_reg, (bpl >> 3) - 1);
dprintk(2,"[bridge %d] sram setup %s: bpl=%d lines=%d\n", dprintk(2, "[bridge %d] sram setup %s: bpl=%d lines=%d\n",
dev->bridge, dev->bridge,
ch->name, ch->name,
bpl, bpl,
...@@ -469,43 +467,43 @@ void cx23885_sram_channel_dump(struct cx23885_dev *dev, ...@@ -469,43 +467,43 @@ void cx23885_sram_channel_dump(struct cx23885_dev *dev,
u32 risc; u32 risc;
unsigned int i, j, n; unsigned int i, j, n;
printk("%s: %s - dma channel status dump\n", printk(KERN_WARNING "%s: %s - dma channel status dump\n",
dev->name, ch->name); dev->name, ch->name);
for (i = 0; i < ARRAY_SIZE(name); i++) for (i = 0; i < ARRAY_SIZE(name); i++)
printk("%s: cmds: %-15s: 0x%08x\n", printk(KERN_WARNING "%s: cmds: %-15s: 0x%08x\n",
dev->name, name[i], dev->name, name[i],
cx_read(ch->cmds_start + 4*i)); cx_read(ch->cmds_start + 4*i));
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
risc = cx_read(ch->cmds_start + 4 * (i + 14)); risc = cx_read(ch->cmds_start + 4 * (i + 14));
printk("%s: risc%d: ", dev->name, i); printk(KERN_WARNING "%s: risc%d: ", dev->name, i);
cx23885_risc_decode(risc); cx23885_risc_decode(risc);
} }
for (i = 0; i < (64 >> 2); i += n) { for (i = 0; i < (64 >> 2); i += n) {
risc = cx_read(ch->ctrl_start + 4 * i); risc = cx_read(ch->ctrl_start + 4 * i);
/* No consideration for bits 63-32 */ /* No consideration for bits 63-32 */
printk("%s: (0x%08x) iq %x: ", dev->name, printk(KERN_WARNING "%s: (0x%08x) iq %x: ", dev->name,
ch->ctrl_start + 4 * i, i); ch->ctrl_start + 4 * i, i);
n = cx23885_risc_decode(risc); n = cx23885_risc_decode(risc);
for (j = 1; j < n; j++) { for (j = 1; j < n; j++) {
risc = cx_read(ch->ctrl_start + 4 * (i + j)); risc = cx_read(ch->ctrl_start + 4 * (i + j));
printk("%s: iq %x: 0x%08x [ arg #%d ]\n", printk(KERN_WARNING "%s: iq %x: 0x%08x [ arg #%d ]\n",
dev->name, i+j, risc, j); dev->name, i+j, risc, j);
} }
} }
printk("%s: fifo: 0x%08x -> 0x%x\n", printk(KERN_WARNING "%s: fifo: 0x%08x -> 0x%x\n",
dev->name, ch->fifo_start, ch->fifo_start+ch->fifo_size); dev->name, ch->fifo_start, ch->fifo_start+ch->fifo_size);
printk("%s: ctrl: 0x%08x -> 0x%x\n", printk(KERN_WARNING "%s: ctrl: 0x%08x -> 0x%x\n",
dev->name, ch->ctrl_start, ch->ctrl_start + 6*16); dev->name, ch->ctrl_start, ch->ctrl_start + 6*16);
printk("%s: ptr1_reg: 0x%08x\n", printk(KERN_WARNING "%s: ptr1_reg: 0x%08x\n",
dev->name, cx_read(ch->ptr1_reg)); dev->name, cx_read(ch->ptr1_reg));
printk("%s: ptr2_reg: 0x%08x\n", printk(KERN_WARNING "%s: ptr2_reg: 0x%08x\n",
dev->name, cx_read(ch->ptr2_reg)); dev->name, cx_read(ch->ptr2_reg));
printk("%s: cnt1_reg: 0x%08x\n", printk(KERN_WARNING "%s: cnt1_reg: 0x%08x\n",
dev->name, cx_read(ch->cnt1_reg)); dev->name, cx_read(ch->cnt1_reg));
printk("%s: cnt2_reg: 0x%08x\n", printk(KERN_WARNING "%s: cnt2_reg: 0x%08x\n",
dev->name, cx_read(ch->cnt2_reg)); dev->name, cx_read(ch->cnt2_reg));
} }
...@@ -515,13 +513,13 @@ static void cx23885_risc_disasm(struct cx23885_tsport *port, ...@@ -515,13 +513,13 @@ static void cx23885_risc_disasm(struct cx23885_tsport *port,
struct cx23885_dev *dev = port->dev; struct cx23885_dev *dev = port->dev;
unsigned int i, j, n; unsigned int i, j, n;
printk("%s: risc disasm: %p [dma=0x%08lx]\n", printk(KERN_INFO "%s: risc disasm: %p [dma=0x%08lx]\n",
dev->name, risc->cpu, (unsigned long)risc->dma); dev->name, risc->cpu, (unsigned long)risc->dma);
for (i = 0; i < (risc->size >> 2); i += n) { for (i = 0; i < (risc->size >> 2); i += n) {
printk("%s: %04d: ", dev->name, i); printk(KERN_INFO "%s: %04d: ", dev->name, i);
n = cx23885_risc_decode(le32_to_cpu(risc->cpu[i])); n = cx23885_risc_decode(le32_to_cpu(risc->cpu[i]));
for (j = 1; j < n; j++) for (j = 1; j < n; j++)
printk("%s: %04d: 0x%08x [ arg #%d ]\n", printk(KERN_INFO "%s: %04d: 0x%08x [ arg #%d ]\n",
dev->name, i + j, risc->cpu[i + j], j); dev->name, i + j, risc->cpu[i + j], j);
if (risc->cpu[i] == cpu_to_le32(RISC_JUMP)) if (risc->cpu[i] == cpu_to_le32(RISC_JUMP))
break; break;
...@@ -600,7 +598,7 @@ static int cx23885_pci_quirks(struct cx23885_dev *dev) ...@@ -600,7 +598,7 @@ static int cx23885_pci_quirks(struct cx23885_dev *dev)
* when DMA begins if RDR_TLCTL0 bit4 is not cleared. It does not * when DMA begins if RDR_TLCTL0 bit4 is not cleared. It does not
* occur on the cx23887 bridge. * occur on the cx23887 bridge.
*/ */
if(dev->bridge == CX23885_BRIDGE_885) if (dev->bridge == CX23885_BRIDGE_885)
cx_clear(RDR_TLCTL0, 1 << 4); cx_clear(RDR_TLCTL0, 1 << 4);
return 0; return 0;
...@@ -608,13 +606,13 @@ static int cx23885_pci_quirks(struct cx23885_dev *dev) ...@@ -608,13 +606,13 @@ static int cx23885_pci_quirks(struct cx23885_dev *dev)
static int get_resources(struct cx23885_dev *dev) static int get_resources(struct cx23885_dev *dev)
{ {
if (request_mem_region(pci_resource_start(dev->pci,0), if (request_mem_region(pci_resource_start(dev->pci, 0),
pci_resource_len(dev->pci,0), pci_resource_len(dev->pci, 0),
dev->name)) dev->name))
return 0; return 0;
printk(KERN_ERR "%s: can't get MMIO memory @ 0x%llx\n", printk(KERN_ERR "%s: can't get MMIO memory @ 0x%llx\n",
dev->name, (unsigned long long)pci_resource_start(dev->pci,0)); dev->name, (unsigned long long)pci_resource_start(dev->pci, 0));
return -EBUSY; return -EBUSY;
} }
...@@ -623,7 +621,8 @@ static void cx23885_timeout(unsigned long data); ...@@ -623,7 +621,8 @@ static void cx23885_timeout(unsigned long data);
int cx23885_risc_stopper(struct pci_dev *pci, struct btcx_riscmem *risc, int cx23885_risc_stopper(struct pci_dev *pci, struct btcx_riscmem *risc,
u32 reg, u32 mask, u32 value); u32 reg, u32 mask, u32 value);
static int cx23885_init_tsport(struct cx23885_dev *dev, struct cx23885_tsport *port, int portno) static int cx23885_init_tsport(struct cx23885_dev *dev,
struct cx23885_tsport *port, int portno)
{ {
dprintk(1, "%s(portno=%d)\n", __func__, portno); dprintk(1, "%s(portno=%d)\n", __func__, portno);
...@@ -651,10 +650,10 @@ static int cx23885_init_tsport(struct cx23885_dev *dev, struct cx23885_tsport *p ...@@ -651,10 +650,10 @@ static int cx23885_init_tsport(struct cx23885_dev *dev, struct cx23885_tsport *p
* attachment to this tsport, keeping the -dvb.c * attachment to this tsport, keeping the -dvb.c
* code clean and safe. * code clean and safe.
*/ */
if(!port->num_frontends) if (!port->num_frontends)
port->num_frontends = 1; port->num_frontends = 1;
switch(portno) { switch (portno) {
case 1: case 1:
port->reg_gpcnt = VID_B_GPCNT; port->reg_gpcnt = VID_B_GPCNT;
port->reg_gpcnt_ctl = VID_B_GPCNT_CTL; port->reg_gpcnt_ctl = VID_B_GPCNT_CTL;
...@@ -755,13 +754,13 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) ...@@ -755,13 +754,13 @@ static int cx23885_dev_setup(struct cx23885_dev *dev)
mutex_unlock(&devlist); mutex_unlock(&devlist);
/* Configure the internal memory */ /* Configure the internal memory */
if(dev->pci->device == 0x8880) { if (dev->pci->device == 0x8880) {
dev->bridge = CX23885_BRIDGE_887; dev->bridge = CX23885_BRIDGE_887;
/* Apply a sensible clock frequency for the PCIe bridge */ /* Apply a sensible clock frequency for the PCIe bridge */
dev->clk_freq = 25000000; dev->clk_freq = 25000000;
dev->sram_channels = cx23887_sram_channels; dev->sram_channels = cx23887_sram_channels;
} else } else
if(dev->pci->device == 0x8852) { if (dev->pci->device == 0x8852) {
dev->bridge = CX23885_BRIDGE_885; dev->bridge = CX23885_BRIDGE_885;
/* Apply a sensible clock frequency for the PCIe bridge */ /* Apply a sensible clock frequency for the PCIe bridge */
dev->clk_freq = 28000000; dev->clk_freq = 28000000;
...@@ -842,8 +841,8 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) ...@@ -842,8 +841,8 @@ static int cx23885_dev_setup(struct cx23885_dev *dev)
} }
/* PCIe stuff */ /* PCIe stuff */
dev->lmmio = ioremap(pci_resource_start(dev->pci,0), dev->lmmio = ioremap(pci_resource_start(dev->pci, 0),
pci_resource_len(dev->pci,0)); pci_resource_len(dev->pci, 0));
dev->bmmio = (u8 __iomem *)dev->lmmio; dev->bmmio = (u8 __iomem *)dev->lmmio;
...@@ -873,7 +872,7 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) ...@@ -873,7 +872,7 @@ static int cx23885_dev_setup(struct cx23885_dev *dev)
cx23885_i2c_register(&dev->i2c_bus[1]); cx23885_i2c_register(&dev->i2c_bus[1]);
cx23885_i2c_register(&dev->i2c_bus[2]); cx23885_i2c_register(&dev->i2c_bus[2]);
cx23885_card_setup(dev); cx23885_card_setup(dev);
cx23885_call_i2c_clients (&dev->i2c_bus[0], TUNER_SET_STANDBY, NULL); cx23885_call_i2c_clients(&dev->i2c_bus[0], TUNER_SET_STANDBY, NULL);
cx23885_ir_init(dev); cx23885_ir_init(dev);
if (cx23885_boards[dev->board].porta == CX23885_ANALOG_VIDEO) { if (cx23885_boards[dev->board].porta == CX23885_ANALOG_VIDEO) {
...@@ -919,8 +918,8 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) ...@@ -919,8 +918,8 @@ static int cx23885_dev_setup(struct cx23885_dev *dev)
static void cx23885_dev_unregister(struct cx23885_dev *dev) static void cx23885_dev_unregister(struct cx23885_dev *dev)
{ {
release_mem_region(pci_resource_start(dev->pci,0), release_mem_region(pci_resource_start(dev->pci, 0),
pci_resource_len(dev->pci,0)); pci_resource_len(dev->pci, 0));
if (!atomic_dec_and_test(&dev->refcount)) if (!atomic_dec_and_test(&dev->refcount))
return; return;
...@@ -947,7 +946,7 @@ static void cx23885_dev_unregister(struct cx23885_dev *dev) ...@@ -947,7 +946,7 @@ static void cx23885_dev_unregister(struct cx23885_dev *dev)
iounmap(dev->lmmio); iounmap(dev->lmmio);
} }
static __le32* cx23885_risc_field(__le32 *rp, struct scatterlist *sglist, static __le32 *cx23885_risc_field(__le32 *rp, struct scatterlist *sglist,
unsigned int offset, u32 sync_line, unsigned int offset, u32 sync_line,
unsigned int bpl, unsigned int padding, unsigned int bpl, unsigned int padding,
unsigned int lines) unsigned int lines)
...@@ -968,31 +967,31 @@ static __le32* cx23885_risc_field(__le32 *rp, struct scatterlist *sglist, ...@@ -968,31 +967,31 @@ static __le32* cx23885_risc_field(__le32 *rp, struct scatterlist *sglist,
} }
if (bpl <= sg_dma_len(sg)-offset) { if (bpl <= sg_dma_len(sg)-offset) {
/* fits into current chunk */ /* fits into current chunk */
*(rp++)=cpu_to_le32(RISC_WRITE|RISC_SOL|RISC_EOL|bpl); *(rp++) = cpu_to_le32(RISC_WRITE|RISC_SOL|RISC_EOL|bpl);
*(rp++)=cpu_to_le32(sg_dma_address(sg)+offset); *(rp++) = cpu_to_le32(sg_dma_address(sg)+offset);
*(rp++)=cpu_to_le32(0); /* bits 63-32 */ *(rp++) = cpu_to_le32(0); /* bits 63-32 */
offset+=bpl; offset += bpl;
} else { } else {
/* scanline needs to be split */ /* scanline needs to be split */
todo = bpl; todo = bpl;
*(rp++)=cpu_to_le32(RISC_WRITE|RISC_SOL| *(rp++) = cpu_to_le32(RISC_WRITE|RISC_SOL|
(sg_dma_len(sg)-offset)); (sg_dma_len(sg)-offset));
*(rp++)=cpu_to_le32(sg_dma_address(sg)+offset); *(rp++) = cpu_to_le32(sg_dma_address(sg)+offset);
*(rp++)=cpu_to_le32(0); /* bits 63-32 */ *(rp++) = cpu_to_le32(0); /* bits 63-32 */
todo -= (sg_dma_len(sg)-offset); todo -= (sg_dma_len(sg)-offset);
offset = 0; offset = 0;
sg++; sg++;
while (todo > sg_dma_len(sg)) { while (todo > sg_dma_len(sg)) {
*(rp++)=cpu_to_le32(RISC_WRITE| *(rp++) = cpu_to_le32(RISC_WRITE|
sg_dma_len(sg)); sg_dma_len(sg));
*(rp++)=cpu_to_le32(sg_dma_address(sg)); *(rp++) = cpu_to_le32(sg_dma_address(sg));
*(rp++)=cpu_to_le32(0); /* bits 63-32 */ *(rp++) = cpu_to_le32(0); /* bits 63-32 */
todo -= sg_dma_len(sg); todo -= sg_dma_len(sg);
sg++; sg++;
} }
*(rp++)=cpu_to_le32(RISC_WRITE|RISC_EOL|todo); *(rp++) = cpu_to_le32(RISC_WRITE|RISC_EOL|todo);
*(rp++)=cpu_to_le32(sg_dma_address(sg)); *(rp++) = cpu_to_le32(sg_dma_address(sg));
*(rp++)=cpu_to_le32(0); /* bits 63-32 */ *(rp++) = cpu_to_le32(0); /* bits 63-32 */
offset += todo; offset += todo;
} }
offset += padding; offset += padding;
...@@ -1021,9 +1020,11 @@ int cx23885_risc_buffer(struct pci_dev *pci, struct btcx_riscmem *risc, ...@@ -1021,9 +1020,11 @@ int cx23885_risc_buffer(struct pci_dev *pci, struct btcx_riscmem *risc,
can cause next bpl to start close to a page border. First DMA can cause next bpl to start close to a page border. First DMA
region may be smaller than PAGE_SIZE */ region may be smaller than PAGE_SIZE */
/* write and jump need and extra dword */ /* write and jump need and extra dword */
instructions = fields * (1 + ((bpl + padding) * lines) / PAGE_SIZE + lines); instructions = fields * (1 + ((bpl + padding) * lines)
/ PAGE_SIZE + lines);
instructions += 2; instructions += 2;
if ((rc = btcx_riscmem_alloc(pci,risc,instructions*12)) < 0) rc = btcx_riscmem_alloc(pci, risc, instructions*12);
if (rc < 0)
return rc; return rc;
/* write risc instructions */ /* write risc instructions */
...@@ -1037,7 +1038,7 @@ int cx23885_risc_buffer(struct pci_dev *pci, struct btcx_riscmem *risc, ...@@ -1037,7 +1038,7 @@ int cx23885_risc_buffer(struct pci_dev *pci, struct btcx_riscmem *risc,
/* save pointer to jmp instruction address */ /* save pointer to jmp instruction address */
risc->jmp = rp; risc->jmp = rp;
BUG_ON((risc->jmp - risc->cpu + 2) * sizeof (*risc->cpu) > risc->size); BUG_ON((risc->jmp - risc->cpu + 2) * sizeof(*risc->cpu) > risc->size);
return 0; return 0;
} }
...@@ -1059,7 +1060,8 @@ static int cx23885_risc_databuffer(struct pci_dev *pci, ...@@ -1059,7 +1060,8 @@ static int cx23885_risc_databuffer(struct pci_dev *pci,
instructions = 1 + (bpl * lines) / PAGE_SIZE + lines; instructions = 1 + (bpl * lines) / PAGE_SIZE + lines;
instructions += 1; instructions += 1;
if ((rc = btcx_riscmem_alloc(pci,risc,instructions*12)) < 0) rc = btcx_riscmem_alloc(pci, risc, instructions*12);
if (rc < 0)
return rc; return rc;
/* write risc instructions */ /* write risc instructions */
...@@ -1068,7 +1070,7 @@ static int cx23885_risc_databuffer(struct pci_dev *pci, ...@@ -1068,7 +1070,7 @@ static int cx23885_risc_databuffer(struct pci_dev *pci,
/* save pointer to jmp instruction address */ /* save pointer to jmp instruction address */
risc->jmp = rp; risc->jmp = rp;
BUG_ON((risc->jmp - risc->cpu + 2) * sizeof (*risc->cpu) > risc->size); BUG_ON((risc->jmp - risc->cpu + 2) * sizeof(*risc->cpu) > risc->size);
return 0; return 0;
} }
...@@ -1078,7 +1080,8 @@ int cx23885_risc_stopper(struct pci_dev *pci, struct btcx_riscmem *risc, ...@@ -1078,7 +1080,8 @@ int cx23885_risc_stopper(struct pci_dev *pci, struct btcx_riscmem *risc,
__le32 *rp; __le32 *rp;
int rc; int rc;
if ((rc = btcx_riscmem_alloc(pci, risc, 4*16)) < 0) rc = btcx_riscmem_alloc(pci, risc, 4*16);
if (rc < 0)
return rc; return rc;
/* write risc instructions */ /* write risc instructions */
...@@ -1172,22 +1175,23 @@ static int cx23885_start_dma(struct cx23885_tsport *port, ...@@ -1172,22 +1175,23 @@ static int cx23885_start_dma(struct cx23885_tsport *port,
/* setup fifo + format */ /* setup fifo + format */
cx23885_sram_channel_setup(dev, cx23885_sram_channel_setup(dev,
&dev->sram_channels[ port->sram_chno ], &dev->sram_channels[port->sram_chno],
port->ts_packet_size, buf->risc.dma); port->ts_packet_size, buf->risc.dma);
if(debug > 5) { if (debug > 5) {
cx23885_sram_channel_dump(dev, &dev->sram_channels[ port->sram_chno ] ); cx23885_sram_channel_dump(dev,
&dev->sram_channels[port->sram_chno]);
cx23885_risc_disasm(port, &buf->risc); cx23885_risc_disasm(port, &buf->risc);
} }
/* write TS length to chip */ /* write TS length to chip */
cx_write(port->reg_lngth, buf->vb.width); cx_write(port->reg_lngth, buf->vb.width);
if ( (!(cx23885_boards[dev->board].portb & CX23885_MPEG_DVB)) && if ((!(cx23885_boards[dev->board].portb & CX23885_MPEG_DVB)) &&
(!(cx23885_boards[dev->board].portc & CX23885_MPEG_DVB)) ) { (!(cx23885_boards[dev->board].portc & CX23885_MPEG_DVB))) {
printk( "%s() Failed. Unsupported value in .portb/c (0x%08x)/(0x%08x)\n", printk("%s() Unsupported .portb/c (0x%08x)/(0x%08x)\n",
__func__, __func__,
cx23885_boards[dev->board].portb, cx23885_boards[dev->board].portb,
cx23885_boards[dev->board].portc ); cx23885_boards[dev->board].portc);
return -EINVAL; return -EINVAL;
} }
...@@ -1197,7 +1201,7 @@ static int cx23885_start_dma(struct cx23885_tsport *port, ...@@ -1197,7 +1201,7 @@ static int cx23885_start_dma(struct cx23885_tsport *port,
udelay(100); udelay(100);
/* If the port supports SRC SELECT, configure it */ /* If the port supports SRC SELECT, configure it */
if(port->reg_src_sel) if (port->reg_src_sel)
cx_write(port->reg_src_sel, port->src_sel_val); cx_write(port->reg_src_sel, port->src_sel_val);
cx_write(port->reg_hw_sop_ctrl, port->hw_sop_ctrl_val); cx_write(port->reg_hw_sop_ctrl, port->hw_sop_ctrl_val);
...@@ -1206,7 +1210,7 @@ static int cx23885_start_dma(struct cx23885_tsport *port, ...@@ -1206,7 +1210,7 @@ static int cx23885_start_dma(struct cx23885_tsport *port,
cx_write(port->reg_gen_ctrl, port->gen_ctrl_val); cx_write(port->reg_gen_ctrl, port->gen_ctrl_val);
udelay(100); udelay(100);
// NOTE: this is 2 (reserved) for portb, does it matter? /* NOTE: this is 2 (reserved) for portb, does it matter? */
/* reset counter to zero */ /* reset counter to zero */
cx_write(port->reg_gpcnt_ctl, 3); cx_write(port->reg_gpcnt_ctl, 3);
q->count = 1; q->count = 1;
...@@ -1240,11 +1244,11 @@ static int cx23885_start_dma(struct cx23885_tsport *port, ...@@ -1240,11 +1244,11 @@ static int cx23885_start_dma(struct cx23885_tsport *port,
cx_write(ALT_PIN_OUT_SEL, 0x10100045); cx_write(ALT_PIN_OUT_SEL, 0x10100045);
} }
switch(dev->bridge) { switch (dev->bridge) {
case CX23885_BRIDGE_885: case CX23885_BRIDGE_885:
case CX23885_BRIDGE_887: case CX23885_BRIDGE_887:
/* enable irqs */ /* enable irqs */
dprintk(1, "%s() enabling TS int's and DMA\n", __func__ ); dprintk(1, "%s() enabling TS int's and DMA\n", __func__);
cx_set(port->reg_ts_int_msk, port->ts_int_msk_val); cx_set(port->reg_ts_int_msk, port->ts_int_msk_val);
cx_set(port->reg_dma_ctl, port->dma_ctl_val); cx_set(port->reg_dma_ctl, port->dma_ctl_val);
cx_set(PCI_INT_MSK, dev->pci_irqmask | port->pci_irqmask); cx_set(PCI_INT_MSK, dev->pci_irqmask | port->pci_irqmask);
...@@ -1303,8 +1307,7 @@ int cx23885_restart_queue(struct cx23885_tsport *port, ...@@ -1303,8 +1307,7 @@ int cx23885_restart_queue(struct cx23885_tsport *port,
struct cx23885_buffer *buf; struct cx23885_buffer *buf;
dprintk(5, "%s()\n", __func__); dprintk(5, "%s()\n", __func__);
if (list_empty(&q->active)) if (list_empty(&q->active)) {
{
struct cx23885_buffer *prev; struct cx23885_buffer *prev;
prev = NULL; prev = NULL;
...@@ -1322,7 +1325,7 @@ int cx23885_restart_queue(struct cx23885_tsport *port, ...@@ -1322,7 +1325,7 @@ int cx23885_restart_queue(struct cx23885_tsport *port,
buf->vb.state = VIDEOBUF_ACTIVE; buf->vb.state = VIDEOBUF_ACTIVE;
buf->count = q->count++; buf->count = q->count++;
mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT); mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
dprintk(5, "[%p/%d] restart_queue - first active\n", dprintk(5, "[%p/%d] restart_queue - f/active\n",
buf, buf->vb.i); buf, buf->vb.i);
} else if (prev->vb.width == buf->vb.width && } else if (prev->vb.width == buf->vb.width &&
...@@ -1333,8 +1336,9 @@ int cx23885_restart_queue(struct cx23885_tsport *port, ...@@ -1333,8 +1336,9 @@ int cx23885_restart_queue(struct cx23885_tsport *port,
buf->vb.state = VIDEOBUF_ACTIVE; buf->vb.state = VIDEOBUF_ACTIVE;
buf->count = q->count++; buf->count = q->count++;
prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma); prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
prev->risc.jmp[2] = cpu_to_le32(0); /* 64 bit bits 63-32 */ /* 64 bit bits 63-32 */
dprintk(5,"[%p/%d] restart_queue - move to active\n", prev->risc.jmp[2] = cpu_to_le32(0);
dprintk(5, "[%p/%d] restart_queue - m/active\n",
buf, buf->vb.i); buf, buf->vb.i);
} else { } else {
return 0; return 0;
...@@ -1373,7 +1377,8 @@ int cx23885_buf_prepare(struct videobuf_queue *q, struct cx23885_tsport *port, ...@@ -1373,7 +1377,8 @@ int cx23885_buf_prepare(struct videobuf_queue *q, struct cx23885_tsport *port,
buf->vb.size = size; buf->vb.size = size;
buf->vb.field = field /*V4L2_FIELD_TOP*/; buf->vb.field = field /*V4L2_FIELD_TOP*/;
if (0 != (rc = videobuf_iolock(q, &buf->vb, NULL))) rc = videobuf_iolock(q, &buf->vb, NULL);
if (0 != rc)
goto fail; goto fail;
cx23885_risc_databuffer(dev->pci, &buf->risc, cx23885_risc_databuffer(dev->pci, &buf->risc,
videobuf_to_dma(&buf->vb)->sglist, videobuf_to_dma(&buf->vb)->sglist,
...@@ -1399,7 +1404,7 @@ void cx23885_buf_queue(struct cx23885_tsport *port, struct cx23885_buffer *buf) ...@@ -1399,7 +1404,7 @@ void cx23885_buf_queue(struct cx23885_tsport *port, struct cx23885_buffer *buf)
buf->risc.jmp[2] = cpu_to_le32(0); /* bits 63-32 */ buf->risc.jmp[2] = cpu_to_le32(0); /* bits 63-32 */
if (list_empty(&cx88q->active)) { if (list_empty(&cx88q->active)) {
dprintk( 1, "queue is empty - first active\n" ); dprintk(1, "queue is empty - first active\n");
list_add_tail(&buf->vb.queue, &cx88q->active); list_add_tail(&buf->vb.queue, &cx88q->active);
cx23885_start_dma(port, cx88q, buf); cx23885_start_dma(port, cx88q, buf);
buf->vb.state = VIDEOBUF_ACTIVE; buf->vb.state = VIDEOBUF_ACTIVE;
...@@ -1408,7 +1413,7 @@ void cx23885_buf_queue(struct cx23885_tsport *port, struct cx23885_buffer *buf) ...@@ -1408,7 +1413,7 @@ void cx23885_buf_queue(struct cx23885_tsport *port, struct cx23885_buffer *buf)
dprintk(1, "[%p/%d] %s - first active\n", dprintk(1, "[%p/%d] %s - first active\n",
buf, buf->vb.i, __func__); buf, buf->vb.i, __func__);
} else { } else {
dprintk( 1, "queue is not empty - append to active\n" ); dprintk(1, "queue is not empty - append to active\n");
prev = list_entry(cx88q->active.prev, struct cx23885_buffer, prev = list_entry(cx88q->active.prev, struct cx23885_buffer,
vb.queue); vb.queue);
list_add_tail(&buf->vb.queue, &cx88q->active); list_add_tail(&buf->vb.queue, &cx88q->active);
...@@ -1416,7 +1421,7 @@ void cx23885_buf_queue(struct cx23885_tsport *port, struct cx23885_buffer *buf) ...@@ -1416,7 +1421,7 @@ void cx23885_buf_queue(struct cx23885_tsport *port, struct cx23885_buffer *buf)
buf->count = cx88q->count++; buf->count = cx88q->count++;
prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma); prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
prev->risc.jmp[2] = cpu_to_le32(0); /* 64 bit bits 63-32 */ prev->risc.jmp[2] = cpu_to_le32(0); /* 64 bit bits 63-32 */
dprintk( 1, "[%p/%d] %s - append to active\n", dprintk(1, "[%p/%d] %s - append to active\n",
buf, buf->vb.i, __func__); buf, buf->vb.i, __func__);
} }
} }
...@@ -1442,7 +1447,7 @@ static void do_cancel_buffers(struct cx23885_tsport *port, char *reason, ...@@ -1442,7 +1447,7 @@ static void do_cancel_buffers(struct cx23885_tsport *port, char *reason,
buf, buf->vb.i, reason, (unsigned long)buf->risc.dma); buf, buf->vb.i, reason, (unsigned long)buf->risc.dma);
} }
if (restart) { if (restart) {
dprintk(1, "restarting queue\n" ); dprintk(1, "restarting queue\n");
cx23885_restart_queue(port, q); cx23885_restart_queue(port, q);
} }
spin_unlock_irqrestore(&port->slock, flags); spin_unlock_irqrestore(&port->slock, flags);
...@@ -1464,10 +1469,11 @@ static void cx23885_timeout(unsigned long data) ...@@ -1464,10 +1469,11 @@ static void cx23885_timeout(unsigned long data)
struct cx23885_tsport *port = (struct cx23885_tsport *)data; struct cx23885_tsport *port = (struct cx23885_tsport *)data;
struct cx23885_dev *dev = port->dev; struct cx23885_dev *dev = port->dev;
dprintk(1, "%s()\n",__func__); dprintk(1, "%s()\n", __func__);
if (debug > 5) if (debug > 5)
cx23885_sram_channel_dump(dev, &dev->sram_channels[ port->sram_chno ]); cx23885_sram_channel_dump(dev,
&dev->sram_channels[port->sram_chno]);
cx23885_stop_dma(port); cx23885_stop_dma(port);
do_cancel_buffers(port, "timeout", 1); do_cancel_buffers(port, "timeout", 1);
...@@ -1543,16 +1549,23 @@ static int cx23885_irq_ts(struct cx23885_tsport *port, u32 status) ...@@ -1543,16 +1549,23 @@ static int cx23885_irq_ts(struct cx23885_tsport *port, u32 status)
if ((status & VID_BC_MSK_OPC_ERR) || if ((status & VID_BC_MSK_OPC_ERR) ||
(status & VID_BC_MSK_BAD_PKT) || (status & VID_BC_MSK_BAD_PKT) ||
(status & VID_BC_MSK_SYNC) || (status & VID_BC_MSK_SYNC) ||
(status & VID_BC_MSK_OF)) (status & VID_BC_MSK_OF)) {
{
if (status & VID_BC_MSK_OPC_ERR) if (status & VID_BC_MSK_OPC_ERR)
dprintk(7, " (VID_BC_MSK_OPC_ERR 0x%08x)\n", VID_BC_MSK_OPC_ERR); dprintk(7, " (VID_BC_MSK_OPC_ERR 0x%08x)\n",
VID_BC_MSK_OPC_ERR);
if (status & VID_BC_MSK_BAD_PKT) if (status & VID_BC_MSK_BAD_PKT)
dprintk(7, " (VID_BC_MSK_BAD_PKT 0x%08x)\n", VID_BC_MSK_BAD_PKT); dprintk(7, " (VID_BC_MSK_BAD_PKT 0x%08x)\n",
VID_BC_MSK_BAD_PKT);
if (status & VID_BC_MSK_SYNC) if (status & VID_BC_MSK_SYNC)
dprintk(7, " (VID_BC_MSK_SYNC 0x%08x)\n", VID_BC_MSK_SYNC); dprintk(7, " (VID_BC_MSK_SYNC 0x%08x)\n",
VID_BC_MSK_SYNC);
if (status & VID_BC_MSK_OF) if (status & VID_BC_MSK_OF)
dprintk(7, " (VID_BC_MSK_OF 0x%08x)\n", VID_BC_MSK_OF); dprintk(7, " (VID_BC_MSK_OF 0x%08x)\n",
VID_BC_MSK_OF);
printk(KERN_ERR "%s: mpeg risc op code error\n", dev->name); printk(KERN_ERR "%s: mpeg risc op code error\n", dev->name);
...@@ -1606,7 +1619,7 @@ static irqreturn_t cx23885_irq(int irq, void *dev_id) ...@@ -1606,7 +1619,7 @@ static irqreturn_t cx23885_irq(int irq, void *dev_id)
ts2_status = cx_read(VID_C_INT_STAT); ts2_status = cx_read(VID_C_INT_STAT);
ts2_mask = cx_read(VID_C_INT_MSK); ts2_mask = cx_read(VID_C_INT_MSK);
if ( (pci_status == 0) && (ts2_status == 0) && (ts1_status == 0) ) if ((pci_status == 0) && (ts2_status == 0) && (ts1_status == 0))
goto out; goto out;
vida_count = cx_read(VID_A_GPCNT); vida_count = cx_read(VID_A_GPCNT);
...@@ -1621,38 +1634,56 @@ static irqreturn_t cx23885_irq(int irq, void *dev_id) ...@@ -1621,38 +1634,56 @@ static irqreturn_t cx23885_irq(int irq, void *dev_id)
dprintk(7, "ts2_status: 0x%08x ts2_mask: 0x%08x count: 0x%x\n", dprintk(7, "ts2_status: 0x%08x ts2_mask: 0x%08x count: 0x%x\n",
ts2_status, ts2_mask, ts2_count); ts2_status, ts2_mask, ts2_count);
if ( (pci_status & PCI_MSK_RISC_RD) || if ((pci_status & PCI_MSK_RISC_RD) ||
(pci_status & PCI_MSK_RISC_WR) || (pci_status & PCI_MSK_RISC_WR) ||
(pci_status & PCI_MSK_AL_RD) || (pci_status & PCI_MSK_AL_RD) ||
(pci_status & PCI_MSK_AL_WR) || (pci_status & PCI_MSK_AL_WR) ||
(pci_status & PCI_MSK_APB_DMA) || (pci_status & PCI_MSK_APB_DMA) ||
(pci_status & PCI_MSK_VID_C) || (pci_status & PCI_MSK_VID_C) ||
(pci_status & PCI_MSK_VID_B) || (pci_status & PCI_MSK_VID_B) ||
(pci_status & PCI_MSK_VID_A) || (pci_status & PCI_MSK_VID_A) ||
(pci_status & PCI_MSK_AUD_INT) || (pci_status & PCI_MSK_AUD_INT) ||
(pci_status & PCI_MSK_AUD_EXT) ) (pci_status & PCI_MSK_AUD_EXT)) {
{
if (pci_status & PCI_MSK_RISC_RD) if (pci_status & PCI_MSK_RISC_RD)
dprintk(7, " (PCI_MSK_RISC_RD 0x%08x)\n", PCI_MSK_RISC_RD); dprintk(7, " (PCI_MSK_RISC_RD 0x%08x)\n",
PCI_MSK_RISC_RD);
if (pci_status & PCI_MSK_RISC_WR) if (pci_status & PCI_MSK_RISC_WR)
dprintk(7, " (PCI_MSK_RISC_WR 0x%08x)\n", PCI_MSK_RISC_WR); dprintk(7, " (PCI_MSK_RISC_WR 0x%08x)\n",
PCI_MSK_RISC_WR);
if (pci_status & PCI_MSK_AL_RD) if (pci_status & PCI_MSK_AL_RD)
dprintk(7, " (PCI_MSK_AL_RD 0x%08x)\n", PCI_MSK_AL_RD); dprintk(7, " (PCI_MSK_AL_RD 0x%08x)\n",
PCI_MSK_AL_RD);
if (pci_status & PCI_MSK_AL_WR) if (pci_status & PCI_MSK_AL_WR)
dprintk(7, " (PCI_MSK_AL_WR 0x%08x)\n", PCI_MSK_AL_WR); dprintk(7, " (PCI_MSK_AL_WR 0x%08x)\n",
PCI_MSK_AL_WR);
if (pci_status & PCI_MSK_APB_DMA) if (pci_status & PCI_MSK_APB_DMA)
dprintk(7, " (PCI_MSK_APB_DMA 0x%08x)\n", PCI_MSK_APB_DMA); dprintk(7, " (PCI_MSK_APB_DMA 0x%08x)\n",
PCI_MSK_APB_DMA);
if (pci_status & PCI_MSK_VID_C) if (pci_status & PCI_MSK_VID_C)
dprintk(7, " (PCI_MSK_VID_C 0x%08x)\n", PCI_MSK_VID_C); dprintk(7, " (PCI_MSK_VID_C 0x%08x)\n",
PCI_MSK_VID_C);
if (pci_status & PCI_MSK_VID_B) if (pci_status & PCI_MSK_VID_B)
dprintk(7, " (PCI_MSK_VID_B 0x%08x)\n", PCI_MSK_VID_B); dprintk(7, " (PCI_MSK_VID_B 0x%08x)\n",
PCI_MSK_VID_B);
if (pci_status & PCI_MSK_VID_A) if (pci_status & PCI_MSK_VID_A)
dprintk(7, " (PCI_MSK_VID_A 0x%08x)\n", PCI_MSK_VID_A); dprintk(7, " (PCI_MSK_VID_A 0x%08x)\n",
PCI_MSK_VID_A);
if (pci_status & PCI_MSK_AUD_INT) if (pci_status & PCI_MSK_AUD_INT)
dprintk(7, " (PCI_MSK_AUD_INT 0x%08x)\n", PCI_MSK_AUD_INT); dprintk(7, " (PCI_MSK_AUD_INT 0x%08x)\n",
PCI_MSK_AUD_INT);
if (pci_status & PCI_MSK_AUD_EXT) if (pci_status & PCI_MSK_AUD_EXT)
dprintk(7, " (PCI_MSK_AUD_EXT 0x%08x)\n", PCI_MSK_AUD_EXT); dprintk(7, " (PCI_MSK_AUD_EXT 0x%08x)\n",
PCI_MSK_AUD_EXT);
} }
...@@ -1764,13 +1795,13 @@ static struct pci_device_id cx23885_pci_tbl[] = { ...@@ -1764,13 +1795,13 @@ static struct pci_device_id cx23885_pci_tbl[] = {
.device = 0x8852, .device = 0x8852,
.subvendor = PCI_ANY_ID, .subvendor = PCI_ANY_ID,
.subdevice = PCI_ANY_ID, .subdevice = PCI_ANY_ID,
},{ }, {
/* CX23887 Rev 2 */ /* CX23887 Rev 2 */
.vendor = 0x14f1, .vendor = 0x14f1,
.device = 0x8880, .device = 0x8880,
.subvendor = PCI_ANY_ID, .subvendor = PCI_ANY_ID,
.subdevice = PCI_ANY_ID, .subdevice = PCI_ANY_ID,
},{ }, {
/* --- end of list --- */ /* --- end of list --- */
} }
}; };
...@@ -1808,9 +1839,3 @@ module_init(cx23885_init); ...@@ -1808,9 +1839,3 @@ module_init(cx23885_init);
module_exit(cx23885_fini); module_exit(cx23885_fini);
/* ----------------------------------------------------------- */ /* ----------------------------------------------------------- */
/*
* Local variables:
* c-basic-offset: 8
* End:
* kate: eol "unix"; indent-width 3; remove-trailing-space on; replace-trailing-space-save on; tab-width 8; replace-tabs off; space-indent off; mixed-indent off
*/
...@@ -78,19 +78,19 @@ static int dvb_buf_prepare(struct videobuf_queue *q, ...@@ -78,19 +78,19 @@ static int dvb_buf_prepare(struct videobuf_queue *q,
struct videobuf_buffer *vb, enum v4l2_field field) struct videobuf_buffer *vb, enum v4l2_field field)
{ {
struct cx23885_tsport *port = q->priv_data; struct cx23885_tsport *port = q->priv_data;
return cx23885_buf_prepare(q, port, (struct cx23885_buffer*)vb, field); return cx23885_buf_prepare(q, port, (struct cx23885_buffer *)vb, field);
} }
static void dvb_buf_queue(struct videobuf_queue *q, struct videobuf_buffer *vb) static void dvb_buf_queue(struct videobuf_queue *q, struct videobuf_buffer *vb)
{ {
struct cx23885_tsport *port = q->priv_data; struct cx23885_tsport *port = q->priv_data;
cx23885_buf_queue(port, (struct cx23885_buffer*)vb); cx23885_buf_queue(port, (struct cx23885_buffer *)vb);
} }
static void dvb_buf_release(struct videobuf_queue *q, static void dvb_buf_release(struct videobuf_queue *q,
struct videobuf_buffer *vb) struct videobuf_buffer *vb)
{ {
cx23885_free_buffer(q, (struct cx23885_buffer*)vb); cx23885_free_buffer(q, (struct cx23885_buffer *)vb);
} }
static struct videobuf_queue_ops dvb_qops = { static struct videobuf_queue_ops dvb_qops = {
...@@ -450,7 +450,8 @@ static int dvb_register(struct cx23885_tsport *port) ...@@ -450,7 +450,8 @@ static int dvb_register(struct cx23885_tsport *port)
.fname = XC3028L_DEFAULT_FIRMWARE, .fname = XC3028L_DEFAULT_FIRMWARE,
.max_len = 64, .max_len = 64,
.demod = 5000, .demod = 5000,
/* This is true for all demods with v36 firmware? */ /* This is true for all demods with
v36 firmware? */
.type = XC2028_D2633, .type = XC2028_D2633,
}; };
...@@ -525,12 +526,14 @@ static int dvb_register(struct cx23885_tsport *port) ...@@ -525,12 +526,14 @@ static int dvb_register(struct cx23885_tsport *port)
} }
break; break;
default: default:
printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n", printk(KERN_INFO "%s: The frontend of your DVB/ATSC card "
" isn't supported yet\n",
dev->name); dev->name);
break; break;
} }
if (NULL == fe0->dvb.frontend) { if (NULL == fe0->dvb.frontend) {
printk("%s: frontend initialization failed\n", dev->name); printk(KERN_ERR "%s: frontend initialization failed\n",
dev->name);
return -1; return -1;
} }
/* define general-purpose callback pointer */ /* define general-purpose callback pointer */
...@@ -568,7 +571,8 @@ int cx23885_dvb_register(struct cx23885_tsport *port) ...@@ -568,7 +571,8 @@ int cx23885_dvb_register(struct cx23885_tsport *port)
port->num_frontends); port->num_frontends);
for (i = 1; i <= port->num_frontends; i++) { for (i = 1; i <= port->num_frontends; i++) {
if (videobuf_dvb_alloc_frontend(dev, &port->frontends, i) == NULL) { if (videobuf_dvb_alloc_frontend(dev,
&port->frontends, i) == NULL) {
printk(KERN_ERR "%s() failed to alloc\n", __func__); printk(KERN_ERR "%s() failed to alloc\n", __func__);
return -ENOMEM; return -ENOMEM;
} }
...@@ -578,7 +582,7 @@ int cx23885_dvb_register(struct cx23885_tsport *port) ...@@ -578,7 +582,7 @@ int cx23885_dvb_register(struct cx23885_tsport *port)
err = -EINVAL; err = -EINVAL;
dprintk(1, "%s\n", __func__); dprintk(1, "%s\n", __func__);
dprintk(1, " ->being probed by Card=%d Name=%s, PCI %02x:%02x\n", dprintk(1, " ->probed by Card=%d Name=%s, PCI %02x:%02x\n",
dev->board, dev->board,
dev->name, dev->name,
dev->pci_bus, dev->pci_bus,
...@@ -588,14 +592,16 @@ int cx23885_dvb_register(struct cx23885_tsport *port) ...@@ -588,14 +592,16 @@ int cx23885_dvb_register(struct cx23885_tsport *port)
/* dvb stuff */ /* dvb stuff */
/* We have to init the queue for each frontend on a port. */ /* We have to init the queue for each frontend on a port. */
printk("%s: cx23885 based dvb card\n", dev->name); printk(KERN_INFO "%s: cx23885 based dvb card\n", dev->name);
videobuf_queue_sg_init(&fe0->dvb.dvbq, &dvb_qops, &dev->pci->dev, &port->slock, videobuf_queue_sg_init(&fe0->dvb.dvbq, &dvb_qops,
&dev->pci->dev, &port->slock,
V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_FIELD_TOP, V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_FIELD_TOP,
sizeof(struct cx23885_buffer), port); sizeof(struct cx23885_buffer), port);
} }
err = dvb_register(port); err = dvb_register(port);
if (err != 0) if (err != 0)
printk("%s() dvb_register failed err = %d\n", __func__, err); printk(KERN_ERR "%s() dvb_register failed err = %d\n",
__func__, err);
return err; return err;
} }
...@@ -612,15 +618,9 @@ int cx23885_dvb_unregister(struct cx23885_tsport *port) ...@@ -612,15 +618,9 @@ int cx23885_dvb_unregister(struct cx23885_tsport *port)
* implement MFE support. * implement MFE support.
*/ */
fe0 = videobuf_dvb_get_frontend(&port->frontends, 1); fe0 = videobuf_dvb_get_frontend(&port->frontends, 1);
if(fe0->dvb.frontend) if (fe0->dvb.frontend)
videobuf_dvb_unregister_bus(&port->frontends); videobuf_dvb_unregister_bus(&port->frontends);
return 0; return 0;
} }
/*
* Local variables:
* c-basic-offset: 8
* End:
* kate: eol "unix"; indent-width 3; remove-trailing-space on; replace-trailing-space-save on; tab-width 8; replace-tabs off; space-indent off; mixed-indent off
*/
...@@ -131,7 +131,7 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap, ...@@ -131,7 +131,7 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap,
printk(" >\n"); printk(" >\n");
} }
for (cnt = 1; cnt < msg->len; cnt++ ) { for (cnt = 1; cnt < msg->len; cnt++) {
/* following bytes */ /* following bytes */
wdata = msg->buf[cnt]; wdata = msg->buf[cnt];
ctrl = bus->i2c_period | (1 << 12) | (1 << 2); ctrl = bus->i2c_period | (1 << 12) | (1 << 2);
...@@ -151,9 +151,9 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap, ...@@ -151,9 +151,9 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap,
if (retval == 0) if (retval == 0)
goto eio; goto eio;
if (i2c_debug) { if (i2c_debug) {
printk(" %02x", msg->buf[cnt]); dprintk(1, " %02x", msg->buf[cnt]);
if (!(ctrl & I2C_NOSTOP)) if (!(ctrl & I2C_NOSTOP))
printk(" >\n"); dprintk(1, " >\n");
} }
} }
return msg->len; return msg->len;
...@@ -162,7 +162,7 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap, ...@@ -162,7 +162,7 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap,
retval = -EIO; retval = -EIO;
err: err:
if (i2c_debug) if (i2c_debug)
printk(" ERR: %d\n", retval); printk(KERN_ERR " ERR: %d\n", retval);
return retval; return retval;
} }
...@@ -194,12 +194,12 @@ static int i2c_readbytes(struct i2c_adapter *i2c_adap, ...@@ -194,12 +194,12 @@ static int i2c_readbytes(struct i2c_adapter *i2c_adap,
if (i2c_debug) { if (i2c_debug) {
if (joined) if (joined)
printk(" R"); dprintk(1, " R");
else else
printk(" <R %02x", (msg->addr << 1) + 1); dprintk(1, " <R %02x", (msg->addr << 1) + 1);
} }
for(cnt = 0; cnt < msg->len; cnt++) { for (cnt = 0; cnt < msg->len; cnt++) {
ctrl = bus->i2c_period | (1 << 12) | (1 << 2) | 1; ctrl = bus->i2c_period | (1 << 12) | (1 << 2) | 1;
...@@ -216,9 +216,9 @@ static int i2c_readbytes(struct i2c_adapter *i2c_adap, ...@@ -216,9 +216,9 @@ static int i2c_readbytes(struct i2c_adapter *i2c_adap,
goto eio; goto eio;
msg->buf[cnt] = cx_read(bus->reg_rdata) & 0xff; msg->buf[cnt] = cx_read(bus->reg_rdata) & 0xff;
if (i2c_debug) { if (i2c_debug) {
printk(" %02x", msg->buf[cnt]); dprintk(1, " %02x", msg->buf[cnt]);
if (!(ctrl & I2C_NOSTOP)) if (!(ctrl & I2C_NOSTOP))
printk(" >\n"); dprintk(1, " >\n");
} }
} }
return msg->len; return msg->len;
...@@ -227,7 +227,7 @@ static int i2c_readbytes(struct i2c_adapter *i2c_adap, ...@@ -227,7 +227,7 @@ static int i2c_readbytes(struct i2c_adapter *i2c_adap,
retval = -EIO; retval = -EIO;
err: err:
if (i2c_debug) if (i2c_debug)
printk(" ERR: %d\n", retval); printk(KERN_ERR " ERR: %d\n", retval);
return retval; return retval;
} }
...@@ -353,17 +353,17 @@ static struct i2c_client cx23885_i2c_client_template = { ...@@ -353,17 +353,17 @@ static struct i2c_client cx23885_i2c_client_template = {
}; };
static char *i2c_devs[128] = { static char *i2c_devs[128] = {
[0x10 >> 1] = "tda10048", [0x10 >> 1] = "tda10048",
[0x12 >> 1] = "dib7000pc", [0x12 >> 1] = "dib7000pc",
[ 0x1c >> 1 ] = "lgdt3303", [0x1c >> 1] = "lgdt3303",
[ 0x86 >> 1 ] = "tda9887", [0x86 >> 1] = "tda9887",
[ 0x32 >> 1 ] = "cx24227", [0x32 >> 1] = "cx24227",
[ 0x88 >> 1 ] = "cx25837", [0x88 >> 1] = "cx25837",
[ 0x84 >> 1 ] = "tda8295", [0x84 >> 1] = "tda8295",
[ 0xa0 >> 1 ] = "eeprom", [0xa0 >> 1] = "eeprom",
[ 0xc0 >> 1 ] = "tuner/mt2131/tda8275", [0xc0 >> 1] = "tuner/mt2131/tda8275",
[0xc2 >> 1] = "tuner/mt2131/tda8275/xc5000/xc3028", [0xc2 >> 1] = "tuner/mt2131/tda8275/xc5000/xc3028",
[0xc8 >> 1] = "tuner/xc3028L", [0xc8 >> 1] = "tuner/xc3028L",
}; };
static void do_i2c_scan(char *name, struct i2c_client *c) static void do_i2c_scan(char *name, struct i2c_client *c)
...@@ -376,7 +376,7 @@ static void do_i2c_scan(char *name, struct i2c_client *c) ...@@ -376,7 +376,7 @@ static void do_i2c_scan(char *name, struct i2c_client *c)
rc = i2c_master_recv(c, &buf, 0); rc = i2c_master_recv(c, &buf, 0);
if (rc < 0) if (rc < 0)
continue; 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] : "???"); name, i << 1, i2c_devs[i] ? i2c_devs[i] : "???");
} }
} }
...@@ -408,11 +408,12 @@ int cx23885_i2c_register(struct cx23885_i2c *bus) ...@@ -408,11 +408,12 @@ int cx23885_i2c_register(struct cx23885_i2c *bus)
bus->i2c_client.adapter = &bus->i2c_adap; bus->i2c_client.adapter = &bus->i2c_adap;
if (0 == bus->i2c_rc) { if (0 == bus->i2c_rc) {
printk("%s: i2c bus %d registered\n", dev->name, bus->nr); dprintk(1, "%s: i2c bus %d registered\n", dev->name, bus->nr);
if (i2c_scan) if (i2c_scan)
do_i2c_scan(dev->name, &bus->i2c_client); do_i2c_scan(dev->name, &bus->i2c_client);
} else } else
printk("%s: i2c bus %d register FAILED\n", dev->name, bus->nr); printk(KERN_WARNING "%s: i2c bus %d register FAILED\n",
dev->name, bus->nr);
return bus->i2c_rc; return bus->i2c_rc;
} }
......
...@@ -285,11 +285,10 @@ static void cx23885_video_wakeup(struct cx23885_dev *dev, ...@@ -285,11 +285,10 @@ static void cx23885_video_wakeup(struct cx23885_dev *dev,
list_del(&buf->vb.queue); list_del(&buf->vb.queue);
wake_up(&buf->vb.done); wake_up(&buf->vb.done);
} }
if (list_empty(&q->active)) { if (list_empty(&q->active))
del_timer(&q->timeout); del_timer(&q->timeout);
} else { else
mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT); mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
}
if (bc != 1) if (bc != 1)
printk(KERN_ERR "%s: %d buffers handled (should be 1)\n", printk(KERN_ERR "%s: %d buffers handled (should be 1)\n",
__func__, bc); __func__, bc);
...@@ -379,12 +378,12 @@ static int res_get(struct cx23885_dev *dev, struct cx23885_fh *fh, ...@@ -379,12 +378,12 @@ static int res_get(struct cx23885_dev *dev, struct cx23885_fh *fh,
static int res_check(struct cx23885_fh *fh, unsigned int bit) static int res_check(struct cx23885_fh *fh, unsigned int bit)
{ {
return (fh->resources & bit); return fh->resources & bit;
} }
static int res_locked(struct cx23885_dev *dev, unsigned int bit) static int res_locked(struct cx23885_dev *dev, unsigned int bit)
{ {
return (dev->resources & bit); return dev->resources & bit;
} }
static void res_free(struct cx23885_dev *dev, struct cx23885_fh *fh, static void res_free(struct cx23885_dev *dev, struct cx23885_fh *fh,
...@@ -887,14 +886,16 @@ static int video_mmap(struct file *file, struct vm_area_struct *vma) ...@@ -887,14 +886,16 @@ static int video_mmap(struct file *file, struct vm_area_struct *vma)
/* ------------------------------------------------------------------ */ /* ------------------------------------------------------------------ */
/* VIDEO CTRL IOCTLS */ /* VIDEO CTRL IOCTLS */
static int cx23885_get_control(struct cx23885_dev *dev, struct v4l2_control *ctl) static int cx23885_get_control(struct cx23885_dev *dev,
struct v4l2_control *ctl)
{ {
dprintk(1, "%s() calling cx25840(VIDIOC_G_CTRL)\n", __func__); dprintk(1, "%s() calling cx25840(VIDIOC_G_CTRL)\n", __func__);
cx23885_call_i2c_clients(&dev->i2c_bus[2], VIDIOC_G_CTRL, ctl); cx23885_call_i2c_clients(&dev->i2c_bus[2], VIDIOC_G_CTRL, ctl);
return 0; return 0;
} }
static int cx23885_set_control(struct cx23885_dev *dev, struct v4l2_control *ctl) static int cx23885_set_control(struct cx23885_dev *dev,
struct v4l2_control *ctl)
{ {
dprintk(1, "%s() calling cx25840(VIDIOC_S_CTRL)" dprintk(1, "%s() calling cx25840(VIDIOC_S_CTRL)"
" (disabled - no action)\n", __func__); " (disabled - no action)\n", __func__);
...@@ -1073,29 +1074,29 @@ static int vidioc_reqbufs(struct file *file, void *priv, ...@@ -1073,29 +1074,29 @@ static int vidioc_reqbufs(struct file *file, void *priv,
struct v4l2_requestbuffers *p) struct v4l2_requestbuffers *p)
{ {
struct cx23885_fh *fh = priv; struct cx23885_fh *fh = priv;
return (videobuf_reqbufs(get_queue(fh), p)); return videobuf_reqbufs(get_queue(fh), p);
} }
static int vidioc_querybuf(struct file *file, void *priv, static int vidioc_querybuf(struct file *file, void *priv,
struct v4l2_buffer *p) struct v4l2_buffer *p)
{ {
struct cx23885_fh *fh = priv; struct cx23885_fh *fh = priv;
return (videobuf_querybuf(get_queue(fh), p)); return videobuf_querybuf(get_queue(fh), p);
} }
static int vidioc_qbuf(struct file *file, void *priv, static int vidioc_qbuf(struct file *file, void *priv,
struct v4l2_buffer *p) struct v4l2_buffer *p)
{ {
struct cx23885_fh *fh = priv; struct cx23885_fh *fh = priv;
return (videobuf_qbuf(get_queue(fh), p)); return videobuf_qbuf(get_queue(fh), p);
} }
static int vidioc_dqbuf(struct file *file, void *priv, static int vidioc_dqbuf(struct file *file, void *priv,
struct v4l2_buffer *p) struct v4l2_buffer *p)
{ {
struct cx23885_fh *fh = priv; struct cx23885_fh *fh = priv;
return (videobuf_dqbuf(get_queue(fh), p, return videobuf_dqbuf(get_queue(fh), p,
file->f_flags & O_NONBLOCK)); file->f_flags & O_NONBLOCK);
} }
static int vidioc_streamon(struct file *file, void *priv, static int vidioc_streamon(struct file *file, void *priv,
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
#include <linux/version.h> #include <linux/version.h>
#include <linux/mutex.h> #include <linux/mutex.h>
#define CX23885_VERSION_CODE KERNEL_VERSION(0,0,1) #define CX23885_VERSION_CODE KERNEL_VERSION(0, 0, 1)
#define UNSET (-1U) #define UNSET (-1U)
...@@ -370,14 +370,14 @@ struct sram_channel { ...@@ -370,14 +370,14 @@ struct sram_channel {
/* ----------------------------------------------------------- */ /* ----------------------------------------------------------- */
#define cx_read(reg) readl(dev->lmmio + ((reg)>>2)) #define cx_read(reg) readl(dev->lmmio + ((reg)>>2))
#define cx_write(reg,value) writel((value), dev->lmmio + ((reg)>>2)) #define cx_write(reg, value) writel((value), dev->lmmio + ((reg)>>2))
#define cx_andor(reg,mask,value) \ #define cx_andor(reg, mask, value) \
writel((readl(dev->lmmio+((reg)>>2)) & ~(mask)) |\ writel((readl(dev->lmmio+((reg)>>2)) & ~(mask)) |\
((value) & (mask)), dev->lmmio+((reg)>>2)) ((value) & (mask)), dev->lmmio+((reg)>>2))
#define cx_set(reg,bit) cx_andor((reg),(bit),(bit)) #define cx_set(reg, bit) cx_andor((reg), (bit), (bit))
#define cx_clear(reg,bit) cx_andor((reg),(bit),0) #define cx_clear(reg, bit) cx_andor((reg), (bit), 0)
/* ----------------------------------------------------------- */ /* ----------------------------------------------------------- */
/* cx23885-core.c */ /* cx23885-core.c */
...@@ -414,7 +414,8 @@ extern const unsigned int cx23885_bcount; ...@@ -414,7 +414,8 @@ extern const unsigned int cx23885_bcount;
extern struct cx23885_subid cx23885_subids[]; extern struct cx23885_subid cx23885_subids[];
extern const unsigned int cx23885_idcount; extern const unsigned int cx23885_idcount;
extern int cx23885_tuner_callback(void *priv, int component, int command, int arg); extern int cx23885_tuner_callback(void *priv, int component,
int command, int arg);
extern void cx23885_card_list(struct cx23885_dev *dev); extern void cx23885_card_list(struct cx23885_dev *dev);
extern int cx23885_ir_init(struct cx23885_dev *dev); extern int cx23885_ir_init(struct cx23885_dev *dev);
extern void cx23885_gpio_setup(struct cx23885_dev *dev); extern void cx23885_gpio_setup(struct cx23885_dev *dev);
...@@ -482,11 +483,3 @@ static inline unsigned int norm_swidth(v4l2_std_id norm) ...@@ -482,11 +483,3 @@ static inline unsigned int norm_swidth(v4l2_std_id norm)
{ {
return (norm & (V4L2_STD_MN & ~V4L2_STD_PAL_Nc)) ? 754 : 922; return (norm & (V4L2_STD_MN & ~V4L2_STD_PAL_Nc)) ? 754 : 922;
} }
/*
* Local variables:
* c-basic-offset: 8
* End:
* kate: eol "unix"; indent-width 3; remove-trailing-space on; replace-trailing-space-save on; tab-width 8; replace-tabs off; space-indent off; mixed-indent off
*/
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