]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/staging/cx25821/cx25821-core.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / staging / cx25821 / cx25821-core.c
index 300da319b0650d1b6dcc74eff20c7d4f129f0f2b..a216b620b718eb12ded396b5391e1f43894e121f 100644 (file)
@@ -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);
 }