diff options
Diffstat (limited to 'drivers/staging/cx25821/cx25821-core.c')
-rw-r--r-- | drivers/staging/cx25821/cx25821-core.c | 191 |
1 files changed, 92 insertions, 99 deletions
diff --git a/drivers/staging/cx25821/cx25821-core.c b/drivers/staging/cx25821/cx25821-core.c index 300da319b06..a216b620b71 100644 --- a/drivers/staging/cx25821/cx25821-core.c +++ b/drivers/staging/cx25821/cx25821-core.c @@ -21,6 +21,8 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + #include <linux/i2c.h> #include <linux/slab.h> #include "cx25821.h" @@ -332,7 +334,7 @@ struct cx25821_dmaqueue mpegq; static int cx25821_risc_decode(u32 risc) { - static char *instr[16] = { + static const char * const instr[16] = { [RISC_SYNC >> 28] = "sync", [RISC_WRITE >> 28] = "write", [RISC_WRITEC >> 28] = "writec", @@ -344,7 +346,7 @@ static int cx25821_risc_decode(u32 risc) [RISC_WRITECM >> 28] = "writecm", [RISC_WRITECR >> 28] = "writecr", }; - static int incr[16] = { + static const int incr[16] = { [RISC_WRITE >> 28] = 3, [RISC_JUMP >> 28] = 3, [RISC_SKIP >> 28] = 1, @@ -353,7 +355,7 @@ static int cx25821_risc_decode(u32 risc) [RISC_WRITECM >> 28] = 3, [RISC_WRITECR >> 28] = 4, }; - static char *bits[] = { + static const char * const bits[] = { "12", "13", "14", "resync", "cnt0", "cnt1", "18", "19", "20", "21", "22", "23", @@ -361,13 +363,13 @@ static int cx25821_risc_decode(u32 risc) }; int i; - printk("0x%08x [ %s", risc, - instr[risc >> 28] ? instr[risc >> 28] : "INVALID"); + pr_cont("0x%08x [ %s", + risc, instr[risc >> 28] ? instr[risc >> 28] : "INVALID"); for (i = ARRAY_SIZE(bits) - 1; i >= 0; i--) { if (risc & (1 << (i + 12))) - printk(" %s", bits[i]); + pr_cont(" %s", bits[i]); } - printk(" count=%d ]\n", risc & 0xfff); + pr_cont(" count=%d ]\n", risc & 0xfff); return incr[risc >> 28] ? incr[risc >> 28] : 1; } @@ -620,16 +622,15 @@ void cx25821_sram_channel_dump(struct cx25821_dev *dev, struct sram_channel *ch) u32 risc; unsigned int i, j, n; - printk(KERN_WARNING "%s: %s - dma channel status dump\n", dev->name, - ch->name); + pr_warn("%s: %s - dma channel status dump\n", dev->name, ch->name); for (i = 0; i < ARRAY_SIZE(name); i++) - printk(KERN_WARNING "cmds + 0x%2x: %-15s: 0x%08x\n", i * 4, - name[i], cx_read(ch->cmds_start + 4 * i)); + pr_warn("cmds + 0x%2x: %-15s: 0x%08x\n", + i * 4, name[i], cx_read(ch->cmds_start + 4 * i)); j = i * 4; for (i = 0; i < 4;) { risc = cx_read(ch->cmds_start + 4 * (i + 14)); - printk(KERN_WARNING "cmds + 0x%2x: risc%d: ", j + i * 4, i); + pr_warn("cmds + 0x%2x: risc%d: ", j + i * 4, i); i += cx25821_risc_decode(risc); } @@ -637,36 +638,35 @@ void cx25821_sram_channel_dump(struct cx25821_dev *dev, struct sram_channel *ch) risc = cx_read(ch->ctrl_start + 4 * i); /* No consideration for bits 63-32 */ - printk(KERN_WARNING "ctrl + 0x%2x (0x%08x): iq %x: ", i * 4, - ch->ctrl_start + 4 * i, i); + pr_warn("ctrl + 0x%2x (0x%08x): iq %x: ", + i * 4, ch->ctrl_start + 4 * i, i); n = cx25821_risc_decode(risc); for (j = 1; j < n; j++) { risc = cx_read(ch->ctrl_start + 4 * (i + j)); - printk(KERN_WARNING - "ctrl + 0x%2x : iq %x: 0x%08x [ arg #%d ]\n", - 4 * (i + j), i + j, risc, j); + pr_warn("ctrl + 0x%2x : iq %x: 0x%08x [ arg #%d ]\n", + 4 * (i + j), i + j, risc, j); } } - printk(KERN_WARNING " : fifo: 0x%08x -> 0x%x\n", - ch->fifo_start, ch->fifo_start + ch->fifo_size); - printk(KERN_WARNING " : ctrl: 0x%08x -> 0x%x\n", - ch->ctrl_start, ch->ctrl_start + 6 * 16); - printk(KERN_WARNING " : ptr1_reg: 0x%08x\n", - cx_read(ch->ptr1_reg)); - printk(KERN_WARNING " : ptr2_reg: 0x%08x\n", - cx_read(ch->ptr2_reg)); - printk(KERN_WARNING " : cnt1_reg: 0x%08x\n", - cx_read(ch->cnt1_reg)); - printk(KERN_WARNING " : cnt2_reg: 0x%08x\n", - cx_read(ch->cnt2_reg)); + pr_warn(" : fifo: 0x%08x -> 0x%x\n", + ch->fifo_start, ch->fifo_start + ch->fifo_size); + pr_warn(" : ctrl: 0x%08x -> 0x%x\n", + ch->ctrl_start, ch->ctrl_start + 6 * 16); + pr_warn(" : ptr1_reg: 0x%08x\n", + cx_read(ch->ptr1_reg)); + pr_warn(" : ptr2_reg: 0x%08x\n", + cx_read(ch->ptr2_reg)); + pr_warn(" : cnt1_reg: 0x%08x\n", + cx_read(ch->cnt1_reg)); + pr_warn(" : cnt2_reg: 0x%08x\n", + cx_read(ch->cnt2_reg)); } EXPORT_SYMBOL(cx25821_sram_channel_dump); void cx25821_sram_channel_dump_audio(struct cx25821_dev *dev, struct sram_channel *ch) { - static char *name[] = { + static const char * const name[] = { "init risc lo", "init risc hi", "cdt base", @@ -686,18 +686,18 @@ void cx25821_sram_channel_dump_audio(struct cx25821_dev *dev, u32 risc, value, tmp; unsigned int i, j, n; - printk(KERN_INFO "\n%s: %s - dma Audio channel status dump\n", - dev->name, ch->name); + pr_info("\n%s: %s - dma Audio channel status dump\n", + dev->name, ch->name); for (i = 0; i < ARRAY_SIZE(name); i++) - printk(KERN_INFO "%s: cmds + 0x%2x: %-15s: 0x%08x\n", - dev->name, i * 4, name[i], - cx_read(ch->cmds_start + 4 * i)); + pr_info("%s: cmds + 0x%2x: %-15s: 0x%08x\n", + dev->name, i * 4, name[i], + cx_read(ch->cmds_start + 4 * i)); j = i * 4; for (i = 0; i < 4;) { risc = cx_read(ch->cmds_start + 4 * (i + 14)); - printk(KERN_WARNING "cmds + 0x%2x: risc%d: ", j + i * 4, i); + pr_warn("cmds + 0x%2x: risc%d: ", j + i * 4, i); i += cx25821_risc_decode(risc); } @@ -705,44 +705,43 @@ void cx25821_sram_channel_dump_audio(struct cx25821_dev *dev, risc = cx_read(ch->ctrl_start + 4 * i); /* No consideration for bits 63-32 */ - printk(KERN_WARNING "ctrl + 0x%2x (0x%08x): iq %x: ", i * 4, - ch->ctrl_start + 4 * i, i); + pr_warn("ctrl + 0x%2x (0x%08x): iq %x: ", + i * 4, ch->ctrl_start + 4 * i, i); n = cx25821_risc_decode(risc); for (j = 1; j < n; j++) { risc = cx_read(ch->ctrl_start + 4 * (i + j)); - printk(KERN_WARNING - "ctrl + 0x%2x : iq %x: 0x%08x [ arg #%d ]\n", - 4 * (i + j), i + j, risc, j); + pr_warn("ctrl + 0x%2x : iq %x: 0x%08x [ arg #%d ]\n", + 4 * (i + j), i + j, risc, j); } } - printk(KERN_WARNING " : fifo: 0x%08x -> 0x%x\n", - ch->fifo_start, ch->fifo_start + ch->fifo_size); - printk(KERN_WARNING " : ctrl: 0x%08x -> 0x%x\n", - ch->ctrl_start, ch->ctrl_start + 6 * 16); - printk(KERN_WARNING " : ptr1_reg: 0x%08x\n", - cx_read(ch->ptr1_reg)); - printk(KERN_WARNING " : ptr2_reg: 0x%08x\n", - cx_read(ch->ptr2_reg)); - printk(KERN_WARNING " : cnt1_reg: 0x%08x\n", - cx_read(ch->cnt1_reg)); - printk(KERN_WARNING " : cnt2_reg: 0x%08x\n", - cx_read(ch->cnt2_reg)); + pr_warn(" : fifo: 0x%08x -> 0x%x\n", + ch->fifo_start, ch->fifo_start + ch->fifo_size); + pr_warn(" : ctrl: 0x%08x -> 0x%x\n", + ch->ctrl_start, ch->ctrl_start + 6 * 16); + pr_warn(" : ptr1_reg: 0x%08x\n", + cx_read(ch->ptr1_reg)); + pr_warn(" : ptr2_reg: 0x%08x\n", + cx_read(ch->ptr2_reg)); + pr_warn(" : cnt1_reg: 0x%08x\n", + cx_read(ch->cnt1_reg)); + pr_warn(" : cnt2_reg: 0x%08x\n", + cx_read(ch->cnt2_reg)); for (i = 0; i < 4; i++) { risc = cx_read(ch->cmds_start + 56 + (i * 4)); - printk(KERN_WARNING "instruction %d = 0x%x\n", i, risc); + pr_warn("instruction %d = 0x%x\n", i, risc); } /* read data from the first cdt buffer */ risc = cx_read(AUD_A_CDT); - printk(KERN_WARNING "\nread cdt loc=0x%x\n", risc); + pr_warn("\nread cdt loc=0x%x\n", risc); for (i = 0; i < 8; i++) { n = cx_read(risc + i * 4); - printk(KERN_WARNING "0x%x ", n); + pr_cont("0x%x ", n); } - printk(KERN_WARNING "\n\n"); + pr_cont("\n\n"); value = cx_read(CLK_RST); CX25821_INFO(" CLK_RST = 0x%x\n\n", value); @@ -870,7 +869,7 @@ static int cx25821_get_resources(struct cx25821_dev *dev) dev->name)) return 0; - printk(KERN_ERR "%s: can't get MMIO memory @ 0x%llx\n", + pr_err("%s: can't get MMIO memory @ 0x%llx\n", dev->name, (unsigned long long)pci_resource_start(dev->pci, 0)); return -EBUSY; @@ -880,8 +879,8 @@ static void cx25821_dev_checkrevision(struct cx25821_dev *dev) { dev->hwrevision = cx_read(RDR_CFG2) & 0xff; - printk(KERN_INFO "%s() Hardware revision = 0x%02x\n", __func__, - dev->hwrevision); + pr_info("%s(): Hardware revision = 0x%02x\n", + __func__, dev->hwrevision); } static void cx25821_iounmap(struct cx25821_dev *dev) @@ -901,9 +900,9 @@ static int cx25821_dev_setup(struct cx25821_dev *dev) { int io_size = 0, i; - printk(KERN_INFO "\n***********************************\n"); - printk(KERN_INFO "cx25821 set up\n"); - printk(KERN_INFO "***********************************\n\n"); + pr_info("\n***********************************\n"); + pr_info("cx25821 set up\n"); + pr_info("***********************************\n\n"); mutex_init(&dev->lock); @@ -920,13 +919,11 @@ static int cx25821_dev_setup(struct cx25821_dev *dev) strcpy(cx25821_boards[CX25821_BOARD].name, "cx25821"); if (dev->pci->device != 0x8210) { - printk(KERN_INFO - "%s() Exiting. Incorrect Hardware device = 0x%02x\n", - __func__, dev->pci->device); + pr_info("%s(): Exiting. Incorrect Hardware device = 0x%02x\n", + __func__, dev->pci->device); return -1; } else { - printk(KERN_INFO "Athena Hardware device = 0x%02x\n", - dev->pci->device); + pr_info("Athena Hardware device = 0x%02x\n", dev->pci->device); } /* Apply a sensible clock frequency for the PCIe bridge */ @@ -956,8 +953,7 @@ static int cx25821_dev_setup(struct cx25821_dev *dev) dev->i2c_bus[0].i2c_period = (0x07 << 24); /* 1.95MHz */ if (cx25821_get_resources(dev) < 0) { - printk(KERN_ERR "%s No more PCIe resources for " - "subsystem: %04x:%04x\n", + pr_err("%s: No more PCIe resources for subsystem: %04x:%04x\n", dev->name, dev->pci->subsystem_vendor, dev->pci->subsystem_device); @@ -985,11 +981,11 @@ static int cx25821_dev_setup(struct cx25821_dev *dev) dev->bmmio = (u8 __iomem *) dev->lmmio; - printk(KERN_INFO "%s: subsystem: %04x:%04x, board: %s [card=%d,%s]\n", - dev->name, dev->pci->subsystem_vendor, - dev->pci->subsystem_device, cx25821_boards[dev->board].name, - dev->board, card[dev->nr] == dev->board ? - "insmod option" : "autodetected"); + pr_info("%s: subsystem: %04x:%04x, board: %s [card=%d,%s]\n", + dev->name, dev->pci->subsystem_vendor, + dev->pci->subsystem_device, cx25821_boards[dev->board].name, + dev->board, card[dev->nr] == dev->board ? + "insmod option" : "autodetected"); /* init hardware */ cx25821_initialize(dev); @@ -1004,8 +1000,7 @@ static int cx25821_dev_setup(struct cx25821_dev *dev) cx25821_card_setup(dev); if (medusa_video_init(dev) < 0) - CX25821_ERR("%s() Failed to initialize medusa!\n" - , __func__); + CX25821_ERR("%s(): Failed to initialize medusa!\n", __func__); cx25821_video_register(dev); @@ -1017,13 +1012,12 @@ static int cx25821_dev_setup(struct cx25821_dev *dev) if (video_register_device (dev->ioctl_dev, VFL_TYPE_GRABBER, VIDEO_IOCTL_CH) < 0) { cx25821_videoioctl_unregister(dev); - printk(KERN_ERR - "%s() Failed to register video adapter for IOCTL, so \ - unregistering videoioctl device.\n", __func__); + pr_err("%s(): Failed to register video adapter for IOCTL, so unregistering videoioctl device\n", + __func__); } cx25821_dev_checkrevision(dev); - CX25821_INFO("cx25821 setup done!\n"); + CX25821_INFO("setup done!\n"); return 0; } @@ -1362,20 +1356,20 @@ void cx25821_print_irqbits(char *name, char *tag, char **strings, { unsigned int i; - printk(KERN_DEBUG "%s: %s [0x%x]", name, tag, bits); + printk(KERN_DEBUG pr_fmt("%s: %s [0x%x]"), name, tag, bits); for (i = 0; i < len; i++) { if (!(bits & (1 << i))) continue; if (strings[i]) - printk(" %s", strings[i]); + pr_cont(" %s", strings[i]); else - printk(" %d", i); + pr_cont(" %d", i); if (!(mask & (1 << i))) continue; - printk("*"); + pr_cont("*"); } - printk("\n"); + pr_cont("\n"); } EXPORT_SYMBOL(cx25821_print_irqbits); @@ -1405,12 +1399,12 @@ static int __devinit cx25821_initdev(struct pci_dev *pci_dev, if (pci_enable_device(pci_dev)) { err = -EIO; - printk(KERN_INFO "pci enable failed! "); + pr_info("pci enable failed!\n"); goto fail_unregister_device; } - printk(KERN_INFO "cx25821 Athena pci enable !\n"); + pr_info("Athena pci enable !\n"); err = cx25821_dev_setup(dev); if (err) { @@ -1423,14 +1417,13 @@ static int __devinit cx25821_initdev(struct pci_dev *pci_dev, /* print pci info */ pci_read_config_byte(pci_dev, PCI_CLASS_REVISION, &dev->pci_rev); pci_read_config_byte(pci_dev, PCI_LATENCY_TIMER, &dev->pci_lat); - printk(KERN_INFO "%s/0: found at %s, rev: %d, irq: %d, " - "latency: %d, mmio: 0x%llx\n", dev->name, - pci_name(pci_dev), dev->pci_rev, pci_dev->irq, - dev->pci_lat, (unsigned long long)dev->base_io_addr); + pr_info("%s/0: found at %s, rev: %d, irq: %d, latency: %d, mmio: 0x%llx\n", + dev->name, pci_name(pci_dev), dev->pci_rev, pci_dev->irq, + dev->pci_lat, (unsigned long long)dev->base_io_addr); pci_set_master(pci_dev); if (!pci_dma_supported(pci_dev, 0xffffffff)) { - printk("%s/0: Oops: no 32bit PCI DMA ???\n", dev->name); + pr_err("%s/0: Oops: no 32bit PCI DMA ???\n", dev->name); err = -EIO; goto fail_irq; } @@ -1440,15 +1433,14 @@ static int __devinit cx25821_initdev(struct pci_dev *pci_dev, dev->name, dev); if (err < 0) { - printk(KERN_ERR "%s: can't get IRQ %d\n", dev->name, - pci_dev->irq); + pr_err("%s: can't get IRQ %d\n", dev->name, pci_dev->irq); goto fail_irq; } return 0; fail_irq: - printk(KERN_INFO "cx25821 cx25821_initdev() can't get IRQ !\n"); + pr_info("cx25821_initdev() can't get IRQ !\n"); cx25821_dev_unregister(dev); fail_unregister_pci: @@ -1510,9 +1502,10 @@ static struct pci_driver cx25821_pci_driver = { static int __init cx25821_init(void) { INIT_LIST_HEAD(&cx25821_devlist); - printk(KERN_INFO "cx25821 driver version %d.%d.%d loaded\n", - (CX25821_VERSION_CODE >> 16) & 0xff, - (CX25821_VERSION_CODE >> 8) & 0xff, CX25821_VERSION_CODE & 0xff); + pr_info("driver version %d.%d.%d loaded\n", + (CX25821_VERSION_CODE >> 16) & 0xff, + (CX25821_VERSION_CODE >> 8) & 0xff, + CX25821_VERSION_CODE & 0xff); return pci_register_driver(&cx25821_pci_driver); } |