V4L/DVB (12732): cx25821: fix bad whitespacing
authorMauro Carvalho Chehab <mchehab@redhat.com>
Sun, 13 Sep 2009 14:25:45 +0000 (11:25 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 19 Sep 2009 02:47:37 +0000 (23:47 -0300)
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
29 files changed:
drivers/staging/cx25821/Kconfig
drivers/staging/cx25821/cx25821-alsa.c
drivers/staging/cx25821/cx25821-audio-upstream.c
drivers/staging/cx25821/cx25821-audups11.c
drivers/staging/cx25821/cx25821-cards.c
drivers/staging/cx25821/cx25821-core.c
drivers/staging/cx25821/cx25821-gpio.c
drivers/staging/cx25821/cx25821-i2c.c
drivers/staging/cx25821/cx25821-medusa-video.c
drivers/staging/cx25821/cx25821-medusa-video.h
drivers/staging/cx25821/cx25821-reg.h
drivers/staging/cx25821/cx25821-video-upstream-ch2.c
drivers/staging/cx25821/cx25821-video-upstream-ch2.h
drivers/staging/cx25821/cx25821-video-upstream.c
drivers/staging/cx25821/cx25821-video-upstream.h
drivers/staging/cx25821/cx25821-video.c
drivers/staging/cx25821/cx25821-video.h
drivers/staging/cx25821/cx25821-video0.c
drivers/staging/cx25821/cx25821-video1.c
drivers/staging/cx25821/cx25821-video2.c
drivers/staging/cx25821/cx25821-video3.c
drivers/staging/cx25821/cx25821-video4.c
drivers/staging/cx25821/cx25821-video5.c
drivers/staging/cx25821/cx25821-video6.c
drivers/staging/cx25821/cx25821-video7.c
drivers/staging/cx25821/cx25821-videoioctl.c
drivers/staging/cx25821/cx25821-vidups10.c
drivers/staging/cx25821/cx25821-vidups9.c
drivers/staging/cx25821/cx25821.h

index 8887115..df7756a 100644 (file)
@@ -15,7 +15,7 @@ config VIDEO_CX25821
 
          To compile this driver as a module, choose M here: the
          module will be called cx25821
-         
+
 config VIDEO_CX25821_ALSA
        tristate "Conexant 25821 DMA audio support"
        depends on VIDEO_CX25821 && SND && EXPERIMENTAL
@@ -30,5 +30,5 @@ config VIDEO_CX25821_ALSA
          PCI device.
 
          To compile this driver as a module, choose M here: the
-         module will be called cx25821-alsa.     
+         module will be called cx25821-alsa.
 
index 6b2e86a..3ab5641 100644 (file)
@@ -72,7 +72,7 @@ struct cx25821_audio_dev {
 
        unsigned long iobase;
        spinlock_t                 reg_lock;
-       atomic_t                           count;
+       atomic_t                           count;
 
        unsigned int               dma_size;
        unsigned int               period_size;
index 9138767..376c953 100644 (file)
@@ -45,8 +45,8 @@ static int _intr_msk = FLD_AUD_SRC_RISCI1 | FLD_AUD_SRC_OF | FLD_AUD_SRC_SYNC |
 \r
 \r
 int cx25821_sram_channel_setup_upstream_audio(struct cx25821_dev *dev,\r
-                                                   struct sram_channel *ch,\r
-                                                   unsigned int bpl, u32 risc)\r
+                                                   struct sram_channel *ch,\r
+                                                   unsigned int bpl, u32 risc)\r
 {\r
        unsigned int i, lines;\r
        u32 cdt;\r
@@ -66,7 +66,7 @@ int cx25821_sram_channel_setup_upstream_audio(struct cx25821_dev *dev,
     \r
     if (lines > 3)     \r
     {\r
-        lines = 3;\r
+       lines = 3;\r
     }\r
     \r
        BUG_ON(lines < 2);\r
@@ -87,7 +87,7 @@ int cx25821_sram_channel_setup_upstream_audio(struct cx25821_dev *dev,
        cx_write(ch->cmds_start +  8, cdt);                     \r
        cx_write(ch->cmds_start + 12, AUDIO_CDT_SIZE_QW);       \r
        cx_write(ch->cmds_start + 16, ch->ctrl_start);          \r
-                                               \r
+                                              \r
        //IQ size\r
        cx_write(ch->cmds_start + 20, AUDIO_IQ_SIZE_DW);        \r
 \r
@@ -105,40 +105,40 @@ int cx25821_sram_channel_setup_upstream_audio(struct cx25821_dev *dev,
 \r
 \r
 static __le32 *cx25821_risc_field_upstream_audio( struct cx25821_dev *dev, __le32 *rp, \r
-                                                  dma_addr_t databuf_phys_addr,\r
-                                                  unsigned int bpl, int fifo_enable)\r
+                                                 dma_addr_t databuf_phys_addr,\r
+                                                 unsigned int bpl, int fifo_enable)\r
 {\r
        unsigned int line;\r
     struct sram_channel *sram_ch = &dev->sram_channels[dev->_audio_upstream_channel_select];\r
     int offset = 0;\r
-                \r
+               \r
     \r
        /* scan lines */\r
        for (line = 0; line < LINES_PER_AUDIO_BUFFER; line++) \r
     {          \r
                *(rp++) = cpu_to_le32(RISC_READ|RISC_SOL|RISC_EOL|bpl); \r
-        *(rp++) = cpu_to_le32(databuf_phys_addr + offset);          \r
-               *(rp++) = cpu_to_le32(0); /* bits 63-32 */                       \r
+       *(rp++) = cpu_to_le32(databuf_phys_addr + offset);          \r
+               *(rp++) = cpu_to_le32(0); /* bits 63-32 */                       \r
 \r
-        // Check if we need to enable the FIFO after the first 3 lines \r
-        // For the upstream audio channel, the risc engine will enable the FIFO. \r
-        if ( fifo_enable && line == 2 )\r
+       // Check if we need to enable the FIFO after the first 3 lines \r
+       // For the upstream audio channel, the risc engine will enable the FIFO. \r
+       if ( fifo_enable && line == 2 )\r
                {\r
                        *(rp++) = RISC_WRITECR;\r
                        *(rp++) = sram_ch->dma_ctl;\r
                        *(rp++) = sram_ch->fld_aud_fifo_en;\r
                        *(rp++) = 0x00000020;\r
-       }        \r
-        \r
-        offset += AUDIO_LINE_SIZE;\r
+       }        \r
+       \r
+       offset += AUDIO_LINE_SIZE;\r
        }\r
-         \r
+        \r
        return rp;\r
 }\r
 \r
 int cx25821_risc_buffer_upstream_audio( struct cx25821_dev *dev, \r
-                                  struct pci_dev *pci, \r
-                                  unsigned int bpl, unsigned int lines)\r
+                                 struct pci_dev *pci, \r
+                                 unsigned int bpl, unsigned int lines)\r
 {\r
        __le32 *rp;\r
     int fifo_enable = 0;\r
@@ -148,7 +148,7 @@ int cx25821_risc_buffer_upstream_audio( struct cx25821_dev *dev,
     int risc_flag = RISC_CNT_INC;\r
     dma_addr_t   risc_phys_jump_addr;\r
 \r
-        \r
+       \r
        /* Virtual address of Risc buffer program */\r
        rp = dev->_risc_virt_addr;\r
     \r
@@ -158,48 +158,48 @@ int cx25821_risc_buffer_upstream_audio( struct cx25821_dev *dev,
     \r
     for( frame = 0; frame < NUM_AUDIO_FRAMES; frame++ )\r
     {        \r
-        databuf_offset = frame_size * frame;        \r
-                \r
-        if( frame == 0 )\r
-        {\r
-            fifo_enable = 1;\r
-            risc_flag = RISC_CNT_RESET;   \r
-        }\r
-        else\r
-        {\r
-            fifo_enable = 0;\r
-            risc_flag = RISC_CNT_INC;\r
-        }\r
-        \r
-        //Calculate physical jump address \r
-        if( (frame+1) == NUM_AUDIO_FRAMES )\r
-        {\r
-            risc_phys_jump_addr = dev->_risc_phys_start_addr + RISC_SYNC_INSTRUCTION_SIZE;        \r
-        }\r
-        else\r
-        {\r
-            risc_phys_jump_addr = dev->_risc_phys_start_addr + RISC_SYNC_INSTRUCTION_SIZE + AUDIO_RISC_DMA_BUF_SIZE*(frame+1);        \r
-        }\r
-        \r
-        rp = cx25821_risc_field_upstream_audio(dev, rp, dev->_audiodata_buf_phys_addr+databuf_offset, bpl, fifo_enable);       \r
-         \r
-        \r
-        if( USE_RISC_NOOP_AUDIO )\r
-        {\r
-            for( i = 0; i < NUM_NO_OPS; i++ )\r
-            {\r
-                *(rp++) = cpu_to_le32(RISC_NOOP);\r
-            }\r
-        }\r
-        \r
-\r
-        // Loop to (Nth)FrameRISC or to Start of Risc program & generate IRQ \r
-        *(rp++)  = cpu_to_le32(RISC_JUMP|RISC_IRQ1|risc_flag);      \r
-        *(rp++)  = cpu_to_le32(risc_phys_jump_addr);            \r
-        *(rp++)  = cpu_to_le32(0);  \r
-\r
-        //Recalculate virtual address based on frame index \r
-        rp = dev->_risc_virt_addr + RISC_SYNC_INSTRUCTION_SIZE/4 + (AUDIO_RISC_DMA_BUF_SIZE*(frame+1)/4 ) ;         \r
+       databuf_offset = frame_size * frame;        \r
+               \r
+       if( frame == 0 )\r
+       {\r
+           fifo_enable = 1;\r
+           risc_flag = RISC_CNT_RESET;   \r
+       }\r
+       else\r
+       {\r
+           fifo_enable = 0;\r
+           risc_flag = RISC_CNT_INC;\r
+       }\r
+       \r
+       //Calculate physical jump address \r
+       if( (frame+1) == NUM_AUDIO_FRAMES )\r
+       {\r
+           risc_phys_jump_addr = dev->_risc_phys_start_addr + RISC_SYNC_INSTRUCTION_SIZE;        \r
+       }\r
+       else\r
+       {\r
+           risc_phys_jump_addr = dev->_risc_phys_start_addr + RISC_SYNC_INSTRUCTION_SIZE + AUDIO_RISC_DMA_BUF_SIZE*(frame+1);        \r
+       }\r
+       \r
+       rp = cx25821_risc_field_upstream_audio(dev, rp, dev->_audiodata_buf_phys_addr+databuf_offset, bpl, fifo_enable);       \r
+        \r
+       \r
+       if( USE_RISC_NOOP_AUDIO )\r
+       {\r
+           for( i = 0; i < NUM_NO_OPS; i++ )\r
+           {\r
+               *(rp++) = cpu_to_le32(RISC_NOOP);\r
+           }\r
+       }\r
+       \r
+\r
+       // Loop to (Nth)FrameRISC or to Start of Risc program & generate IRQ \r
+       *(rp++)  = cpu_to_le32(RISC_JUMP|RISC_IRQ1|risc_flag);      \r
+       *(rp++)  = cpu_to_le32(risc_phys_jump_addr);            \r
+       *(rp++)  = cpu_to_le32(0);  \r
+\r
+       //Recalculate virtual address based on frame index \r
+       rp = dev->_risc_virt_addr + RISC_SYNC_INSTRUCTION_SIZE/4 + (AUDIO_RISC_DMA_BUF_SIZE*(frame+1)/4 ) ;         \r
     }\r
     \r
        return 0;\r
@@ -228,10 +228,10 @@ void cx25821_stop_upstream_audio(struct cx25821_dev *dev)
     \r
     if( !dev->_audio_is_running )\r
     {\r
-        printk("cx25821: No audio file is currently running so return!\n");\r
-        return;\r
+       printk("cx25821: No audio file is currently running so return!\n");\r
+       return;\r
     }\r
-        \r
+       \r
     //Disable RISC interrupts\r
     cx_write( sram_ch->int_msk, 0 );\r
     \r
@@ -241,8 +241,8 @@ void cx25821_stop_upstream_audio(struct cx25821_dev *dev)
 \r
     //Clear data buffer memory\r
     if( dev->_audiodata_buf_virt_addr )\r
-        memset( dev->_audiodata_buf_virt_addr, 0, dev->_audiodata_buf_size ); \r
-                \r
+       memset( dev->_audiodata_buf_virt_addr, 0, dev->_audiodata_buf_size ); \r
+               \r
     dev->_audio_is_running       = 0;\r
     dev->_is_first_audio_frame   = 0;\r
     dev->_audioframe_count       = 0;\r
@@ -250,12 +250,12 @@ void cx25821_stop_upstream_audio(struct cx25821_dev *dev)
     \r
     if( dev->_irq_audio_queues )\r
     {\r
-        kfree(dev->_irq_audio_queues); \r
-        dev->_irq_audio_queues = NULL; \r
+       kfree(dev->_irq_audio_queues); \r
+       dev->_irq_audio_queues = NULL; \r
     }        \r
     \r
     if( dev->_audiofilename != NULL )\r
-        kfree(dev->_audiofilename);  \r
+       kfree(dev->_audiofilename);  \r
 }\r
 \r
 \r
@@ -263,7 +263,7 @@ void cx25821_free_mem_upstream_audio(struct cx25821_dev *dev)
 {\r
     if( dev->_audio_is_running )\r
     {\r
-        cx25821_stop_upstream_audio(dev);\r
+       cx25821_stop_upstream_audio(dev);\r
     }\r
 \r
     cx25821_free_memory_audio(dev);\r
@@ -286,69 +286,69 @@ int cx25821_get_audio_data(struct cx25821_dev *dev, struct sram_channel *sram_ch
 \r
     \r
     if( dev->_audiofile_status == END_OF_FILE )   \r
-        return 0;\r
-        \r
+       return 0;\r
+       \r
     myfile = filp_open( dev->_audiofilename, O_RDONLY | O_LARGEFILE, 0 );\r
     \r
     \r
     if (IS_ERR(myfile)) \r
     {\r
-        const int open_errno = -PTR_ERR(myfile);\r
-        printk("%s(): ERROR opening file(%s) with errno = %d! \n", __func__, dev->_audiofilename, open_errno);\r
-        return PTR_ERR(myfile);\r
+       const int open_errno = -PTR_ERR(myfile);\r
+       printk("%s(): ERROR opening file(%s) with errno = %d! \n", __func__, dev->_audiofilename, open_errno);\r
+       return PTR_ERR(myfile);\r
     } \r
     else \r
     {   \r
-        if( !(myfile->f_op) )\r
-        {            \r
-            printk("%s: File has no file operations registered!\n", __func__);\r
-            filp_close(myfile, NULL);\r
-            return -EIO;\r
-        }\r
-        \r
-        \r
-        if( !myfile->f_op->read )       \r
-        {            \r
-            printk("%s: File has no READ operations registered! \n", __func__);\r
-            filp_close(myfile, NULL);\r
-            return -EIO;\r
-        }\r
-        \r
-        pos = myfile->f_pos;            \r
-        old_fs = get_fs();  \r
-        set_fs(KERNEL_DS);\r
-                \r
-              \r
-        for( i = 0; i < dev->_audio_lines_count; i++ )\r
-        {\r
-            pos = file_offset;    \r
-            \r
-            vfs_read_retval = vfs_read(myfile, mybuf, line_size, &pos);     \r
-            \r
-            \r
-            if( vfs_read_retval > 0 && vfs_read_retval == line_size && dev->_audiodata_buf_virt_addr != NULL )   \r
-            {\r
-                memcpy( (void*)(dev->_audiodata_buf_virt_addr+frame_offset/4), mybuf, vfs_read_retval);      \r
-            }            \r
-            \r
-            file_offset += vfs_read_retval;\r
-            frame_offset += vfs_read_retval;\r
-\r
-            if( vfs_read_retval < line_size )\r
-            {      \r
-                printk(KERN_INFO "Done: exit %s() since no more bytes to read from Audio file.\n", __func__ );\r
-                break;\r
-            }      \r
-        }\r
-        \r
-        if( i > 0 )         \r
-            dev->_audioframe_count++;           \r
-\r
-        dev->_audiofile_status = (vfs_read_retval == line_size) ? IN_PROGRESS : END_OF_FILE;      \r
-\r
-        \r
-        set_fs(old_fs);                 \r
-        filp_close(myfile, NULL);          \r
+       if( !(myfile->f_op) )\r
+       {            \r
+           printk("%s: File has no file operations registered!\n", __func__);\r
+           filp_close(myfile, NULL);\r
+           return -EIO;\r
+       }\r
+       \r
+       \r
+       if( !myfile->f_op->read )       \r
+       {            \r
+           printk("%s: File has no READ operations registered! \n", __func__);\r
+           filp_close(myfile, NULL);\r
+           return -EIO;\r
+       }\r
+       \r
+       pos = myfile->f_pos;            \r
+       old_fs = get_fs();  \r
+       set_fs(KERNEL_DS);\r
+               \r
+             \r
+       for( i = 0; i < dev->_audio_lines_count; i++ )\r
+       {\r
+           pos = file_offset;    \r
+           \r
+           vfs_read_retval = vfs_read(myfile, mybuf, line_size, &pos);     \r
+           \r
+           \r
+           if( vfs_read_retval > 0 && vfs_read_retval == line_size && dev->_audiodata_buf_virt_addr != NULL )   \r
+           {\r
+               memcpy( (void*)(dev->_audiodata_buf_virt_addr+frame_offset/4), mybuf, vfs_read_retval);      \r
+           }            \r
+           \r
+           file_offset += vfs_read_retval;\r
+           frame_offset += vfs_read_retval;\r
+\r
+           if( vfs_read_retval < line_size )\r
+           {      \r
+               printk(KERN_INFO "Done: exit %s() since no more bytes to read from Audio file.\n", __func__ );\r
+               break;\r
+           }      \r
+       }\r
+       \r
+       if( i > 0 )         \r
+           dev->_audioframe_count++;           \r
+\r
+       dev->_audiofile_status = (vfs_read_retval == line_size) ? IN_PROGRESS : END_OF_FILE;      \r
+\r
+       \r
+       set_fs(old_fs);                 \r
+       filp_close(myfile, NULL);          \r
     }\r
     \r
     return 0;\r
@@ -360,8 +360,8 @@ static void cx25821_audioups_handler(struct work_struct *work)
        \r
     if( !dev )\r
     {\r
-        printk("ERROR %s(): since container_of(work_struct) FAILED! \n", __func__ );\r
-        return;\r
+       printk("ERROR %s(): since container_of(work_struct) FAILED! \n", __func__ );\r
+       return;\r
     }\r
   \r
     cx25821_get_audio_data( dev, &dev->sram_channels[dev->_audio_upstream_channel_select] );\r
@@ -377,91 +377,91 @@ int cx25821_openfile_audio(struct cx25821_dev *dev, struct sram_channel *sram_ch
     loff_t pos;\r
     loff_t offset = (unsigned long)0;\r
     mm_segment_t old_fs;\r
-        \r
+       \r
 \r
     myfile = filp_open( dev->_audiofilename, O_RDONLY | O_LARGEFILE, 0 );\r
     \r
     \r
     if (IS_ERR(myfile)) \r
     {\r
-        const int open_errno = -PTR_ERR(myfile);\r
-        printk("%s(): ERROR opening file(%s) with errno = %d! \n", __func__, dev->_audiofilename, open_errno);\r
-        return PTR_ERR(myfile);\r
+       const int open_errno = -PTR_ERR(myfile);\r
+       printk("%s(): ERROR opening file(%s) with errno = %d! \n", __func__, dev->_audiofilename, open_errno);\r
+       return PTR_ERR(myfile);\r
     } \r
     else \r
     {\r
-        if( !(myfile->f_op) )\r
-        {            \r
-            printk("%s: File has no file operations registered! \n", __func__);\r
-            filp_close(myfile, NULL);\r
-            return -EIO;\r
-        }\r
-        \r
-        \r
-        if( !myfile->f_op->read )\r
-        {            \r
-            printk("%s: File has no READ operations registered! \n", __func__);\r
-            filp_close(myfile, NULL);\r
-            return -EIO;\r
-        }\r
-        \r
-        pos = myfile->f_pos;\r
-        old_fs = get_fs();  \r
-        set_fs(KERNEL_DS);\r
-                \r
-        \r
-        for( j = 0; j < NUM_AUDIO_FRAMES; j++ )       \r
-        {          \r
-            for( i = 0; i < dev->_audio_lines_count; i++ )\r
-            {\r
-                pos = offset;\r
-\r
-                vfs_read_retval = vfs_read(myfile, mybuf, line_size, &pos);                \r
-                \r
-                \r
-                if( vfs_read_retval > 0 && vfs_read_retval == line_size && dev->_audiodata_buf_virt_addr != NULL )   \r
-                \r
-                    memcpy( (void*)(dev->_audiodata_buf_virt_addr+offset/4), mybuf, vfs_read_retval);   \r
-                }                \r
-                \r
-                offset += vfs_read_retval;\r
-\r
-                if( vfs_read_retval < line_size )\r
-                {      \r
-                    printk(KERN_INFO "Done: exit %s() since no more bytes to read from Audio file.\n", __func__ );\r
-                    break;\r
-                }      \r
-            }\r
-            \r
-            if( i > 0 )     \r
-            {\r
-                dev->_audioframe_count++;\r
-            }            \r
-            \r
-            if( vfs_read_retval < line_size )\r
-            {\r
-                break;\r
-            }            \r
-        }\r
-        \r
-        dev->_audiofile_status = (vfs_read_retval == line_size) ? IN_PROGRESS : END_OF_FILE;   \r
-            \r
-        set_fs(old_fs);        \r
-        myfile->f_pos = 0;\r
-        filp_close(myfile, NULL);         \r
+       if( !(myfile->f_op) )\r
+       {            \r
+           printk("%s: File has no file operations registered! \n", __func__);\r
+           filp_close(myfile, NULL);\r
+           return -EIO;\r
+       }\r
+       \r
+       \r
+       if( !myfile->f_op->read )\r
+       {            \r
+           printk("%s: File has no READ operations registered! \n", __func__);\r
+           filp_close(myfile, NULL);\r
+           return -EIO;\r
+       }\r
+       \r
+       pos = myfile->f_pos;\r
+       old_fs = get_fs();  \r
+       set_fs(KERNEL_DS);\r
+               \r
+       \r
+       for( j = 0; j < NUM_AUDIO_FRAMES; j++ )       \r
+       {          \r
+           for( i = 0; i < dev->_audio_lines_count; i++ )\r
+           {\r
+               pos = offset;\r
+\r
+               vfs_read_retval = vfs_read(myfile, mybuf, line_size, &pos);                \r
+               \r
+               \r
+               if( vfs_read_retval > 0 && vfs_read_retval == line_size && dev->_audiodata_buf_virt_addr != NULL )   \r
+               { \r
+                   memcpy( (void*)(dev->_audiodata_buf_virt_addr+offset/4), mybuf, vfs_read_retval);   \r
+               }                \r
+               \r
+               offset += vfs_read_retval;\r
+\r
+               if( vfs_read_retval < line_size )\r
+               {      \r
+                   printk(KERN_INFO "Done: exit %s() since no more bytes to read from Audio file.\n", __func__ );\r
+                   break;\r
+               }      \r
+           }\r
+           \r
+           if( i > 0 )     \r
+           {\r
+               dev->_audioframe_count++;\r
+           }            \r
+           \r
+           if( vfs_read_retval < line_size )\r
+           {\r
+               break;\r
+           }            \r
+       }\r
+       \r
+       dev->_audiofile_status = (vfs_read_retval == line_size) ? IN_PROGRESS : END_OF_FILE;   \r
+           \r
+       set_fs(old_fs);        \r
+       myfile->f_pos = 0;\r
+       filp_close(myfile, NULL);         \r
     }\r
     \r
     return 0;\r
 }\r
 \r
 static int cx25821_audio_upstream_buffer_prepare(struct cx25821_dev *dev,\r
-                                                            struct sram_channel *sram_ch,\r
-                                                 int bpl)\r
+                                                            struct sram_channel *sram_ch,\r
+                                                int bpl)\r
 {\r
        int ret = 0;\r
        dma_addr_t dma_addr;\r
        dma_addr_t data_dma_addr;       \r
-        \r
+       \r
 \r
     cx25821_free_memory_audio(dev);     \r
     \r
@@ -474,7 +474,7 @@ static int cx25821_audio_upstream_buffer_prepare(struct cx25821_dev *dev,
    \r
     if (!dev->_risc_virt_addr)\r
     {\r
-        printk("cx25821 ERROR: pci_alloc_consistent() FAILED to allocate memory for RISC program! Returning.\n");\r
+       printk("cx25821 ERROR: pci_alloc_consistent() FAILED to allocate memory for RISC program! Returning.\n");\r
                return -ENOMEM;\r
     }\r
   \r
@@ -489,7 +489,7 @@ static int cx25821_audio_upstream_buffer_prepare(struct cx25821_dev *dev,
        \r
     if (!dev->_audiodata_buf_virt_addr)\r
     {        \r
-        printk("cx25821 ERROR: pci_alloc_consistent() FAILED to allocate memory for data buffer! Returning. \n");\r
+       printk("cx25821 ERROR: pci_alloc_consistent() FAILED to allocate memory for data buffer! Returning. \n");\r
                return -ENOMEM;\r
     }\r
   \r
@@ -499,8 +499,8 @@ static int cx25821_audio_upstream_buffer_prepare(struct cx25821_dev *dev,
    \r
     ret = cx25821_openfile_audio(dev, sram_ch);     \r
     if( ret < 0 )\r
-        return ret;\r
-                                      \r
+       return ret;\r
+                                     \r
     \r
     //Creating RISC programs\r
     ret = cx25821_risc_buffer_upstream_audio(dev, dev->pci, bpl, dev->_audio_lines_count );                                \r
@@ -528,86 +528,86 @@ int cx25821_audio_upstream_irq(struct cx25821_dev *dev, int chan_num, u32 status
     if (status & FLD_AUD_SRC_RISCI1)      \r
     {\r
            //Get interrupt_index of the program that interrupted\r
-        u32 prog_cnt = cx_read( channel->gpcnt );\r
+       u32 prog_cnt = cx_read( channel->gpcnt );\r
     \r
-        //Since we've identified our IRQ, clear our bits from the interrupt mask and interrupt status registers\r
-        cx_write(channel->int_msk, 0);  \r
-        cx_write(channel->int_stat, cx_read(channel->int_stat) );\r
+       //Since we've identified our IRQ, clear our bits from the interrupt mask and interrupt status registers\r
+       cx_write(channel->int_msk, 0);  \r
+       cx_write(channel->int_stat, cx_read(channel->int_stat) );\r
     \r
                spin_lock(&dev->slock);     \r
-            \r
-             \r
-        while(prog_cnt != dev->_last_index_irq)\r
-        {            \r
-            //Update _last_index_irq\r
-            if(dev->_last_index_irq < (NUMBER_OF_PROGRAMS-1))\r
-            {\r
-                dev->_last_index_irq++;\r
-            }\r
-            else\r
-            {\r
-                dev->_last_index_irq = 0;\r
-            }\r
-\r
-            dev->_audioframe_index = dev->_last_index_irq;\r
-            \r
-            queue_work(dev->_irq_audio_queues, &dev->_audio_work_entry);        \r
-        }\r
-\r
-    \r
-        if ( dev->_is_first_audio_frame )\r
-        {\r
-            dev->_is_first_audio_frame = 0;           \r
-            \r
-            if( dev->_risc_virt_start_addr != NULL )\r
-            {\r
-                risc_phys_jump_addr = dev->_risc_phys_start_addr + RISC_SYNC_INSTRUCTION_SIZE + AUDIO_RISC_DMA_BUF_SIZE;        \r
-                \r
-                rp = cx25821_risc_field_upstream_audio(dev, dev->_risc_virt_start_addr+1, dev->_audiodata_buf_phys_addr, AUDIO_LINE_SIZE, FIFO_DISABLE);      \r
-\r
-                if( USE_RISC_NOOP_AUDIO )\r
-                {\r
-                    for( i = 0; i < NUM_NO_OPS; i++ )\r
-                    {\r
-                        *(rp++) = cpu_to_le32(RISC_NOOP);\r
-                    }\r
-                }\r
-        \r
-                // Jump to 2nd Audio Frame\r
-                *(rp++)  = cpu_to_le32(RISC_JUMP | RISC_IRQ1 | RISC_CNT_RESET);      \r
-                *(rp++)  = cpu_to_le32(risc_phys_jump_addr);            \r
-                *(rp++)  = cpu_to_le32(0); \r
-            }\r
-        }\r
-        \r
+           \r
+            \r
+       while(prog_cnt != dev->_last_index_irq)\r
+       {            \r
+           //Update _last_index_irq\r
+           if(dev->_last_index_irq < (NUMBER_OF_PROGRAMS-1))\r
+           {\r
+               dev->_last_index_irq++;\r
+           }\r
+           else\r
+           {\r
+               dev->_last_index_irq = 0;\r
+           }\r
+\r
+           dev->_audioframe_index = dev->_last_index_irq;\r
+           \r
+           queue_work(dev->_irq_audio_queues, &dev->_audio_work_entry);        \r
+       }\r
+\r
+    \r
+       if ( dev->_is_first_audio_frame )\r
+       {\r
+           dev->_is_first_audio_frame = 0;           \r
+           \r
+           if( dev->_risc_virt_start_addr != NULL )\r
+           {\r
+               risc_phys_jump_addr = dev->_risc_phys_start_addr + RISC_SYNC_INSTRUCTION_SIZE + AUDIO_RISC_DMA_BUF_SIZE;        \r
+               \r
+               rp = cx25821_risc_field_upstream_audio(dev, dev->_risc_virt_start_addr+1, dev->_audiodata_buf_phys_addr, AUDIO_LINE_SIZE, FIFO_DISABLE);      \r
+\r
+               if( USE_RISC_NOOP_AUDIO )\r
+               {\r
+                   for( i = 0; i < NUM_NO_OPS; i++ )\r
+                   {\r
+                       *(rp++) = cpu_to_le32(RISC_NOOP);\r
+                   }\r
+               }\r
+       \r
+               // Jump to 2nd Audio Frame\r
+               *(rp++)  = cpu_to_le32(RISC_JUMP | RISC_IRQ1 | RISC_CNT_RESET);      \r
+               *(rp++)  = cpu_to_le32(risc_phys_jump_addr);            \r
+               *(rp++)  = cpu_to_le32(0); \r
+           }\r
+       }\r
+       \r
                spin_unlock(&dev->slock);      \r
        }\r
     else\r
     {\r
-        if(status & FLD_AUD_SRC_OF)\r
-            printk("%s: Audio Received Overflow Error Interrupt!\n", __func__);\r
+       if(status & FLD_AUD_SRC_OF)\r
+           printk("%s: Audio Received Overflow Error Interrupt!\n", __func__);\r
 \r
-        if(status & FLD_AUD_SRC_SYNC)\r
-            printk("%s: Audio Received Sync Error Interrupt!\n", __func__);\r
+       if(status & FLD_AUD_SRC_SYNC)\r
+           printk("%s: Audio Received Sync Error Interrupt!\n", __func__);\r
 \r
-        if(status & FLD_AUD_SRC_OPC_ERR)\r
-            printk("%s: Audio Received OpCode Error Interrupt!\n", __func__);    \r
-            \r
-        // Read and write back the interrupt status register to clear our bits\r
-        cx_write(channel->int_stat, cx_read(channel->int_stat) );   \r
+       if(status & FLD_AUD_SRC_OPC_ERR)\r
+           printk("%s: Audio Received OpCode Error Interrupt!\n", __func__);    \r
+           \r
+       // Read and write back the interrupt status register to clear our bits\r
+       cx_write(channel->int_stat, cx_read(channel->int_stat) );   \r
     }\r
      \r
-        \r
+       \r
     if( dev->_audiofile_status == END_OF_FILE )\r
     {                       \r
-        printk("cx25821: EOF Channel Audio Framecount = %d\n", dev->_audioframe_count );\r
-        return -1;\r
+       printk("cx25821: EOF Channel Audio Framecount = %d\n", dev->_audioframe_count );\r
+       return -1;\r
     }\r
     \r
     //ElSE, set the interrupt mask register, re-enable irq. \r
     int_msk_tmp = cx_read( channel->int_msk );              \r
     cx_write( channel->int_msk, int_msk_tmp |= _intr_msk ); \r
-               \r
+              \r
     return 0;\r
 }\r
 \r
@@ -620,8 +620,8 @@ static irqreturn_t cx25821_upstream_irq_audio(int irq, void *dev_id)
     \r
     \r
     if( !dev )\r
-        return -1;\r
-        \r
+       return -1;\r
+       \r
 \r
     sram_ch = &dev->sram_channels[dev->_audio_upstream_channel_select];     \r
 \r
@@ -631,17 +631,17 @@ static irqreturn_t cx25821_upstream_irq_audio(int irq, void *dev_id)
     // Only deal with our interrupt\r
     if(audio_status)\r
     {\r
-        handled = cx25821_audio_upstream_irq(dev, dev->_audio_upstream_channel_select, audio_status);\r
+       handled = cx25821_audio_upstream_irq(dev, dev->_audio_upstream_channel_select, audio_status);\r
     }\r
     \r
     \r
     if( handled < 0 )\r
     {    \r
-        cx25821_stop_upstream_audio(dev);\r
+       cx25821_stop_upstream_audio(dev);\r
     }\r
     else\r
     {\r
-        handled += handled;    \r
+       handled += handled;    \r
     }   \r
 \r
        return IRQ_RETVAL(handled);\r
@@ -655,24 +655,24 @@ static void cx25821_wait_fifo_enable(struct cx25821_dev *dev, struct sram_channe
     \r
     do\r
     {\r
-        //Wait 10 microsecond before checking to see if the FIFO is turned ON.\r
-        udelay(10);\r
-\r
-        tmp = cx_read( sram_ch->dma_ctl );\r
-        \r
-        if(count++ > 1000) //10 millisecond timeout         \r
-        {\r
-            printk("cx25821 ERROR: %s() fifo is NOT turned on. Timeout!\n", __func__);\r
-            return;\r
-        }\r
-        \r
+       //Wait 10 microsecond before checking to see if the FIFO is turned ON.\r
+       udelay(10);\r
+\r
+       tmp = cx_read( sram_ch->dma_ctl );\r
+       \r
+       if(count++ > 1000) //10 millisecond timeout         \r
+       {\r
+           printk("cx25821 ERROR: %s() fifo is NOT turned on. Timeout!\n", __func__);\r
+           return;\r
+       }\r
+       \r
     } while( !(tmp & sram_ch->fld_aud_fifo_en) );\r
-            \r
+           \r
 }\r
 \r
 \r
 int cx25821_start_audio_dma_upstream(struct cx25821_dev *dev,\r
-                                                    struct sram_channel *sram_ch)\r
+                                                    struct sram_channel *sram_ch)\r
 {\r
     u32 tmp = 0;\r
     int err = 0;\r
@@ -744,10 +744,10 @@ int cx25821_audio_upstream_init(struct cx25821_dev *dev, int channel_select)
     \r
     if( dev->_audio_is_running )\r
     {\r
-        printk("Audio Channel is still running so return!\n");\r
-        return 0;\r
+       printk("Audio Channel is still running so return!\n");\r
+       return 0;\r
     }\r
-        \r
+       \r
     dev->_audio_upstream_channel_select = channel_select;      \r
     sram_ch = &dev->sram_channels[channel_select];   \r
     \r
@@ -757,10 +757,10 @@ int cx25821_audio_upstream_init(struct cx25821_dev *dev, int channel_select)
 \r
        if(!dev->_irq_audio_queues)\r
     {\r
-        printk("cx25821 ERROR: create_singlethread_workqueue() for Audio FAILED!\n");\r
+       printk("cx25821 ERROR: create_singlethread_workqueue() for Audio FAILED!\n");\r
                return -ENOMEM;\r
     }\r
-         \r
+        \r
     \r
     dev->_last_index_irq     = 0;        \r
     dev->_audio_is_running   = 0;    \r
@@ -769,32 +769,32 @@ int cx25821_audio_upstream_init(struct cx25821_dev *dev, int channel_select)
     dev->_audio_lines_count  = LINES_PER_AUDIO_BUFFER; \r
     _line_size          = AUDIO_LINE_SIZE; \r
 \r
-        \r
+       \r
     if( dev->input_audiofilename )\r
     {\r
-        str_length = strlen(dev->input_audiofilename);\r
-        dev->_audiofilename = (char *) kmalloc(str_length + 1, GFP_KERNEL);        \r
-        \r
-        if( !dev->_audiofilename )\r
-            goto error;\r
-            \r
-        memcpy(dev->_audiofilename, dev->input_audiofilename, str_length + 1);  \r
-\r
-        //Default if filename is empty string\r
-        if( strcmp(dev->input_audiofilename,"") == 0)        \r
-        {\r
-            dev->_audiofilename = "/root/audioGOOD.wav";    \r
-        }         \r
+       str_length = strlen(dev->input_audiofilename);\r
+       dev->_audiofilename = (char *) kmalloc(str_length + 1, GFP_KERNEL);        \r
+       \r
+       if( !dev->_audiofilename )\r
+           goto error;\r
+           \r
+       memcpy(dev->_audiofilename, dev->input_audiofilename, str_length + 1);  \r
+\r
+       //Default if filename is empty string\r
+       if( strcmp(dev->input_audiofilename,"") == 0)        \r
+       {\r
+           dev->_audiofilename = "/root/audioGOOD.wav";    \r
+       }         \r
     }\r
     else\r
     {\r
-        str_length = strlen(_defaultAudioName);       \r
-        dev->_audiofilename = (char *) kmalloc(str_length + 1, GFP_KERNEL);        \r
-        \r
-        if( !dev->_audiofilename )\r
-            goto error;\r
-            \r
-        memcpy(dev->_audiofilename, _defaultAudioName, str_length + 1);\r
+       str_length = strlen(_defaultAudioName);       \r
+       dev->_audiofilename = (char *) kmalloc(str_length + 1, GFP_KERNEL);        \r
+       \r
+       if( !dev->_audiofilename )\r
+           goto error;\r
+           \r
+       memcpy(dev->_audiofilename, _defaultAudioName, str_length + 1);\r
     }  \r
      \r
     \r
@@ -822,4 +822,3 @@ error:
     \r
     return err;\r
 }\r
-       
index a8e4dce..4a60be2 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -40,37 +40,37 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
     dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
 
     if (!list_empty(&q->queued)) {
-        list_add_tail(&buf->vb.queue, &q->queued);
-        buf->vb.state = VIDEOBUF_QUEUED;
-        dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
+       list_add_tail(&buf->vb.queue, &q->queued);
+       buf->vb.state = VIDEOBUF_QUEUED;
+       dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
 
     } else if (list_empty(&q->active)) {
-        list_add_tail(&buf->vb.queue, &q->active);
-        cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH11]);
-        buf->vb.state = VIDEOBUF_ACTIVE;
-        buf->count    = q->count++;
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
-                                buf, buf->vb. i, buf->count, q->count);
+       list_add_tail(&buf->vb.queue, &q->active);
+       cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH11]);
+       buf->vb.state = VIDEOBUF_ACTIVE;
+       buf->count    = q->count++;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
+                               buf, buf->vb. i, buf->count, q->count);
     } else {
-        prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
-        if (prev->vb.width  == buf->vb.width  &&
-            prev->vb.height == buf->vb.height &&
-            prev->fmt       == buf->fmt) {
-            list_add_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-
-            /* 64 bit bits 63-32 */
-            prev->risc.jmp[2] = cpu_to_le32(0);
-            dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
-
-        } else {
-            list_add_tail(&buf->vb.queue, &q->queued);
-            buf->vb.state = VIDEOBUF_QUEUED;
-            dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
-        }
+       prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
+       if (prev->vb.width  == buf->vb.width  &&
+           prev->vb.height == buf->vb.height &&
+           prev->fmt       == buf->fmt) {
+           list_add_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+
+           /* 64 bit bits 63-32 */
+           prev->risc.jmp[2] = cpu_to_le32(0);
+           dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
+
+       } else {
+           list_add_tail(&buf->vb.queue, &q->queued);
+           buf->vb.state = VIDEOBUF_QUEUED;
+           dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
+       }
     }
 
     if (list_empty(&q->active))
@@ -99,18 +99,18 @@ static int video_open(struct file *file)
     lock_kernel();
     list_for_each(list, &cx25821_devlist)
     {
-        h = list_entry(list, struct cx25821_dev, devlist);
+       h = list_entry(list, struct cx25821_dev, devlist);
 
-        if (h->video_dev[SRAM_CH11] && h->video_dev[SRAM_CH11]->minor == minor)
-        {
-            dev  = h;
-            type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        }
+       if (h->video_dev[SRAM_CH11] && h->video_dev[SRAM_CH11]->minor == minor)
+       {
+           dev  = h;
+           type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       }
     }
 
     if (NULL == dev) {
-        unlock_kernel();
-        return -ENODEV;
+       unlock_kernel();
+       return -ENODEV;
     }
 
     printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
@@ -118,8 +118,8 @@ static int video_open(struct file *file)
     /* allocate + initialize per filehandle data */
     fh = kzalloc(sizeof(*fh), GFP_KERNEL);
     if (NULL == fh) {
-        unlock_kernel();
-        return -ENOMEM;
+       unlock_kernel();
+       return -ENOMEM;
     }
 
     file->private_data = fh;
@@ -128,21 +128,21 @@ static int video_open(struct file *file)
     fh->width    = 720;
 
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
-        fh->height = 576;
+       fh->height = 576;
     else
-        fh->height = 480;
-        
+       fh->height = 480;
+
     dev->channel_opened = 10;
     fh->fmt             = format_by_fourcc(V4L2_PIX_FMT_YUYV);
 
     v4l2_prio_open(&dev->prio,&fh->prio);
 
     videobuf_queue_sg_init(&fh->vidq, &cx25821_video_qops,
-                &dev->pci->dev, &dev->slock,
-                V4L2_BUF_TYPE_VIDEO_CAPTURE,
-                V4L2_FIELD_INTERLACED,
-                sizeof(struct cx25821_buffer),
-                fh);
+               &dev->pci->dev, &dev->slock,
+               V4L2_BUF_TYPE_VIDEO_CAPTURE,
+               V4L2_FIELD_INTERLACED,
+               sizeof(struct cx25821_buffer),
+               fh);
 
     dprintk(1, "post videobuf_queue_init()\n");
     unlock_kernel();
@@ -156,15 +156,15 @@ static ssize_t video_read(struct file *file, char __user *data, size_t count, lo
 
     switch (fh->type)
     {
-        case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-            if (res_locked(fh->dev, RESOURCE_VIDEO11))
-                return -EBUSY;
+       case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+           if (res_locked(fh->dev, RESOURCE_VIDEO11))
+               return -EBUSY;
 
-            return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
+           return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
 
-        default:
-            BUG();
-            return 0;
+       default:
+           BUG();
+           return 0;
     }
 }
 
@@ -174,21 +174,21 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
     struct cx25821_buffer *buf;
 
     if (res_check(fh, RESOURCE_VIDEO11)) {
-        /* streaming capture */
-        if (list_empty(&fh->vidq.stream))
-            return POLLERR;
-        buf = list_entry(fh->vidq.stream.next,
-            struct cx25821_buffer, vb.stream);
+       /* streaming capture */
+       if (list_empty(&fh->vidq.stream))
+           return POLLERR;
+       buf = list_entry(fh->vidq.stream.next,
+           struct cx25821_buffer, vb.stream);
     } else {
-        /* read() capture */
-        buf = (struct cx25821_buffer *)fh->vidq.read_buf;
-        if (NULL == buf)
-            return POLLERR;
+       /* read() capture */
+       buf = (struct cx25821_buffer *)fh->vidq.read_buf;
+       if (NULL == buf)
+           return POLLERR;
     }
 
     poll_wait(file, &buf->vb.done, wait);
     if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)
-        return POLLIN|POLLRDNORM;
+       return POLLIN|POLLRDNORM;
     return 0;
 }
 
@@ -199,17 +199,17 @@ static int video_release(struct file *file)
     struct cx25821_dev *dev = fh->dev;
 
     //stop the risc engine and fifo
-    //cx_write(channel11->dma_ctl, 0); 
+    //cx_write(channel11->dma_ctl, 0);
 
     /* stop video capture */
     if (res_check(fh, RESOURCE_VIDEO11)) {
-        videobuf_queue_cancel(&fh->vidq);
-        res_free(dev, fh, RESOURCE_VIDEO11);
+       videobuf_queue_cancel(&fh->vidq);
+       res_free(dev, fh, RESOURCE_VIDEO11);
     }
 
     if (fh->vidq.read_buf) {
-        buffer_release(&fh->vidq, fh->vidq.read_buf);
-        kfree(fh->vidq.read_buf);
+       buffer_release(&fh->vidq, fh->vidq.read_buf);
+       kfree(fh->vidq.read_buf);
     }
 
     videobuf_mmap_free(&fh->vidq);
@@ -230,17 +230,17 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
     if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(i != fh->type))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO11))))
     {
-        return -EBUSY;
+       return -EBUSY;
     }
 
     return videobuf_streamon(get_queue(fh));
@@ -253,14 +253,14 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
     int err, res;
 
     if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-        return -EINVAL;
+       return -EINVAL;
     if (i != fh->type)
-        return -EINVAL;
+       return -EINVAL;
 
     res = get_resource(fh, RESOURCE_VIDEO11);
     err = videobuf_streamoff(get_queue(fh));
     if (err < 0)
-        return err;
+       return err;
     res_free(dev, fh, res);
     return 0;
 }
@@ -272,18 +272,18 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     int err;
 
-    if (fh) 
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     dprintk(2, "%s()\n", __func__);
     err = vidioc_try_fmt_vid_cap(file, priv, f);
 
     if (0 != err)
-        return err;
+       return err;
     fh->fmt        = format_by_fourcc(f->fmt.pix.pixelformat);
     fh->width      = f->fmt.pix.width;
     fh->height     = f->fmt.pix.height;
@@ -293,30 +293,30 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     return 0;
 }
 
-static long video_ioctl_upstream11(struct file *file, unsigned int cmd, unsigned long arg)   
-{   
+static long video_ioctl_upstream11(struct file *file, unsigned int cmd, unsigned long arg)
+{
     struct cx25821_fh *fh = file->private_data;
     struct cx25821_dev *dev = fh->dev;
     int command = 0;
     struct upstream_user_struct *data_from_user;
 
-    
+
     data_from_user = (struct upstream_user_struct *)arg;
-    
+
     if( !data_from_user )
     {
-        printk("cx25821 in %s(): Upstream data is INVALID. Returning.\n", __func__);
-        return 0;
+       printk("cx25821 in %s(): Upstream data is INVALID. Returning.\n", __func__);
+       return 0;
     }
-    
+
     command = data_from_user->command;
-    
+
     if( command != UPSTREAM_START_AUDIO && command != UPSTREAM_STOP_AUDIO )
     {
-        return 0;
+       return 0;
     }
-        
-        
+
+
     dev->input_filename      = data_from_user->input_filename;
     dev->input_audiofilename = data_from_user->input_filename;
     dev->vid_stdname         = data_from_user->vid_stdname;
@@ -324,18 +324,18 @@ static long video_ioctl_upstream11(struct file *file, unsigned int cmd, unsigned
     dev->channel_select      = data_from_user->channel_select;
     dev->command             = data_from_user->command;
 
-   
+
     switch(command)
-    {           
-        case UPSTREAM_START_AUDIO:
-            cx25821_start_upstream_audio(dev, data_from_user);
-            break;
-
-        case UPSTREAM_STOP_AUDIO:
-            cx25821_stop_upstream_audio(dev);
-            break;            
+    {
+       case UPSTREAM_START_AUDIO:
+           cx25821_start_upstream_audio(dev, data_from_user);
+           break;
+
+       case UPSTREAM_STOP_AUDIO:
+           cx25821_stop_upstream_audio(dev);
+           break;
     }
-       
+
     return 0;
 }
 
@@ -366,11 +366,11 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
     struct cx25821_dev *dev = fh->dev;
     int err;
 
-    if (fh) 
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
     return 0;
 }
@@ -382,7 +382,7 @@ static const struct v4l2_file_operations video_fops = {
     .read          = video_read,
     .poll          = video_poll,
     .mmap          = video_mmap,
-    .ioctl         = video_ioctl_upstream11,  
+    .ioctl         = video_ioctl_upstream11,
 };
 
 static const struct v4l2_ioctl_ops video_ioctl_ops = {
index eaaa567..f8f3c32 100644 (file)
 #include "cx25821.h"
 #include "tuner-xc2028.h"
 
-// board config info                                                  
+// board config info
 
 struct cx25821_board cx25821_boards[] = {
        [UNKNOWN_BOARD] = {
                .name           = "UNKNOWN/GENERIC",
-               // Ensure safe default for unknown boards 
+               // Ensure safe default for unknown boards
                .clk_freq       = 0,
        },
 
@@ -43,8 +43,8 @@ struct cx25821_board cx25821_boards[] = {
                .name               = "CX25821",
                .portb              = CX25821_RAW,
                .portc              = CX25821_264,\r
-        .input[0].type  = CX25821_VMUX_COMPOSITE,
-       },      
+       .input[0].type  = CX25821_VMUX_COMPOSITE,
+       },
 
 };
 
@@ -63,7 +63,7 @@ void cx25821_card_setup(struct cx25821_dev *dev)
 {
        static u8 eeprom[256];
 
-       if (dev->i2c_bus[0].i2c_rc == 0) 
+       if (dev->i2c_bus[0].i2c_rc == 0)
        {
                dev->i2c_bus[0].i2c_client.addr = 0xa0 >> 1;
                tveeprom_read(&dev->i2c_bus[0].i2c_client, eeprom, sizeof(eeprom));
index adca7af..6f2970c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -49,271 +49,271 @@ LIST_HEAD(cx25821_devlist);
 
 struct sram_channel cx25821_sram_channels[] = {
     [SRAM_CH00] = {
-        .i          = SRAM_CH00,
-        .name       = "VID A",
-        .cmds_start = VID_A_DOWN_CMDS,
-        .ctrl_start = VID_A_IQ,
-        .cdt        = VID_A_CDT,
-        .fifo_start = VID_A_DOWN_CLUSTER_1, 
-        .fifo_size  = (VID_CLUSTER_SIZE<<2), 
-        .ptr1_reg   = DMA1_PTR1,
-        .ptr2_reg   = DMA1_PTR2,
-        .cnt1_reg   = DMA1_CNT1,
-        .cnt2_reg   = DMA1_CNT2,
-        .int_msk    = VID_A_INT_MSK,
-        .int_stat   = VID_A_INT_STAT,
-        .int_mstat  = VID_A_INT_MSTAT,
-        .dma_ctl    = VID_DST_A_DMA_CTL,
-        .gpcnt_ctl  = VID_DST_A_GPCNT_CTL,
-        .gpcnt      = VID_DST_A_GPCNT,
-        .vip_ctl    = VID_DST_A_VIP_CTL,
-        .pix_frmt   = VID_DST_A_PIX_FRMT,   
+       .i          = SRAM_CH00,
+       .name       = "VID A",
+       .cmds_start = VID_A_DOWN_CMDS,
+       .ctrl_start = VID_A_IQ,
+       .cdt        = VID_A_CDT,
+       .fifo_start = VID_A_DOWN_CLUSTER_1,
+       .fifo_size  = (VID_CLUSTER_SIZE<<2),
+       .ptr1_reg   = DMA1_PTR1,
+       .ptr2_reg   = DMA1_PTR2,
+       .cnt1_reg   = DMA1_CNT1,
+       .cnt2_reg   = DMA1_CNT2,
+       .int_msk    = VID_A_INT_MSK,
+       .int_stat   = VID_A_INT_STAT,
+       .int_mstat  = VID_A_INT_MSTAT,
+       .dma_ctl    = VID_DST_A_DMA_CTL,
+       .gpcnt_ctl  = VID_DST_A_GPCNT_CTL,
+       .gpcnt      = VID_DST_A_GPCNT,
+       .vip_ctl    = VID_DST_A_VIP_CTL,
+       .pix_frmt   = VID_DST_A_PIX_FRMT,
     },
 
     [SRAM_CH01] = {
-        .i          = SRAM_CH01,
-        .name       = "VID B",
-        .cmds_start = VID_B_DOWN_CMDS,
-        .ctrl_start = VID_B_IQ, 
-        .cdt        = VID_B_CDT, 
-        .fifo_start = VID_B_DOWN_CLUSTER_1, 
-        .fifo_size  = (VID_CLUSTER_SIZE<<2), 
-        .ptr1_reg   = DMA2_PTR1,
-        .ptr2_reg   = DMA2_PTR2,
-        .cnt1_reg   = DMA2_CNT1,
-        .cnt2_reg   = DMA2_CNT2,
-                .int_msk    = VID_B_INT_MSK,
-        .int_stat   = VID_B_INT_STAT,
-        .int_mstat  = VID_B_INT_MSTAT,
-        .dma_ctl    = VID_DST_B_DMA_CTL,
-        .gpcnt_ctl  = VID_DST_B_GPCNT_CTL,
-        .gpcnt      = VID_DST_B_GPCNT,
-        .vip_ctl    = VID_DST_B_VIP_CTL,
-        .pix_frmt   = VID_DST_B_PIX_FRMT,
+       .i          = SRAM_CH01,
+       .name       = "VID B",
+       .cmds_start = VID_B_DOWN_CMDS,
+       .ctrl_start = VID_B_IQ,
+       .cdt        = VID_B_CDT,
+       .fifo_start = VID_B_DOWN_CLUSTER_1,
+       .fifo_size  = (VID_CLUSTER_SIZE<<2),
+       .ptr1_reg   = DMA2_PTR1,
+       .ptr2_reg   = DMA2_PTR2,
+       .cnt1_reg   = DMA2_CNT1,
+       .cnt2_reg   = DMA2_CNT2,
+               .int_msk    = VID_B_INT_MSK,
+       .int_stat   = VID_B_INT_STAT,
+       .int_mstat  = VID_B_INT_MSTAT,
+       .dma_ctl    = VID_DST_B_DMA_CTL,
+       .gpcnt_ctl  = VID_DST_B_GPCNT_CTL,
+       .gpcnt      = VID_DST_B_GPCNT,
+       .vip_ctl    = VID_DST_B_VIP_CTL,
+       .pix_frmt   = VID_DST_B_PIX_FRMT,
     },
-    
+
     [SRAM_CH02] = {
-        .i              = SRAM_CH02,
-        .name           = "VID C",
-        .cmds_start     = VID_C_DOWN_CMDS,
-        .ctrl_start     = VID_C_IQ,
-        .cdt            = VID_C_CDT,
-        .fifo_start     = VID_C_DOWN_CLUSTER_1,
-        .fifo_size      = (VID_CLUSTER_SIZE<<2),  
-        .ptr1_reg       = DMA3_PTR1,
-        .ptr2_reg       = DMA3_PTR2,
-        .cnt1_reg       = DMA3_CNT1,
-        .cnt2_reg       = DMA3_CNT2,
-        .int_msk        = VID_C_INT_MSK,
-        .int_stat       = VID_C_INT_STAT,
-        .int_mstat      = VID_C_INT_MSTAT,
-        .dma_ctl        = VID_DST_C_DMA_CTL,
-        .gpcnt_ctl      = VID_DST_C_GPCNT_CTL,
-        .gpcnt          = VID_DST_C_GPCNT,
-        .vip_ctl        = VID_DST_C_VIP_CTL,
-        .pix_frmt       = VID_DST_C_PIX_FRMT,
+       .i              = SRAM_CH02,
+       .name           = "VID C",
+       .cmds_start     = VID_C_DOWN_CMDS,
+       .ctrl_start     = VID_C_IQ,
+       .cdt            = VID_C_CDT,
+       .fifo_start     = VID_C_DOWN_CLUSTER_1,
+       .fifo_size      = (VID_CLUSTER_SIZE<<2),
+       .ptr1_reg       = DMA3_PTR1,
+       .ptr2_reg       = DMA3_PTR2,
+       .cnt1_reg       = DMA3_CNT1,
+       .cnt2_reg       = DMA3_CNT2,
+       .int_msk        = VID_C_INT_MSK,
+       .int_stat       = VID_C_INT_STAT,
+       .int_mstat      = VID_C_INT_MSTAT,
+       .dma_ctl        = VID_DST_C_DMA_CTL,
+       .gpcnt_ctl      = VID_DST_C_GPCNT_CTL,
+       .gpcnt          = VID_DST_C_GPCNT,
+       .vip_ctl        = VID_DST_C_VIP_CTL,
+       .pix_frmt       = VID_DST_C_PIX_FRMT,
     },
-    
+
     [SRAM_CH03] = {
-        .i              = SRAM_CH03,
-        .name           = "VID D",
-        .cmds_start     = VID_D_DOWN_CMDS,
-        .ctrl_start     = VID_D_IQ,
-        .cdt            = VID_D_CDT,
-        .fifo_start     = VID_D_DOWN_CLUSTER_1,
-        .fifo_size      = (VID_CLUSTER_SIZE<<2), 
-        .ptr1_reg       = DMA4_PTR1,
-        .ptr2_reg       = DMA4_PTR2,
-        .cnt1_reg       = DMA4_CNT1,
-        .cnt2_reg       = DMA4_CNT2,
-        .int_msk        = VID_D_INT_MSK,
-        .int_stat       = VID_D_INT_STAT,
-        .int_mstat      = VID_D_INT_MSTAT,
-        .dma_ctl        = VID_DST_D_DMA_CTL,
-        .gpcnt_ctl      = VID_DST_D_GPCNT_CTL,
-        .gpcnt          = VID_DST_D_GPCNT,
-        .vip_ctl        = VID_DST_D_VIP_CTL,
-        .pix_frmt       = VID_DST_D_PIX_FRMT,
+       .i              = SRAM_CH03,
+       .name           = "VID D",
+       .cmds_start     = VID_D_DOWN_CMDS,
+       .ctrl_start     = VID_D_IQ,
+       .cdt            = VID_D_CDT,
+       .fifo_start     = VID_D_DOWN_CLUSTER_1,
+       .fifo_size      = (VID_CLUSTER_SIZE<<2),
+       .ptr1_reg       = DMA4_PTR1,
+       .ptr2_reg       = DMA4_PTR2,
+       .cnt1_reg       = DMA4_CNT1,
+       .cnt2_reg       = DMA4_CNT2,
+       .int_msk        = VID_D_INT_MSK,
+       .int_stat       = VID_D_INT_STAT,
+       .int_mstat      = VID_D_INT_MSTAT,
+       .dma_ctl        = VID_DST_D_DMA_CTL,
+       .gpcnt_ctl      = VID_DST_D_GPCNT_CTL,
+       .gpcnt          = VID_DST_D_GPCNT,
+       .vip_ctl        = VID_DST_D_VIP_CTL,
+       .pix_frmt       = VID_DST_D_PIX_FRMT,
     },
-    
+
     [SRAM_CH04] = {
-        .i              = SRAM_CH04,
-        .name           = "VID E",
-        .cmds_start     = VID_E_DOWN_CMDS,
-        .ctrl_start     = VID_E_IQ,
-        .cdt            = VID_E_CDT,
-        .fifo_start     = VID_E_DOWN_CLUSTER_1,
-        .fifo_size      = (VID_CLUSTER_SIZE<<2), 
-        .ptr1_reg       = DMA5_PTR1,
-        .ptr2_reg       = DMA5_PTR2,
-        .cnt1_reg       = DMA5_CNT1,
-        .cnt2_reg       = DMA5_CNT2,
-        .int_msk        = VID_E_INT_MSK,
-        .int_stat       = VID_E_INT_STAT,
-        .int_mstat      = VID_E_INT_MSTAT,
-        .dma_ctl        = VID_DST_E_DMA_CTL,
-        .gpcnt_ctl      = VID_DST_E_GPCNT_CTL,
-        .gpcnt          = VID_DST_E_GPCNT,
-        .vip_ctl        = VID_DST_E_VIP_CTL,
-        .pix_frmt       = VID_DST_E_PIX_FRMT,
+       .i              = SRAM_CH04,
+       .name           = "VID E",
+       .cmds_start     = VID_E_DOWN_CMDS,
+       .ctrl_start     = VID_E_IQ,
+       .cdt            = VID_E_CDT,
+       .fifo_start     = VID_E_DOWN_CLUSTER_1,
+       .fifo_size      = (VID_CLUSTER_SIZE<<2),
+       .ptr1_reg       = DMA5_PTR1,
+       .ptr2_reg       = DMA5_PTR2,
+       .cnt1_reg       = DMA5_CNT1,
+       .cnt2_reg       = DMA5_CNT2,
+       .int_msk        = VID_E_INT_MSK,
+       .int_stat       = VID_E_INT_STAT,
+       .int_mstat      = VID_E_INT_MSTAT,
+       .dma_ctl        = VID_DST_E_DMA_CTL,
+       .gpcnt_ctl      = VID_DST_E_GPCNT_CTL,
+       .gpcnt          = VID_DST_E_GPCNT,
+       .vip_ctl        = VID_DST_E_VIP_CTL,
+       .pix_frmt       = VID_DST_E_PIX_FRMT,
     },
-    
+
     [SRAM_CH05] = {
-        .i              = SRAM_CH05,
-        .name           = "VID F",
-        .cmds_start     = VID_F_DOWN_CMDS,
-        .ctrl_start     = VID_F_IQ,
-        .cdt            = VID_F_CDT,
-        .fifo_start     = VID_F_DOWN_CLUSTER_1,
-        .fifo_size      = (VID_CLUSTER_SIZE<<2), 
-        .ptr1_reg       = DMA6_PTR1,
-        .ptr2_reg       = DMA6_PTR2,
-        .cnt1_reg       = DMA6_CNT1,
-        .cnt2_reg       = DMA6_CNT2,
-        .int_msk        = VID_F_INT_MSK,
-        .int_stat       = VID_F_INT_STAT,
-        .int_mstat      = VID_F_INT_MSTAT,
-        .dma_ctl        = VID_DST_F_DMA_CTL,
-        .gpcnt_ctl      = VID_DST_F_GPCNT_CTL,
-        .gpcnt          = VID_DST_F_GPCNT,
-        .vip_ctl        = VID_DST_F_VIP_CTL,
-        .pix_frmt       = VID_DST_F_PIX_FRMT,
+       .i              = SRAM_CH05,
+       .name           = "VID F",
+       .cmds_start     = VID_F_DOWN_CMDS,
+       .ctrl_start     = VID_F_IQ,
+       .cdt            = VID_F_CDT,
+       .fifo_start     = VID_F_DOWN_CLUSTER_1,
+       .fifo_size      = (VID_CLUSTER_SIZE<<2),
+       .ptr1_reg       = DMA6_PTR1,
+       .ptr2_reg       = DMA6_PTR2,
+       .cnt1_reg       = DMA6_CNT1,
+       .cnt2_reg       = DMA6_CNT2,
+       .int_msk        = VID_F_INT_MSK,
+       .int_stat       = VID_F_INT_STAT,
+       .int_mstat      = VID_F_INT_MSTAT,
+       .dma_ctl        = VID_DST_F_DMA_CTL,
+       .gpcnt_ctl      = VID_DST_F_GPCNT_CTL,
+       .gpcnt          = VID_DST_F_GPCNT,
+       .vip_ctl        = VID_DST_F_VIP_CTL,
+       .pix_frmt       = VID_DST_F_PIX_FRMT,
     },
-    
+
     [SRAM_CH06] = {
-        .i              = SRAM_CH06,
-        .name           = "VID G",
-        .cmds_start     = VID_G_DOWN_CMDS,
-        .ctrl_start     = VID_G_IQ,
-        .cdt            = VID_G_CDT,
-        .fifo_start     = VID_G_DOWN_CLUSTER_1,
-        .fifo_size      = (VID_CLUSTER_SIZE<<2), 
-        .ptr1_reg       = DMA7_PTR1,
-        .ptr2_reg       = DMA7_PTR2,
-        .cnt1_reg       = DMA7_CNT1,
-        .cnt2_reg       = DMA7_CNT2,
-        .int_msk        = VID_G_INT_MSK,
-        .int_stat       = VID_G_INT_STAT,
-        .int_mstat      = VID_G_INT_MSTAT,
-        .dma_ctl        = VID_DST_G_DMA_CTL,
-        .gpcnt_ctl      = VID_DST_G_GPCNT_CTL,
-        .gpcnt          = VID_DST_G_GPCNT,
-        .vip_ctl        = VID_DST_G_VIP_CTL,
-        .pix_frmt       = VID_DST_G_PIX_FRMT,
+       .i              = SRAM_CH06,
+       .name           = "VID G",
+       .cmds_start     = VID_G_DOWN_CMDS,
+       .ctrl_start     = VID_G_IQ,
+       .cdt            = VID_G_CDT,
+       .fifo_start     = VID_G_DOWN_CLUSTER_1,
+       .fifo_size      = (VID_CLUSTER_SIZE<<2),
+       .ptr1_reg       = DMA7_PTR1,
+       .ptr2_reg       = DMA7_PTR2,
+       .cnt1_reg       = DMA7_CNT1,
+       .cnt2_reg       = DMA7_CNT2,
+       .int_msk        = VID_G_INT_MSK,
+       .int_stat       = VID_G_INT_STAT,
+       .int_mstat      = VID_G_INT_MSTAT,
+       .dma_ctl        = VID_DST_G_DMA_CTL,
+       .gpcnt_ctl      = VID_DST_G_GPCNT_CTL,
+       .gpcnt          = VID_DST_G_GPCNT,
+       .vip_ctl        = VID_DST_G_VIP_CTL,
+       .pix_frmt       = VID_DST_G_PIX_FRMT,
     },
-    
+
     [SRAM_CH07] = {
-        .i              = SRAM_CH07,
-        .name           = "VID H",
-        .cmds_start     = VID_H_DOWN_CMDS,
-        .ctrl_start     = VID_H_IQ,
-        .cdt            = VID_H_CDT,
-        .fifo_start     = VID_H_DOWN_CLUSTER_1,
-        .fifo_size      = (VID_CLUSTER_SIZE<<2), 
-        .ptr1_reg       = DMA8_PTR1,
-        .ptr2_reg       = DMA8_PTR2,
-        .cnt1_reg       = DMA8_CNT1,
-        .cnt2_reg       = DMA8_CNT2,
-        .int_msk        = VID_H_INT_MSK,
-        .int_stat       = VID_H_INT_STAT,
-        .int_mstat      = VID_H_INT_MSTAT,
-        .dma_ctl        = VID_DST_H_DMA_CTL,
-        .gpcnt_ctl      = VID_DST_H_GPCNT_CTL,
-        .gpcnt          = VID_DST_H_GPCNT,
-        .vip_ctl        = VID_DST_H_VIP_CTL,
-        .pix_frmt       = VID_DST_H_PIX_FRMT,
+       .i              = SRAM_CH07,
+       .name           = "VID H",
+       .cmds_start     = VID_H_DOWN_CMDS,
+       .ctrl_start     = VID_H_IQ,
+       .cdt            = VID_H_CDT,
+       .fifo_start     = VID_H_DOWN_CLUSTER_1,
+       .fifo_size      = (VID_CLUSTER_SIZE<<2),
+       .ptr1_reg       = DMA8_PTR1,
+       .ptr2_reg       = DMA8_PTR2,
+       .cnt1_reg       = DMA8_CNT1,
+       .cnt2_reg       = DMA8_CNT2,
+       .int_msk        = VID_H_INT_MSK,
+       .int_stat       = VID_H_INT_STAT,
+       .int_mstat      = VID_H_INT_MSTAT,
+       .dma_ctl        = VID_DST_H_DMA_CTL,
+       .gpcnt_ctl      = VID_DST_H_GPCNT_CTL,
+       .gpcnt          = VID_DST_H_GPCNT,
+       .vip_ctl        = VID_DST_H_VIP_CTL,
+       .pix_frmt       = VID_DST_H_PIX_FRMT,
     },
-    
+
     [SRAM_CH08] = {
-        .name       = "audio from",
-        .cmds_start = AUD_A_DOWN_CMDS,          
-        .ctrl_start = AUD_A_IQ,                 
-        .cdt        = AUD_A_CDT,        
-        .fifo_start = AUD_A_DOWN_CLUSTER_1, 
-        .fifo_size  = AUDIO_CLUSTER_SIZE * 3,       
-        .ptr1_reg   = DMA17_PTR1,                   
-        .ptr2_reg   = DMA17_PTR2,
-        .cnt1_reg   = DMA17_CNT1,
-        .cnt2_reg   = DMA17_CNT2,
-    },  
-    
+       .name       = "audio from",
+       .cmds_start = AUD_A_DOWN_CMDS,
+       .ctrl_start = AUD_A_IQ,
+       .cdt        = AUD_A_CDT,
+       .fifo_start = AUD_A_DOWN_CLUSTER_1,
+       .fifo_size  = AUDIO_CLUSTER_SIZE * 3,
+       .ptr1_reg   = DMA17_PTR1,
+       .ptr2_reg   = DMA17_PTR2,
+       .cnt1_reg   = DMA17_CNT1,
+       .cnt2_reg   = DMA17_CNT2,
+    },
+
     [SRAM_CH09] = {
-        .i              = SRAM_CH09,
-        .name           = "VID Upstream I",
-        .cmds_start     = VID_I_UP_CMDS,
-        .ctrl_start     = VID_I_IQ,
-        .cdt            = VID_I_CDT,
-        .fifo_start     = VID_I_UP_CLUSTER_1,
-        .fifo_size      = (VID_CLUSTER_SIZE<<2),        
-        .ptr1_reg       = DMA15_PTR1,
-        .ptr2_reg       = DMA15_PTR2,
-        .cnt1_reg       = DMA15_CNT1,
-        .cnt2_reg       = DMA15_CNT2,
-        .int_msk        = VID_I_INT_MSK,
-        .int_stat       = VID_I_INT_STAT,
-        .int_mstat      = VID_I_INT_MSTAT,
-        .dma_ctl        = VID_SRC_I_DMA_CTL,
-        .gpcnt_ctl      = VID_SRC_I_GPCNT_CTL,
-        .gpcnt          = VID_SRC_I_GPCNT,
-        
-        .vid_fmt_ctl    = VID_SRC_I_FMT_CTL,
-        .vid_active_ctl1= VID_SRC_I_ACTIVE_CTL1,
-        .vid_active_ctl2= VID_SRC_I_ACTIVE_CTL2,
-        .vid_cdt_size   = VID_SRC_I_CDT_SZ,
-        .irq_bit        = 8,
-    },    
+       .i              = SRAM_CH09,
+       .name           = "VID Upstream I",
+       .cmds_start     = VID_I_UP_CMDS,
+       .ctrl_start     = VID_I_IQ,
+       .cdt            = VID_I_CDT,
+       .fifo_start     = VID_I_UP_CLUSTER_1,
+       .fifo_size      = (VID_CLUSTER_SIZE<<2),
+       .ptr1_reg       = DMA15_PTR1,
+       .ptr2_reg       = DMA15_PTR2,
+       .cnt1_reg       = DMA15_CNT1,
+       .cnt2_reg       = DMA15_CNT2,
+       .int_msk        = VID_I_INT_MSK,
+       .int_stat       = VID_I_INT_STAT,
+       .int_mstat      = VID_I_INT_MSTAT,
+       .dma_ctl        = VID_SRC_I_DMA_CTL,
+       .gpcnt_ctl      = VID_SRC_I_GPCNT_CTL,
+       .gpcnt          = VID_SRC_I_GPCNT,
+
+       .vid_fmt_ctl    = VID_SRC_I_FMT_CTL,
+       .vid_active_ctl1= VID_SRC_I_ACTIVE_CTL1,
+       .vid_active_ctl2= VID_SRC_I_ACTIVE_CTL2,
+       .vid_cdt_size   = VID_SRC_I_CDT_SZ,
+       .irq_bit        = 8,
+    },
 
     [SRAM_CH10] = {
-        .i              = SRAM_CH10,
-        .name           = "VID Upstream J",
-        .cmds_start     = VID_J_UP_CMDS,
-        .ctrl_start     = VID_J_IQ,
-        .cdt            = VID_J_CDT,
-        .fifo_start     = VID_J_UP_CLUSTER_1,
-        .fifo_size      = (VID_CLUSTER_SIZE<<2), 
-        .ptr1_reg       = DMA16_PTR1,
-        .ptr2_reg       = DMA16_PTR2,
-        .cnt1_reg       = DMA16_CNT1,
-        .cnt2_reg       = DMA16_CNT2,
-        .int_msk        = VID_J_INT_MSK,
-        .int_stat       = VID_J_INT_STAT,
-        .int_mstat      = VID_J_INT_MSTAT,
-        .dma_ctl        = VID_SRC_J_DMA_CTL,
-        .gpcnt_ctl      = VID_SRC_J_GPCNT_CTL,
-        .gpcnt          = VID_SRC_J_GPCNT,
-                                
-        .vid_fmt_ctl    = VID_SRC_J_FMT_CTL,
-        .vid_active_ctl1= VID_SRC_J_ACTIVE_CTL1,
-        .vid_active_ctl2= VID_SRC_J_ACTIVE_CTL2,
-        .vid_cdt_size   = VID_SRC_J_CDT_SZ,
-        .irq_bit        = 9,
+       .i              = SRAM_CH10,
+       .name           = "VID Upstream J",
+       .cmds_start     = VID_J_UP_CMDS,
+       .ctrl_start     = VID_J_IQ,
+       .cdt            = VID_J_CDT,
+       .fifo_start     = VID_J_UP_CLUSTER_1,
+       .fifo_size      = (VID_CLUSTER_SIZE<<2),
+       .ptr1_reg       = DMA16_PTR1,
+       .ptr2_reg       = DMA16_PTR2,
+       .cnt1_reg       = DMA16_CNT1,
+       .cnt2_reg       = DMA16_CNT2,
+       .int_msk        = VID_J_INT_MSK,
+       .int_stat       = VID_J_INT_STAT,
+       .int_mstat      = VID_J_INT_MSTAT,
+       .dma_ctl        = VID_SRC_J_DMA_CTL,
+       .gpcnt_ctl      = VID_SRC_J_GPCNT_CTL,
+       .gpcnt          = VID_SRC_J_GPCNT,
+
+       .vid_fmt_ctl    = VID_SRC_J_FMT_CTL,
+       .vid_active_ctl1= VID_SRC_J_ACTIVE_CTL1,
+       .vid_active_ctl2= VID_SRC_J_ACTIVE_CTL2,
+       .vid_cdt_size   = VID_SRC_J_CDT_SZ,
+       .irq_bit        = 9,
     },
 
 
     [SRAM_CH11] = {
-        .i              = SRAM_CH11,
-        .name           = "Audio Upstream Channel B",
-        .cmds_start     = AUD_B_UP_CMDS,
-        .ctrl_start     = AUD_B_IQ,
-        .cdt            = AUD_B_CDT,
-        .fifo_start     = AUD_B_UP_CLUSTER_1,
-        .fifo_size      = (AUDIO_CLUSTER_SIZE*3), 
-        .ptr1_reg       = DMA22_PTR1,
-        .ptr2_reg       = DMA22_PTR2,
-        .cnt1_reg       = DMA22_CNT1,
-        .cnt2_reg       = DMA22_CNT2,
-        .int_msk        = AUD_B_INT_MSK,
-        .int_stat       = AUD_B_INT_STAT,
-        .int_mstat      = AUD_B_INT_MSTAT,
-        .dma_ctl        = AUD_INT_DMA_CTL,
-        .gpcnt_ctl      = AUD_B_GPCNT_CTL,
-        .gpcnt          = AUD_B_GPCNT,
-        .aud_length     = AUD_B_LNGTH,
-        .aud_cfg        = AUD_B_CFG,
-        .fld_aud_fifo_en    = FLD_AUD_SRC_B_FIFO_EN,
-        .fld_aud_risc_en    = FLD_AUD_SRC_B_RISC_EN,
-        .irq_bit        = 11,
-    },    
+       .i              = SRAM_CH11,
+       .name           = "Audio Upstream Channel B",
+       .cmds_start     = AUD_B_UP_CMDS,
+       .ctrl_start     = AUD_B_IQ,
+       .cdt            = AUD_B_CDT,
+       .fifo_start     = AUD_B_UP_CLUSTER_1,
+       .fifo_size      = (AUDIO_CLUSTER_SIZE*3),
+       .ptr1_reg       = DMA22_PTR1,
+       .ptr2_reg       = DMA22_PTR2,
+       .cnt1_reg       = DMA22_CNT1,
+       .cnt2_reg       = DMA22_CNT2,
+       .int_msk        = AUD_B_INT_MSK,
+       .int_stat       = AUD_B_INT_STAT,
+       .int_mstat      = AUD_B_INT_MSTAT,
+       .dma_ctl        = AUD_INT_DMA_CTL,
+       .gpcnt_ctl      = AUD_B_GPCNT_CTL,
+       .gpcnt          = AUD_B_GPCNT,
+       .aud_length     = AUD_B_LNGTH,
+       .aud_cfg        = AUD_B_CFG,
+       .fld_aud_fifo_en    = FLD_AUD_SRC_B_FIFO_EN,
+       .fld_aud_risc_en    = FLD_AUD_SRC_B_RISC_EN,
+       .irq_bit        = 11,
+    },
 };
 
 
@@ -325,7 +325,7 @@ struct sram_channel *channel4 = &cx25821_sram_channels[SRAM_CH04];
 struct sram_channel *channel5 = &cx25821_sram_channels[SRAM_CH05];
 struct sram_channel *channel6 = &cx25821_sram_channels[SRAM_CH06];
 struct sram_channel *channel7 = &cx25821_sram_channels[SRAM_CH07];
-struct sram_channel *channel9 = &cx25821_sram_channels[SRAM_CH09];  
+struct sram_channel *channel9 = &cx25821_sram_channels[SRAM_CH09];
 struct sram_channel *channel10 = &cx25821_sram_channels[SRAM_CH10];
 struct sram_channel *channel11 = &cx25821_sram_channels[SRAM_CH11];
 
@@ -334,40 +334,40 @@ struct cx25821_dmaqueue mpegq;
 static int cx25821_risc_decode(u32 risc)
 {
     static char *instr[16] = {
-        [RISC_SYNC    >> 28] = "sync",
-        [RISC_WRITE   >> 28] = "write",
-        [RISC_WRITEC  >> 28] = "writec",
-        [RISC_READ    >> 28] = "read",
-        [RISC_READC   >> 28] = "readc",
-        [RISC_JUMP    >> 28] = "jump",
-        [RISC_SKIP    >> 28] = "skip",
-        [RISC_WRITERM >> 28] = "writerm",
-        [RISC_WRITECM >> 28] = "writecm",
-        [RISC_WRITECR >> 28] = "writecr",
+       [RISC_SYNC    >> 28] = "sync",
+       [RISC_WRITE   >> 28] = "write",
+       [RISC_WRITEC  >> 28] = "writec",
+       [RISC_READ    >> 28] = "read",
+       [RISC_READC   >> 28] = "readc",
+       [RISC_JUMP    >> 28] = "jump",
+       [RISC_SKIP    >> 28] = "skip",
+       [RISC_WRITERM >> 28] = "writerm",
+       [RISC_WRITECM >> 28] = "writecm",
+       [RISC_WRITECR >> 28] = "writecr",
     };
     static int incr[16] = {
-        [RISC_WRITE   >> 28] = 3,
-        [RISC_JUMP    >> 28] = 3,
-        [RISC_SKIP    >> 28] = 1,
-        [RISC_SYNC    >> 28] = 1,
-        [RISC_WRITERM >> 28] = 3,
-        [RISC_WRITECM >> 28] = 3,
-        [RISC_WRITECR >> 28] = 4,
+       [RISC_WRITE   >> 28] = 3,
+       [RISC_JUMP    >> 28] = 3,
+       [RISC_SKIP    >> 28] = 1,
+       [RISC_SYNC    >> 28] = 1,
+       [RISC_WRITERM >> 28] = 3,
+       [RISC_WRITECM >> 28] = 3,
+       [RISC_WRITECR >> 28] = 4,
     };
     static char *bits[] = {
-        "12",   "13",   "14",   "resync",
-        "cnt0", "cnt1", "18",   "19",
-        "20",   "21",   "22",   "23",
-        "irq1", "irq2", "eol",  "sol",
+       "12",   "13",   "14",   "resync",
+       "cnt0", "cnt1", "18",   "19",
+       "20",   "21",   "22",   "23",
+       "irq1", "irq2", "eol",  "sol",
     };
     int i;
 
     printk("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]);
-        }
+       {
+       if (risc & (1 << (i + 12)))
+           printk(" %s", bits[i]);
+       }
     printk(" count=%d ]\n", risc & 0xfff);
     return incr[risc >> 28] ? incr[risc >> 28] : 1;
 }
@@ -384,17 +384,17 @@ void cx_i2c_read_print(struct cx25821_dev *dev, u32 reg, const char* reg_string)
 {
     int tmp = 0;
     u32 value = 0;
-    
+
     value = cx25821_i2c_read(&dev->i2c_bus[0], reg, &tmp);
 }
 
 static void cx25821_registers_init(struct cx25821_dev *dev)
 {
     u32 tmp;
-    
+
     // enable RUN_RISC in Pecos
     cx_write( DEV_CNTRL2, 0x20 );
-    
+
     // Set the master PCI interrupt masks to enable video, audio, MBIF, and GPIO interrupts
     // I2C interrupt masking is handled by the I2C objects themselves.
     cx_write( PCI_INT_MSK, 0x2001FFFF );
@@ -408,7 +408,7 @@ static void cx25821_registers_init(struct cx25821_dev *dev)
 
     // PLL_A_POST = 0x1C, PLL_A_OUT_TO_PIN = 0x1
     cx_write( PLL_A_POST_STAT_BIST, 0x8000019C);
-    
+
     // clear reset bit [31]
     tmp = cx_read( PLL_A_INT_FRAC );
     cx_write( PLL_A_INT_FRAC, tmp & 0x7FFFFFFF);
@@ -443,52 +443,52 @@ static void cx25821_registers_init(struct cx25821_dev *dev)
     tmp = cx_read( PLL_D_INT_FRAC );
     cx_write( PLL_D_INT_FRAC, tmp & 0x7FFFFFFF);
 
-    
+
     // This selects the PLL C clock source for the video upstream channel I and J
     tmp = cx_read( VID_CH_CLK_SEL );
     cx_write( VID_CH_CLK_SEL, (tmp & 0x00FFFFFF) | 0x24000000);
 
-    
+
     // 656/VIP SRC Upstream Channel I & J and 7 - Host Bus Interface for channel A-C
     //select 656/VIP DST for downstream Channel A - C
     tmp = cx_read( VID_CH_MODE_SEL );
     //cx_write( VID_CH_MODE_SEL, tmp | 0x1B0001FF);
     cx_write( VID_CH_MODE_SEL, tmp & 0xFFFFFE00);
 
-    
+
     // enables 656 port I and J as output
     tmp = cx_read( CLK_RST );
     tmp |= FLD_USE_ALT_PLL_REF;  // use external ALT_PLL_REF pin as its reference clock instead
     cx_write( CLK_RST, tmp & ~(FLD_VID_I_CLK_NOE | FLD_VID_J_CLK_NOE) );
-    
+
     mdelay(100);
 }
 
 
 int cx25821_sram_channel_setup(struct cx25821_dev *dev,
-                   struct sram_channel *ch,
-                   unsigned int bpl, u32 risc)
+                  struct sram_channel *ch,
+                  unsigned int bpl, u32 risc)
 {
     unsigned int i, lines;
     u32 cdt;
 
     if (ch->cmds_start == 0) {
-        cx_write(ch->ptr1_reg, 0);
-        cx_write(ch->ptr2_reg, 0);
-        cx_write(ch->cnt2_reg, 0);
-        cx_write(ch->cnt1_reg, 0);
-        return 0;
-    } 
+       cx_write(ch->ptr1_reg, 0);
+       cx_write(ch->ptr2_reg, 0);
+       cx_write(ch->cnt2_reg, 0);
+       cx_write(ch->cnt1_reg, 0);
+       return 0;
+    }
 
     bpl   = (bpl + 7) & ~7; /* alignment */
     cdt   = ch->cdt;
     lines = ch->fifo_size / bpl;
-    
-    if (lines > 4)  
+
+    if (lines > 4)
     {
-        lines = 4;
+       lines = 4;
     }
-    
+
     BUG_ON(lines < 2);
 
     cx_write(8 + 0, RISC_JUMP | RISC_IRQ1 | RISC_CNT_INC);
@@ -497,75 +497,75 @@ int cx25821_sram_channel_setup(struct cx25821_dev *dev,
 
     /* write CDT */
     for (i = 0; i < lines; i++) {
-        cx_write(cdt + 16*i, ch->fifo_start + bpl*i);
-        cx_write(cdt + 16*i +  4, 0);
-        cx_write(cdt + 16*i +  8, 0);
-        cx_write(cdt + 16*i + 12, 0);
+       cx_write(cdt + 16*i, ch->fifo_start + bpl*i);
+       cx_write(cdt + 16*i +  4, 0);
+       cx_write(cdt + 16*i +  8, 0);
+       cx_write(cdt + 16*i + 12, 0);
     }
 
     //init the first cdt buffer
     for(i=0; i<128; i++)
-        cx_write(ch->fifo_start+4*i, i);
+       cx_write(ch->fifo_start+4*i, i);
 
     /* write CMDS */
     if (ch->jumponly)
-    {       
-        cx_write(ch->cmds_start + 0, 8);
+    {
+       cx_write(ch->cmds_start + 0, 8);
     }
     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 +  8, cdt);             
-    cx_write(ch->cmds_start + 12, (lines*16) >> 3); 
-    cx_write(ch->cmds_start + 16, ch->ctrl_start);  
-                                               
+    cx_write(ch->cmds_start +  8, cdt);
+    cx_write(ch->cmds_start + 12, (lines*16) >> 3);
+    cx_write(ch->cmds_start + 16, ch->ctrl_start);
+
     if (ch->jumponly)
-        cx_write(ch->cmds_start + 20, 0x80000000 | (64 >> 2));
+       cx_write(ch->cmds_start + 20, 0x80000000 | (64 >> 2));
     else
-        cx_write(ch->cmds_start + 20, 64 >> 2);
+       cx_write(ch->cmds_start + 20, 64 >> 2);
 
     for (i = 24; i < 80; i += 4)
-        cx_write(ch->cmds_start + i, 0);
+       cx_write(ch->cmds_start + i, 0);
 
     /* fill registers */
     cx_write(ch->ptr1_reg, ch->fifo_start);
     cx_write(ch->ptr2_reg, cdt);
     cx_write(ch->cnt2_reg, (lines*16) >> 3);
-    cx_write(ch->cnt1_reg, (bpl >> 3) - 1);         
+    cx_write(ch->cnt1_reg, (bpl >> 3) - 1);
 
     return 0;
 }
 
 int cx25821_sram_channel_setup_audio(struct cx25821_dev *dev,
-                   struct sram_channel *ch,
-                   unsigned int bpl, u32 risc)
+                  struct sram_channel *ch,
+                  unsigned int bpl, u32 risc)
 {
     unsigned int i, lines;
     u32 cdt;
 
 
     if (ch->cmds_start == 0) {
-        cx_write(ch->ptr1_reg, 0);
-        cx_write(ch->ptr2_reg, 0);
-        cx_write(ch->cnt2_reg, 0);
-        cx_write(ch->cnt1_reg, 0);
-        return 0;
+       cx_write(ch->ptr1_reg, 0);
+       cx_write(ch->ptr2_reg, 0);
+       cx_write(ch->cnt2_reg, 0);
+       cx_write(ch->cnt1_reg, 0);
+       return 0;
     }
 
     bpl   = (bpl + 7) & ~7; /* alignment */
     cdt   = ch->cdt;
     lines = ch->fifo_size / bpl;
-        
-    if (lines > 3)  
-    {   
-        lines = 3;      //for AUDIO
+
+    if (lines > 3)
+    {
+       lines = 3;      //for AUDIO
     }
-    
+
     BUG_ON(lines < 2);
-    
+
 
     cx_write(8 + 0, RISC_JUMP | RISC_IRQ1 | RISC_CNT_INC);
     cx_write(8 + 4, 8);
@@ -573,47 +573,47 @@ int cx25821_sram_channel_setup_audio(struct cx25821_dev *dev,
 
     /* write CDT */
     for (i = 0; i < lines; i++) {
-        cx_write(cdt + 16*i, ch->fifo_start + bpl*i);
-        cx_write(cdt + 16*i +  4, 0);
-        cx_write(cdt + 16*i +  8, 0);
-        cx_write(cdt + 16*i + 12, 0);
+       cx_write(cdt + 16*i, ch->fifo_start + bpl*i);
+       cx_write(cdt + 16*i +  4, 0);
+       cx_write(cdt + 16*i +  8, 0);
+       cx_write(cdt + 16*i + 12, 0);
     }
 
     /* write CMDS */
     if (ch->jumponly)
-    {       
-        cx_write(ch->cmds_start + 0, 8);
+    {
+       cx_write(ch->cmds_start + 0, 8);
     }
     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 +  8, cdt);             
-    cx_write(ch->cmds_start + 12, (lines*16) >> 3); 
-    cx_write(ch->cmds_start + 16, ch->ctrl_start);  
+    cx_write(ch->cmds_start +  8, cdt);
+    cx_write(ch->cmds_start + 12, (lines*16) >> 3);
+    cx_write(ch->cmds_start + 16, ch->ctrl_start);
 
     //IQ size
     if (ch->jumponly)
-    {       
-        cx_write(ch->cmds_start + 20, 0x80000000 | (64 >> 2));
+    {
+       cx_write(ch->cmds_start + 20, 0x80000000 | (64 >> 2));
     }
     else
-    {       
-        cx_write(ch->cmds_start + 20, 64 >> 2);
+    {
+       cx_write(ch->cmds_start + 20, 64 >> 2);
     }
 
     //zero out
     for (i = 24; i < 80; i += 4)
-        cx_write(ch->cmds_start + i, 0);
+       cx_write(ch->cmds_start + i, 0);
 
     /* fill registers */
     cx_write(ch->ptr1_reg, ch->fifo_start);
-    cx_write(ch->ptr2_reg, cdt);                
-    cx_write(ch->cnt2_reg, (lines*16) >> 3);    
-    cx_write(ch->cnt1_reg, (bpl >> 3) - 1);         
-    
+    cx_write(ch->ptr2_reg, cdt);
+    cx_write(ch->cnt2_reg, (lines*16) >> 3);
+    cx_write(ch->cnt1_reg, (bpl >> 3) - 1);
+
     return 0;
 }
 
@@ -621,46 +621,46 @@ int cx25821_sram_channel_setup_audio(struct cx25821_dev *dev,
 void cx25821_sram_channel_dump(struct cx25821_dev *dev, struct sram_channel *ch)
 {
     static char *name[] = {
-        "init risc lo",
-        "init risc hi",
-        "cdt base",
-        "cdt size",
-        "iq base",
-        "iq size",
-        "risc pc lo",
-        "risc pc hi",
-        "iq wr ptr",
-        "iq rd ptr",
-        "cdt current",
-        "pci target lo",
-        "pci target hi",
-        "line / byte",
+       "init risc lo",
+       "init risc hi",
+       "cdt base",
+       "cdt size",
+       "iq base",
+       "iq size",
+       "risc pc lo",
+       "risc pc hi",
+       "iq wr ptr",
+       "iq rd ptr",
+       "cdt current",
+       "pci target lo",
+       "pci target hi",
+       "line / byte",
     };
     u32 risc;
     unsigned int i, j, n;
+
     printk(KERN_WARNING "%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));
+       printk(KERN_WARNING "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);
-        i +=cx25821_risc_decode(risc);
+       risc = cx_read(ch->cmds_start + 4 * (i + 14));
+       printk(KERN_WARNING "cmds + 0x%2x:   risc%d: ", j+i*4, i);
+       i +=cx25821_risc_decode(risc);
     }
 
     for (i = 0; i < (64 >> 2); i += n) {
-        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);
-        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);
-        }
+       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);
+       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);
+       }
     }
 
     printk(KERN_WARNING "        :   fifo: 0x%08x -> 0x%x\n",  ch->fifo_start, ch->fifo_start+ch->fifo_size);
@@ -674,50 +674,50 @@ void cx25821_sram_channel_dump(struct cx25821_dev *dev, struct sram_channel *ch)
 void cx25821_sram_channel_dump_audio(struct cx25821_dev *dev, struct sram_channel *ch)
 {
     static char *name[] = {
-        "init risc lo",
-        "init risc hi",
-        "cdt base",
-        "cdt size",
-        "iq base",
-        "iq size",
-        "risc pc lo",
-        "risc pc hi",
-        "iq wr ptr",
-        "iq rd ptr",
-        "cdt current",
-        "pci target lo",
-        "pci target hi",
-        "line / byte",
+       "init risc lo",
+       "init risc hi",
+       "cdt base",
+       "cdt size",
+       "iq base",
+       "iq size",
+       "risc pc lo",
+       "risc pc hi",
+       "iq wr ptr",
+       "iq rd ptr",
+       "cdt current",
+       "pci target lo",
+       "pci target hi",
+       "line / byte",
     };
-    
-        u32 risc, value, tmp;
+
+       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);
-    
+
     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));
+       printk(KERN_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;      
+    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);
-        i += cx25821_risc_decode(risc);
+       risc = cx_read(ch->cmds_start + 4 * (i + 14));
+       printk(KERN_WARNING "cmds + 0x%2x:   risc%d: ", j+i*4, i);
+       i += cx25821_risc_decode(risc);
     }
-    
+
     for (i = 0; i < (64 >> 2); i += n) {
-        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);
-        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);
-        }
+       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);
+       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);
+       }
     }
 
     printk(KERN_WARNING "        :   fifo: 0x%08x -> 0x%x\n",  ch->fifo_start, ch->fifo_start+ch->fifo_size);
@@ -726,24 +726,24 @@ void cx25821_sram_channel_dump_audio(struct cx25821_dev *dev, struct sram_channe
     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));
-    
+
     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);
+       risc = cx_read(ch->cmds_start + 56 + (i*4));
+       printk(KERN_WARNING "instruction %d = 0x%x\n", i, risc);
     }
 
     //read data from the first cdt buffer
-    risc = cx_read(AUD_A_CDT);      
+    risc = cx_read(AUD_A_CDT);
     printk(KERN_WARNING "\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);
-    }   
+       n =  cx_read(risc+i*4);
+       printk(KERN_WARNING "0x%x ", n);
+    }
     printk(KERN_WARNING "\n\n");
-    
-    
+
+
     value = cx_read(CLK_RST);
     CX25821_INFO(" CLK_RST = 0x%x \n\n", value);
 
@@ -751,22 +751,22 @@ void cx25821_sram_channel_dump_audio(struct cx25821_dev *dev, struct sram_channe
     CX25821_INFO(" PLL_A_POST_STAT_BIST = 0x%x \n\n", value);
     value = cx_read(PLL_A_INT_FRAC);
     CX25821_INFO(" PLL_A_INT_FRAC = 0x%x \n\n", value);
-   
+
     value = cx_read(PLL_B_POST_STAT_BIST);
     CX25821_INFO(" PLL_B_POST_STAT_BIST = 0x%x \n\n", value);
     value = cx_read(PLL_B_INT_FRAC);
     CX25821_INFO(" PLL_B_INT_FRAC = 0x%x \n\n", value);
-   
+
     value = cx_read(PLL_C_POST_STAT_BIST);
     CX25821_INFO(" PLL_C_POST_STAT_BIST = 0x%x \n\n", value);
     value = cx_read(PLL_C_INT_FRAC);
     CX25821_INFO(" PLL_C_INT_FRAC = 0x%x \n\n", value);
-   
+
     value = cx_read(PLL_D_POST_STAT_BIST);
     CX25821_INFO(" PLL_D_POST_STAT_BIST = 0x%x \n\n", value);
     value = cx_read(PLL_D_INT_FRAC);
     CX25821_INFO(" PLL_D_INT_FRAC = 0x%x \n\n", value);
-       
+
     value = cx25821_i2c_read(&dev->i2c_bus[0], AFE_AB_DIAG_CTRL, &tmp);
     CX25821_INFO(" AFE_AB_DIAG_CTRL (0x10900090) = 0x%x \n\n", value);
 }
@@ -781,16 +781,16 @@ static void cx25821_shutdown(struct cx25821_dev *dev)
     /* Disable Video A/B activity */
     for(i=0; i<VID_CHANNEL_NUM; i++)
     {
-        cx_write(dev->sram_channels[i].dma_ctl, 0);
-        cx_write(dev->sram_channels[i].int_msk, 0);
+       cx_write(dev->sram_channels[i].dma_ctl, 0);
+       cx_write(dev->sram_channels[i].int_msk, 0);
     }
 
-    for( i = VID_UPSTREAM_SRAM_CHANNEL_I; i <= VID_UPSTREAM_SRAM_CHANNEL_J; i++)      
+    for( i = VID_UPSTREAM_SRAM_CHANNEL_I; i <= VID_UPSTREAM_SRAM_CHANNEL_J; i++)
     {
-        cx_write(dev->sram_channels[i].dma_ctl, 0);
-        cx_write(dev->sram_channels[i].int_msk, 0);
+       cx_write(dev->sram_channels[i].dma_ctl, 0);
+       cx_write(dev->sram_channels[i].int_msk, 0);
     }
-    
+
     /* Disable Audio activity */
     cx_write(AUD_INT_DMA_CTL, 0);
 
@@ -803,14 +803,14 @@ static void cx25821_shutdown(struct cx25821_dev *dev)
 }
 
 void cx25821_set_pixel_format(struct cx25821_dev *dev, int channel_select, u32 format)
-{        
-    struct sram_channel *ch;    
+{
+    struct sram_channel *ch;
+
     if( channel_select <= 7 && channel_select >= 0 )
     {
-        ch = &cx25821_sram_channels[channel_select];
-        cx_write(ch->pix_frmt, format);
-        dev->pixel_formats[channel_select] = format;
+       ch = &cx25821_sram_channels[channel_select];
+       cx_write(ch->pix_frmt, format);
+       dev->pixel_formats[channel_select] = format;
     }
 }
 
@@ -825,12 +825,12 @@ static void cx25821_initialize(struct cx25821_dev *dev)
     int i;
 
     dprintk(1, "%s()\n", __func__);
-    
+
     cx25821_shutdown(dev);
     cx_write(PCI_INT_STAT,   0xffffffff);
+
     for(i=0; i<VID_CHANNEL_NUM; i++)
-        cx_write(dev->sram_channels[i].int_stat, 0xffffffff);
+       cx_write(dev->sram_channels[i].int_stat, 0xffffffff);
 
 
     cx_write(AUD_A_INT_STAT, 0xffffffff);
@@ -840,26 +840,26 @@ static void cx25821_initialize(struct cx25821_dev *dev)
     cx_write(AUD_E_INT_STAT, 0xffffffff);
 
     cx_write(CLK_DELAY, cx_read(CLK_DELAY) & 0x80000000);
-    cx_write(PAD_CTRL, 0x12);       //for I2C   
+    cx_write(PAD_CTRL, 0x12);       //for I2C
     cx25821_registers_init(dev);    //init Pecos registers
     mdelay(100);
-    
-    
+
+
     for(i=0; i<VID_CHANNEL_NUM; i++)
     {
-        cx25821_set_vip_mode(dev, &dev->sram_channels[i]);
-        cx25821_sram_channel_setup(dev, &dev->sram_channels[i], 1440, 0);
-        dev->pixel_formats[i]     = PIXEL_FRMT_422;
-        dev->use_cif_resolution[i]  = FALSE;
+       cx25821_set_vip_mode(dev, &dev->sram_channels[i]);
+       cx25821_sram_channel_setup(dev, &dev->sram_channels[i], 1440, 0);
+       dev->pixel_formats[i]     = PIXEL_FRMT_422;
+       dev->use_cif_resolution[i]  = FALSE;
     }
 
     //Probably only affect Downstream
-    for( i = VID_UPSTREAM_SRAM_CHANNEL_I; i <= VID_UPSTREAM_SRAM_CHANNEL_J; i++)      
+    for( i = VID_UPSTREAM_SRAM_CHANNEL_I; i <= VID_UPSTREAM_SRAM_CHANNEL_J; i++)
     {
-        cx25821_set_vip_mode(dev, &dev->sram_channels[i]);
+       cx25821_set_vip_mode(dev, &dev->sram_channels[i]);
     }
-    
-    cx25821_sram_channel_setup_audio(dev, &dev->sram_channels[SRAM_CH08], 128, 0);      
+
+    cx25821_sram_channel_setup_audio(dev, &dev->sram_channels[SRAM_CH08], 128, 0);
 
     cx25821_gpio_init(dev);
 }
@@ -867,10 +867,10 @@ static void cx25821_initialize(struct cx25821_dev *dev)
 static int get_resources(struct cx25821_dev *dev)
 {
     if (request_mem_region(pci_resource_start(dev->pci, 0), pci_resource_len(dev->pci, 0), dev->name))
-        return 0;
+       return 0;
 
     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;
 }
@@ -878,7 +878,7 @@ static int get_resources(struct cx25821_dev *dev)
 
 static void cx25821_dev_checkrevision(struct cx25821_dev *dev)
 {
-    dev->hwrevision = cx_read(RDR_CFG2) & 0xff; 
+    dev->hwrevision = cx_read(RDR_CFG2) & 0xff;
 
     printk(KERN_INFO "%s() Hardware revision = 0x%02x\n", __func__, dev->hwrevision);
 }
@@ -886,41 +886,41 @@ static void cx25821_dev_checkrevision(struct cx25821_dev *dev)
 static void cx25821_iounmap(struct cx25821_dev *dev)
 {
     if (dev == NULL)
-        return;
+       return;
 
     /* Releasing IO memory */
-    if (dev->lmmio != NULL) 
+    if (dev->lmmio != NULL)
     {
-        CX25821_INFO("Releasing lmmio.\n");
-        iounmap(dev->lmmio);
-        dev->lmmio = NULL;
+       CX25821_INFO("Releasing lmmio.\n");
+       iounmap(dev->lmmio);
+       dev->lmmio = NULL;
     }
 }
 
 
 static int cx25821_dev_setup(struct cx25821_dev *dev)
-{       
+{
     int io_size = 0, i;
-        
+
     struct video_device *video_template[] = {
-                        &cx25821_video_template0,
-                        &cx25821_video_template1,
-                        &cx25821_video_template2,
-                        &cx25821_video_template3,
-                        &cx25821_video_template4,
-                        &cx25821_video_template5,
-                        &cx25821_video_template6,
-                        &cx25821_video_template7,
-                        &cx25821_video_template9,       
-                        &cx25821_video_template10,
-                        &cx25821_video_template11,  
-                        &cx25821_videoioctl_template,    
-                        };
+                       &cx25821_video_template0,
+                       &cx25821_video_template1,
+                       &cx25821_video_template2,
+                       &cx25821_video_template3,
+                       &cx25821_video_template4,
+                       &cx25821_video_template5,
+                       &cx25821_video_template6,
+                       &cx25821_video_template7,
+                       &cx25821_video_template9,
+                       &cx25821_video_template10,
+                       &cx25821_video_template11,
+                       &cx25821_videoioctl_template,
+                       };
 
     printk(KERN_INFO "\n***********************************\n");
     printk(KERN_INFO "cx25821 set up\n");
     printk(KERN_INFO "***********************************\n\n");
-    
+
     mutex_init(&dev->lock);
 
     atomic_inc(&dev->refcount);
@@ -934,30 +934,30 @@ static int cx25821_dev_setup(struct cx25821_dev *dev)
 
     strcpy(cx25821_boards[UNKNOWN_BOARD].name, "unknown");
     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);
-        return -1;
+       printk(KERN_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);
+    {
+       printk(KERN_INFO "Athena Hardware device = 0x%02x\n", dev->pci->device);
     }
-    
+
     /* Apply a sensible clock frequency for the PCIe bridge */
     dev->clk_freq = 28000000;
     dev->sram_channels = cx25821_sram_channels;
 
     if(dev->nr > 1)
     {
-        CX25821_INFO("dev->nr > 1!");
+       CX25821_INFO("dev->nr > 1!");
     }
 
     /* board config */
-    dev->board = 1; //card[dev->nr];  
+    dev->board = 1; //card[dev->nr];
     dev->_max_num_decoders = MAX_DECODERS;
 
 
@@ -977,141 +977,141 @@ static int cx25821_dev_setup(struct cx25821_dev *dev)
 
 
 
-    if (get_resources(dev) < 0) 
+    if (get_resources(dev) < 0)
     {
-        printk(KERN_ERR "%s No more PCIe resources for "
-               "subsystem: %04x:%04x\n",
-               dev->name, dev->pci->subsystem_vendor,
-               dev->pci->subsystem_device);
+       printk(KERN_ERR "%s No more PCIe resources for "
+              "subsystem: %04x:%04x\n",
+              dev->name, dev->pci->subsystem_vendor,
+              dev->pci->subsystem_device);
 
-        cx25821_devcount--;
-        return -ENODEV;
+       cx25821_devcount--;
+       return -ENODEV;
     }
 
-    /* PCIe stuff */    
+    /* PCIe stuff */
     dev->base_io_addr = pci_resource_start(dev->pci, 0);
     io_size           = pci_resource_len(dev->pci, 0);
-        
+
     if (!dev->base_io_addr) {
-        CX25821_ERR("No PCI Memory resources, exiting!\n");
-        return -ENODEV;
+       CX25821_ERR("No PCI Memory resources, exiting!\n");
+       return -ENODEV;
     }
-    
+
     dev->lmmio = ioremap(dev->base_io_addr, pci_resource_len(dev->pci, 0));
 
     if (!dev->lmmio) {
-        CX25821_ERR("ioremap failed, maybe increasing __VMALLOC_RESERVE in page.h\n");
-        cx25821_iounmap(dev);
-        return -ENOMEM;
+       CX25821_ERR("ioremap failed, maybe increasing __VMALLOC_RESERVE in page.h\n");
+       cx25821_iounmap(dev);
+       return -ENOMEM;
     }
-    
+
 
     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");
+          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);
-    
+
     cx25821_i2c_register(&dev->i2c_bus[0]);
 //  cx25821_i2c_register(&dev->i2c_bus[1]);
 //  cx25821_i2c_register(&dev->i2c_bus[2]);
 
     CX25821_INFO("i2c register! bus->i2c_rc = %d\n", dev->i2c_bus[0].i2c_rc);
 
-    cx25821_card_setup(dev);    
+    cx25821_card_setup(dev);
     medusa_video_init(dev);
-    
+
     for(i = 0; i < VID_CHANNEL_NUM; i++)
     {
-        if (cx25821_video_register(dev, i, video_template[i]) < 0) {
-            printk(KERN_ERR "%s() Failed to register analog video adapters on VID channel %d\n", __func__, i);
-        }
+       if (cx25821_video_register(dev, i, video_template[i]) < 0) {
+           printk(KERN_ERR "%s() Failed to register analog video adapters on VID channel %d\n", __func__, i);
+       }
     }
-        
-    
+
+
     for(i = VID_UPSTREAM_SRAM_CHANNEL_I; i <= AUDIO_UPSTREAM_SRAM_CHANNEL_B; i++)
     {
-        //Since we don't have template8 for Audio Downstream
-        if (cx25821_video_register(dev, i, video_template[i-1]) < 0) {
-            printk(KERN_ERR "%s() Failed to register analog video adapters for Upstream channel %d.\n", __func__, i);
-        }
+       //Since we don't have template8 for Audio Downstream
+       if (cx25821_video_register(dev, i, video_template[i-1]) < 0) {
+           printk(KERN_ERR "%s() Failed to register analog video adapters for Upstream channel %d.\n", __func__, i);
+       }
     }
-    // register IOCTL device 
+
+    // register IOCTL device
     dev->ioctl_dev = cx25821_vdev_init(dev, dev->pci, video_template[VIDEO_IOCTL_CH], "video");
-    
+
     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 releasing.\n", __func__);
+    {
+       cx25821_videoioctl_unregister(dev);
+       printk(KERN_ERR "%s() Failed to register video adapter for IOCTL so releasing.\n", __func__);
     }
-         
+
     cx25821_dev_checkrevision(dev);
     CX25821_INFO("cx25821 setup done!\n");
-    
+
     return 0;
-}  
+}
 
 
 void cx25821_start_upstream_video_ch1(struct cx25821_dev *dev, struct upstream_user_struct *up_data)
 {
-    dev->_isNTSC = !strcmp(dev->vid_stdname,"NTSC") ? 1 : 0;             
-    
-    dev->tvnorm = !dev->_isNTSC ? V4L2_STD_PAL_BG : V4L2_STD_NTSC_M;  
+    dev->_isNTSC = !strcmp(dev->vid_stdname,"NTSC") ? 1 : 0;
+
+    dev->tvnorm = !dev->_isNTSC ? V4L2_STD_PAL_BG : V4L2_STD_NTSC_M;
     medusa_set_videostandard(dev);
-    
-    cx25821_vidupstream_init_ch1(dev, dev->channel_select, dev->pixel_format);      
+
+    cx25821_vidupstream_init_ch1(dev, dev->channel_select, dev->pixel_format);
 }
 
 
 void cx25821_start_upstream_video_ch2(struct cx25821_dev *dev, struct upstream_user_struct *up_data)
 {
-    dev->_isNTSC_ch2 = !strcmp(dev->vid_stdname_ch2,"NTSC") ? 1 : 0;            
+    dev->_isNTSC_ch2 = !strcmp(dev->vid_stdname_ch2,"NTSC") ? 1 : 0;
+
+    dev->tvnorm = !dev->_isNTSC_ch2 ? V4L2_STD_PAL_BG : V4L2_STD_NTSC_M;
+    medusa_set_videostandard(dev);
 
-    dev->tvnorm = !dev->_isNTSC_ch2 ? V4L2_STD_PAL_BG : V4L2_STD_NTSC_M; 
-    medusa_set_videostandard(dev);  
-    
-    cx25821_vidupstream_init_ch2(dev, dev->channel_select_ch2, dev->pixel_format_ch2);      
+    cx25821_vidupstream_init_ch2(dev, dev->channel_select_ch2, dev->pixel_format_ch2);
 }
 
 
 void cx25821_start_upstream_audio(struct cx25821_dev *dev, struct upstream_user_struct *up_data)
 {
-    cx25821_audio_upstream_init(dev, AUDIO_UPSTREAM_SRAM_CHANNEL_B);        
+    cx25821_audio_upstream_init(dev, AUDIO_UPSTREAM_SRAM_CHANNEL_B);
 }
-  
+
 void cx25821_dev_unregister(struct cx25821_dev *dev)
 {
     int i;
 
-    if (!dev->base_io_addr) 
-        return;
-        
+    if (!dev->base_io_addr)
+       return;
+
     cx25821_free_mem_upstream_ch1(dev);
-    cx25821_free_mem_upstream_ch2(dev);         
-    cx25821_free_mem_upstream_audio(dev);       
-    
+    cx25821_free_mem_upstream_ch2(dev);
+    cx25821_free_mem_upstream_audio(dev);
+
     release_mem_region(dev->base_io_addr, pci_resource_len(dev->pci, 0));
 
     if (!atomic_dec_and_test(&dev->refcount))
-        return;
+       return;
 
     for(i=0; i < VID_CHANNEL_NUM; i++)
-        cx25821_video_unregister(dev, i);
+       cx25821_video_unregister(dev, i);
+
 
-    
     for(i = VID_UPSTREAM_SRAM_CHANNEL_I; i <= AUDIO_UPSTREAM_SRAM_CHANNEL_B; i++)
     {
-        cx25821_video_unregister(dev, i);
+       cx25821_video_unregister(dev, i);
     }
-    
+
     cx25821_videoioctl_unregister(dev);
-    
+
     cx25821_i2c_unregister( &dev->i2c_bus[0] );
     cx25821_iounmap(dev);
 }
@@ -1119,9 +1119,9 @@ void cx25821_dev_unregister(struct cx25821_dev *dev)
 
 
 static __le32 *cx25821_risc_field(__le32 *rp, struct scatterlist *sglist,
-                   unsigned int offset, u32 sync_line,
-                   unsigned int bpl, unsigned int padding,
-                   unsigned int lines)
+                  unsigned int offset, u32 sync_line,
+                  unsigned int bpl, unsigned int padding,
+                  unsigned int lines)
 {
     struct scatterlist *sg;
     unsigned int line, todo;
@@ -1129,65 +1129,65 @@ static __le32 *cx25821_risc_field(__le32 *rp, struct scatterlist *sglist,
     /* sync instruction */
     if (sync_line != NO_SYNC_LINE)
     {
-        *(rp++) = cpu_to_le32(RISC_RESYNC | sync_line);    
+       *(rp++) = cpu_to_le32(RISC_RESYNC | sync_line);
     }
 
     /* scan lines */
     sg = sglist;
     for (line = 0; line < lines; line++) {
-        while (offset && offset >= sg_dma_len(sg)) {
-            offset -= sg_dma_len(sg);
-            sg++;
-        }
-        if (bpl <= sg_dma_len(sg)-offset) {            
-            /* fits into current chunk */
-            *(rp++) = cpu_to_le32(RISC_WRITE|RISC_SOL|RISC_EOL|bpl); 
-            *(rp++) = cpu_to_le32(sg_dma_address(sg)+offset);   
-            *(rp++) = cpu_to_le32(0); /* bits 63-32 */      
-            offset += bpl;
-        } else {
-            /* scanline needs to be split */
-            todo = bpl;
-            *(rp++) = cpu_to_le32(RISC_WRITE|RISC_SOL|(sg_dma_len(sg)-offset)); 
-            *(rp++) = cpu_to_le32(sg_dma_address(sg)+offset);           
-            *(rp++) = cpu_to_le32(0); /* bits 63-32 */              
-            todo -= (sg_dma_len(sg)-offset);
-            offset = 0;
-            sg++;
-            while (todo > sg_dma_len(sg)) {
-                *(rp++) = cpu_to_le32(RISC_WRITE|sg_dma_len(sg));       
-                *(rp++) = cpu_to_le32(sg_dma_address(sg));          
-                *(rp++) = cpu_to_le32(0); /* bits 63-32 */          
-                todo -= sg_dma_len(sg);
-                sg++;
-            }
-            *(rp++) = cpu_to_le32(RISC_WRITE|RISC_EOL|todo);
-            *(rp++) = cpu_to_le32(sg_dma_address(sg));              
-            *(rp++) = cpu_to_le32(0); /* bits 63-32 */              
-            offset += todo;
-        }
-
-        offset += padding;
+       while (offset && offset >= sg_dma_len(sg)) {
+           offset -= sg_dma_len(sg);
+           sg++;
+       }
+       if (bpl <= sg_dma_len(sg)-offset) {
+           /* fits into current chunk */
+           *(rp++) = cpu_to_le32(RISC_WRITE|RISC_SOL|RISC_EOL|bpl);
+           *(rp++) = cpu_to_le32(sg_dma_address(sg)+offset);
+           *(rp++) = cpu_to_le32(0); /* bits 63-32 */
+           offset += bpl;
+       } else {
+           /* scanline needs to be split */
+           todo = bpl;
+           *(rp++) = cpu_to_le32(RISC_WRITE|RISC_SOL|(sg_dma_len(sg)-offset));
+           *(rp++) = cpu_to_le32(sg_dma_address(sg)+offset);
+           *(rp++) = cpu_to_le32(0); /* bits 63-32 */
+           todo -= (sg_dma_len(sg)-offset);
+           offset = 0;
+           sg++;
+           while (todo > sg_dma_len(sg)) {
+               *(rp++) = cpu_to_le32(RISC_WRITE|sg_dma_len(sg));
+               *(rp++) = cpu_to_le32(sg_dma_address(sg));
+               *(rp++) = cpu_to_le32(0); /* bits 63-32 */
+               todo -= sg_dma_len(sg);
+               sg++;
+           }
+           *(rp++) = cpu_to_le32(RISC_WRITE|RISC_EOL|todo);
+           *(rp++) = cpu_to_le32(sg_dma_address(sg));
+           *(rp++) = cpu_to_le32(0); /* bits 63-32 */
+           offset += todo;
+       }
+
+       offset += padding;
     }
 
     return rp;
 }
 
 int cx25821_risc_buffer(struct pci_dev *pci, struct btcx_riscmem *risc,
-            struct scatterlist *sglist, unsigned int top_offset,
-            unsigned int bottom_offset, unsigned int bpl,
-            unsigned int padding, unsigned int lines)
+           struct scatterlist *sglist, unsigned int top_offset,
+           unsigned int bottom_offset, unsigned int bpl,
+           unsigned int padding, unsigned int lines)
 {
     u32 instructions;
-        u32  fields;
+       u32  fields;
     __le32 *rp;
     int rc;
 
     fields = 0;
     if (UNSET != top_offset)
-        fields++;
+       fields++;
     if (UNSET != bottom_offset)
-        fields++;
+       fields++;
 
     /* estimate risc mem: worst case is one write per page border +
        one write per scan line + syncs + jump (all 2 dwords).  Padding
@@ -1199,19 +1199,19 @@ int cx25821_risc_buffer(struct pci_dev *pci, struct btcx_riscmem *risc,
     rc = btcx_riscmem_alloc(pci, risc, instructions*12);
 
     if (rc < 0)
-        return rc;
+       return rc;
 
     /* write risc instructions */
     rp = risc->cpu;
-       
+
     if (UNSET != top_offset)
     {
-        rp = cx25821_risc_field(rp, sglist, top_offset, 0, bpl, padding, lines);
+       rp = cx25821_risc_field(rp, sglist, top_offset, 0, bpl, padding, lines);
     }
 
     if (UNSET != bottom_offset)
     {
-        rp = cx25821_risc_field(rp, sglist, bottom_offset, 0x200, bpl, padding, lines);  
+       rp = cx25821_risc_field(rp, sglist, bottom_offset, 0x200, bpl, padding, lines);
     }
 
     /* save pointer to jmp instruction address */
@@ -1223,71 +1223,71 @@ int cx25821_risc_buffer(struct pci_dev *pci, struct btcx_riscmem *risc,
 
 
 static __le32* cx25821_risc_field_audio(__le32 *rp, struct scatterlist *sglist,
-                   unsigned int offset, u32 sync_line,
-                   unsigned int bpl, unsigned int padding,
-                   unsigned int lines, unsigned int lpi)
+                  unsigned int offset, u32 sync_line,
+                  unsigned int bpl, unsigned int padding,
+                  unsigned int lines, unsigned int lpi)
 {
     struct scatterlist *sg;
     unsigned int line, todo, sol;
 
     /* sync instruction */
     if (sync_line != NO_SYNC_LINE)
-        *(rp++) = cpu_to_le32(RISC_RESYNC | sync_line);
+       *(rp++) = cpu_to_le32(RISC_RESYNC | sync_line);
 
     /* scan lines */
     sg = sglist;
     for (line = 0; line < lines; line++) {
-        while (offset && offset >= sg_dma_len(sg)) {
-            offset -= sg_dma_len(sg);
-            sg++;
-        }
-
-        if (lpi && line > 0 && !(line % lpi))
-            sol = RISC_SOL | RISC_IRQ1 | RISC_CNT_INC;
-        else
-            sol = RISC_SOL;
-
-        if (bpl <= sg_dma_len(sg)-offset) {
-            /* fits into current chunk */
-            *(rp++) = cpu_to_le32(RISC_WRITE|sol|RISC_EOL|bpl);
-            *(rp++)=cpu_to_le32(sg_dma_address(sg)+offset);
-            *(rp++)=cpu_to_le32(0); /* bits 63-32 */
-            offset+=bpl;
-        } else {
-            /* scanline needs to be split */
-            todo = bpl;
-            *(rp++) = cpu_to_le32(RISC_WRITE|sol|
-                        (sg_dma_len(sg)-offset));
-            *(rp++)=cpu_to_le32(sg_dma_address(sg)+offset);
-            *(rp++)=cpu_to_le32(0); /* bits 63-32 */
-            todo -= (sg_dma_len(sg)-offset);
-            offset = 0;
-            sg++;
-            while (todo > sg_dma_len(sg)) {
-                *(rp++)=cpu_to_le32(RISC_WRITE|
-                            sg_dma_len(sg));
-                *(rp++)=cpu_to_le32(sg_dma_address(sg));
-                *(rp++)=cpu_to_le32(0); /* bits 63-32 */
-                todo -= sg_dma_len(sg);
-                sg++;
-            }
-            *(rp++)=cpu_to_le32(RISC_WRITE|RISC_EOL|todo);
-            *(rp++)=cpu_to_le32(sg_dma_address(sg));
-            *(rp++)=cpu_to_le32(0); /* bits 63-32 */
-            offset += todo;
-        }
-        offset += padding;
+       while (offset && offset >= sg_dma_len(sg)) {
+           offset -= sg_dma_len(sg);
+           sg++;
+       }
+
+       if (lpi && line > 0 && !(line % lpi))
+           sol = RISC_SOL | RISC_IRQ1 | RISC_CNT_INC;
+       else
+           sol = RISC_SOL;
+
+       if (bpl <= sg_dma_len(sg)-offset) {
+           /* fits into current chunk */
+           *(rp++) = cpu_to_le32(RISC_WRITE|sol|RISC_EOL|bpl);
+           *(rp++)=cpu_to_le32(sg_dma_address(sg)+offset);
+           *(rp++)=cpu_to_le32(0); /* bits 63-32 */
+           offset+=bpl;
+       } else {
+           /* scanline needs to be split */
+           todo = bpl;
+           *(rp++) = cpu_to_le32(RISC_WRITE|sol|
+                       (sg_dma_len(sg)-offset));
+           *(rp++)=cpu_to_le32(sg_dma_address(sg)+offset);
+           *(rp++)=cpu_to_le32(0); /* bits 63-32 */
+           todo -= (sg_dma_len(sg)-offset);
+           offset = 0;
+           sg++;
+           while (todo > sg_dma_len(sg)) {
+               *(rp++)=cpu_to_le32(RISC_WRITE|
+                           sg_dma_len(sg));
+               *(rp++)=cpu_to_le32(sg_dma_address(sg));
+               *(rp++)=cpu_to_le32(0); /* bits 63-32 */
+               todo -= sg_dma_len(sg);
+               sg++;
+           }
+           *(rp++)=cpu_to_le32(RISC_WRITE|RISC_EOL|todo);
+           *(rp++)=cpu_to_le32(sg_dma_address(sg));
+           *(rp++)=cpu_to_le32(0); /* bits 63-32 */
+           offset += todo;
+       }
+       offset += padding;
     }
 
     return rp;
 }
 
 int cx25821_risc_databuffer_audio(struct pci_dev *pci,
-                            struct btcx_riscmem *risc,
-                            struct scatterlist *sglist,
-                            unsigned int bpl,
-                            unsigned int lines,
-                            unsigned int lpi)
+                           struct btcx_riscmem *risc,
+                           struct scatterlist *sglist,
+                           unsigned int bpl,
+                           unsigned int lines,
+                           unsigned int lpi)
 {
     u32 instructions;
     __le32 *rp;
@@ -1302,13 +1302,13 @@ int cx25821_risc_databuffer_audio(struct pci_dev *pci,
     instructions += 1;
 
     if ((rc = btcx_riscmem_alloc(pci,risc,instructions*12)) < 0)
-        return rc;
+       return rc;
 
 
     /* write risc instructions */
     rp = risc->cpu;
     rp = cx25821_risc_field_audio(rp, sglist, 0, NO_SYNC_LINE, bpl, 0, lines, lpi);
-    
+
     /* save pointer to jmp instruction address */
     risc->jmp = rp;
     BUG_ON((risc->jmp - risc->cpu + 2) * sizeof (*risc->cpu) > risc->size);
@@ -1324,18 +1324,18 @@ int cx25821_risc_stopper(struct pci_dev *pci, struct btcx_riscmem *risc,u32 reg,
     rc = btcx_riscmem_alloc(pci, risc, 4*16);
 
     if (rc < 0)
-        return rc;
+       return rc;
 
     /* write risc instructions */
     rp = risc->cpu;
 
-    *(rp++) = cpu_to_le32(RISC_WRITECR  | RISC_IRQ1);   
-    *(rp++) = cpu_to_le32(reg);                 
-    *(rp++) = cpu_to_le32(value);                   
-    *(rp++) = cpu_to_le32(mask);                    
-    *(rp++) = cpu_to_le32(RISC_JUMP); 
-    *(rp++) = cpu_to_le32(risc->dma);               
-    *(rp++) = cpu_to_le32(0); /* bits 63-32 */          
+    *(rp++) = cpu_to_le32(RISC_WRITECR  | RISC_IRQ1);
+    *(rp++) = cpu_to_le32(reg);
+    *(rp++) = cpu_to_le32(value);
+    *(rp++) = cpu_to_le32(mask);
+    *(rp++) = cpu_to_le32(RISC_JUMP);
+    *(rp++) = cpu_to_le32(risc->dma);
+    *(rp++) = cpu_to_le32(0); /* bits 63-32 */
     return 0;
 }
 
@@ -1363,111 +1363,111 @@ static irqreturn_t cx25821_irq(int irq, void *dev_id)
     pci_status = cx_read(PCI_INT_STAT);
     pci_mask = cx_read(PCI_INT_MSK);
 
-    
-    if (pci_status == 0) 
-        goto out;
+
+    if (pci_status == 0)
+       goto out;
 
     for(i = 0; i < VID_CHANNEL_NUM; i++)
     {
-        if(pci_status & mask[i])
-        {
-            vid_status = cx_read(dev->sram_channels[i].int_stat); 
+       if(pci_status & mask[i])
+       {
+           vid_status = cx_read(dev->sram_channels[i].int_stat);
 
-            if(vid_status)
-                handled += cx25821_video_irq(dev, i, vid_status);
+           if(vid_status)
+               handled += cx25821_video_irq(dev, i, vid_status);
 
-            cx_write(PCI_INT_STAT, mask[i]);
-        }
+           cx_write(PCI_INT_STAT, mask[i]);
+       }
     }
-    
+
 out:
     return IRQ_RETVAL(handled);
 }
 
 void cx25821_print_irqbits(char *name, char *tag, char **strings,
-                           int len, u32 bits, u32 mask)
+                          int len, u32 bits, u32 mask)
 {
     unsigned int i;
 
     printk(KERN_DEBUG "%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]);
-        else
-            printk(" %d", i);
-        if (!(mask & (1 << i)))
-            continue;
-        printk("*");
+       if (!(bits & (1 << i)))
+           continue;
+       if (strings[i])
+           printk(" %s", strings[i]);
+       else
+           printk(" %d", i);
+       if (!(mask & (1 << i)))
+           continue;
+       printk("*");
     }
     printk("\n");
 }
 
 struct cx25821_dev* cx25821_dev_get(struct pci_dev *pci)
 {
-    struct cx25821_dev *dev = pci_get_drvdata(pci); 
+    struct cx25821_dev *dev = pci_get_drvdata(pci);
     return dev;
 }
 
 static int __devinit cx25821_initdev(struct pci_dev *pci_dev, const struct pci_device_id *pci_id)
 {
-    struct cx25821_dev *dev;        
+    struct cx25821_dev *dev;
     int err = 0;
 
     dev = kzalloc(sizeof(*dev), GFP_KERNEL);
     if (NULL == dev)
-        return -ENOMEM;
-        
-    
+       return -ENOMEM;
+
+
     err = v4l2_device_register(&pci_dev->dev, &dev->v4l2_dev);
     if (err < 0)
-        goto fail_free;
-        
+       goto fail_free;
+
     /* pci init */
     dev->pci = pci_dev;
-    if (pci_enable_device(pci_dev)) 
+    if (pci_enable_device(pci_dev))
     {
-        err = -EIO;
+       err = -EIO;
 
-        printk(KERN_INFO "pci enable failed! ");
+       printk(KERN_INFO "pci enable failed! ");
 
-        goto fail_unregister_device;
+       goto fail_unregister_device;
     }
 
     printk(KERN_INFO "cx25821 Athena pci enable ! \n");
 
-    if (cx25821_dev_setup(dev) < 0) 
+    if (cx25821_dev_setup(dev) < 0)
     {
-        err = -EINVAL;
-        goto fail_unregister_device;
+       err = -EINVAL;
+       goto fail_unregister_device;
     }
 
     /* 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 );
-           
+          "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)) 
+    if (!pci_dma_supported(pci_dev, 0xffffffff))
     {
-        printk("%s/0: Oops: no 32bit PCI DMA ???\n", dev->name);
-        err = -EIO;
-        goto fail_irq;
+       printk("%s/0: Oops: no 32bit PCI DMA ???\n", dev->name);
+       err = -EIO;
+       goto fail_irq;
     }
 
     err = request_irq(pci_dev->irq, cx25821_irq, IRQF_SHARED | IRQF_DISABLED, dev->name, dev);
 
-    if (err < 0) 
+    if (err < 0)
     {
-        printk(KERN_ERR "%s: can't get IRQ %d\n", dev->name, pci_dev->irq);
-        goto fail_irq;
+       printk(KERN_ERR "%s: can't get IRQ %d\n", dev->name, pci_dev->irq);
+       goto fail_irq;
     }
 
     return 0;
@@ -1475,10 +1475,10 @@ static int __devinit cx25821_initdev(struct pci_dev *pci_dev, const struct pci_d
 fail_irq:
     printk(KERN_INFO "cx25821 cx25821_initdev() can't get IRQ ! \n");
     cx25821_dev_unregister(dev);
-    
-fail_unregister_device:     
+
+fail_unregister_device:
     v4l2_device_unregister(&dev->v4l2_dev);
-    
+
 fail_free:
     kfree(dev);
     return err;
@@ -1488,40 +1488,40 @@ static void __devexit cx25821_finidev(struct pci_dev *pci_dev)
 {
     struct v4l2_device *v4l2_dev = pci_get_drvdata(pci_dev);
     struct cx25821_dev *dev      = get_cx25821(v4l2_dev);
-    
-    cx25821_shutdown(dev);      
+
+    cx25821_shutdown(dev);
     pci_disable_device(pci_dev);
 
     /* unregister stuff */
-    if( pci_dev->irq )      
-        free_irq(pci_dev->irq, dev);
-        
-        
+    if( pci_dev->irq )
+       free_irq(pci_dev->irq, dev);
+
+
     mutex_lock(&devlist);
     list_del(&dev->devlist);
     mutex_unlock(&devlist);
 
     cx25821_dev_unregister(dev);
-    v4l2_device_unregister(v4l2_dev);       
+    v4l2_device_unregister(v4l2_dev);
     kfree(dev);
 }
 
 static struct pci_device_id cx25821_pci_tbl[] = {
     {
-        /* CX25821 Athena*/
-        .vendor       = 0x14f1,
-        .device       = 0x8210,
-        .subvendor    = 0x14f1,
-        .subdevice    = 0x0920,
-    }, 
+       /* CX25821 Athena*/
+       .vendor       = 0x14f1,
+       .device       = 0x8210,
+       .subvendor    = 0x14f1,
+       .subdevice    = 0x0920,
+    },
     {
-        /* --- end of list --- */
+       /* --- end of list --- */
     }
 };
 
 MODULE_DEVICE_TABLE(pci, cx25821_pci_tbl);
 
-static struct pci_driver cx25821_pci_driver = 
+static struct pci_driver cx25821_pci_driver =
 {
     .name     = "cx25821",
     .id_table = cx25821_pci_tbl,
@@ -1534,11 +1534,11 @@ static struct pci_driver cx25821_pci_driver =
 
 static int cx25821_init(void)
 {
-    INIT_LIST_HEAD(&cx25821_devlist);       
+    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);
+          (CX25821_VERSION_CODE >> 16) & 0xff,
+          (CX25821_VERSION_CODE >>  8) & 0xff,
+           CX25821_VERSION_CODE & 0xff);
     return pci_register_driver(&cx25821_pci_driver);
 }
 
index aa029fe..074c196 100644 (file)
 
 /********************* GPIO stuffs *********************/
 void cx25821_set_gpiopin_direction( struct cx25821_dev *dev,
-                                    int    pin_number,
-                                    int    pin_logic_value)
+                                   int    pin_number,
+                                   int    pin_logic_value)
 {
     int  bit = pin_number;
     u32 gpio_oe_reg = GPIO_LO_OE;
        u32 gpio_register = 0;
     u32 value = 0;
-       
+
     // Check for valid pinNumber
     if ( pin_number >= 47 )
-        return;
+       return;
 
 
     if ( pin_number > 31 )
@@ -46,32 +46,32 @@ void cx25821_set_gpiopin_direction( struct cx25821_dev *dev,
 
     // Here we will make sure that the GPIOs 0 and 1 are output. keep the rest as is
     gpio_register = cx_read( gpio_oe_reg );
-       
+
     if (pin_logic_value == 1)
     {
-        value = gpio_register | Set_GPIO_Bit(bit) ;
+       value = gpio_register | Set_GPIO_Bit(bit) ;
     }
     else
     {
-        value = gpio_register & Clear_GPIO_Bit(bit) ;
+       value = gpio_register & Clear_GPIO_Bit(bit) ;
     }
 
     cx_write( gpio_oe_reg, value );
 }
 
 static void cx25821_set_gpiopin_logicvalue( struct cx25821_dev *dev,
-                                            int    pin_number,
-                                            int    pin_logic_value)
-{    
+                                           int    pin_number,
+                                           int    pin_logic_value)
+{
     int bit      = pin_number;
     u32 gpio_reg = GPIO_LO;
        u32 value    = 0;
-       
-       
+
+
        // Check for valid pinNumber
     if (pin_number >= 47)
-        return;
-       
+       return;
+
     cx25821_set_gpiopin_direction(dev, pin_number, 0);  // change to output direction
 
 
@@ -82,15 +82,15 @@ static void cx25821_set_gpiopin_logicvalue( struct cx25821_dev *dev,
        }
 
     value = cx_read( gpio_reg );
-   
-   
+
+
     if (pin_logic_value == 0)
     {
-        value &= Clear_GPIO_Bit(bit);
+       value &= Clear_GPIO_Bit(bit);
     }
     else
     {
-        value |= Set_GPIO_Bit(bit);
+       value |= Set_GPIO_Bit(bit);
     }
 
     cx_write( gpio_reg, value);
@@ -102,15 +102,15 @@ void cx25821_gpio_init(struct cx25821_dev *dev)
        {
            return;
        }
-               
-       switch (dev->board) 
+
+       switch (dev->board)
        {
-               case CX25821_BOARD_CONEXANT_ATHENA10:   
-               default:                
-                 //set GPIO 5 to select the path for Medusa/Athena
-                       cx25821_set_gpiopin_logicvalue(dev, 5, 1);  
+               case CX25821_BOARD_CONEXANT_ATHENA10:
+               default:
+                //set GPIO 5 to select the path for Medusa/Athena
+                       cx25821_set_gpiopin_logicvalue(dev, 5, 1);
                        mdelay(20);
                        break;
        }
-       
+
 }
index 16303f8..0667b3f 100644 (file)
@@ -88,9 +88,9 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap, const struct i2c_msg *msg
                dprintk(1, "%s(msg->len=%d)\n", __func__, msg->len);
 
        /* Deal with i2c probe functions with zero payload */
-       if (msg->len == 0) 
+       if (msg->len == 0)
        {
-               cx_write(bus->reg_addr, msg->addr << 25);
+               cx_write(bus->reg_addr, msg->addr << 25);
                cx_write(bus->reg_ctrl, bus->i2c_period | (1 << 2));
 
                if (!i2c_wait_done(i2c_adap))
@@ -106,7 +106,7 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap, const struct i2c_msg *msg
        /* dev, reg + first byte */
        addr = (msg->addr << 25) | msg->buf[0];
        wdata = msg->buf[0];
-   
+
        ctrl = bus->i2c_period | (1 << 12) | (1 << 2);
 
        if (msg->len > 1)
@@ -125,7 +125,7 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap, const struct i2c_msg *msg
        if (retval == 0)
                goto eio;
 
-       if (i2c_debug) 
+       if (i2c_debug)
        {
                if (!(ctrl & I2C_NOSTOP))
                        printk(" >\n");
@@ -152,14 +152,14 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap, const struct i2c_msg *msg
                if (retval == 0)
                        goto eio;
 
-               if (i2c_debug) 
+               if (i2c_debug)
                {
                        dprintk(1, " %02x", msg->buf[cnt]);
                        if (!(ctrl & I2C_NOSTOP))
                                dprintk(1, " >\n");
                }
        }
+
        return msg->len;
 
  eio:
@@ -244,18 +244,18 @@ static int i2c_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs, int num)
 
        dprintk(1, "%s(num = %d)\n", __func__, num);
 
-       for (i = 0 ; i < num; i++) 
+       for (i = 0 ; i < num; i++)
        {
                dprintk(1, "%s(num = %d) addr = 0x%02x  len = 0x%x\n",
                        __func__, num, msgs[i].addr, msgs[i].len);
 
-               if (msgs[i].flags & I2C_M_RD) 
+               if (msgs[i].flags & I2C_M_RD)
                {
                        /* read */
                        retval = i2c_readbytes(i2c_adap, &msgs[i], 0);
-               } 
+               }
                else if (i + 1 < num && (msgs[i + 1].flags & I2C_M_RD) &&
-                          msgs[i].addr == msgs[i + 1].addr) 
+                          msgs[i].addr == msgs[i + 1].addr)
            {
                        /* write then read from same address */
                        retval = i2c_sendbytes(i2c_adap, &msgs[i], msgs[i + 1].len);
@@ -264,13 +264,13 @@ static int i2c_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs, int num)
                                goto err;
                        i++;
                        retval = i2c_readbytes(i2c_adap, &msgs[i], 1);
-               } 
-               else 
+               }
+               else
                {
                        /* write */
                        retval = i2c_sendbytes(i2c_adap, &msgs[i], 0);
                }
-               
+
                if (retval < 0)
                        goto err;
        }
@@ -283,9 +283,9 @@ static int i2c_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs, int num)
 
 static u32 cx25821_functionality(struct i2c_adapter *adap)
 {
-       return I2C_FUNC_SMBUS_EMUL | 
+       return I2C_FUNC_SMBUS_EMUL |
                I2C_FUNC_I2C |
-               I2C_FUNC_SMBUS_WORD_DATA | 
+               I2C_FUNC_SMBUS_WORD_DATA |
                I2C_FUNC_SMBUS_READ_WORD_DATA |
                I2C_FUNC_SMBUS_WRITE_WORD_DATA;
 }
@@ -334,7 +334,7 @@ int cx25821_i2c_register(struct cx25821_i2c *bus)
 
     //set up the I2c
     bus->i2c_client.addr = (0x88>>1);
-        
+
        return bus->i2c_rc;
 }
 
@@ -375,19 +375,19 @@ int cx25821_i2c_read(struct cx25821_i2c *bus, u16 reg_addr, int *value)
     int v = 0;
     u8 addr[2] = {0, 0};
     u8 buf[4] = {0,0,0,0};
-       
+
     struct i2c_msg msgs[2]={
-          {
-             .addr = client->addr,
-             .flags = 0,
-             .len = 2,
-             .buf = addr,
-          }, {
-             .addr = client->addr,
-             .flags = I2C_M_RD,
-             .len = 4,
-             .buf = buf,
-          }
+         {
+            .addr = client->addr,
+            .flags = 0,
+            .len = 2,
+            .buf = addr,
+         }, {
+            .addr = client->addr,
+            .flags = I2C_M_RD,
+            .len = 4,
+            .buf = buf,
+         }
     };
 
 
@@ -401,23 +401,23 @@ int cx25821_i2c_read(struct cx25821_i2c *bus, u16 reg_addr, int *value)
     v = (buf[3]<<24) | (buf[2]<<16) | (buf[1]<<8) | buf[0];
     *value = v;
 
-    return v; 
+    return v;
 }
 
 
 int cx25821_i2c_write(struct cx25821_i2c *bus, u16 reg_addr, int value)
 {
     struct i2c_client *client = &bus->i2c_client;
-    int retval = 0; 
+    int retval = 0;
     u8 buf[6] = {0, 0, 0, 0, 0, 0};
 
     struct i2c_msg msgs[1]={
-          {
-             .addr = client->addr,
-             .flags = 0,
-             .len = 6,
-             .buf = buf,
-          }
+         {
+            .addr = client->addr,
+            .flags = 0,
+            .len = 6,
+            .buf = buf,
+         }
     };
 
 
index 6225f10..84c68b3 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -38,52 +38,52 @@ static void medusa_enable_bluefield_output(struct cx25821_dev *dev, int channel,
     int out_ctrl = OUT_CTRL1;
     int out_ctrl_ns = OUT_CTRL_NS;
 
-        
+
     switch (channel)
     {
-        default:
-        case VDEC_A: 
-            break;
-        case VDEC_B: 
-            out_ctrl = VDEC_B_OUT_CTRL1;
-            out_ctrl_ns = VDEC_B_OUT_CTRL_NS;
-            break;
-        case VDEC_C:
-            out_ctrl = VDEC_C_OUT_CTRL1;
-            out_ctrl_ns = VDEC_C_OUT_CTRL_NS;
-            break;
-        case VDEC_D:
-            out_ctrl = VDEC_D_OUT_CTRL1;
-            out_ctrl_ns = VDEC_D_OUT_CTRL_NS;
-            break;
-        case VDEC_E:
-            out_ctrl = VDEC_E_OUT_CTRL1;
-            out_ctrl_ns = VDEC_E_OUT_CTRL_NS;
-            return;
-        case VDEC_F:
-            out_ctrl = VDEC_F_OUT_CTRL1;
-            out_ctrl_ns = VDEC_F_OUT_CTRL_NS;
-            return;
-        case VDEC_G:
-            out_ctrl = VDEC_G_OUT_CTRL1;
-            out_ctrl_ns = VDEC_G_OUT_CTRL_NS;
-            return;
-        case VDEC_H: 
-            out_ctrl = VDEC_H_OUT_CTRL1;
-            out_ctrl_ns = VDEC_H_OUT_CTRL_NS;
-            return;
+       default:
+       case VDEC_A:
+           break;
+       case VDEC_B:
+           out_ctrl = VDEC_B_OUT_CTRL1;
+           out_ctrl_ns = VDEC_B_OUT_CTRL_NS;
+           break;
+       case VDEC_C:
+           out_ctrl = VDEC_C_OUT_CTRL1;
+           out_ctrl_ns = VDEC_C_OUT_CTRL_NS;
+           break;
+       case VDEC_D:
+           out_ctrl = VDEC_D_OUT_CTRL1;
+           out_ctrl_ns = VDEC_D_OUT_CTRL_NS;
+           break;
+       case VDEC_E:
+           out_ctrl = VDEC_E_OUT_CTRL1;
+           out_ctrl_ns = VDEC_E_OUT_CTRL_NS;
+           return;
+       case VDEC_F:
+           out_ctrl = VDEC_F_OUT_CTRL1;
+           out_ctrl_ns = VDEC_F_OUT_CTRL_NS;
+           return;
+       case VDEC_G:
+           out_ctrl = VDEC_G_OUT_CTRL1;
+           out_ctrl_ns = VDEC_G_OUT_CTRL_NS;
+           return;
+       case VDEC_H:
+           out_ctrl = VDEC_H_OUT_CTRL1;
+           out_ctrl_ns = VDEC_H_OUT_CTRL_NS;
+           return;
     }
 
     value = cx25821_i2c_read(&dev->i2c_bus[0], out_ctrl, &tmp);
     value &= 0xFFFFFF7F;        // clear BLUE_FIELD_EN
     if (enable)
-        value |= 0x00000080;    // set BLUE_FIELD_EN    
+       value |= 0x00000080;    // set BLUE_FIELD_EN
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], out_ctrl, value);
 
     value = cx25821_i2c_read(&dev->i2c_bus[0], out_ctrl_ns, &tmp);
     value &= 0xFFFFFF7F;
     if (enable)
-        value |= 0x00000080;    // set BLUE_FIELD_EN    
+       value |= 0x00000080;    // set BLUE_FIELD_EN
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], out_ctrl_ns, value);
 }
 
@@ -97,93 +97,93 @@ static int medusa_initialize_ntsc(struct cx25821_dev *dev)
 
     mutex_lock(&dev->lock);
 
-    
+
     for (i=0; i < MAX_DECODERS; i++)
     {
-        // set video format NTSC-M
-        value = cx25821_i2c_read(&dev->i2c_bus[0], MODE_CTRL+(0x200*i), &tmp);
-        value &= 0xFFFFFFF0;
-        value |= 0x10001;     // enable the fast locking mode bit[16]
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], MODE_CTRL+(0x200*i), value);
-        
-        // resolution NTSC 720x480 
-        value = cx25821_i2c_read(&dev->i2c_bus[0], HORIZ_TIM_CTRL+(0x200*i), &tmp);
-        value &= 0x00C00C00;
-        value |= 0x612D0074;
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], HORIZ_TIM_CTRL+(0x200*i), value);
-        
-        value = cx25821_i2c_read(&dev->i2c_bus[0], VERT_TIM_CTRL+(0x200*i), &tmp);
-        value &= 0x00C00C00;
-        value |= 0x1C1E001A;        // vblank_cnt + 2 to get camera ID
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], VERT_TIM_CTRL+(0x200*i), value);
-
-        // chroma subcarrier step size
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], SC_STEP_SIZE+(0x200*i), 0x43E00000);
-        
-        // enable VIP optional active
-        value = cx25821_i2c_read(&dev->i2c_bus[0], OUT_CTRL_NS+(0x200*i), &tmp);
-        value &= 0xFFFBFFFF;
-        value |= 0x00040000;        
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], OUT_CTRL_NS+(0x200*i), value);
-
-        // enable VIP optional active (VIP_OPT_AL) for direct output.
-        value = cx25821_i2c_read(&dev->i2c_bus[0], OUT_CTRL1+(0x200*i), &tmp);
-        value &= 0xFFFBFFFF;
-        value |= 0x00040000;        
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], OUT_CTRL1+(0x200*i), value);
-
-        // clear VPRES_VERT_EN bit, fixes the chroma run away problem
-        // when the input switching rate < 16 fields
-        // 
-        value = cx25821_i2c_read(&dev->i2c_bus[0], MISC_TIM_CTRL+(0x200*i), &tmp);
-        value = setBitAtPos(value, 14);    // disable special play detection
-        value = clearBitAtPos(value, 15);  
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], MISC_TIM_CTRL+(0x200*i), value);
-
-        // set vbi_gate_en to 0 
-        value = cx25821_i2c_read(&dev->i2c_bus[0], DFE_CTRL1+(0x200*i), &tmp);
-        value = clearBitAtPos(value, 29);
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DFE_CTRL1+(0x200*i), value);
-        
-        // Enable the generation of blue field output if no video
-        medusa_enable_bluefield_output(dev, i, 1);
+       // set video format NTSC-M
+       value = cx25821_i2c_read(&dev->i2c_bus[0], MODE_CTRL+(0x200*i), &tmp);
+       value &= 0xFFFFFFF0;
+       value |= 0x10001;     // enable the fast locking mode bit[16]
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], MODE_CTRL+(0x200*i), value);
+
+       // resolution NTSC 720x480
+       value = cx25821_i2c_read(&dev->i2c_bus[0], HORIZ_TIM_CTRL+(0x200*i), &tmp);
+       value &= 0x00C00C00;
+       value |= 0x612D0074;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], HORIZ_TIM_CTRL+(0x200*i), value);
+
+       value = cx25821_i2c_read(&dev->i2c_bus[0], VERT_TIM_CTRL+(0x200*i), &tmp);
+       value &= 0x00C00C00;
+       value |= 0x1C1E001A;        // vblank_cnt + 2 to get camera ID
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], VERT_TIM_CTRL+(0x200*i), value);
+
+       // chroma subcarrier step size
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], SC_STEP_SIZE+(0x200*i), 0x43E00000);
+
+       // enable VIP optional active
+       value = cx25821_i2c_read(&dev->i2c_bus[0], OUT_CTRL_NS+(0x200*i), &tmp);
+       value &= 0xFFFBFFFF;
+       value |= 0x00040000;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], OUT_CTRL_NS+(0x200*i), value);
+
+       // enable VIP optional active (VIP_OPT_AL) for direct output.
+       value = cx25821_i2c_read(&dev->i2c_bus[0], OUT_CTRL1+(0x200*i), &tmp);
+       value &= 0xFFFBFFFF;
+       value |= 0x00040000;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], OUT_CTRL1+(0x200*i), value);
+
+       // clear VPRES_VERT_EN bit, fixes the chroma run away problem
+       // when the input switching rate < 16 fields
+       //
+       value = cx25821_i2c_read(&dev->i2c_bus[0], MISC_TIM_CTRL+(0x200*i), &tmp);
+       value = setBitAtPos(value, 14);    // disable special play detection
+       value = clearBitAtPos(value, 15);
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], MISC_TIM_CTRL+(0x200*i), value);
+
+       // set vbi_gate_en to 0
+       value = cx25821_i2c_read(&dev->i2c_bus[0], DFE_CTRL1+(0x200*i), &tmp);
+       value = clearBitAtPos(value, 29);
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DFE_CTRL1+(0x200*i), value);
+
+       // Enable the generation of blue field output if no video
+       medusa_enable_bluefield_output(dev, i, 1);
     }
 
 
     for (i=0; i < MAX_ENCODERS; i++)
     {
-        // NTSC hclock 
-        value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_1+(0x100*i), &tmp);
-        value &= 0xF000FC00;
-        value |= 0x06B402D0;
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_1+(0x100*i), value);
-
-        // burst begin and burst end
-        value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_2+(0x100*i), &tmp);
-        value &= 0xFF000000;
-        value |= 0x007E9054;
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_2+(0x100*i), value);
-
-        value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_3+(0x100*i), &tmp);
-        value &= 0xFC00FE00;
-        value |= 0x00EC00F0;
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_3+(0x100*i), value);
-
-        // set NTSC vblank, no phase alternation, 7.5 IRE pedestal
-        value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_4+(0x100*i), &tmp);
-        value &= 0x00FCFFFF;
-        value |= 0x13020000;    
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_4+(0x100*i), value);
-
-        value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_5+(0x100*i), &tmp);
-        value &= 0xFFFF0000;
-        value |= 0x0000E575;
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_5+(0x100*i), value);
-
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_6+(0x100*i), 0x009A89C1);
-
-        // Subcarrier Increment
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_7+(0x100*i), 0x21F07C1F);
+       // NTSC hclock
+       value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_1+(0x100*i), &tmp);
+       value &= 0xF000FC00;
+       value |= 0x06B402D0;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_1+(0x100*i), value);
+
+       // burst begin and burst end
+       value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_2+(0x100*i), &tmp);
+       value &= 0xFF000000;
+       value |= 0x007E9054;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_2+(0x100*i), value);
+
+       value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_3+(0x100*i), &tmp);
+       value &= 0xFC00FE00;
+       value |= 0x00EC00F0;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_3+(0x100*i), value);
+
+       // set NTSC vblank, no phase alternation, 7.5 IRE pedestal
+       value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_4+(0x100*i), &tmp);
+       value &= 0x00FCFFFF;
+       value |= 0x13020000;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_4+(0x100*i), value);
+
+       value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_5+(0x100*i), &tmp);
+       value &= 0xFFFF0000;
+       value |= 0x0000E575;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_5+(0x100*i), value);
+
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_6+(0x100*i), 0x009A89C1);
+
+       // Subcarrier Increment
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_7+(0x100*i), 0x21F07C1F);
     }
 
 
@@ -206,23 +206,23 @@ static int medusa_PALCombInit(struct cx25821_dev *dev, int dec)
 {
     int ret_val = -1;
     u32 value = 0, tmp = 0;
-   
+
     // Setup for 2D threshold
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], COMB_2D_HFS_CFG+(0x200*dec), 0x20002861);
-    ret_val = cx25821_i2c_write(&dev->i2c_bus[0], COMB_2D_HFD_CFG+(0x200*dec), 0x20002861); 
-    ret_val = cx25821_i2c_write(&dev->i2c_bus[0], COMB_2D_LF_CFG+(0x200*dec), 0x200A1023); 
-   
-    // Setup flat chroma and luma thresholds 
+    ret_val = cx25821_i2c_write(&dev->i2c_bus[0], COMB_2D_HFD_CFG+(0x200*dec), 0x20002861);
+    ret_val = cx25821_i2c_write(&dev->i2c_bus[0], COMB_2D_LF_CFG+(0x200*dec), 0x200A1023);
+
+    // Setup flat chroma and luma thresholds
     value = cx25821_i2c_read(&dev->i2c_bus[0], COMB_FLAT_THRESH_CTRL+(0x200*dec), &tmp);
-    value &= 0x06230000;        
+    value &= 0x06230000;
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], COMB_FLAT_THRESH_CTRL+(0x200*dec), value);
-      
-    // set comb 2D blend 
+
+    // set comb 2D blend
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], COMB_2D_BLEND+(0x200*dec), 0x210F0F0F);
-   
-    // COMB MISC CONTROL  
+
+    // COMB MISC CONTROL
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], COMB_MISC_CTRL+(0x200*dec), 0x41120A7F);
-    
+
     return ret_val;
 }
 
@@ -235,110 +235,110 @@ static int medusa_initialize_pal(struct cx25821_dev *dev)
     u32 tmp = 0;
 
     mutex_lock(&dev->lock);
-    
+
     for (i=0; i < MAX_DECODERS; i++)
     {
-        // set video format PAL-BDGHI       
-        value = cx25821_i2c_read(&dev->i2c_bus[0], MODE_CTRL+(0x200*i), &tmp);
-        value &= 0xFFFFFFF0;
-        value |= 0x10004;     // enable the fast locking mode bit[16]
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], MODE_CTRL+(0x200*i), value);
-        
-        
-        // resolution PAL 720x576       
-        value = cx25821_i2c_read(&dev->i2c_bus[0], HORIZ_TIM_CTRL+(0x200*i), &tmp);
-        value &= 0x00C00C00;
-        value |= 0x632D007D;
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], HORIZ_TIM_CTRL+(0x200*i), value);
-        
-        // vblank656_cnt=x26, vactive_cnt=240h, vblank_cnt=x24      
-        value = cx25821_i2c_read(&dev->i2c_bus[0], VERT_TIM_CTRL+(0x200*i), &tmp);
-        value &= 0x00C00C00;
-        value |= 0x28240026;        // vblank_cnt + 2 to get camera ID
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], VERT_TIM_CTRL+(0x200*i), value);
-        
-        // chroma subcarrier step size
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], SC_STEP_SIZE+(0x200*i), 0x5411E2D0);
-
-        // enable VIP optional active
-        value = cx25821_i2c_read(&dev->i2c_bus[0], OUT_CTRL_NS+(0x200*i), &tmp);
-        value &= 0xFFFBFFFF;
-        value |= 0x00040000;            
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], OUT_CTRL_NS+(0x200*i), value);
-        
-        // enable VIP optional active (VIP_OPT_AL) for direct output.
-        value = cx25821_i2c_read(&dev->i2c_bus[0], OUT_CTRL1+(0x200*i), &tmp);
-        value &= 0xFFFBFFFF;
-        value |= 0x00040000;        
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], OUT_CTRL1+(0x200*i), value);
-        
-        // clear VPRES_VERT_EN bit, fixes the chroma run away problem
-        // when the input switching rate < 16 fields
-        value = cx25821_i2c_read(&dev->i2c_bus[0], MISC_TIM_CTRL+(0x200*i), &tmp);
-        value = setBitAtPos(value, 14);    // disable special play detection
-        value = clearBitAtPos(value, 15);
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], MISC_TIM_CTRL+(0x200*i), value);
-        
-        // set vbi_gate_en to 0         
-        value = cx25821_i2c_read(&dev->i2c_bus[0], DFE_CTRL1+(0x200*i), &tmp);
-        value = clearBitAtPos(value, 29);
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DFE_CTRL1+(0x200*i), value);
-
-        medusa_PALCombInit(dev, i);
-         
-        // Enable the generation of blue field output if no video
-        medusa_enable_bluefield_output(dev, i, 1);
-    }
-
-    
-    for (i=0; i < MAX_ENCODERS; i++)        
-    {
-        // PAL hclock 
-        value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_1+(0x100*i), &tmp);
-        value &= 0xF000FC00;
-        value |= 0x06C002D0;
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_1+(0x100*i), value);
-
-        // burst begin and burst end        
-        value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_2+(0x100*i), &tmp);
-        value &= 0xFF000000;
-        value |= 0x007E9754;
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_2+(0x100*i), value);
-
-        // hblank and vactive       
-        value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_3+(0x100*i), &tmp);
-        value &= 0xFC00FE00;
-        value |= 0x00FC0120;
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_3+(0x100*i), value);
-
-        // set PAL vblank, phase alternation, 0 IRE pedestal        
-        value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_4+(0x100*i), &tmp);
-        value &= 0x00FCFFFF;
-        value |= 0x14010000;
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_4+(0x100*i), value);
-        
-    
-        value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_5+(0x100*i), &tmp);
-        value &= 0xFFFF0000;
-        value |= 0x0000F078;
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_5+(0x100*i), value);
-
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_6+(0x100*i), 0x00A493CF);
-
-        // Subcarrier Increment     
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_7+(0x100*i), 0x2A098ACB);
-    }
-          
-
-    //set picture resolutions   
+       // set video format PAL-BDGHI
+       value = cx25821_i2c_read(&dev->i2c_bus[0], MODE_CTRL+(0x200*i), &tmp);
+       value &= 0xFFFFFFF0;
+       value |= 0x10004;     // enable the fast locking mode bit[16]
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], MODE_CTRL+(0x200*i), value);
+
+
+       // resolution PAL 720x576
+       value = cx25821_i2c_read(&dev->i2c_bus[0], HORIZ_TIM_CTRL+(0x200*i), &tmp);
+       value &= 0x00C00C00;
+       value |= 0x632D007D;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], HORIZ_TIM_CTRL+(0x200*i), value);
+
+       // vblank656_cnt=x26, vactive_cnt=240h, vblank_cnt=x24
+       value = cx25821_i2c_read(&dev->i2c_bus[0], VERT_TIM_CTRL+(0x200*i), &tmp);
+       value &= 0x00C00C00;
+       value |= 0x28240026;        // vblank_cnt + 2 to get camera ID
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], VERT_TIM_CTRL+(0x200*i), value);
+
+       // chroma subcarrier step size
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], SC_STEP_SIZE+(0x200*i), 0x5411E2D0);
+
+       // enable VIP optional active
+       value = cx25821_i2c_read(&dev->i2c_bus[0], OUT_CTRL_NS+(0x200*i), &tmp);
+       value &= 0xFFFBFFFF;
+       value |= 0x00040000;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], OUT_CTRL_NS+(0x200*i), value);
+
+       // enable VIP optional active (VIP_OPT_AL) for direct output.
+       value = cx25821_i2c_read(&dev->i2c_bus[0], OUT_CTRL1+(0x200*i), &tmp);
+       value &= 0xFFFBFFFF;
+       value |= 0x00040000;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], OUT_CTRL1+(0x200*i), value);
+
+       // clear VPRES_VERT_EN bit, fixes the chroma run away problem
+       // when the input switching rate < 16 fields
+       value = cx25821_i2c_read(&dev->i2c_bus[0], MISC_TIM_CTRL+(0x200*i), &tmp);
+       value = setBitAtPos(value, 14);    // disable special play detection
+       value = clearBitAtPos(value, 15);
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], MISC_TIM_CTRL+(0x200*i), value);
+
+       // set vbi_gate_en to 0
+       value = cx25821_i2c_read(&dev->i2c_bus[0], DFE_CTRL1+(0x200*i), &tmp);
+       value = clearBitAtPos(value, 29);
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DFE_CTRL1+(0x200*i), value);
+
+       medusa_PALCombInit(dev, i);
+
+       // Enable the generation of blue field output if no video
+       medusa_enable_bluefield_output(dev, i, 1);
+    }
+
+
+    for (i=0; i < MAX_ENCODERS; i++)
+    {
+       // PAL hclock
+       value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_1+(0x100*i), &tmp);
+       value &= 0xF000FC00;
+       value |= 0x06C002D0;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_1+(0x100*i), value);
+
+       // burst begin and burst end
+       value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_2+(0x100*i), &tmp);
+       value &= 0xFF000000;
+       value |= 0x007E9754;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_2+(0x100*i), value);
+
+       // hblank and vactive
+       value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_3+(0x100*i), &tmp);
+       value &= 0xFC00FE00;
+       value |= 0x00FC0120;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_3+(0x100*i), value);
+
+       // set PAL vblank, phase alternation, 0 IRE pedestal
+       value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_4+(0x100*i), &tmp);
+       value &= 0x00FCFFFF;
+       value |= 0x14010000;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_4+(0x100*i), value);
+
+
+       value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_5+(0x100*i), &tmp);
+       value &= 0xFFFF0000;
+       value |= 0x0000F078;
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_5+(0x100*i), value);
+
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_6+(0x100*i), 0x00A493CF);
+
+       // Subcarrier Increment
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_7+(0x100*i), 0x2A098ACB);
+    }
+
+
+    //set picture resolutions
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], HSCALE_CTRL, 0x0);  //0 - 720
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], VSCALE_CTRL, 0x0);  //0 - 576
-    
-    // set Bypass input format to PAL 625 lines 
+
+    // set Bypass input format to PAL 625 lines
     value = cx25821_i2c_read(&dev->i2c_bus[0], BYP_AB_CTRL, &tmp);
     value &= 0xFFF7FDFF;
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], BYP_AB_CTRL, value);
-    
+
     mutex_unlock(&dev->lock);
 
     return ret_val;
@@ -350,26 +350,26 @@ int medusa_set_videostandard(struct cx25821_dev *dev)
     int status = STATUS_SUCCESS;
     u32 value = 0, tmp = 0;
 
-    
+
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
     {
-        status = medusa_initialize_pal(dev);
+       status = medusa_initialize_pal(dev);
     }
     else
     {
-        status = medusa_initialize_ntsc(dev);
+       status = medusa_initialize_ntsc(dev);
     }
-        
+
     // Enable DENC_A output
     value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_A_REG_4, &tmp);
     value = setBitAtPos(value, 4);
     status = cx25821_i2c_write(&dev->i2c_bus[0], DENC_A_REG_4, value);
-    
+
     // Enable DENC_B output
     value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_B_REG_4, &tmp);
     value = setBitAtPos(value, 4);
     status = cx25821_i2c_write(&dev->i2c_bus[0], DENC_B_REG_4, value);
-    
+
     return status;
 }
 
@@ -380,7 +380,7 @@ void medusa_set_resolution(struct cx25821_dev *dev, int width, int decoder_selec
     int decoder_count = 0;
     int ret_val = 0;
     u32 hscale = 0x0;
-    u32 vscale = 0x0; 
+    u32 vscale = 0x0;
     const int MAX_WIDTH = 720;
 
     mutex_lock(&dev->lock);
@@ -388,55 +388,55 @@ void medusa_set_resolution(struct cx25821_dev *dev, int width, int decoder_selec
     // validate the width - cannot be negative
     if (width > MAX_WIDTH)
     {
-        printk("cx25821 %s() : width %d > MAX_WIDTH %d ! resetting to MAX_WIDTH \n", __func__, width, MAX_WIDTH);
-        width = MAX_WIDTH;
-    } 
-             
+       printk("cx25821 %s() : width %d > MAX_WIDTH %d ! resetting to MAX_WIDTH \n", __func__, width, MAX_WIDTH);
+       width = MAX_WIDTH;
+    }
+
     if( decoder_select <= 7 && decoder_select >= 0 )
     {
-        decoder = decoder_select;
-        decoder_count = decoder_select + 1;
+       decoder = decoder_select;
+       decoder_count = decoder_select + 1;
     }
     else
     {
-        decoder = 0;
-        decoder_count = _num_decoders;
+       decoder = 0;
+       decoder_count = _num_decoders;
     }
-    
-    
-    switch( width )
-    {
-        case 320:
-            hscale = 0x13E34B;
-            vscale = 0x0;
-            break;
-
-        case 352:
-            hscale = 0x10A273;
-            vscale = 0x0;
-            break;
-
-        case 176:
-            hscale = 0x3115B2;
-            vscale = 0x1E00;
-            break;
 
-        case 160:
-            hscale = 0x378D84;
-            vscale = 0x1E00;
-            break;
 
-        default:            //720
-            hscale = 0x0;
-            vscale = 0x0;
-            break;  
-    } 
+    switch( width )
+    {
+       case 320:
+           hscale = 0x13E34B;
+           vscale = 0x0;
+           break;
+
+       case 352:
+           hscale = 0x10A273;
+           vscale = 0x0;
+           break;
+
+       case 176:
+           hscale = 0x3115B2;
+           vscale = 0x1E00;
+           break;
+
+       case 160:
+           hscale = 0x378D84;
+           vscale = 0x1E00;
+           break;
+
+       default:            //720
+           hscale = 0x0;
+           vscale = 0x0;
+           break;
+    }
 
     for( ; decoder < decoder_count; decoder++)
     {
-        // write scaling values for each decoder
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], HSCALE_CTRL+(0x200*decoder), hscale);
-        ret_val = cx25821_i2c_write(&dev->i2c_bus[0], VSCALE_CTRL+(0x200*decoder), vscale);
+       // write scaling values for each decoder
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], HSCALE_CTRL+(0x200*decoder), hscale);
+       ret_val = cx25821_i2c_write(&dev->i2c_bus[0], VSCALE_CTRL+(0x200*decoder), vscale);
     }
 
     mutex_unlock(&dev->lock);
@@ -448,52 +448,52 @@ static void medusa_set_decoderduration(struct cx25821_dev *dev, int decoder, int
     u32 fld_cnt = 0;
     u32 tmp = 0;
     u32 disp_cnt_reg = DISP_AB_CNT;
-    
+
     mutex_lock(&dev->lock);
 
-    // no support 
+    // no support
     if (decoder < VDEC_A && decoder > VDEC_H)
     {
-        mutex_unlock(&dev->lock);
-        return;
+       mutex_unlock(&dev->lock);
+       return;
     }
 
     switch (decoder)
     {
-        default:
-            break;
-        case VDEC_C: 
-        case VDEC_D:
-            disp_cnt_reg = DISP_CD_CNT;
-            break;
-        case VDEC_E:
-        case VDEC_F: 
-            disp_cnt_reg = DISP_EF_CNT;
-            break;
-        case VDEC_G: 
-        case VDEC_H:
-            disp_cnt_reg = DISP_GH_CNT;
-            break;
+       default:
+           break;
+       case VDEC_C:
+       case VDEC_D:
+           disp_cnt_reg = DISP_CD_CNT;
+           break;
+       case VDEC_E:
+       case VDEC_F:
+           disp_cnt_reg = DISP_EF_CNT;
+           break;
+       case VDEC_G:
+       case VDEC_H:
+           disp_cnt_reg = DISP_GH_CNT;
+           break;
     }
 
     _display_field_cnt[decoder] = duration;
 
     // update hardware
     fld_cnt = cx25821_i2c_read(&dev->i2c_bus[0], disp_cnt_reg, &tmp);
-    
+
     if (!(decoder % 2)) // EVEN decoder
     {
-        fld_cnt &= 0xFFFF0000;
-        fld_cnt |= duration;
+       fld_cnt &= 0xFFFF0000;
+       fld_cnt |= duration;
     }
     else
     {
-        fld_cnt &= 0x0000FFFF;
-        fld_cnt |= ((u32)duration) << 16;
+       fld_cnt &= 0x0000FFFF;
+       fld_cnt |= ((u32)duration) << 16;
     }
 
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], disp_cnt_reg, fld_cnt);
-    
+
     mutex_unlock(&dev->lock);
 }
 
@@ -514,7 +514,7 @@ static int mapM(
 
     if((srcMin == srcMax) || (srcVal < srcMin) || (srcVal > srcMax))
     {
-        return -1;
+       return -1;
     }
 
     // This is the overall expression used:
@@ -527,7 +527,7 @@ static int mapM(
 
     if(2 * ( numerator % denominator ) >= denominator)
     {
-        quotient++;
+       quotient++;
     }
 
     *dstVal = quotient + dstMin;
@@ -540,12 +540,12 @@ static unsigned long convert_to_twos(long numeric, unsigned long bits_len)
     unsigned char temp;
 
     if (numeric >= 0)
-        return numeric;
+       return numeric;
     else
     {
-        temp = ~(abs(numeric) & 0xFF);
-        temp += 1;
-        return temp;
+       temp = ~(abs(numeric) & 0xFF);
+       temp += 1;
+       return temp;
     }
 }
 /////////////////////////////////////////////////////////////////////////////////////////
@@ -558,8 +558,8 @@ int medusa_set_brightness(struct cx25821_dev *dev, int brightness, int decoder)
     mutex_lock(&dev->lock);
     if((brightness > VIDEO_PROCAMP_MAX) || (brightness < VIDEO_PROCAMP_MIN))
     {
-        mutex_unlock(&dev->lock);
-        return -1;
+       mutex_unlock(&dev->lock);
+       return -1;
     }
     ret_val = mapM(VIDEO_PROCAMP_MIN, VIDEO_PROCAMP_MAX, brightness, SIGNED_BYTE_MIN, SIGNED_BYTE_MAX, &value);
     value = convert_to_twos(value, 8);
@@ -578,11 +578,11 @@ int medusa_set_contrast(struct cx25821_dev *dev, int contrast, int decoder)
     u32 val = 0, tmp = 0;
 
     mutex_lock(&dev->lock);
-    
+
     if((contrast > VIDEO_PROCAMP_MAX) || (contrast < VIDEO_PROCAMP_MIN))
     {
-        mutex_unlock(&dev->lock);
-        return -1;
+       mutex_unlock(&dev->lock);
+       return -1;
     }
 
     ret_val = mapM(VIDEO_PROCAMP_MIN, VIDEO_PROCAMP_MAX, contrast, UNSIGNED_BYTE_MIN, UNSIGNED_BYTE_MAX, &value);
@@ -602,15 +602,15 @@ int medusa_set_hue(struct cx25821_dev *dev, int hue, int decoder)
     u32 val = 0, tmp = 0;
 
     mutex_lock(&dev->lock);
-    
+
     if((hue > VIDEO_PROCAMP_MAX) || (hue < VIDEO_PROCAMP_MIN))
     {
-        mutex_unlock(&dev->lock);
-        return -1;
+       mutex_unlock(&dev->lock);
+       return -1;
     }
 
     ret_val = mapM(VIDEO_PROCAMP_MIN, VIDEO_PROCAMP_MAX, hue, SIGNED_BYTE_MIN, SIGNED_BYTE_MAX, &value);
-    
+
     value = convert_to_twos(value, 8);
     val = cx25821_i2c_read(&dev->i2c_bus[0], VDEC_A_HUE_CTRL+(0x200*decoder), &tmp);
     val &= 0xFFFFFF00;
@@ -628,25 +628,25 @@ int medusa_set_saturation(struct cx25821_dev *dev, int saturation, int decoder)
     int ret_val = 0;
     int value = 0;
     u32 val = 0, tmp = 0;
-    
+
     mutex_lock(&dev->lock);
-    
+
     if((saturation > VIDEO_PROCAMP_MAX) || (saturation < VIDEO_PROCAMP_MIN))
     {
-        mutex_unlock(&dev->lock);
-        return -1;
+       mutex_unlock(&dev->lock);
+       return -1;
     }
 
     ret_val = mapM(VIDEO_PROCAMP_MIN, VIDEO_PROCAMP_MAX, saturation, UNSIGNED_BYTE_MIN, UNSIGNED_BYTE_MAX, &value);
-    
+
     val = cx25821_i2c_read(&dev->i2c_bus[0], VDEC_A_USAT_CTRL+(0x200*decoder), &tmp);
-    val &= 0xFFFFFF00;                          
+    val &= 0xFFFFFF00;
     ret_val |= cx25821_i2c_write(&dev->i2c_bus[0], VDEC_A_USAT_CTRL+(0x200*decoder), val | value);
 
     val = cx25821_i2c_read(&dev->i2c_bus[0], VDEC_A_VSAT_CTRL+(0x200*decoder), &tmp);
-    val &= 0xFFFFFF00; 
+    val &= 0xFFFFFF00;
     ret_val |= cx25821_i2c_write(&dev->i2c_bus[0], VDEC_A_VSAT_CTRL+(0x200*decoder), val | value);
-    
+
     mutex_unlock(&dev->lock);
     return ret_val;
 }
@@ -660,75 +660,75 @@ int medusa_video_init(struct cx25821_dev *dev)
     u32 value = 0, tmp = 0;
     int ret_val = 0;
     int i=0;
-    
+
     mutex_lock(&dev->lock);
-    
+
     _num_decoders = dev->_max_num_decoders;
-    
-    
-    // disable Auto source selection on all video decoders  
+
+
+    // disable Auto source selection on all video decoders
     value = cx25821_i2c_read(&dev->i2c_bus[0], MON_A_CTRL, &tmp);
     value &= 0xFFFFF0FF;
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], MON_A_CTRL, value);
-    
+
     if (ret_val < 0)
     {
-        mutex_unlock(&dev->lock);
-        return -EINVAL;
+       mutex_unlock(&dev->lock);
+       return -EINVAL;
     }
-    
+
     // Turn off Master source switch enable
     value = cx25821_i2c_read(&dev->i2c_bus[0], MON_A_CTRL, &tmp);
     value &= 0xFFFFFFDF;
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], MON_A_CTRL, value);
-    
+
     if (ret_val < 0)
     {
-        mutex_unlock(&dev->lock);
-        return -EINVAL;
+       mutex_unlock(&dev->lock);
+       return -EINVAL;
     }
 
     mutex_unlock(&dev->lock);
 
     for (i=0; i < _num_decoders; i++)
     {
-        medusa_set_decoderduration(dev, i, _display_field_cnt[i]);
+       medusa_set_decoderduration(dev, i, _display_field_cnt[i]);
     }
-    
+
     mutex_lock(&dev->lock);
 
-    // Select monitor as DENC A input, power up the DAC 
+    // Select monitor as DENC A input, power up the DAC
     value = cx25821_i2c_read(&dev->i2c_bus[0], DENC_AB_CTRL, &tmp);
     value &= 0xFF70FF70;
-    value |= 0x00090008;    // set en_active 
+    value |= 0x00090008;    // set en_active
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_AB_CTRL, value);
-    
+
     if (ret_val < 0)
     {
-        mutex_unlock(&dev->lock);
-        return -EINVAL;
+       mutex_unlock(&dev->lock);
+       return -EINVAL;
     }
 
     // enable input is VIP/656
     value = cx25821_i2c_read(&dev->i2c_bus[0], BYP_AB_CTRL, &tmp);
     value |= 0x00040100;    // enable VIP
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], BYP_AB_CTRL, value);
-    
+
     if (ret_val < 0)
     {
-        mutex_unlock(&dev->lock);
-        return -EINVAL;
+       mutex_unlock(&dev->lock);
+       return -EINVAL;
     }
 
-    // select AFE clock to output mode 
+    // select AFE clock to output mode
     value = cx25821_i2c_read(&dev->i2c_bus[0], AFE_AB_DIAG_CTRL, &tmp);
     value &= 0x83FFFFFF;
-    ret_val = cx25821_i2c_write(&dev->i2c_bus[0], AFE_AB_DIAG_CTRL, value | 0x10000000);        
-    
+    ret_val = cx25821_i2c_write(&dev->i2c_bus[0], AFE_AB_DIAG_CTRL, value | 0x10000000);
+
     if (ret_val < 0)
     {
-        mutex_unlock(&dev->lock);
-        return -EINVAL;
+       mutex_unlock(&dev->lock);
+       return -EINVAL;
     }
 
     // Turn on all of the data out and control output pins.
@@ -736,34 +736,34 @@ int medusa_video_init(struct cx25821_dev *dev)
     value &= 0xFEF0FE00;
     if (_num_decoders == MAX_DECODERS)
     {
-        // Note: The octal board does not support control pins(bit16-19).
-        // These bits are ignored in the octal board.
-        value |= 0x010001F8;             // disable VDEC A-C port, default to Mobilygen Interface
+       // Note: The octal board does not support control pins(bit16-19).
+       // These bits are ignored in the octal board.
+       value |= 0x010001F8;             // disable VDEC A-C port, default to Mobilygen Interface
     }
     else
     {
-        value |= 0x010F0108;             // disable VDEC A-C port, default to Mobilygen Interface
+       value |= 0x010F0108;             // disable VDEC A-C port, default to Mobilygen Interface
     }
-    
+
     value |= 7;
     ret_val = cx25821_i2c_write(&dev->i2c_bus[0], PIN_OE_CTRL, value);
     if (ret_val < 0)
     {
-        mutex_unlock(&dev->lock);
-        return -EINVAL;
+       mutex_unlock(&dev->lock);
+       return -EINVAL;
     }
 
     mutex_unlock(&dev->lock);
 
-    
+
     ret_val = medusa_set_videostandard(dev);
 
-    
+
     if (ret_val < 0)
     {
-        mutex_unlock(&dev->lock);
-        return -EINVAL;
-    }   
-    
+       mutex_unlock(&dev->lock);
+       return -EINVAL;
+    }
+
     return 1;
 }
index 0ba3cc7..f7cb16a 100644 (file)
@@ -26,7 +26,7 @@
 #include "cx25821-medusa-defines.h"
 
 
-// Color control constants 
+// Color control constants
 #define VIDEO_PROCAMP_MIN                 0
 #define VIDEO_PROCAMP_MAX                 10000
 #define UNSIGNED_BYTE_MIN                 0
index 82f4f16..3d98124 100644 (file)
 //*****************************************************************************\r
 #define  I2C1_ADDR                 0x180000      // I2C #1 address\r
 #define  FLD_I2C_DADDR             0xfe000000    // RW [31:25] I2C Device Address\r
-                                                 // RO [24] reserved\r
+                                                // RO [24] reserved\r
 //*****************************************************************************\r
 #define  FLD_I2C_SADDR             0x00FFFFFF    // RW [23:0]  I2C Sub-address\r
 \r
 #define  FLD_I2C_PERIOD            0xFF000000    // RW [31:24]\r
 #define  FLD_I2C_SCL_IN            0x00200000    // RW [21]\r
 #define  FLD_I2C_SDA_IN            0x00100000    // RW [20]\r
-                                                 // RO [19:18] reserved\r
+                                                // RO [19:18] reserved\r
 #define  FLD_I2C_SCL_OUT           0x00020000    // RW [17]\r
 #define  FLD_I2C_SDA_OUT           0x00010000    // RW [16]\r
-                                                 // RO [15] reserved\r
+                                                // RO [15] reserved\r
 #define  FLD_I2C_DATA_LEN          0x00007000    // RW [14:12]\r
 #define  FLD_I2C_SADDR_INC         0x00000800    // RW [11]\r
-                                                 // RO [10:9] reserved\r
+                                                // RO [10:9] reserved\r
 #define  FLD_I2C_SADDR_LEN         0x00000300    // RW [9:8]\r
-                                                 // RO [7:6] reserved\r
+                                                // RO [7:6] reserved\r
 #define  FLD_I2C_SOFT              0x00000020    // RW [5]\r
 #define  FLD_I2C_NOSTOP            0x00000010    // RW [4]\r
 #define  FLD_I2C_EXTEND            0x00000008    // RW [3]\r
 \r
 //*****************************************************************************\r
 // Motion Detection
-#define  MD_CH0_GRID_BLOCK_YCNT    0x170014      
-#define  MD_CH1_GRID_BLOCK_YCNT    0x170094      
-#define  MD_CH2_GRID_BLOCK_YCNT    0x170114      
-#define  MD_CH3_GRID_BLOCK_YCNT    0x170194      
-#define  MD_CH4_GRID_BLOCK_YCNT    0x170214      
-#define  MD_CH5_GRID_BLOCK_YCNT    0x170294      
-#define  MD_CH6_GRID_BLOCK_YCNT    0x170314      
+#define  MD_CH0_GRID_BLOCK_YCNT    0x170014
+#define  MD_CH1_GRID_BLOCK_YCNT    0x170094
+#define  MD_CH2_GRID_BLOCK_YCNT    0x170114
+#define  MD_CH3_GRID_BLOCK_YCNT    0x170194
+#define  MD_CH4_GRID_BLOCK_YCNT    0x170214
+#define  MD_CH5_GRID_BLOCK_YCNT    0x170294
+#define  MD_CH6_GRID_BLOCK_YCNT    0x170314
 #define  MD_CH7_GRID_BLOCK_YCNT    0x170394
 
 #define PIXEL_FRMT_422    4
index ca91b83..720729e 100644 (file)
@@ -44,97 +44,97 @@ static int _intr_msk = FLD_VID_SRC_RISC1 | FLD_VID_SRC_UF | FLD_VID_SRC_SYNC | F
 \r
 \r
 static __le32 *cx25821_update_riscprogram_ch2( struct cx25821_dev *dev,\r
-                                             __le32 *rp, unsigned int offset, unsigned int bpl, \r
-                                             u32 sync_line, unsigned int lines, int fifo_enable, int field_type)\r
+                                            __le32 *rp, unsigned int offset, unsigned int bpl, \r
+                                            u32 sync_line, unsigned int lines, int fifo_enable, int field_type)\r
 {\r
     unsigned int line, i;\r
     int dist_betwn_starts = bpl * 2;        \r
     \r
-        \r
+       \r
     *(rp++) = cpu_to_le32(RISC_RESYNC | sync_line);     \r
     \r
     \r
     if( USE_RISC_NOOP_VIDEO )\r
     {\r
-        for( i = 0; i < NUM_NO_OPS; i++ )\r
-        {\r
-            *(rp++) = cpu_to_le32(RISC_NOOP);\r
-        }\r
+       for( i = 0; i < NUM_NO_OPS; i++ )\r
+       {\r
+           *(rp++) = cpu_to_le32(RISC_NOOP);\r
+       }\r
     }\r
     \r
     /* scan lines */\r
     for (line = 0; line < lines; line++) \r
     {       \r
-        *(rp++) = cpu_to_le32(RISC_READ|RISC_SOL|RISC_EOL|bpl); \r
-        *(rp++) = cpu_to_le32(dev->_data_buf_phys_addr_ch2+offset);       \r
-        *(rp++) = cpu_to_le32(0); /* bits 63-32 */  \r
-        \r
-        if ( (lines <= NTSC_FIELD_HEIGHT) || (line < (NTSC_FIELD_HEIGHT-1)) || !(dev->_isNTSC_ch2) )\r
-        {\r
-            offset += dist_betwn_starts;    \r
-        }               \r
+       *(rp++) = cpu_to_le32(RISC_READ|RISC_SOL|RISC_EOL|bpl); \r
+       *(rp++) = cpu_to_le32(dev->_data_buf_phys_addr_ch2+offset);       \r
+       *(rp++) = cpu_to_le32(0); /* bits 63-32 */  \r
+       \r
+       if ( (lines <= NTSC_FIELD_HEIGHT) || (line < (NTSC_FIELD_HEIGHT-1)) || !(dev->_isNTSC_ch2) )\r
+       {\r
+           offset += dist_betwn_starts;    \r
+       }               \r
     }\r
 \r
     return rp;\r
 }\r
 \r
 static __le32 *cx25821_risc_field_upstream_ch2( struct cx25821_dev *dev,\r
-                                           __le32 *rp, \r
-                                           dma_addr_t databuf_phys_addr,\r
-                                           unsigned int offset, u32 sync_line, unsigned int bpl, \r
-                                           unsigned int lines, int fifo_enable, int field_type)\r
+                                          __le32 *rp, \r
+                                          dma_addr_t databuf_phys_addr,\r
+                                          unsigned int offset, u32 sync_line, unsigned int bpl, \r
+                                          unsigned int lines, int fifo_enable, int field_type)\r
 {\r
     unsigned int line, i;\r
     struct sram_channel *sram_ch = &dev->sram_channels[dev->_channel2_upstream_select];\r
     int dist_betwn_starts = bpl * 2;        \r
     \r
-            \r
+           \r
     /* sync instruction */\r
     if (sync_line != NO_SYNC_LINE)\r
     { \r
-        *(rp++) = cpu_to_le32(RISC_RESYNC | sync_line);      \r
+       *(rp++) = cpu_to_le32(RISC_RESYNC | sync_line);      \r
     }\r
 \r
     \r
     if( USE_RISC_NOOP_VIDEO )\r
     {\r
-        for( i = 0; i < NUM_NO_OPS; i++ )\r
-        {\r
-            *(rp++) = cpu_to_le32(RISC_NOOP);\r
-        }\r
+       for( i = 0; i < NUM_NO_OPS; i++ )\r
+       {\r
+           *(rp++) = cpu_to_le32(RISC_NOOP);\r
+       }\r
     }\r
     \r
     /* scan lines */\r
     for (line = 0; line < lines; line++) \r
     {       \r
-        *(rp++) = cpu_to_le32(RISC_READ|RISC_SOL|RISC_EOL|bpl); \r
-        *(rp++) = cpu_to_le32(databuf_phys_addr+offset);          \r
-        *(rp++) = cpu_to_le32(0); /* bits 63-32 */  \r
-        \r
-        \r
-        if ( (lines <= NTSC_FIELD_HEIGHT) || (line < (NTSC_FIELD_HEIGHT-1)) || !(dev->_isNTSC_ch2) )\r
-        {\r
-            offset += dist_betwn_starts;    \r
-        }\r
-             \r
-\r
-        // check if we need to enable the FIFO after the first 4 lines \r
-        // For the upstream video channel, the risc engine will enable the FIFO. \r
-        if ( fifo_enable && line == 3 )\r
-        {\r
-            *(rp++) = RISC_WRITECR;\r
-            *(rp++) = sram_ch->dma_ctl;\r
-            *(rp++) = FLD_VID_FIFO_EN;\r
-            *(rp++) = 0x00000001;\r
-        }        \r
-    }\r
-        \r
+       *(rp++) = cpu_to_le32(RISC_READ|RISC_SOL|RISC_EOL|bpl); \r
+       *(rp++) = cpu_to_le32(databuf_phys_addr+offset);          \r
+       *(rp++) = cpu_to_le32(0); /* bits 63-32 */  \r
+       \r
+       \r
+       if ( (lines <= NTSC_FIELD_HEIGHT) || (line < (NTSC_FIELD_HEIGHT-1)) || !(dev->_isNTSC_ch2) )\r
+       {\r
+           offset += dist_betwn_starts;    \r
+       }\r
+            \r
+\r
+       // check if we need to enable the FIFO after the first 4 lines \r
+       // For the upstream video channel, the risc engine will enable the FIFO. \r
+       if ( fifo_enable && line == 3 )\r
+       {\r
+           *(rp++) = RISC_WRITECR;\r
+           *(rp++) = sram_ch->dma_ctl;\r
+           *(rp++) = FLD_VID_FIFO_EN;\r
+           *(rp++) = 0x00000001;\r
+       }        \r
+    }\r
+       \r
     return rp;\r
 }\r
 \r
 int cx25821_risc_buffer_upstream_ch2( struct cx25821_dev *dev, struct pci_dev *pci, \r
-                                  unsigned int top_offset, \r
-                                  unsigned int bpl, unsigned int lines)\r
+                                 unsigned int top_offset, \r
+                                 unsigned int bpl, unsigned int lines)\r
 {\r
     __le32 *rp;\r
     int fifo_enable = 0;\r
@@ -148,57 +148,57 @@ int cx25821_risc_buffer_upstream_ch2( struct cx25821_dev *dev, struct pci_dev *p
     unsigned int bottom_offset = bpl;\r
     dma_addr_t   risc_phys_jump_addr;\r
 \r
-              \r
+             \r
     if( dev->_isNTSC_ch2 )\r
     {\r
-        odd_num_lines = singlefield_lines + 1;\r
-        risc_program_size = FRAME1_VID_PROG_SIZE;\r
-        frame_size = (bpl == Y411_LINE_SZ) ? FRAME_SIZE_NTSC_Y411 : FRAME_SIZE_NTSC_Y422;\r
+       odd_num_lines = singlefield_lines + 1;\r
+       risc_program_size = FRAME1_VID_PROG_SIZE;\r
+       frame_size = (bpl == Y411_LINE_SZ) ? FRAME_SIZE_NTSC_Y411 : FRAME_SIZE_NTSC_Y422;\r
     }\r
     else\r
     {    \r
-        risc_program_size = PAL_VID_PROG_SIZE;  \r
-        frame_size = (bpl == Y411_LINE_SZ) ? FRAME_SIZE_PAL_Y411 : FRAME_SIZE_PAL_Y422;  \r
+       risc_program_size = PAL_VID_PROG_SIZE;  \r
+       frame_size = (bpl == Y411_LINE_SZ) ? FRAME_SIZE_PAL_Y411 : FRAME_SIZE_PAL_Y422;  \r
     }\r
   \r
-        \r
+       \r
     /* Virtual address of Risc buffer program */\r
     rp = dev->_dma_virt_addr_ch2;\r
     \r
     for( frame = 0; frame < NUM_FRAMES; frame++ )\r
     {        \r
-        databuf_offset = frame_size * frame;        \r
-        \r
-        \r
-        if (UNSET != top_offset)\r
-        {\r
-            fifo_enable = (frame == 0) ? FIFO_ENABLE : FIFO_DISABLE;      \r
-            rp = cx25821_risc_field_upstream_ch2(dev, rp, dev->_data_buf_phys_addr_ch2 + databuf_offset, top_offset, 0, bpl, odd_num_lines, fifo_enable, ODD_FIELD);\r
-        }\r
-        \r
-        fifo_enable = FIFO_DISABLE;     \r
-        \r
-        \r
-        //Even field\r
-        rp = cx25821_risc_field_upstream_ch2(dev, rp, dev->_data_buf_phys_addr_ch2 + databuf_offset, bottom_offset, 0x200, bpl, singlefield_lines, fifo_enable, EVEN_FIELD);  \r
-\r
-        \r
-        if( frame == 0 )\r
-        {\r
-            risc_flag = RISC_CNT_RESET; \r
-            risc_phys_jump_addr = dev->_dma_phys_start_addr_ch2 + risc_program_size;    \r
-        }\r
-        else\r
-        {\r
-            risc_flag = RISC_CNT_INC;\r
-            risc_phys_jump_addr = dev->_dma_phys_start_addr_ch2;\r
-        }\r
-                        \r
-\r
-        // Loop to 2ndFrameRISC or to Start of Risc program & generate IRQ \r
-        *(rp++)  = cpu_to_le32(RISC_JUMP|RISC_IRQ1|risc_flag);      \r
-        *(rp++)  = cpu_to_le32(risc_phys_jump_addr);            \r
-        *(rp++)  = cpu_to_le32(0);     \r
+       databuf_offset = frame_size * frame;        \r
+       \r
+       \r
+       if (UNSET != top_offset)\r
+       {\r
+           fifo_enable = (frame == 0) ? FIFO_ENABLE : FIFO_DISABLE;      \r
+           rp = cx25821_risc_field_upstream_ch2(dev, rp, dev->_data_buf_phys_addr_ch2 + databuf_offset, top_offset, 0, bpl, odd_num_lines, fifo_enable, ODD_FIELD);\r
+       }\r
+       \r
+       fifo_enable = FIFO_DISABLE;     \r
+       \r
+       \r
+       //Even field\r
+       rp = cx25821_risc_field_upstream_ch2(dev, rp, dev->_data_buf_phys_addr_ch2 + databuf_offset, bottom_offset, 0x200, bpl, singlefield_lines, fifo_enable, EVEN_FIELD);  \r
+\r
+       \r
+       if( frame == 0 )\r
+       {\r
+           risc_flag = RISC_CNT_RESET; \r
+           risc_phys_jump_addr = dev->_dma_phys_start_addr_ch2 + risc_program_size;    \r
+       }\r
+       else\r
+       {\r
+           risc_flag = RISC_CNT_INC;\r
+           risc_phys_jump_addr = dev->_dma_phys_start_addr_ch2;\r
+       }\r
+                       \r
+\r
+       // Loop to 2ndFrameRISC or to Start of Risc program & generate IRQ \r
+       *(rp++)  = cpu_to_le32(RISC_JUMP|RISC_IRQ1|risc_flag);      \r
+       *(rp++)  = cpu_to_le32(risc_phys_jump_addr);            \r
+       *(rp++)  = cpu_to_le32(0);     \r
     }\r
     \r
     return 0;\r
@@ -212,8 +212,8 @@ void cx25821_stop_upstream_video_ch2(struct cx25821_dev *dev)
     \r
     if( !dev->_is_running_ch2 )\r
     {\r
-        printk("cx25821: No video file is currently running so return!\n");\r
-        return;\r
+       printk("cx25821: No video file is currently running so return!\n");\r
+       return;\r
     }\r
 \r
     //Disable RISC interrupts    \r
@@ -226,8 +226,8 @@ void cx25821_stop_upstream_video_ch2(struct cx25821_dev *dev)
 \r
     //Clear data buffer memory\r
     if( dev->_data_buf_virt_addr_ch2 )\r
-        memset( dev->_data_buf_virt_addr_ch2, 0, dev->_data_buf_size_ch2 );                     \r
-        \r
+       memset( dev->_data_buf_virt_addr_ch2, 0, dev->_data_buf_size_ch2 );                     \r
+       \r
     dev->_is_running_ch2     = 0;\r
     dev->_is_first_frame_ch2 = 0;\r
     dev->_frame_count_ch2    = 0;\r
@@ -235,12 +235,12 @@ void cx25821_stop_upstream_video_ch2(struct cx25821_dev *dev)
     \r
     if( dev->_irq_queues_ch2 )\r
     {\r
-        kfree(dev->_irq_queues_ch2); \r
-        dev->_irq_queues_ch2 = NULL; \r
+       kfree(dev->_irq_queues_ch2); \r
+       dev->_irq_queues_ch2 = NULL; \r
     }\r
     \r
     if( dev->_filename_ch2 != NULL )\r
-        kfree(dev->_filename_ch2);  \r
+       kfree(dev->_filename_ch2);  \r
 \r
     tmp = cx_read( VID_CH_MODE_SEL );\r
     cx_write( VID_CH_MODE_SEL, tmp & 0xFFFFFE00);  \r
@@ -250,19 +250,19 @@ void cx25821_free_mem_upstream_ch2(struct cx25821_dev *dev)
 {     \r
     if( dev->_is_running_ch2 )\r
     {\r
-        cx25821_stop_upstream_video_ch2(dev);\r
+       cx25821_stop_upstream_video_ch2(dev);\r
     }\r
     \r
     if (dev->_dma_virt_addr_ch2) \r
     {\r
-        pci_free_consistent(dev->pci, dev->_risc_size_ch2, dev->_dma_virt_addr_ch2, dev->_dma_phys_addr_ch2);\r
-        dev->_dma_virt_addr_ch2 = NULL;\r
+       pci_free_consistent(dev->pci, dev->_risc_size_ch2, dev->_dma_virt_addr_ch2, dev->_dma_phys_addr_ch2);\r
+       dev->_dma_virt_addr_ch2 = NULL;\r
     }\r
     \r
     if (dev->_data_buf_virt_addr_ch2) \r
     {\r
-        pci_free_consistent(dev->pci, dev->_data_buf_size_ch2, dev->_data_buf_virt_addr_ch2, dev->_data_buf_phys_addr_ch2);\r
-        dev->_data_buf_virt_addr_ch2 = NULL;\r
+       pci_free_consistent(dev->pci, dev->_data_buf_size_ch2, dev->_data_buf_virt_addr_ch2, dev->_data_buf_phys_addr_ch2);\r
+       dev->_data_buf_virt_addr_ch2 = NULL;\r
     }\r
 }\r
 \r
@@ -280,84 +280,84 @@ int cx25821_get_frame_ch2(struct cx25821_dev *dev, struct sram_channel *sram_ch
     loff_t file_offset;                     \r
     loff_t pos;\r
     mm_segment_t old_fs;\r
-        \r
+       \r
 \r
     if( dev->_file_status_ch2 == END_OF_FILE )   \r
-        return 0;\r
-        \r
+       return 0;\r
+       \r
     if( dev->_isNTSC_ch2 )\r
     {\r
-        frame_size = (line_size == Y411_LINE_SZ) ? FRAME_SIZE_NTSC_Y411 : FRAME_SIZE_NTSC_Y422;\r
+       frame_size = (line_size == Y411_LINE_SZ) ? FRAME_SIZE_NTSC_Y411 : FRAME_SIZE_NTSC_Y422;\r
     }\r
     else\r
     { \r
-        frame_size = (line_size == Y411_LINE_SZ) ? FRAME_SIZE_PAL_Y411 : FRAME_SIZE_PAL_Y422;\r
+       frame_size = (line_size == Y411_LINE_SZ) ? FRAME_SIZE_PAL_Y411 : FRAME_SIZE_PAL_Y422;\r
     }\r
     \r
     frame_offset = (frame_index_temp > 0) ? frame_size : 0; \r
     file_offset = dev->_frame_count_ch2 * frame_size; \r
     \r
-        \r
+       \r
     myfile = filp_open( dev->_filename_ch2, O_RDONLY | O_LARGEFILE, 0 );\r
     \r
     \r
     if (IS_ERR(myfile)) \r
     {\r
-        const int open_errno = -PTR_ERR(myfile);\r
-        printk("%s(): ERROR opening file(%s) with errno = %d! \n", __func__, dev->_filename_ch2, open_errno);\r
-        return PTR_ERR(myfile);        \r
+       const int open_errno = -PTR_ERR(myfile);\r
+       printk("%s(): ERROR opening file(%s) with errno = %d! \n", __func__, dev->_filename_ch2, open_errno);\r
+       return PTR_ERR(myfile);        \r
     } \r
     else \r
     {   \r
-        if( !(myfile->f_op) )\r
-        {            \r
-            printk("%s: File has no file operations registered!", __func__);\r
-            filp_close(myfile, NULL);\r
-            return -EIO;\r
-        }\r
-        \r
-        \r
-        if( !myfile->f_op->read )\r
-        {            \r
-            printk("%s: File has no READ operations registered!", __func__);\r
-            filp_close(myfile, NULL);\r
-            return -EIO;\r
-        }\r
-        \r
-        pos = myfile->f_pos;            \r
-        old_fs = get_fs();      \r
-        set_fs(KERNEL_DS);\r
-                \r
-           \r
-        for( i = 0; i < dev->_lines_count_ch2; i++ )\r
-        {\r
-            pos = file_offset;      \r
-            \r
-            vfs_read_retval = vfs_read(myfile, mybuf, line_size, &pos);     \r
-              \r
-            if( vfs_read_retval > 0 && vfs_read_retval == line_size && dev->_data_buf_virt_addr_ch2 != NULL )   \r
-            {\r
-                memcpy( (void*)(dev->_data_buf_virt_addr_ch2+frame_offset/4), mybuf, vfs_read_retval);  \r
-            }            \r
-            \r
-            file_offset += vfs_read_retval;\r
-            frame_offset += vfs_read_retval;\r
-\r
-            if( vfs_read_retval < line_size )\r
-            {      \r
-                printk(KERN_INFO "Done: exit %s() since no more bytes to read from Video file.\n", __func__ );\r
-                break;\r
-            }      \r
-        }\r
-        \r
-        if( i > 0 )         \r
-            dev->_frame_count_ch2++;       \r
-    \r
-        dev->_file_status_ch2 = (vfs_read_retval == line_size) ? IN_PROGRESS : END_OF_FILE;      \r
-\r
-        \r
-        set_fs(old_fs);                 \r
-        filp_close(myfile, NULL);          \r
+       if( !(myfile->f_op) )\r
+       {            \r
+           printk("%s: File has no file operations registered!", __func__);\r
+           filp_close(myfile, NULL);\r
+           return -EIO;\r
+       }\r
+       \r
+       \r
+       if( !myfile->f_op->read )\r
+       {            \r
+           printk("%s: File has no READ operations registered!", __func__);\r
+           filp_close(myfile, NULL);\r
+           return -EIO;\r
+       }\r
+       \r
+       pos = myfile->f_pos;            \r
+       old_fs = get_fs();      \r
+       set_fs(KERNEL_DS);\r
+               \r
+          \r
+       for( i = 0; i < dev->_lines_count_ch2; i++ )\r
+       {\r
+           pos = file_offset;      \r
+           \r
+           vfs_read_retval = vfs_read(myfile, mybuf, line_size, &pos);     \r
+             \r
+           if( vfs_read_retval > 0 && vfs_read_retval == line_size && dev->_data_buf_virt_addr_ch2 != NULL )   \r
+           {\r
+               memcpy( (void*)(dev->_data_buf_virt_addr_ch2+frame_offset/4), mybuf, vfs_read_retval);  \r
+           }            \r
+           \r
+           file_offset += vfs_read_retval;\r
+           frame_offset += vfs_read_retval;\r
+\r
+           if( vfs_read_retval < line_size )\r
+           {      \r
+               printk(KERN_INFO "Done: exit %s() since no more bytes to read from Video file.\n", __func__ );\r
+               break;\r
+           }      \r
+       }\r
+       \r
+       if( i > 0 )         \r
+           dev->_frame_count_ch2++;       \r
+    \r
+       dev->_file_status_ch2 = (vfs_read_retval == line_size) ? IN_PROGRESS : END_OF_FILE;      \r
+\r
+       \r
+       set_fs(old_fs);                 \r
+       filp_close(myfile, NULL);          \r
     }\r
     \r
     return 0;\r
@@ -369,8 +369,8 @@ static void cx25821_vidups_handler_ch2(struct work_struct *work)
        \r
     if( !dev )\r
     {\r
-        printk("ERROR %s(): since container_of(work_struct) FAILED! \n", __func__ );\r
-        return;\r
+       printk("ERROR %s(): since container_of(work_struct) FAILED! \n", __func__ );\r
+       return;\r
     }\r
     \r
     cx25821_get_frame_ch2( dev, &dev->sram_channels[dev->_channel2_upstream_select] );\r
@@ -387,76 +387,76 @@ int cx25821_openfile_ch2(struct cx25821_dev *dev, struct sram_channel *sram_ch)
     loff_t pos;\r
     loff_t offset = (unsigned long)0;\r
     mm_segment_t old_fs;\r
-        \r
+       \r
 \r
     myfile = filp_open( dev->_filename_ch2, O_RDONLY | O_LARGEFILE, 0 );\r
     \r
     \r
     if (IS_ERR(myfile)) \r
     {\r
-        const int open_errno = -PTR_ERR(myfile);\r
-        printk("%s(): ERROR opening file(%s) with errno = %d! \n", __func__, dev->_filename_ch2, open_errno);\r
-        return PTR_ERR(myfile);\r
+       const int open_errno = -PTR_ERR(myfile);\r
+       printk("%s(): ERROR opening file(%s) with errno = %d! \n", __func__, dev->_filename_ch2, open_errno);\r
+       return PTR_ERR(myfile);\r
     } \r
     else \r
     {\r
-        if( !(myfile->f_op) )\r
-        {            \r
-            printk("%s: File has no file operations registered!", __func__);\r
-            filp_close(myfile, NULL);\r
-            return -EIO;\r
-        }\r
-        \r
-        \r
-        if( !myfile->f_op->read )\r
-        {            \r
-            printk("%s: File has no READ operations registered!  Returning.", __func__);\r
-            filp_close(myfile, NULL);\r
-            return -EIO;\r
-        }\r
-        \r
-        pos = myfile->f_pos;\r
-        old_fs = get_fs();      \r
-        set_fs(KERNEL_DS);\r
-                \r
-        \r
-        for( j = 0; j < NUM_FRAMES; j++ )       \r
-        {          \r
-            for( i = 0; i < dev->_lines_count_ch2; i++ )\r
-            {\r
-                pos = offset;\r
-\r
-                vfs_read_retval = vfs_read(myfile, mybuf, line_size, &pos);                \r
-                \r
-                if( vfs_read_retval > 0 && vfs_read_retval == line_size && dev->_data_buf_virt_addr_ch2 != NULL ) \r
-                {\r
-                    memcpy( (void*)(dev->_data_buf_virt_addr_ch2+offset/4), mybuf, vfs_read_retval); \r
-                }\r
-                \r
-                \r
-                offset += vfs_read_retval;\r
-\r
-                if( vfs_read_retval < line_size )\r
-                {      \r
-                    printk(KERN_INFO "Done: exit %s() since no more bytes to read from Video file.\n", __func__ );\r
-                    break;\r
-                }      \r
-            }\r
-            \r
-            if( i > 0 )     \r
-                dev->_frame_count_ch2++;\r
-            \r
-            if( vfs_read_retval < line_size )\r
-            {\r
-                break;\r
-            }\r
-        }\r
-\r
-        dev->_file_status_ch2 = (vfs_read_retval == line_size) ? IN_PROGRESS : END_OF_FILE;          \r
-            \r
-        set_fs(old_fs);        \r
-        myfile->f_pos = 0;\r
-        filp_close(myfile, NULL);        \r
+       if( !(myfile->f_op) )\r
+       {            \r
+           printk("%s: File has no file operations registered!", __func__);\r
+           filp_close(myfile, NULL);\r
+           return -EIO;\r
+       }\r
+       \r
+       \r
+       if( !myfile->f_op->read )\r
+       {            \r
+           printk("%s: File has no READ operations registered!  Returning.", __func__);\r
+           filp_close(myfile, NULL);\r
+           return -EIO;\r
+       }\r
+       \r
+       pos = myfile->f_pos;\r
+       old_fs = get_fs();      \r
+       set_fs(KERNEL_DS);\r
+               \r
+       \r
+       for( j = 0; j < NUM_FRAMES; j++ )       \r
+       {          \r
+           for( i = 0; i < dev->_lines_count_ch2; i++ )\r
+           {\r
+               pos = offset;\r
+\r
+               vfs_read_retval = vfs_read(myfile, mybuf, line_size, &pos);                \r
+               \r
+               if( vfs_read_retval > 0 && vfs_read_retval == line_size && dev->_data_buf_virt_addr_ch2 != NULL ) \r
+               {\r
+                   memcpy( (void*)(dev->_data_buf_virt_addr_ch2+offset/4), mybuf, vfs_read_retval); \r
+               }\r
+               \r
+               \r
+               offset += vfs_read_retval;\r
+\r
+               if( vfs_read_retval < line_size )\r
+               {      \r
+                   printk(KERN_INFO "Done: exit %s() since no more bytes to read from Video file.\n", __func__ );\r
+                   break;\r
+               }      \r
+           }\r
+           \r
+           if( i > 0 )     \r
+               dev->_frame_count_ch2++;\r
+           \r
+           if( vfs_read_retval < line_size )\r
+           {\r
+               break;\r
+           }\r
+       }\r
+\r
+       dev->_file_status_ch2 = (vfs_read_retval == line_size) ? IN_PROGRESS : END_OF_FILE;          \r
+           \r
+       set_fs(old_fs);        \r
+       myfile->f_pos = 0;\r
+       filp_close(myfile, NULL);        \r
     }\r
     \r
     return 0;\r
@@ -464,17 +464,17 @@ int cx25821_openfile_ch2(struct cx25821_dev *dev, struct sram_channel *sram_ch)
 \r
 \r
 static int cx25821_upstream_buffer_prepare_ch2(struct cx25821_dev *dev,\r
-                                           struct sram_channel *sram_ch,\r
-                                           int bpl)\r
+                                          struct sram_channel *sram_ch,\r
+                                          int bpl)\r
 {\r
     int ret = 0;\r
     dma_addr_t dma_addr;\r
     dma_addr_t data_dma_addr;   \r
-        \r
+       \r
        \r
     if( dev->_dma_virt_addr_ch2 != NULL )\r
     {    \r
-        pci_free_consistent(dev->pci, dev->upstream_riscbuf_size_ch2, dev->_dma_virt_addr_ch2, dev->_dma_phys_addr_ch2);\r
+       pci_free_consistent(dev->pci, dev->upstream_riscbuf_size_ch2, dev->_dma_virt_addr_ch2, dev->_dma_phys_addr_ch2);\r
     }\r
     \r
     dev->_dma_virt_addr_ch2 = pci_alloc_consistent(dev->pci, dev->upstream_riscbuf_size_ch2, &dma_addr);\r
@@ -486,8 +486,8 @@ static int cx25821_upstream_buffer_prepare_ch2(struct cx25821_dev *dev,
   \r
     if (!dev->_dma_virt_addr_ch2)\r
     {\r
-        printk("cx25821: FAILED to allocate memory for Risc buffer! Returning.\n");\r
-        return -ENOMEM;\r
+       printk("cx25821: FAILED to allocate memory for Risc buffer! Returning.\n");\r
+       return -ENOMEM;\r
     }\r
 \r
 \r
@@ -497,7 +497,7 @@ static int cx25821_upstream_buffer_prepare_ch2(struct cx25821_dev *dev,
     \r
     if( dev->_data_buf_virt_addr_ch2 != NULL )\r
     {    \r
-        pci_free_consistent(dev->pci, dev->upstream_databuf_size_ch2, dev->_data_buf_virt_addr_ch2, dev->_data_buf_phys_addr_ch2);\r
+       pci_free_consistent(dev->pci, dev->upstream_databuf_size_ch2, dev->_data_buf_virt_addr_ch2, dev->_data_buf_phys_addr_ch2);\r
     }\r
     \r
     //For Video Data buffer allocation  \r
@@ -507,8 +507,8 @@ static int cx25821_upstream_buffer_prepare_ch2(struct cx25821_dev *dev,
        \r
     if (!dev->_data_buf_virt_addr_ch2)\r
     {\r
-        printk("cx25821: FAILED to allocate memory for data buffer! Returning.\n");\r
-        return -ENOMEM;\r
+       printk("cx25821: FAILED to allocate memory for data buffer! Returning.\n");\r
+       return -ENOMEM;\r
     }\r
   \r
  \r
@@ -518,15 +518,15 @@ static int cx25821_upstream_buffer_prepare_ch2(struct cx25821_dev *dev,
     \r
     ret = cx25821_openfile_ch2(dev, sram_ch);     \r
     if( ret < 0 )\r
-        return ret;\r
-                                           \r
+       return ret;\r
+                                          \r
     \r
     //Creating RISC programs\r
     ret = cx25821_risc_buffer_upstream_ch2(dev, dev->pci, 0,  bpl, dev->_lines_count_ch2 );                                \r
     if (ret < 0)\r
     {\r
-        printk(KERN_INFO "cx25821: Failed creating Video Upstream Risc programs! \n");\r
-        goto error;\r
+       printk(KERN_INFO "cx25821: Failed creating Video Upstream Risc programs! \n");\r
+       goto error;\r
     }\r
        \r
     return 0;\r
@@ -549,59 +549,59 @@ int cx25821_video_upstream_irq_ch2(struct cx25821_dev *dev, int chan_num, u32 st
     \r
     if (status & FLD_VID_SRC_RISC1)      \r
     {\r
-        // We should only process one program per call\r
-        u32 prog_cnt = cx_read( channel->gpcnt );\r
-    \r
-        //Since we've identified our IRQ, clear our bits from the interrupt mask and interrupt status registers\r
-        int_msk_tmp = cx_read(channel->int_msk); \r
-        cx_write(channel->int_msk, int_msk_tmp & ~_intr_msk); \r
-        cx_write( channel->int_stat, _intr_msk ); \r
-        \r
-        spin_lock(&dev->slock);     \r
-            \r
-        dev->_frame_index_ch2 = prog_cnt;\r
-\r
-        queue_work(dev->_irq_queues_ch2, &dev->_irq_work_entry_ch2);         \r
-               \r
-        \r
-        if ( dev->_is_first_frame_ch2 )\r
-        {\r
-            dev->_is_first_frame_ch2 = 0;\r
-    \r
-            if( dev->_isNTSC_ch2 )\r
-            {\r
-                singlefield_lines += 1;\r
-                odd_risc_prog_size = ODD_FLD_NTSC_PROG_SIZE;\r
-            }\r
-            else\r
-            {\r
-                singlefield_lines = PAL_FIELD_HEIGHT; \r
-                odd_risc_prog_size = ODD_FLD_PAL_PROG_SIZE;  \r
-            }\r
-\r
-            \r
-            if( dev->_dma_virt_start_addr_ch2 != NULL )\r
-            {\r
-                line_size_in_bytes = (dev->_pixel_format_ch2 == PIXEL_FRMT_411) ? Y411_LINE_SZ : Y422_LINE_SZ;\r
-                risc_phys_jump_addr = dev->_dma_phys_start_addr_ch2 + odd_risc_prog_size;        \r
-                \r
-                rp = cx25821_update_riscprogram_ch2(dev, dev->_dma_virt_start_addr_ch2, TOP_OFFSET, line_size_in_bytes, 0x0, singlefield_lines, FIFO_DISABLE, ODD_FIELD);                        \r
-\r
-                // Jump to Even Risc program of 1st Frame \r
-                *(rp++)  = cpu_to_le32(RISC_JUMP);      \r
-                *(rp++)  = cpu_to_le32(risc_phys_jump_addr);            \r
-                *(rp++)  = cpu_to_le32(0); \r
-            }\r
-        }\r
-        \r
-        spin_unlock(&dev->slock);       \r
-    }\r
-\r
-        \r
+       // We should only process one program per call\r
+       u32 prog_cnt = cx_read( channel->gpcnt );\r
+    \r
+       //Since we've identified our IRQ, clear our bits from the interrupt mask and interrupt status registers\r
+       int_msk_tmp = cx_read(channel->int_msk); \r
+       cx_write(channel->int_msk, int_msk_tmp & ~_intr_msk); \r
+       cx_write( channel->int_stat, _intr_msk ); \r
+       \r
+       spin_lock(&dev->slock);     \r
+           \r
+       dev->_frame_index_ch2 = prog_cnt;\r
+\r
+       queue_work(dev->_irq_queues_ch2, &dev->_irq_work_entry_ch2);         \r
+              \r
+       \r
+       if ( dev->_is_first_frame_ch2 )\r
+       {\r
+           dev->_is_first_frame_ch2 = 0;\r
+    \r
+           if( dev->_isNTSC_ch2 )\r
+           {\r
+               singlefield_lines += 1;\r
+               odd_risc_prog_size = ODD_FLD_NTSC_PROG_SIZE;\r
+           }\r
+           else\r
+           {\r
+               singlefield_lines = PAL_FIELD_HEIGHT; \r
+               odd_risc_prog_size = ODD_FLD_PAL_PROG_SIZE;  \r
+           }\r
+\r
+           \r
+           if( dev->_dma_virt_start_addr_ch2 != NULL )\r
+           {\r
+               line_size_in_bytes = (dev->_pixel_format_ch2 == PIXEL_FRMT_411) ? Y411_LINE_SZ : Y422_LINE_SZ;\r
+               risc_phys_jump_addr = dev->_dma_phys_start_addr_ch2 + odd_risc_prog_size;        \r
+               \r
+               rp = cx25821_update_riscprogram_ch2(dev, dev->_dma_virt_start_addr_ch2, TOP_OFFSET, line_size_in_bytes, 0x0, singlefield_lines, FIFO_DISABLE, ODD_FIELD);                        \r
+\r
+               // Jump to Even Risc program of 1st Frame \r
+               *(rp++)  = cpu_to_le32(RISC_JUMP);      \r
+               *(rp++)  = cpu_to_le32(risc_phys_jump_addr);            \r
+               *(rp++)  = cpu_to_le32(0); \r
+           }\r
+       }\r
+       \r
+       spin_unlock(&dev->slock);       \r
+    }\r
+\r
+       \r
     if( dev->_file_status_ch2 == END_OF_FILE )\r
     {                       \r
-        printk("cx25821: EOF Channel 2 Framecount = %d\n", dev->_frame_count_ch2 );\r
-        return -1;\r
+       printk("cx25821: EOF Channel 2 Framecount = %d\n", dev->_frame_count_ch2 );\r
+       return -1;\r
     }\r
     \r
     //ElSE, set the interrupt mask register, re-enable irq. \r
@@ -621,10 +621,10 @@ static irqreturn_t cx25821_upstream_irq_ch2(int irq, void *dev_id)
     \r
     \r
     if( !dev )\r
-        return -1;\r
+       return -1;\r
 \r
     channel_num = VID_UPSTREAM_SRAM_CHANNEL_J;\r
-         \r
+        \r
     sram_ch = &dev->sram_channels[channel_num];     \r
 \r
     msk_stat   = cx_read(sram_ch->int_mstat);     \r
@@ -633,17 +633,17 @@ static irqreturn_t cx25821_upstream_irq_ch2(int irq, void *dev_id)
     // Only deal with our interrupt\r
     if(vid_status)\r
     {\r
-        handled = cx25821_video_upstream_irq_ch2(dev, channel_num, vid_status);     \r
+       handled = cx25821_video_upstream_irq_ch2(dev, channel_num, vid_status);     \r
     }\r
     \r
     \r
     if( handled < 0 )\r
     {    \r
-        cx25821_stop_upstream_video_ch2(dev);             \r
+       cx25821_stop_upstream_video_ch2(dev);             \r
     }\r
     else\r
     {\r
-        handled += handled;    \r
+       handled += handled;    \r
     }\r
 \r
     return IRQ_RETVAL(handled);\r
@@ -658,7 +658,7 @@ static void cx25821_set_pixelengine_ch2(struct cx25821_dev *dev, struct sram_cha
     u32 value;\r
     int vip_mode = PIXEL_ENGINE_VIP1;\r
        \r
-        \r
+       \r
     value = ( (pix_format & 0x3) << 12 ) | ( vip_mode & 0x7 );\r
     value &= 0xFFFFFFEF;\r
     value |= dev->_isNTSC_ch2 ? 0 : 0x10;\r
@@ -672,7 +672,7 @@ static void cx25821_set_pixelengine_ch2(struct cx25821_dev *dev, struct sram_cha
 \r
     if(dev->_isNTSC_ch2)\r
     {\r
-        odd_num_lines += 1; \r
+       odd_num_lines += 1; \r
     }\r
 \r
     value = (num_lines << 16) | odd_num_lines;\r
@@ -685,7 +685,7 @@ static void cx25821_set_pixelengine_ch2(struct cx25821_dev *dev, struct sram_cha
 \r
 \r
 int cx25821_start_video_dma_upstream_ch2(struct cx25821_dev *dev,\r
-                                     struct sram_channel *sram_ch)\r
+                                    struct sram_channel *sram_ch)\r
 {\r
     u32 tmp = 0;\r
     int err = 0;\r
@@ -716,8 +716,8 @@ int cx25821_start_video_dma_upstream_ch2(struct cx25821_dev *dev,
     err = request_irq(dev->pci->irq, cx25821_upstream_irq_ch2, IRQF_SHARED | IRQF_DISABLED, dev->name, dev);\r
     if (err < 0) \r
     {\r
-        printk(KERN_ERR "%s: can't get upstream IRQ %d\n", dev->name, dev->pci->irq);\r
-        goto fail_irq;\r
+       printk(KERN_ERR "%s: can't get upstream IRQ %d\n", dev->name, dev->pci->irq);\r
+       goto fail_irq;\r
     } \r
     \r
     // Start the DMA  engine\r
@@ -748,8 +748,8 @@ int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select, in
     \r
     if( dev->_is_running_ch2 ) \r
     {\r
-        printk("Video Channel is still running so return!\n");\r
-        return 0;\r
+       printk("Video Channel is still running so return!\n");\r
+       return 0;\r
     }\r
     \r
     dev->_channel2_upstream_select = channel_select;      \r
@@ -761,15 +761,15 @@ int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select, in
 \r
     if(!dev->_irq_queues_ch2)\r
     {\r
-        printk("cx25821: create_singlethread_workqueue() for Video FAILED!\n");\r
-        return -ENOMEM;\r
+       printk("cx25821: create_singlethread_workqueue() for Video FAILED!\n");\r
+       return -ENOMEM;\r
     }\r
     \r
     // 656/VIP SRC Upstream Channel I & J and 7 - Host Bus Interface for channel A-C\r
     tmp = cx_read( VID_CH_MODE_SEL );\r
     cx_write( VID_CH_MODE_SEL, tmp | 0x1B0001FF);       \r
     \r
-          \r
+         \r
     dev->_is_running_ch2   = 0;    \r
     dev->_frame_count_ch2  = 0;\r
     dev->_file_status_ch2  = RESET_STATUS;  \r
@@ -779,43 +779,43 @@ int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select, in
     data_frame_size = dev->_isNTSC_ch2 ? NTSC_DATA_BUF_SZ : PAL_DATA_BUF_SZ;        \r
     risc_buffer_size = dev->_isNTSC_ch2 ? NTSC_RISC_BUF_SIZE : PAL_RISC_BUF_SIZE;\r
     \r
-        \r
+       \r
     if( dev->input_filename_ch2 )\r
     {\r
-        str_length = strlen(dev->input_filename_ch2);\r
-        dev->_filename_ch2 = (char *) kmalloc(str_length + 1, GFP_KERNEL);\r
-        \r
-        if( !dev->_filename_ch2 )\r
-            goto error;\r
-            \r
-        memcpy(dev->_filename_ch2, dev->input_filename_ch2, str_length + 1);    \r
+       str_length = strlen(dev->input_filename_ch2);\r
+       dev->_filename_ch2 = (char *) kmalloc(str_length + 1, GFP_KERNEL);\r
+       \r
+       if( !dev->_filename_ch2 )\r
+           goto error;\r
+           \r
+       memcpy(dev->_filename_ch2, dev->input_filename_ch2, str_length + 1);    \r
     }\r
     else\r
     {\r
-        str_length = strlen(dev->_defaultname_ch2);       \r
-        dev->_filename_ch2 = (char *) kmalloc(str_length + 1, GFP_KERNEL);\r
-        \r
-        if( !dev->_filename_ch2 )\r
-            goto error;\r
-            \r
-        memcpy(dev->_filename_ch2, dev->_defaultname_ch2, str_length + 1);\r
+       str_length = strlen(dev->_defaultname_ch2);       \r
+       dev->_filename_ch2 = (char *) kmalloc(str_length + 1, GFP_KERNEL);\r
+       \r
+       if( !dev->_filename_ch2 )\r
+           goto error;\r
+           \r
+       memcpy(dev->_filename_ch2, dev->_defaultname_ch2, str_length + 1);\r
     }\r
-        \r
+       \r
     \r
     //Default if filename is empty string \r
     if( strcmp(dev->input_filename_ch2,"") == 0)        \r
     {\r
-        if( dev->_isNTSC_ch2 )\r
-        {\r
-            dev->_filename_ch2 = (dev->_pixel_format_ch2 == PIXEL_FRMT_411) ? "/root/vid411.yuv" : "/root/vidtest.yuv";\r
-        }\r
-        else\r
-        {\r
-            dev->_filename_ch2 = (dev->_pixel_format_ch2 == PIXEL_FRMT_411) ? "/root/pal411.yuv" : "/root/pal422.yuv";    \r
-        }\r
-    }\r
-        \r
-        \r
+       if( dev->_isNTSC_ch2 )\r
+       {\r
+           dev->_filename_ch2 = (dev->_pixel_format_ch2 == PIXEL_FRMT_411) ? "/root/vid411.yuv" : "/root/vidtest.yuv";\r
+       }\r
+       else\r
+       {\r
+           dev->_filename_ch2 = (dev->_pixel_format_ch2 == PIXEL_FRMT_411) ? "/root/pal411.yuv" : "/root/pal422.yuv";    \r
+       }\r
+    }\r
+       \r
+       \r
     retval = cx25821_sram_channel_setup_upstream(dev, sram_ch, dev->_line_size_ch2, 0);   \r
     \r
     \r
@@ -830,8 +830,8 @@ int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select, in
     retval = cx25821_upstream_buffer_prepare_ch2(dev, sram_ch, dev->_line_size_ch2);\r
     if (retval < 0) \r
     {\r
-        printk(KERN_ERR "%s: Failed to set up Video upstream buffers!\n", dev->name);\r
-        goto error;\r
+       printk(KERN_ERR "%s: Failed to set up Video upstream buffers!\n", dev->name);\r
+       goto error;\r
     }\r
     \r
       \r
index 71de874..02e5b9b 100644 (file)
 \r
 #ifdef USE_RISC_NOOP_VIDEO\r
 #define PAL_US_VID_PROG_SIZE      ((PAL_FIELD_HEIGHT) * 3 * DWORD_SIZE + RISC_WRITECR_INSTRUCTION_SIZE +   \\r
-                                    RISC_SYNC_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)\r
-                                    \r
+                                   RISC_SYNC_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)\r
+                                   \r
 #define PAL_RISC_BUF_SIZE         (2 * PAL_US_VID_PROG_SIZE)\r
 \r
 #define PAL_VID_PROG_SIZE         ((PAL_FIELD_HEIGHT*2) * 3 * DWORD_SIZE + 2*RISC_SYNC_INSTRUCTION_SIZE + \\r
-                                    RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE + 2*NUM_NO_OPS*DWORD_SIZE) \r
+                                   RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE + 2*NUM_NO_OPS*DWORD_SIZE) \r
 \r
 #define ODD_FLD_PAL_PROG_SIZE     ((PAL_FIELD_HEIGHT) * 3 * DWORD_SIZE + RISC_SYNC_INSTRUCTION_SIZE + \\r
-                                    RISC_WRITECR_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE) \r
+                                   RISC_WRITECR_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE) \r
 \r
 #define NTSC_US_VID_PROG_SIZE     ((NTSC_ODD_FLD_LINES + 1) * 3 * DWORD_SIZE + RISC_WRITECR_INSTRUCTION_SIZE + \\r
-                                    JUMP_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)   \r
-                                    \r
+                                   JUMP_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)   \r
+                                   \r
 #define NTSC_RISC_BUF_SIZE        (2 * (RISC_SYNC_INSTRUCTION_SIZE + NTSC_US_VID_PROG_SIZE))         \r
 \r
 #define FRAME1_VID_PROG_SIZE      ((NTSC_ODD_FLD_LINES + NTSC_FIELD_HEIGHT) * 3 * DWORD_SIZE + 2*RISC_SYNC_INSTRUCTION_SIZE + \\r
-                                    RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE + 2*NUM_NO_OPS*DWORD_SIZE)   \r
+                                   RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE + 2*NUM_NO_OPS*DWORD_SIZE)   \r
 #define ODD_FLD_NTSC_PROG_SIZE    ((NTSC_ODD_FLD_LINES) * 3 * DWORD_SIZE + RISC_SYNC_INSTRUCTION_SIZE + \\r
-                                    RISC_WRITECR_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)    \r
+                                   RISC_WRITECR_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)    \r
 #endif\r
 \r
 \r
 #define PAL_US_VID_PROG_SIZE      ((PAL_FIELD_HEIGHT + 1) * 3 * DWORD_SIZE + RISC_WRITECR_INSTRUCTION_SIZE )\r
 #define PAL_RISC_BUF_SIZE         ( 2 * (RISC_SYNC_INSTRUCTION_SIZE + PAL_US_VID_PROG_SIZE) )\r
 #define PAL_VID_PROG_SIZE         ((PAL_FIELD_HEIGHT*2) * 3 * DWORD_SIZE + 2*RISC_SYNC_INSTRUCTION_SIZE + \\r
-                                    RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE ) \r
+                                   RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE ) \r
 #define ODD_FLD_PAL_PROG_SIZE     ((PAL_FIELD_HEIGHT) * 3 * DWORD_SIZE + RISC_SYNC_INSTRUCTION_SIZE + RISC_WRITECR_INSTRUCTION_SIZE )\r
 #define ODD_FLD_NTSC_PROG_SIZE    ((NTSC_ODD_FLD_LINES) * 3 * DWORD_SIZE + RISC_SYNC_INSTRUCTION_SIZE + RISC_WRITECR_INSTRUCTION_SIZE )\r
 #define NTSC_US_VID_PROG_SIZE     ((NTSC_ODD_FLD_LINES + 1) * 3 * DWORD_SIZE + RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE)   \r
 #define NTSC_RISC_BUF_SIZE        (2 * (RISC_SYNC_INSTRUCTION_SIZE + NTSC_US_VID_PROG_SIZE) )     \r
 #define FRAME1_VID_PROG_SIZE      ((NTSC_ODD_FLD_LINES + NTSC_FIELD_HEIGHT) * 3 * DWORD_SIZE + 2*RISC_SYNC_INSTRUCTION_SIZE + \\r
-                                    RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE )\r
+                                   RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE )\r
 #endif\r
index 14d204a..0f7a6c5 100644 (file)
@@ -43,19 +43,19 @@ MODULE_LICENSE("GPL");
 static int _intr_msk = FLD_VID_SRC_RISC1 | FLD_VID_SRC_UF | FLD_VID_SRC_SYNC | FLD_VID_SRC_OPC_ERR;\r
     \r
 int cx25821_sram_channel_setup_upstream(struct cx25821_dev *dev,\r
-                                        struct sram_channel *ch,\r
-                                        unsigned int bpl, u32 risc)\r
+                                       struct sram_channel *ch,\r
+                                       unsigned int bpl, u32 risc)\r
 {\r
     unsigned int i, lines;\r
     u32 cdt;\r
     \r
     \r
     if (ch->cmds_start == 0) {\r
-        cx_write(ch->ptr1_reg, 0);\r
-        cx_write(ch->ptr2_reg, 0);\r
-        cx_write(ch->cnt2_reg, 0);\r
-        cx_write(ch->cnt1_reg, 0);\r
-        return 0;\r
+       cx_write(ch->ptr1_reg, 0);\r
+       cx_write(ch->ptr2_reg, 0);\r
+       cx_write(ch->cnt2_reg, 0);\r
+       cx_write(ch->cnt1_reg, 0);\r
+       return 0;\r
     } \r
 \r
     bpl   = (bpl + 7) & ~7; /* alignment */\r
@@ -64,7 +64,7 @@ int cx25821_sram_channel_setup_upstream(struct cx25821_dev *dev,
     \r
     if (lines > 4)  \r
     {\r
-        lines = 4;\r
+       lines = 4;\r
     }\r
     \r
     BUG_ON(lines < 2);\r
@@ -72,10 +72,10 @@ int cx25821_sram_channel_setup_upstream(struct cx25821_dev *dev,
 \r
     /* write CDT */\r
     for (i = 0; i < lines; i++) {\r
-        cx_write(cdt + 16*i, ch->fifo_start + bpl*i);\r
-        cx_write(cdt + 16*i +  4, 0);\r
-        cx_write(cdt + 16*i +  8, 0);\r
-        cx_write(cdt + 16*i + 12, 0);\r
+       cx_write(cdt + 16*i, ch->fifo_start + bpl*i);\r
+       cx_write(cdt + 16*i +  4, 0);\r
+       cx_write(cdt + 16*i +  8, 0);\r
+       cx_write(cdt + 16*i + 12, 0);\r
     }\r
 \r
     /* write CMDS */    \r
@@ -85,12 +85,12 @@ int cx25821_sram_channel_setup_upstream(struct cx25821_dev *dev,
     cx_write(ch->cmds_start +  8, cdt);             \r
     cx_write(ch->cmds_start + 12, (lines*16) >> 3);       \r
     cx_write(ch->cmds_start + 16, ch->ctrl_start);  \r
-                                               \r
+                                              \r
 \r
     cx_write(ch->cmds_start + 20, VID_IQ_SIZE_DW);     \r
 \r
     for (i = 24; i < 80; i += 4)\r
-        cx_write(ch->cmds_start + i, 0);\r
+       cx_write(ch->cmds_start + i, 0);\r
 \r
     /* fill registers */\r
     cx_write(ch->ptr1_reg, ch->fifo_start);\r
@@ -102,8 +102,8 @@ int cx25821_sram_channel_setup_upstream(struct cx25821_dev *dev,
 }\r
 \r
 static __le32 *cx25821_update_riscprogram( struct cx25821_dev *dev,\r
-                                             __le32 *rp, unsigned int offset, unsigned int bpl, \r
-                                             u32 sync_line, unsigned int lines, int fifo_enable, int field_type)\r
+                                            __le32 *rp, unsigned int offset, unsigned int bpl, \r
+                                            u32 sync_line, unsigned int lines, int fifo_enable, int field_type)\r
 {\r
     unsigned int line, i;\r
     int dist_betwn_starts = bpl * 2;        \r
@@ -114,85 +114,85 @@ static __le32 *cx25821_update_riscprogram( struct cx25821_dev *dev,
     \r
     if( USE_RISC_NOOP_VIDEO )\r
     {\r
-        for( i = 0; i < NUM_NO_OPS; i++ )\r
-        {\r
-            *(rp++) = cpu_to_le32(RISC_NOOP);\r
-        }\r
+       for( i = 0; i < NUM_NO_OPS; i++ )\r
+       {\r
+           *(rp++) = cpu_to_le32(RISC_NOOP);\r
+       }\r
     }\r
     \r
     /* scan lines */\r
     for (line = 0; line < lines; line++) \r
     {       \r
-        *(rp++) = cpu_to_le32(RISC_READ|RISC_SOL|RISC_EOL|bpl); \r
-        *(rp++) = cpu_to_le32(dev->_data_buf_phys_addr+offset);       \r
-        *(rp++) = cpu_to_le32(0); /* bits 63-32 */  \r
-        \r
-        if ( (lines <= NTSC_FIELD_HEIGHT) || (line < (NTSC_FIELD_HEIGHT-1)) || !(dev->_isNTSC) )\r
-        {\r
-            offset += dist_betwn_starts;    \r
-        }   \r
+       *(rp++) = cpu_to_le32(RISC_READ|RISC_SOL|RISC_EOL|bpl); \r
+       *(rp++) = cpu_to_le32(dev->_data_buf_phys_addr+offset);       \r
+       *(rp++) = cpu_to_le32(0); /* bits 63-32 */  \r
+       \r
+       if ( (lines <= NTSC_FIELD_HEIGHT) || (line < (NTSC_FIELD_HEIGHT-1)) || !(dev->_isNTSC) )\r
+       {\r
+           offset += dist_betwn_starts;    \r
+       }   \r
     }\r
 \r
     return rp;\r
 }\r
 \r
 static __le32 *cx25821_risc_field_upstream( struct cx25821_dev *dev, __le32 *rp, \r
-                                           dma_addr_t databuf_phys_addr,\r
-                                           unsigned int offset, u32 sync_line,\r
-                                           unsigned int bpl, unsigned int lines, int fifo_enable, int field_type)\r
+                                          dma_addr_t databuf_phys_addr,\r
+                                          unsigned int offset, u32 sync_line,\r
+                                          unsigned int bpl, unsigned int lines, int fifo_enable, int field_type)\r
 {\r
     unsigned int line, i; \r
     struct sram_channel *sram_ch = &dev->sram_channels[dev->_channel_upstream_select];\r
     int dist_betwn_starts = bpl * 2;        \r
     \r
-            \r
+           \r
     /* sync instruction */\r
     if (sync_line != NO_SYNC_LINE)\r
     {\r
-        *(rp++) = cpu_to_le32(RISC_RESYNC | sync_line);       \r
+       *(rp++) = cpu_to_le32(RISC_RESYNC | sync_line);       \r
     }\r
 \r
     \r
     if( USE_RISC_NOOP_VIDEO )\r
     {\r
-        for( i = 0; i < NUM_NO_OPS; i++ )\r
-        {\r
-            *(rp++) = cpu_to_le32(RISC_NOOP);\r
-        }\r
+       for( i = 0; i < NUM_NO_OPS; i++ )\r
+       {\r
+           *(rp++) = cpu_to_le32(RISC_NOOP);\r
+       }\r
     }\r
     \r
     /* scan lines */\r
     for (line = 0; line < lines; line++) \r
     {       \r
-        *(rp++) = cpu_to_le32(RISC_READ|RISC_SOL|RISC_EOL|bpl); \r
-        *(rp++) = cpu_to_le32(databuf_phys_addr+offset);        \r
-        *(rp++) = cpu_to_le32(0); /* bits 63-32 */  \r
-        \r
-        \r
-        if ( (lines <= NTSC_FIELD_HEIGHT) || (line < (NTSC_FIELD_HEIGHT-1)) || !(dev->_isNTSC) )\r
-        {\r
-            offset += dist_betwn_starts;    //to skip the other field line\r
-        }\r
-             \r
-\r
-        // check if we need to enable the FIFO after the first 4 lines \r
-        // For the upstream video channel, the risc engine will enable the FIFO. \r
-        if ( fifo_enable && line == 3 )\r
-        {\r
-            *(rp++) = RISC_WRITECR;\r
-            *(rp++) = sram_ch->dma_ctl;\r
-            *(rp++) = FLD_VID_FIFO_EN;\r
-            *(rp++) = 0x00000001;\r
-        }        \r
-    }\r
-        \r
+       *(rp++) = cpu_to_le32(RISC_READ|RISC_SOL|RISC_EOL|bpl); \r
+       *(rp++) = cpu_to_le32(databuf_phys_addr+offset);        \r
+       *(rp++) = cpu_to_le32(0); /* bits 63-32 */  \r
+       \r
+       \r
+       if ( (lines <= NTSC_FIELD_HEIGHT) || (line < (NTSC_FIELD_HEIGHT-1)) || !(dev->_isNTSC) )\r
+       {\r
+           offset += dist_betwn_starts;    //to skip the other field line\r
+       }\r
+            \r
+\r
+       // check if we need to enable the FIFO after the first 4 lines \r
+       // For the upstream video channel, the risc engine will enable the FIFO. \r
+       if ( fifo_enable && line == 3 )\r
+       {\r
+           *(rp++) = RISC_WRITECR;\r
+           *(rp++) = sram_ch->dma_ctl;\r
+           *(rp++) = FLD_VID_FIFO_EN;\r
+           *(rp++) = 0x00000001;\r
+       }        \r
+    }\r
+       \r
     return rp;\r
 }\r
 \r
 int cx25821_risc_buffer_upstream( struct cx25821_dev *dev, \r
-                                  struct pci_dev *pci, \r
-                                  unsigned int top_offset, \r
-                                  unsigned int bpl, unsigned int lines)\r
+                                 struct pci_dev *pci, \r
+                                 unsigned int top_offset, \r
+                                 unsigned int bpl, unsigned int lines)\r
 {\r
     __le32 *rp;\r
     int fifo_enable = 0;\r
@@ -205,57 +205,57 @@ int cx25821_risc_buffer_upstream( struct cx25821_dev *dev,
     int risc_flag = RISC_CNT_RESET;\r
     unsigned int bottom_offset = bpl;\r
     dma_addr_t   risc_phys_jump_addr;\r
-              \r
+             \r
     if( dev->_isNTSC )\r
     {\r
-        odd_num_lines = singlefield_lines + 1;\r
-        risc_program_size = FRAME1_VID_PROG_SIZE;\r
-        frame_size = (bpl == Y411_LINE_SZ) ? FRAME_SIZE_NTSC_Y411 : FRAME_SIZE_NTSC_Y422;\r
+       odd_num_lines = singlefield_lines + 1;\r
+       risc_program_size = FRAME1_VID_PROG_SIZE;\r
+       frame_size = (bpl == Y411_LINE_SZ) ? FRAME_SIZE_NTSC_Y411 : FRAME_SIZE_NTSC_Y422;\r
     }\r
     else\r
     {\r
-        risc_program_size = PAL_VID_PROG_SIZE;  \r
-        frame_size = (bpl == Y411_LINE_SZ) ? FRAME_SIZE_PAL_Y411 : FRAME_SIZE_PAL_Y422;  \r
+       risc_program_size = PAL_VID_PROG_SIZE;  \r
+       frame_size = (bpl == Y411_LINE_SZ) ? FRAME_SIZE_PAL_Y411 : FRAME_SIZE_PAL_Y422;  \r
     }\r
        \r
-        \r
+       \r
     /* Virtual address of Risc buffer program */\r
     rp = dev->_dma_virt_addr;\r
     \r
     for( frame = 0; frame < NUM_FRAMES; frame++ )\r
     {        \r
-        databuf_offset = frame_size * frame;     \r
-        \r
-        if (UNSET != top_offset)\r
-        {\r
-            fifo_enable = (frame == 0) ? FIFO_ENABLE : FIFO_DISABLE;      \r
-            rp = cx25821_risc_field_upstream(dev, rp, dev->_data_buf_phys_addr+databuf_offset, top_offset, 0, bpl, odd_num_lines, fifo_enable, ODD_FIELD);\r
-        }\r
-\r
-        \r
-        fifo_enable = FIFO_DISABLE;     \r
-        \r
-        \r
-        //Even Field\r
-        rp = cx25821_risc_field_upstream(dev, rp, dev->_data_buf_phys_addr+databuf_offset, bottom_offset, 0x200, bpl, singlefield_lines, fifo_enable, EVEN_FIELD);  \r
-\r
-        \r
-        if( frame == 0 )\r
-        {\r
-            risc_flag = RISC_CNT_RESET;   \r
-            risc_phys_jump_addr = dev->_dma_phys_start_addr + risc_program_size;        \r
-        }\r
-        else\r
-        {\r
-            risc_phys_jump_addr = dev->_dma_phys_start_addr;\r
-            risc_flag = RISC_CNT_INC;\r
-        }\r
-                \r
-\r
-        // Loop to 2ndFrameRISC or to Start of Risc program & generate IRQ \r
-        *(rp++)  = cpu_to_le32(RISC_JUMP|RISC_IRQ1|risc_flag);      \r
-        *(rp++)  = cpu_to_le32(risc_phys_jump_addr);            \r
-        *(rp++)  = cpu_to_le32(0);    \r
+       databuf_offset = frame_size * frame;     \r
+       \r
+       if (UNSET != top_offset)\r
+       {\r
+           fifo_enable = (frame == 0) ? FIFO_ENABLE : FIFO_DISABLE;      \r
+           rp = cx25821_risc_field_upstream(dev, rp, dev->_data_buf_phys_addr+databuf_offset, top_offset, 0, bpl, odd_num_lines, fifo_enable, ODD_FIELD);\r
+       }\r
+\r
+       \r
+       fifo_enable = FIFO_DISABLE;     \r
+       \r
+       \r
+       //Even Field\r
+       rp = cx25821_risc_field_upstream(dev, rp, dev->_data_buf_phys_addr+databuf_offset, bottom_offset, 0x200, bpl, singlefield_lines, fifo_enable, EVEN_FIELD);  \r
+\r
+       \r
+       if( frame == 0 )\r
+       {\r
+           risc_flag = RISC_CNT_RESET;   \r
+           risc_phys_jump_addr = dev->_dma_phys_start_addr + risc_program_size;        \r
+       }\r
+       else\r
+       {\r
+           risc_phys_jump_addr = dev->_dma_phys_start_addr;\r
+           risc_flag = RISC_CNT_INC;\r
+       }\r
+               \r
+\r
+       // Loop to 2ndFrameRISC or to Start of Risc program & generate IRQ \r
+       *(rp++)  = cpu_to_le32(RISC_JUMP|RISC_IRQ1|risc_flag);      \r
+       *(rp++)  = cpu_to_le32(risc_phys_jump_addr);            \r
+       *(rp++)  = cpu_to_le32(0);    \r
     }\r
     \r
     return 0;\r
@@ -269,10 +269,10 @@ void cx25821_stop_upstream_video_ch1(struct cx25821_dev *dev)
     \r
     if( !dev->_is_running )\r
     {\r
-        printk("cx25821: No video file is currently running so return!\n");\r
-        return;\r
+       printk("cx25821: No video file is currently running so return!\n");\r
+       return;\r
     }\r
-        \r
+       \r
     //Disable RISC interrupts    \r
     tmp = cx_read( sram_ch->int_msk ); \r
     cx_write( sram_ch->int_msk, tmp & ~_intr_msk); \r
@@ -283,8 +283,8 @@ void cx25821_stop_upstream_video_ch1(struct cx25821_dev *dev)
 \r
     //Clear data buffer memory\r
     if( dev->_data_buf_virt_addr )\r
-        memset( dev->_data_buf_virt_addr, 0, dev->_data_buf_size ); \r
-        \r
+       memset( dev->_data_buf_virt_addr, 0, dev->_data_buf_size ); \r
+       \r
     dev->_is_running     = 0;\r
     dev->_is_first_frame = 0;\r
     dev->_frame_count    = 0;\r
@@ -292,12 +292,12 @@ void cx25821_stop_upstream_video_ch1(struct cx25821_dev *dev)
 \r
     if( dev->_irq_queues )\r
     {\r
-        kfree(dev->_irq_queues); \r
-        dev->_irq_queues = NULL; \r
+       kfree(dev->_irq_queues); \r
+       dev->_irq_queues = NULL; \r
     }\r
     \r
     if( dev->_filename != NULL )\r
-        kfree(dev->_filename);  \r
+       kfree(dev->_filename);  \r
 \r
     tmp = cx_read( VID_CH_MODE_SEL );\r
     cx_write( VID_CH_MODE_SEL, tmp & 0xFFFFFE00);  \r
@@ -307,19 +307,19 @@ void cx25821_free_mem_upstream_ch1(struct cx25821_dev *dev)
 {        \r
     if( dev->_is_running )     \r
     {\r
-        cx25821_stop_upstream_video_ch1(dev);\r
+       cx25821_stop_upstream_video_ch1(dev);\r
     }\r
     \r
     if (dev->_dma_virt_addr) \r
     {\r
-        pci_free_consistent(dev->pci, dev->_risc_size, dev->_dma_virt_addr, dev->_dma_phys_addr);\r
-        dev->_dma_virt_addr = NULL;\r
+       pci_free_consistent(dev->pci, dev->_risc_size, dev->_dma_virt_addr, dev->_dma_phys_addr);\r
+       dev->_dma_virt_addr = NULL;\r
     }\r
     \r
     if (dev->_data_buf_virt_addr) \r
     {\r
-        pci_free_consistent(dev->pci, dev->_data_buf_size, dev->_data_buf_virt_addr, dev->_data_buf_phys_addr);\r
-        dev->_data_buf_virt_addr = NULL;\r
+       pci_free_consistent(dev->pci, dev->_data_buf_size, dev->_data_buf_virt_addr, dev->_data_buf_phys_addr);\r
+       dev->_data_buf_virt_addr = NULL;\r
     }\r
 }\r
 \r
@@ -337,84 +337,84 @@ int cx25821_get_frame(struct cx25821_dev *dev, struct sram_channel *sram_ch )
     loff_t file_offset;                     \r
     loff_t pos;\r
     mm_segment_t old_fs;\r
-        \r
+       \r
 \r
     if( dev->_file_status == END_OF_FILE )   \r
-        return 0;\r
-        \r
+       return 0;\r
+       \r
     if( dev->_isNTSC )\r
     {\r
-        frame_size = (line_size == Y411_LINE_SZ) ? FRAME_SIZE_NTSC_Y411 : FRAME_SIZE_NTSC_Y422;\r
+       frame_size = (line_size == Y411_LINE_SZ) ? FRAME_SIZE_NTSC_Y411 : FRAME_SIZE_NTSC_Y422;\r
     }\r
     else\r
     { \r
-        frame_size = (line_size == Y411_LINE_SZ) ? FRAME_SIZE_PAL_Y411 : FRAME_SIZE_PAL_Y422;\r
+       frame_size = (line_size == Y411_LINE_SZ) ? FRAME_SIZE_PAL_Y411 : FRAME_SIZE_PAL_Y422;\r
     }\r
     \r
     frame_offset = (frame_index_temp > 0) ? frame_size : 0; \r
     file_offset = dev->_frame_count * frame_size; \r
     \r
-          \r
+         \r
     myfile = filp_open( dev->_filename, O_RDONLY | O_LARGEFILE, 0 );\r
     \r
     \r
     if (IS_ERR(myfile)) \r
     {\r
-        const int open_errno = -PTR_ERR(myfile);\r
-        printk("%s(): ERROR opening file(%s) with errno = %d! \n", __func__, dev->_filename, open_errno);\r
-        return PTR_ERR(myfile);\r
+       const int open_errno = -PTR_ERR(myfile);\r
+       printk("%s(): ERROR opening file(%s) with errno = %d! \n", __func__, dev->_filename, open_errno);\r
+       return PTR_ERR(myfile);\r
     } \r
     else \r
     {   \r
-        if( !(myfile->f_op) )\r
-        {            \r
-            printk("%s: File has no file operations registered!", __func__);\r
-            filp_close(myfile, NULL);\r
-            return -EIO;\r
-        }\r
-        \r
-        \r
-        if( !myfile->f_op->read )\r
-        {            \r
-            printk("%s: File has no READ operations registered!", __func__);\r
-            filp_close(myfile, NULL);\r
-            return -EIO;\r
-        }\r
-        \r
-        pos = myfile->f_pos;            \r
-        old_fs = get_fs();      \r
-        set_fs(KERNEL_DS);\r
-                \r
-           \r
-        for( i = 0; i < dev->_lines_count; i++ )\r
-        {\r
-            pos = file_offset;      \r
-            \r
-            vfs_read_retval = vfs_read(myfile, mybuf, line_size, &pos);     \r
-              \r
-            if( vfs_read_retval > 0 && vfs_read_retval == line_size && dev->_data_buf_virt_addr != NULL )   \r
-            {\r
-                memcpy( (void*)(dev->_data_buf_virt_addr+frame_offset/4), mybuf, vfs_read_retval);   \r
-            }            \r
-            \r
-            file_offset += vfs_read_retval;\r
-            frame_offset += vfs_read_retval;\r
-\r
-            if( vfs_read_retval < line_size )\r
-            {      \r
-                printk(KERN_INFO "Done: exit %s() since no more bytes to read from Video file.\n", __func__ );\r
-                break;\r
-            }      \r
-        }\r
-        \r
-        if( i > 0 )         \r
-            dev->_frame_count++;       \r
-    \r
-        dev->_file_status = (vfs_read_retval == line_size) ? IN_PROGRESS : END_OF_FILE;      \r
-\r
-        \r
-        set_fs(old_fs);                 \r
-        filp_close(myfile, NULL);          \r
+       if( !(myfile->f_op) )\r
+       {            \r
+           printk("%s: File has no file operations registered!", __func__);\r
+           filp_close(myfile, NULL);\r
+           return -EIO;\r
+       }\r
+       \r
+       \r
+       if( !myfile->f_op->read )\r
+       {            \r
+           printk("%s: File has no READ operations registered!", __func__);\r
+           filp_close(myfile, NULL);\r
+           return -EIO;\r
+       }\r
+       \r
+       pos = myfile->f_pos;            \r
+       old_fs = get_fs();      \r
+       set_fs(KERNEL_DS);\r
+               \r
+          \r
+       for( i = 0; i < dev->_lines_count; i++ )\r
+       {\r
+           pos = file_offset;      \r
+           \r
+           vfs_read_retval = vfs_read(myfile, mybuf, line_size, &pos);     \r
+             \r
+           if( vfs_read_retval > 0 && vfs_read_retval == line_size && dev->_data_buf_virt_addr != NULL )   \r
+           {\r
+               memcpy( (void*)(dev->_data_buf_virt_addr+frame_offset/4), mybuf, vfs_read_retval);   \r
+           }            \r
+           \r
+           file_offset += vfs_read_retval;\r
+           frame_offset += vfs_read_retval;\r
+\r
+           if( vfs_read_retval < line_size )\r
+           {      \r
+               printk(KERN_INFO "Done: exit %s() since no more bytes to read from Video file.\n", __func__ );\r
+               break;\r
+           }      \r
+       }\r
+       \r
+       if( i > 0 )         \r
+           dev->_frame_count++;       \r
+    \r
+       dev->_file_status = (vfs_read_retval == line_size) ? IN_PROGRESS : END_OF_FILE;      \r
+\r
+       \r
+       set_fs(old_fs);                 \r
+       filp_close(myfile, NULL);          \r
     }\r
     \r
     return 0;\r
@@ -426,8 +426,8 @@ static void cx25821_vidups_handler(struct work_struct *work)
        \r
     if( !dev )\r
     {\r
-        printk("ERROR %s(): since container_of(work_struct) FAILED! \n", __func__ );\r
-        return;\r
+       printk("ERROR %s(): since container_of(work_struct) FAILED! \n", __func__ );\r
+       return;\r
     }\r
     \r
     cx25821_get_frame( dev, &dev->sram_channels[dev->_channel_upstream_select] );\r
@@ -444,77 +444,77 @@ int cx25821_openfile(struct cx25821_dev *dev, struct sram_channel *sram_ch)
     loff_t pos;\r
     loff_t offset = (unsigned long)0;\r
     mm_segment_t old_fs;\r
-        \r
+       \r
 \r
     myfile = filp_open( dev->_filename, O_RDONLY | O_LARGEFILE, 0 );\r
     \r
     \r
     if (IS_ERR(myfile)) \r
     {\r
-        const int open_errno = -PTR_ERR(myfile);\r
-        printk("%s(): ERROR opening file(%s) with errno = %d! \n", __func__, dev->_filename, open_errno);\r
-        return PTR_ERR(myfile);\r
+       const int open_errno = -PTR_ERR(myfile);\r
+       printk("%s(): ERROR opening file(%s) with errno = %d! \n", __func__, dev->_filename, open_errno);\r
+       return PTR_ERR(myfile);\r
     } \r
     else \r
     {   \r
-        if( !(myfile->f_op) )\r
-        {            \r
-            printk("%s: File has no file operations registered!", __func__);\r
-            filp_close(myfile, NULL);\r
-            return -EIO;\r
-        }\r
-        \r
-        \r
-        if( !myfile->f_op->read )\r
-        {            \r
-            printk("%s: File has no READ operations registered!  Returning.", __func__);\r
-            filp_close(myfile, NULL);\r
-            return -EIO;\r
-        }\r
-        \r
-        pos = myfile->f_pos;\r
-        old_fs = get_fs();  \r
-        set_fs(KERNEL_DS);\r
-                \r
-        \r
-        for( j = 0; j < NUM_FRAMES; j++ )       \r
-        {          \r
-            for( i = 0; i < dev->_lines_count; i++ )\r
-            {\r
-                pos = offset;\r
-\r
-                vfs_read_retval = vfs_read(myfile, mybuf, line_size, &pos);                \r
-                \r
-                if( vfs_read_retval > 0 && vfs_read_retval == line_size && dev->_data_buf_virt_addr != NULL ) \r
-                {                                        \r
-                    memcpy( (void*)(dev->_data_buf_virt_addr+offset/4), mybuf, vfs_read_retval);   \r
-                }\r
-                \r
-                \r
-                offset += vfs_read_retval;\r
-\r
-                if( vfs_read_retval < line_size )\r
-                {      \r
-                    printk(KERN_INFO "Done: exit %s() since no more bytes to read from Video file.\n", __func__ );\r
-                    break;\r
-                }      \r
-            }\r
-            \r
-            if( i > 0 )     \r
-                dev->_frame_count++;\r
-            \r
-            if( vfs_read_retval < line_size )\r
-            {\r
-                break;\r
-            }\r
-        }\r
-                 \r
-\r
-        dev->_file_status = (vfs_read_retval == line_size) ? IN_PROGRESS : END_OF_FILE;  \r
-        \r
-        set_fs(old_fs);        \r
-        myfile->f_pos = 0;\r
-        filp_close(myfile, NULL);        \r
+       if( !(myfile->f_op) )\r
+       {            \r
+           printk("%s: File has no file operations registered!", __func__);\r
+           filp_close(myfile, NULL);\r
+           return -EIO;\r
+       }\r
+       \r
+       \r
+       if( !myfile->f_op->read )\r
+       {            \r
+           printk("%s: File has no READ operations registered!  Returning.", __func__);\r
+           filp_close(myfile, NULL);\r
+           return -EIO;\r
+       }\r
+       \r
+       pos = myfile->f_pos;\r
+       old_fs = get_fs();  \r
+       set_fs(KERNEL_DS);\r
+               \r
+       \r
+       for( j = 0; j < NUM_FRAMES; j++ )       \r
+       {          \r
+           for( i = 0; i < dev->_lines_count; i++ )\r
+           {\r
+               pos = offset;\r
+\r
+               vfs_read_retval = vfs_read(myfile, mybuf, line_size, &pos);                \r
+               \r
+               if( vfs_read_retval > 0 && vfs_read_retval == line_size && dev->_data_buf_virt_addr != NULL ) \r
+               {                                        \r
+                   memcpy( (void*)(dev->_data_buf_virt_addr+offset/4), mybuf, vfs_read_retval);   \r
+               }\r
+               \r
+               \r
+               offset += vfs_read_retval;\r
+\r
+               if( vfs_read_retval < line_size )\r
+               {      \r
+                   printk(KERN_INFO "Done: exit %s() since no more bytes to read from Video file.\n", __func__ );\r
+                   break;\r
+               }      \r
+           }\r
+           \r
+           if( i > 0 )     \r
+               dev->_frame_count++;\r
+           \r
+           if( vfs_read_retval < line_size )\r
+           {\r
+               break;\r
+           }\r
+       }\r
+                \r
+\r
+       dev->_file_status = (vfs_read_retval == line_size) ? IN_PROGRESS : END_OF_FILE;  \r
+       \r
+       set_fs(old_fs);        \r
+       myfile->f_pos = 0;\r
+       filp_close(myfile, NULL);        \r
     }\r
     \r
     return 0;\r
@@ -522,8 +522,8 @@ int cx25821_openfile(struct cx25821_dev *dev, struct sram_channel *sram_ch)
 \r
 \r
 int cx25821_upstream_buffer_prepare(struct cx25821_dev *dev,\r
-                                           struct sram_channel *sram_ch,\r
-                                           int bpl)\r
+                                          struct sram_channel *sram_ch,\r
+                                          int bpl)\r
 {\r
     int ret = 0;\r
     dma_addr_t dma_addr;\r
@@ -531,7 +531,7 @@ int cx25821_upstream_buffer_prepare(struct cx25821_dev *dev,
        \r
     if( dev->_dma_virt_addr != NULL )\r
     {    \r
-        pci_free_consistent(dev->pci, dev->upstream_riscbuf_size, dev->_dma_virt_addr, dev->_dma_phys_addr);\r
+       pci_free_consistent(dev->pci, dev->upstream_riscbuf_size, dev->_dma_virt_addr, dev->_dma_phys_addr);\r
     }\r
     \r
     \r
@@ -544,8 +544,8 @@ int cx25821_upstream_buffer_prepare(struct cx25821_dev *dev,
   \r
     if (!dev->_dma_virt_addr)\r
     {\r
-        printk("cx25821: FAILED to allocate memory for Risc buffer! Returning.\n");\r
-        return -ENOMEM;\r
+       printk("cx25821: FAILED to allocate memory for Risc buffer! Returning.\n");\r
+       return -ENOMEM;\r
     }\r
 \r
  \r
@@ -555,7 +555,7 @@ int cx25821_upstream_buffer_prepare(struct cx25821_dev *dev,
     \r
     if( dev->_data_buf_virt_addr != NULL )\r
     {    \r
-        pci_free_consistent(dev->pci, dev->upstream_databuf_size, dev->_data_buf_virt_addr, dev->_data_buf_phys_addr);\r
+       pci_free_consistent(dev->pci, dev->upstream_databuf_size, dev->_data_buf_virt_addr, dev->_data_buf_phys_addr);\r
     }\r
     \r
     //For Video Data buffer allocation  \r
@@ -565,8 +565,8 @@ int cx25821_upstream_buffer_prepare(struct cx25821_dev *dev,
        \r
     if (!dev->_data_buf_virt_addr)\r
     {\r
-        printk("cx25821: FAILED to allocate memory for data buffer! Returning.\n");\r
-        return -ENOMEM;\r
+       printk("cx25821: FAILED to allocate memory for data buffer! Returning.\n");\r
+       return -ENOMEM;\r
     }\r
   \r
     \r
@@ -576,15 +576,15 @@ int cx25821_upstream_buffer_prepare(struct cx25821_dev *dev,
     \r
     ret = cx25821_openfile(dev, sram_ch);     \r
     if( ret < 0 )\r
-        return ret;\r
-                                           \r
+       return ret;\r
+                                          \r
     \r
     //Create RISC programs\r
     ret = cx25821_risc_buffer_upstream(dev, dev->pci, 0,  bpl, dev->_lines_count );                                \r
     if (ret < 0)\r
     {\r
-        printk(KERN_INFO "cx25821: Failed creating Video Upstream Risc programs! \n");\r
-        goto error;\r
+       printk(KERN_INFO "cx25821: Failed creating Video Upstream Risc programs! \n");\r
+       goto error;\r
     }\r
        \r
     return 0;\r
@@ -607,70 +607,70 @@ int cx25821_video_upstream_irq(struct cx25821_dev *dev, int chan_num, u32 status
     \r
     if (status & FLD_VID_SRC_RISC1)      \r
     {\r
-        // We should only process one program per call\r
-        u32 prog_cnt = cx_read( channel->gpcnt );\r
-    \r
-        //Since we've identified our IRQ, clear our bits from the interrupt mask and interrupt status registers\r
-        int_msk_tmp = cx_read(channel->int_msk); \r
-        cx_write(channel->int_msk, int_msk_tmp & ~_intr_msk); \r
-        cx_write( channel->int_stat, _intr_msk ); \r
-        \r
-        spin_lock(&dev->slock);     \r
-            \r
-        dev->_frame_index = prog_cnt;\r
-\r
-        queue_work(dev->_irq_queues, &dev->_irq_work_entry);      \r
-               \r
-        \r
-        if ( dev->_is_first_frame )\r
-        {\r
-            dev->_is_first_frame = 0;          \r
-    \r
-            if( dev->_isNTSC )\r
-            {\r
-                singlefield_lines += 1;\r
-                odd_risc_prog_size = ODD_FLD_NTSC_PROG_SIZE;\r
-            }\r
-            else\r
-            {\r
-                singlefield_lines = PAL_FIELD_HEIGHT; \r
-                odd_risc_prog_size = ODD_FLD_PAL_PROG_SIZE;  \r
-            }\r
-\r
-\r
-            if( dev->_dma_virt_start_addr != NULL )\r
-            {\r
-                line_size_in_bytes = (dev->_pixel_format == PIXEL_FRMT_411) ? Y411_LINE_SZ : Y422_LINE_SZ;\r
-                risc_phys_jump_addr = dev->_dma_phys_start_addr + odd_risc_prog_size;        \r
-                \r
-                rp = cx25821_update_riscprogram(dev, dev->_dma_virt_start_addr, TOP_OFFSET, line_size_in_bytes, 0x0, singlefield_lines, FIFO_DISABLE, ODD_FIELD);  \r
-                \r
-                // Jump to Even Risc program of 1st Frame \r
-                *(rp++)  = cpu_to_le32(RISC_JUMP);      \r
-                *(rp++)  = cpu_to_le32(risc_phys_jump_addr);            \r
-                *(rp++)  = cpu_to_le32(0); \r
-            }\r
-        }\r
-        \r
-        spin_unlock(&dev->slock);       \r
+       // We should only process one program per call\r
+       u32 prog_cnt = cx_read( channel->gpcnt );\r
+    \r
+       //Since we've identified our IRQ, clear our bits from the interrupt mask and interrupt status registers\r
+       int_msk_tmp = cx_read(channel->int_msk); \r
+       cx_write(channel->int_msk, int_msk_tmp & ~_intr_msk); \r
+       cx_write( channel->int_stat, _intr_msk ); \r
+       \r
+       spin_lock(&dev->slock);     \r
+           \r
+       dev->_frame_index = prog_cnt;\r
+\r
+       queue_work(dev->_irq_queues, &dev->_irq_work_entry);      \r
+              \r
+       \r
+       if ( dev->_is_first_frame )\r
+       {\r
+           dev->_is_first_frame = 0;          \r
+    \r
+           if( dev->_isNTSC )\r
+           {\r
+               singlefield_lines += 1;\r
+               odd_risc_prog_size = ODD_FLD_NTSC_PROG_SIZE;\r
+           }\r
+           else\r
+           {\r
+               singlefield_lines = PAL_FIELD_HEIGHT; \r
+               odd_risc_prog_size = ODD_FLD_PAL_PROG_SIZE;  \r
+           }\r
+\r
+\r
+           if( dev->_dma_virt_start_addr != NULL )\r
+           {\r
+               line_size_in_bytes = (dev->_pixel_format == PIXEL_FRMT_411) ? Y411_LINE_SZ : Y422_LINE_SZ;\r
+               risc_phys_jump_addr = dev->_dma_phys_start_addr + odd_risc_prog_size;        \r
+               \r
+               rp = cx25821_update_riscprogram(dev, dev->_dma_virt_start_addr, TOP_OFFSET, line_size_in_bytes, 0x0, singlefield_lines, FIFO_DISABLE, ODD_FIELD);  \r
+               \r
+               // Jump to Even Risc program of 1st Frame \r
+               *(rp++)  = cpu_to_le32(RISC_JUMP);      \r
+               *(rp++)  = cpu_to_le32(risc_phys_jump_addr);            \r
+               *(rp++)  = cpu_to_le32(0); \r
+           }\r
+       }\r
+       \r
+       spin_unlock(&dev->slock);       \r
     }\r
     else        \r
     {\r
-        if(status & FLD_VID_SRC_UF)\r
-            printk("%s: Video Received Underflow Error Interrupt!\n", __func__);\r
+       if(status & FLD_VID_SRC_UF)\r
+           printk("%s: Video Received Underflow Error Interrupt!\n", __func__);\r
 \r
-        if(status & FLD_VID_SRC_SYNC)\r
-            printk("%s: Video Received Sync Error Interrupt!\n", __func__);\r
+       if(status & FLD_VID_SRC_SYNC)\r
+           printk("%s: Video Received Sync Error Interrupt!\n", __func__);\r
 \r
-        if(status & FLD_VID_SRC_OPC_ERR)\r
-            printk("%s: Video Received OpCode Error Interrupt!\n", __func__);\r
+       if(status & FLD_VID_SRC_OPC_ERR)\r
+           printk("%s: Video Received OpCode Error Interrupt!\n", __func__);\r
     }\r
-        \r
-        \r
+       \r
+       \r
     if( dev->_file_status == END_OF_FILE )\r
     {                       \r
-        printk("cx25821: EOF Channel 1 Framecount = %d\n", dev->_frame_count );\r
-        return -1;\r
+       printk("cx25821: EOF Channel 1 Framecount = %d\n", dev->_frame_count );\r
+       return -1;\r
     }\r
     \r
     //ElSE, set the interrupt mask register, re-enable irq. \r
@@ -690,8 +690,8 @@ static irqreturn_t cx25821_upstream_irq(int irq, void *dev_id)
     \r
     \r
     if( !dev )\r
-        return -1;\r
-        \r
+       return -1;\r
+       \r
     channel_num = VID_UPSTREAM_SRAM_CHANNEL_I;\r
     \r
     sram_ch = &dev->sram_channels[channel_num];     \r
@@ -702,16 +702,16 @@ static irqreturn_t cx25821_upstream_irq(int irq, void *dev_id)
     // Only deal with our interrupt\r
     if(vid_status)\r
     {\r
-        handled = cx25821_video_upstream_irq(dev, channel_num, vid_status);     \r
+       handled = cx25821_video_upstream_irq(dev, channel_num, vid_status);     \r
     }        \r
     \r
     if( handled < 0 )\r
     {   \r
-        cx25821_stop_upstream_video_ch1(dev);\r
+       cx25821_stop_upstream_video_ch1(dev);\r
     }\r
     else\r
     {\r
-        handled += handled;    \r
+       handled += handled;    \r
     }\r
 \r
     return IRQ_RETVAL(handled);\r
@@ -725,7 +725,7 @@ void cx25821_set_pixelengine(struct cx25821_dev *dev, struct sram_channel *ch, i
     int num_lines, odd_num_lines;\r
     u32 value;\r
     int vip_mode = OUTPUT_FRMT_656;        \r
-        \r
+       \r
   \r
     value = ( (pix_format & 0x3) << 12 ) | ( vip_mode & 0x7 );\r
     value &= 0xFFFFFFEF;\r
@@ -741,7 +741,7 @@ void cx25821_set_pixelengine(struct cx25821_dev *dev, struct sram_channel *ch, i
 \r
     if(dev->_isNTSC)\r
     {\r
-        odd_num_lines += 1; \r
+       odd_num_lines += 1; \r
     }\r
 \r
     value = (num_lines << 16) | odd_num_lines;\r
@@ -754,7 +754,7 @@ void cx25821_set_pixelengine(struct cx25821_dev *dev, struct sram_channel *ch, i
 \r
 \r
 int cx25821_start_video_dma_upstream(struct cx25821_dev *dev,\r
-                                     struct sram_channel *sram_ch)\r
+                                    struct sram_channel *sram_ch)\r
 {\r
     u32 tmp = 0;\r
     int err = 0;\r
@@ -785,8 +785,8 @@ int cx25821_start_video_dma_upstream(struct cx25821_dev *dev,
     err = request_irq(dev->pci->irq, cx25821_upstream_irq, IRQF_SHARED | IRQF_DISABLED, dev->name, dev);\r
     if (err < 0) \r
     {\r
-        printk(KERN_ERR "%s: can't get upstream IRQ %d\n", dev->name, dev->pci->irq);\r
-        goto fail_irq;\r
+       printk(KERN_ERR "%s: can't get upstream IRQ %d\n", dev->name, dev->pci->irq);\r
+       goto fail_irq;\r
     } \r
     \r
     \r
@@ -818,8 +818,8 @@ int cx25821_vidupstream_init_ch1(struct cx25821_dev *dev, int channel_select, in
 \r
     if( dev->_is_running ) \r
     {\r
-        printk("Video Channel is still running so return!\n");\r
-        return 0;\r
+       printk("Video Channel is still running so return!\n");\r
+       return 0;\r
     }\r
     \r
 \r
@@ -832,15 +832,15 @@ int cx25821_vidupstream_init_ch1(struct cx25821_dev *dev, int channel_select, in
 \r
     if(!dev->_irq_queues)\r
     {\r
-        printk("cx25821: create_singlethread_workqueue() for Video FAILED!\n");\r
-        return -ENOMEM;\r
+       printk("cx25821: create_singlethread_workqueue() for Video FAILED!\n");\r
+       return -ENOMEM;\r
     }\r
     \r
     // 656/VIP SRC Upstream Channel I & J and 7 - Host Bus Interface for channel A-C\r
     tmp = cx_read( VID_CH_MODE_SEL );\r
     cx_write( VID_CH_MODE_SEL, tmp | 0x1B0001FF);       \r
     \r
-          \r
+         \r
     dev->_is_running   = 0;    \r
     dev->_frame_count  = 0;\r
     dev->_file_status  = RESET_STATUS;  \r
@@ -850,40 +850,40 @@ int cx25821_vidupstream_init_ch1(struct cx25821_dev *dev, int channel_select, in
     data_frame_size = dev->_isNTSC ? NTSC_DATA_BUF_SZ : PAL_DATA_BUF_SZ;        \r
     risc_buffer_size = dev->_isNTSC ? NTSC_RISC_BUF_SIZE : PAL_RISC_BUF_SIZE;\r
     \r
-            \r
+           \r
     if( dev->input_filename )\r
     {\r
-        str_length = strlen(dev->input_filename);\r
-        dev->_filename = (char *) kmalloc(str_length + 1, GFP_KERNEL);\r
-        \r
-        if( !dev->_filename )\r
-            goto error;\r
-            \r
-        memcpy(dev->_filename, dev->input_filename, str_length + 1);    \r
+       str_length = strlen(dev->input_filename);\r
+       dev->_filename = (char *) kmalloc(str_length + 1, GFP_KERNEL);\r
+       \r
+       if( !dev->_filename )\r
+           goto error;\r
+           \r
+       memcpy(dev->_filename, dev->input_filename, str_length + 1);    \r
     }\r
     else\r
     {\r
-        str_length = strlen(dev->_defaultname);       \r
-        dev->_filename = (char *) kmalloc(str_length + 1, GFP_KERNEL);\r
-        \r
-        if( !dev->_filename )\r
-            goto error;\r
-            \r
-        memcpy(dev->_filename, dev->_defaultname, str_length + 1);\r
+       str_length = strlen(dev->_defaultname);       \r
+       dev->_filename = (char *) kmalloc(str_length + 1, GFP_KERNEL);\r
+       \r
+       if( !dev->_filename )\r
+           goto error;\r
+           \r
+       memcpy(dev->_filename, dev->_defaultname, str_length + 1);\r
     }\r
        \r
     \r
     //Default if filename is empty string \r
     if( strcmp(dev->input_filename,"") == 0)        \r
     {\r
-        if( dev->_isNTSC )\r
-        {\r
-            dev->_filename = (dev->_pixel_format == PIXEL_FRMT_411) ? "/root/vid411.yuv" : "/root/vidtest.yuv";\r
-        }\r
-        else\r
-        {\r
-            dev->_filename = (dev->_pixel_format == PIXEL_FRMT_411) ? "/root/pal411.yuv" : "/root/pal422.yuv";    \r
-        }\r
+       if( dev->_isNTSC )\r
+       {\r
+           dev->_filename = (dev->_pixel_format == PIXEL_FRMT_411) ? "/root/vid411.yuv" : "/root/vidtest.yuv";\r
+       }\r
+       else\r
+       {\r
+           dev->_filename = (dev->_pixel_format == PIXEL_FRMT_411) ? "/root/pal411.yuv" : "/root/pal422.yuv";    \r
+       }\r
     }\r
     \r
     dev->_is_running   = 0;    \r
@@ -906,8 +906,8 @@ int cx25821_vidupstream_init_ch1(struct cx25821_dev *dev, int channel_select, in
     retval = cx25821_upstream_buffer_prepare(dev, sram_ch, dev->_line_size);\r
     if (retval < 0) \r
     {\r
-        printk(KERN_ERR "%s: Failed to set up Video upstream buffers!\n", dev->name);\r
-        goto error;\r
+       printk(KERN_ERR "%s: Failed to set up Video upstream buffers!\n", dev->name);\r
+       goto error;\r
     }\r
     \r
       \r
index 632ccc6..c134a19 100644 (file)
 \r
 #ifdef USE_RISC_NOOP_VIDEO\r
 #define PAL_US_VID_PROG_SIZE        ((PAL_FIELD_HEIGHT) * 3 * DWORD_SIZE + RISC_WRITECR_INSTRUCTION_SIZE +   \\r
-                                      RISC_SYNC_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)\r
-                                    \r
+                                     RISC_SYNC_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)\r
+                                   \r
 #define PAL_RISC_BUF_SIZE           (2 * PAL_US_VID_PROG_SIZE)\r
 \r
 #define PAL_VID_PROG_SIZE           ((PAL_FIELD_HEIGHT*2) * 3 * DWORD_SIZE + 2*RISC_SYNC_INSTRUCTION_SIZE + \\r
-                                      RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE + 2*NUM_NO_OPS*DWORD_SIZE) \r
+                                     RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE + 2*NUM_NO_OPS*DWORD_SIZE) \r
 \r
 #define ODD_FLD_PAL_PROG_SIZE       ((PAL_FIELD_HEIGHT) * 3 * DWORD_SIZE + RISC_SYNC_INSTRUCTION_SIZE + \\r
-                                      RISC_WRITECR_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)  \r
-                                      \r
+                                     RISC_WRITECR_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)  \r
+                                     \r
 #define ODD_FLD_NTSC_PROG_SIZE      ((NTSC_ODD_FLD_LINES) * 3 * DWORD_SIZE + RISC_SYNC_INSTRUCTION_SIZE + \\r
-                                      RISC_WRITECR_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)  \r
-                                      \r
+                                     RISC_WRITECR_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)  \r
+                                     \r
 #define NTSC_US_VID_PROG_SIZE       ((NTSC_ODD_FLD_LINES + 1) * 3 * DWORD_SIZE + RISC_WRITECR_INSTRUCTION_SIZE + \\r
-                                      JUMP_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)   \r
-                                    \r
+                                     JUMP_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)   \r
+                                   \r
 #define NTSC_RISC_BUF_SIZE          (2 * (RISC_SYNC_INSTRUCTION_SIZE + NTSC_US_VID_PROG_SIZE))         \r
 \r
 #define FRAME1_VID_PROG_SIZE        ((NTSC_ODD_FLD_LINES + NTSC_FIELD_HEIGHT) * 3 * DWORD_SIZE + 2*RISC_SYNC_INSTRUCTION_SIZE + \\r
-                                      RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE + 2*NUM_NO_OPS*DWORD_SIZE) \r
-                                      \r
+                                     RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE + 2*NUM_NO_OPS*DWORD_SIZE) \r
+                                     \r
 #endif\r
 \r
 \r
 #ifndef USE_RISC_NOOP_VIDEO\r
 #define PAL_US_VID_PROG_SIZE        ((PAL_FIELD_HEIGHT) * 3 * DWORD_SIZE + RISC_WRITECR_INSTRUCTION_SIZE + \\r
-                                      RISC_SYNC_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE)\r
-                                    \r
+                                     RISC_SYNC_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE)\r
+                                   \r
 #define PAL_RISC_BUF_SIZE           (2 * PAL_US_VID_PROG_SIZE)\r
 \r
 #define PAL_VID_PROG_SIZE           ((PAL_FIELD_HEIGHT*2) * 3 * DWORD_SIZE + 2*RISC_SYNC_INSTRUCTION_SIZE + \\r
-                                      RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE ) \r
+                                     RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE ) \r
 \r
 #define ODD_FLD_PAL_PROG_SIZE       ((PAL_FIELD_HEIGHT) * 3 * DWORD_SIZE + RISC_SYNC_INSTRUCTION_SIZE + RISC_WRITECR_INSTRUCTION_SIZE )\r
 #define ODD_FLD_NTSC_PROG_SIZE      ((NTSC_ODD_FLD_LINES) * 3 * DWORD_SIZE + RISC_SYNC_INSTRUCTION_SIZE + RISC_WRITECR_INSTRUCTION_SIZE )\r
 #define NTSC_US_VID_PROG_SIZE       ((NTSC_ODD_FLD_LINES + 1) * 3 * DWORD_SIZE + RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE)   \r
 #define NTSC_RISC_BUF_SIZE          ( 2 * (RISC_SYNC_INSTRUCTION_SIZE + NTSC_US_VID_PROG_SIZE) )     \r
 #define FRAME1_VID_PROG_SIZE        ((NTSC_ODD_FLD_LINES + NTSC_FIELD_HEIGHT) * 3 * DWORD_SIZE + 2*RISC_SYNC_INSTRUCTION_SIZE + \\r
-                                      RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE )\r
+                                     RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE )\r
 #endif  \r
index 512cbe3..ba8115b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -54,30 +54,30 @@ static void init_controls(struct cx25821_dev *dev, int chan_num);
 
 struct cx25821_fmt formats[] = {
     {
-        .name     = "8 bpp, gray",
-        .fourcc   = V4L2_PIX_FMT_GREY,
-        .depth    = 8,
-        .flags    = FORMAT_FLAGS_PACKED,
+       .name     = "8 bpp, gray",
+       .fourcc   = V4L2_PIX_FMT_GREY,
+       .depth    = 8,
+       .flags    = FORMAT_FLAGS_PACKED,
     }, {
-        .name     = "4:1:1, packed, Y41P",      
-        .fourcc   = V4L2_PIX_FMT_Y41P,       
-        .depth    = 12,
-        .flags    = FORMAT_FLAGS_PACKED,
+       .name     = "4:1:1, packed, Y41P",
+       .fourcc   = V4L2_PIX_FMT_Y41P,
+       .depth    = 12,
+       .flags    = FORMAT_FLAGS_PACKED,
     }, {
-        .name     = "4:2:2, packed, YUYV",
-        .fourcc   = V4L2_PIX_FMT_YUYV,
-        .depth    = 16,
-        .flags    = FORMAT_FLAGS_PACKED,
+       .name     = "4:2:2, packed, YUYV",
+       .fourcc   = V4L2_PIX_FMT_YUYV,
+       .depth    = 16,
+       .flags    = FORMAT_FLAGS_PACKED,
     }, {
-        .name     = "4:2:2, packed, UYVY",
-        .fourcc   = V4L2_PIX_FMT_UYVY,
-        .depth    = 16,
-        .flags    = FORMAT_FLAGS_PACKED,
+       .name     = "4:2:2, packed, UYVY",
+       .fourcc   = V4L2_PIX_FMT_UYVY,
+       .depth    = 16,
+       .flags    = FORMAT_FLAGS_PACKED,
     },{
-        .name     = "4:2:0, YUV",           
-        .fourcc   = V4L2_PIX_FMT_YUV420,
-        .depth    = 12,
-        .flags    = FORMAT_FLAGS_PACKED,
+       .name     = "4:2:0, YUV",
+       .fourcc   = V4L2_PIX_FMT_YUV420,
+       .depth    = 12,
+       .flags    = FORMAT_FLAGS_PACKED,
     },
 };
 
@@ -94,12 +94,12 @@ struct cx25821_fmt *format_by_fourcc(unsigned int fourcc)
 
     if( fourcc == V4L2_PIX_FMT_Y41P || fourcc == V4L2_PIX_FMT_YUV411P )
     {
-        return formats+1;       
+       return formats+1;
     }
-            
+
     for (i = 0; i < ARRAY_SIZE(formats); i++)
-        if (formats[i].fourcc == fourcc)
-            return formats+i;
+       if (formats[i].fourcc == fourcc)
+           return formats+i;
 
     printk(KERN_ERR "%s(0x%08x) NOT FOUND\n", __func__, fourcc);
     return NULL;
@@ -112,14 +112,14 @@ void dump_video_queue(struct cx25821_dev *dev, struct cx25821_dmaqueue *q)
     dprintk(1, "%s()\n", __func__);
 
     if (!list_empty(&q->active)) {
-        list_for_each(item, &q->active)
-            buf = list_entry(item, struct cx25821_buffer, vb.queue);
+       list_for_each(item, &q->active)
+           buf = list_entry(item, struct cx25821_buffer, vb.queue);
      }
 
     if (!list_empty(&q->queued))
     {
-        list_for_each(item, &q->queued)
-            buf = list_entry(item, struct cx25821_buffer, vb.queue);
+       list_for_each(item, &q->queued)
+           buf = list_entry(item, struct cx25821_buffer, vb.queue);
      }
 
 }
@@ -131,63 +131,63 @@ void cx25821_video_wakeup(struct cx25821_dev *dev, struct cx25821_dmaqueue *q, u
     int bc;
 
     for (bc = 0;; bc++) {
-        if (list_empty(&q->active))
-        {
-            dprintk(1, "bc=%d (=0: active empty)\n", bc);
-            break;
-        }
-
-        buf = list_entry(q->active.next, struct cx25821_buffer, vb.queue);
-
-        /* count comes from the hw and it is 16bit wide --
-         * this trick handles wrap-arounds correctly for
-         * up to 32767 buffers in flight... */
-        if ((s16) (count - buf->count) < 0)
-        {
-            break;
-        }
-        
-        do_gettimeofday(&buf->vb.ts);
-        buf->vb.state = VIDEOBUF_DONE;
-        list_del(&buf->vb.queue);
-        wake_up(&buf->vb.done);
+       if (list_empty(&q->active))
+       {
+           dprintk(1, "bc=%d (=0: active empty)\n", bc);
+           break;
+       }
+
+       buf = list_entry(q->active.next, struct cx25821_buffer, vb.queue);
+
+       /* count comes from the hw and it is 16bit wide --
+        * this trick handles wrap-arounds correctly for
+        * up to 32767 buffers in flight... */
+       if ((s16) (count - buf->count) < 0)
+       {
+           break;
+       }
+
+       do_gettimeofday(&buf->vb.ts);
+       buf->vb.state = VIDEOBUF_DONE;
+       list_del(&buf->vb.queue);
+       wake_up(&buf->vb.done);
     }
 
     if (list_empty(&q->active))
-        del_timer(&q->timeout);
+       del_timer(&q->timeout);
     else
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
     if (bc != 1)
-        printk(KERN_ERR "%s: %d buffers handled (should be 1)\n", __func__, bc);
+       printk(KERN_ERR "%s: %d buffers handled (should be 1)\n", __func__, bc);
 }
 
 #ifdef TUNER_FLAG
 int cx25821_set_tvnorm(struct cx25821_dev *dev, v4l2_std_id norm)
 {
     dprintk(1, "%s(norm = 0x%08x) name: [%s]\n", __func__,
-        (unsigned int)norm,
-        v4l2_norm_to_name(norm));
-        
+       (unsigned int)norm,
+       v4l2_norm_to_name(norm));
+
     dev->tvnorm = norm;
 
-    /* Tell the internal A/V decoder */    
+    /* Tell the internal A/V decoder */
     cx25821_call_all(dev, core, s_std, norm);
-    
+
     return 0;
 }
 #endif
 
 struct video_device *cx25821_vdev_init(struct cx25821_dev *dev,
-                    struct pci_dev *pci,
-                    struct video_device *template,
-                    char *type)
+                   struct pci_dev *pci,
+                   struct video_device *template,
+                   char *type)
 {
     struct video_device *vfd;
     dprintk(1, "%s()\n", __func__);
 
     vfd = video_device_alloc();
     if (NULL == vfd)
-        return NULL;
+       return NULL;
     *vfd = *template;
     vfd->minor   = -1;
     vfd->v4l2_dev = &dev->v4l2_dev;
@@ -202,13 +202,13 @@ static int cx25821_ctrl_query(struct v4l2_queryctrl *qctrl)
     int i;
 
     if (qctrl->id < V4L2_CID_BASE || qctrl->id >= V4L2_CID_LASTP1)
-        return -EINVAL;
+       return -EINVAL;
     for (i = 0; i < CX25821_CTLS; i++)
-        if (cx25821_ctls[i].v.id == qctrl->id)
-            break;
+       if (cx25821_ctls[i].v.id == qctrl->id)
+           break;
     if (i == CX25821_CTLS) {
-        *qctrl = no_ctl;
-        return 0;
+       *qctrl = no_ctl;
+       return 0;
     }
     *qctrl = cx25821_ctls[i].v;
     return 0;
@@ -220,15 +220,15 @@ int res_get(struct cx25821_dev *dev, struct cx25821_fh *fh, unsigned int bit)
 {
     dprintk(1, "%s()\n", __func__);
     if (fh->resources & bit)
-        /* have it already allocated */
-        return 1;
+       /* have it already allocated */
+       return 1;
 
     /* is it free? */
     mutex_lock(&dev->lock);
     if (dev->resources & bit) {
-        /* no, someone else uses it */
-        mutex_unlock(&dev->lock);
-        return 0;
+       /* no, someone else uses it */
+       mutex_unlock(&dev->lock);
+       return 0;
     }
     /* it's free, grab it */
     fh->resources  |= bit;
@@ -266,23 +266,23 @@ int cx25821_video_mux(struct cx25821_dev *dev, unsigned int input)
     memset(&route, 0, sizeof(route));
 
     dprintk(1, "%s() video_mux: %d [vmux=%d, gpio=0x%x,0x%x,0x%x,0x%x]\n", __func__,
-        input, INPUT(input)->vmux,
-        INPUT(input)->gpio0, INPUT(input)->gpio1,
-        INPUT(input)->gpio2, INPUT(input)->gpio3);
+       input, INPUT(input)->vmux,
+       INPUT(input)->gpio0, INPUT(input)->gpio1,
+       INPUT(input)->gpio2, INPUT(input)->gpio3);
     dev->input = input;
 
     route.input = INPUT(input)->vmux;
-    
+
     /* Tell the internal A/V decoder */
-    cx25821_call_all(dev, video, s_routing, INPUT(input)->vmux, 0, 0);  
-    
+    cx25821_call_all(dev, video, s_routing, INPUT(input)->vmux, 0, 0);
+
     return 0;
 }
 
 int cx25821_start_video_dma(struct cx25821_dev *dev,
-                   struct cx25821_dmaqueue *q,
-                   struct cx25821_buffer *buf,
-                   struct sram_channel *channel)
+                  struct cx25821_dmaqueue *q,
+                  struct cx25821_buffer *buf,
+                  struct sram_channel *channel)
 {
     int tmp = 0;
 
@@ -302,7 +302,7 @@ int cx25821_start_video_dma(struct cx25821_dev *dev,
 
     /* make sure upstream setting if any is reversed */
     tmp = cx_read( VID_CH_MODE_SEL );
-    cx_write( VID_CH_MODE_SEL, tmp & 0xFFFFFE00);  
+    cx_write( VID_CH_MODE_SEL, tmp & 0xFFFFFE00);
 
     return 0;
 }
@@ -314,44 +314,44 @@ int cx25821_restart_video_queue(struct cx25821_dev *dev, struct cx25821_dmaqueue
     struct list_head *item;
 
     if (!list_empty(&q->active)) {
-        buf = list_entry(q->active.next, struct cx25821_buffer, vb.queue);
+       buf = list_entry(q->active.next, struct cx25821_buffer, vb.queue);
 
-        cx25821_start_video_dma(dev, q, buf, channel);
+       cx25821_start_video_dma(dev, q, buf, channel);
 
-        list_for_each(item, &q->active) {
-            buf = list_entry(item, struct cx25821_buffer, vb.queue);
-            buf->count    = q->count++;
-        }
+       list_for_each(item, &q->active) {
+           buf = list_entry(item, struct cx25821_buffer, vb.queue);
+           buf->count    = q->count++;
+       }
 
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        return 0;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       return 0;
     }
 
     prev = NULL;
     for (;;) {
-        if (list_empty(&q->queued))
-            return 0;
-
-        buf = list_entry(q->queued.next, struct cx25821_buffer, vb.queue);
-
-        if (NULL == prev) {
-            list_move_tail(&buf->vb.queue, &q->active);
-            cx25821_start_video_dma(dev, q, buf, channel);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        } else if (prev->vb.width  == buf->vb.width  &&
-               prev->vb.height == buf->vb.height &&
-               prev->fmt       == buf->fmt) {
-            list_move_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-            prev->risc.jmp[2] = cpu_to_le32(0); /* Bits 63 - 32 */
-        } else {
-            return 0;
-        }
-        prev = buf;
+       if (list_empty(&q->queued))
+           return 0;
+
+       buf = list_entry(q->queued.next, struct cx25821_buffer, vb.queue);
+
+       if (NULL == prev) {
+           list_move_tail(&buf->vb.queue, &q->active);
+           cx25821_start_video_dma(dev, q, buf, channel);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       } else if (prev->vb.width  == buf->vb.width  &&
+              prev->vb.height == buf->vb.height &&
+              prev->fmt       == buf->fmt) {
+           list_move_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+           prev->risc.jmp[2] = cpu_to_le32(0); /* Bits 63 - 32 */
+       } else {
+           return 0;
+       }
+       prev = buf;
     }
 }
 
@@ -369,11 +369,11 @@ void cx25821_vid_timeout(unsigned long data)
 
     spin_lock_irqsave(&dev->slock, flags);
     while (!list_empty(&q->active)) {
-        buf = list_entry(q->active.next, struct cx25821_buffer, vb.queue);
-        list_del(&buf->vb.queue);
+       buf = list_entry(q->active.next, struct cx25821_buffer, vb.queue);
+       list_del(&buf->vb.queue);
 
-        buf->vb.state = VIDEOBUF_ERROR;
-        wake_up(&buf->vb.done);
+       buf->vb.state = VIDEOBUF_ERROR;
+       wake_up(&buf->vb.done);
     }
 
     cx25821_restart_video_queue(dev, q, channel);
@@ -389,33 +389,33 @@ int cx25821_video_irq(struct cx25821_dev *dev, int chan_num, u32 status)
 
     mask   = cx_read(channel->int_msk);
     if (0 == (status & mask))
-        return handled;
+       return handled;
 
     cx_write(channel->int_stat, status);
 
     /* risc op code error */
     if (status & (1 << 16)) {
-        printk(KERN_WARNING "%s, %s: video risc op code error\n", dev->name, channel->name);
-        cx_clear(channel->dma_ctl, 0x11);
-        cx25821_sram_channel_dump(dev, channel);
+       printk(KERN_WARNING "%s, %s: video risc op code error\n", dev->name, channel->name);
+       cx_clear(channel->dma_ctl, 0x11);
+       cx25821_sram_channel_dump(dev, channel);
     }
 
     /* risc1 y */
     if (status & FLD_VID_DST_RISC1) {
-        spin_lock(&dev->slock);
-        count = cx_read(channel->gpcnt);
-        cx25821_video_wakeup(dev, &dev->vidq[channel->i], count);
-        spin_unlock(&dev->slock);
-        handled++;
+       spin_lock(&dev->slock);
+       count = cx_read(channel->gpcnt);
+       cx25821_video_wakeup(dev, &dev->vidq[channel->i], count);
+       spin_unlock(&dev->slock);
+       handled++;
     }
 
     /* risc2 y */
     if (status & 0x10) {
-        dprintk(2, "stopper video\n");
-        spin_lock(&dev->slock);
-        cx25821_restart_video_queue(dev, &dev->vidq[channel->i], channel);
-        spin_unlock(&dev->slock);
-        handled++;
+       dprintk(2, "stopper video\n");
+       spin_lock(&dev->slock);
+       cx25821_restart_video_queue(dev, &dev->vidq[channel->i], channel);
+       spin_unlock(&dev->slock);
+       handled++;
     }
     return handled;
 }
@@ -424,30 +424,30 @@ void cx25821_videoioctl_unregister(struct cx25821_dev *dev)
 {
     if( dev->ioctl_dev )
     {
-        if (dev->ioctl_dev->minor != -1)
-            video_unregister_device(dev->ioctl_dev);
-        else
-            video_device_release(dev->ioctl_dev);
+       if (dev->ioctl_dev->minor != -1)
+           video_unregister_device(dev->ioctl_dev);
+       else
+           video_device_release(dev->ioctl_dev);
 
-        dev->ioctl_dev = NULL;
+       dev->ioctl_dev = NULL;
     }
 }
-        
+
 void cx25821_video_unregister(struct cx25821_dev *dev, int chan_num)
 {
     cx_clear(PCI_INT_MSK, 1);
 
     if (dev->video_dev[chan_num]) {
-        if (-1 != dev->video_dev[chan_num]->minor)
-            video_unregister_device(dev->video_dev[chan_num]);
-        else
-            video_device_release(dev->video_dev[chan_num]);
+       if (-1 != dev->video_dev[chan_num]->minor)
+           video_unregister_device(dev->video_dev[chan_num]);
+       else
+           video_device_release(dev->video_dev[chan_num]);
 
-        dev->video_dev[chan_num] = NULL;
+       dev->video_dev[chan_num] = NULL;
 
-        btcx_riscmem_free(dev->pci, &dev->vidq[chan_num].stopper);
+       btcx_riscmem_free(dev->pci, &dev->vidq[chan_num].stopper);
 
-        printk(KERN_WARNING "device %d released!\n", chan_num);
+       printk(KERN_WARNING "device %d released!\n", chan_num);
     }
 
 }
@@ -475,13 +475,13 @@ int cx25821_video_register(struct cx25821_dev *dev, int chan_num, struct video_d
     init_timer(&dev->vidq[chan_num].timeout);
     cx25821_risc_stopper(dev->pci, &dev->vidq[chan_num].stopper, dev->sram_channels[chan_num].dma_ctl, 0x11, 0);
 
-    
+
     /* register v4l devices */
     dev->video_dev[chan_num] = cx25821_vdev_init(dev, dev->pci, video_template, "video");
     err = video_register_device(dev->video_dev[chan_num], VFL_TYPE_GRABBER, video_nr[dev->nr]);
 
     if (err < 0) {
-        goto fail_unreg;
+       goto fail_unreg;
     }
 
     //set PCI interrupt
@@ -512,10 +512,10 @@ int buffer_setup(struct videobuf_queue *q, unsigned int *count, unsigned int *si
 
 
     if (0 == *count)
-        *count = 32;
+       *count = 32;
 
     while (*size * *count > vid_limit * 1024 * 1024)
-        (*count)--;
+       (*count)--;
 
     return 0;
 }
@@ -534,114 +534,114 @@ int buffer_prepare(struct videobuf_queue *q, struct videobuf_buffer *vb, enum v4
 
     BUG_ON(NULL == fh->fmt);
     if (fh->width  < 48 || fh->width  > 720 ||
-        fh->height < 32 || fh->height > 576)
-        return -EINVAL;
+       fh->height < 32 || fh->height > 576)
+       return -EINVAL;
 
     buf->vb.size = (fh->width * fh->height * fh->fmt->depth) >> 3;
 
     if (0 != buf->vb.baddr  &&  buf->vb.bsize < buf->vb.size)
-        return -EINVAL;
+       return -EINVAL;
 
 
     if (buf->fmt       != fh->fmt    ||
-        buf->vb.width  != fh->width  ||
-        buf->vb.height != fh->height ||
-        buf->vb.field  != field) {
-        buf->fmt       = fh->fmt;
-        buf->vb.width  = fh->width;
-        buf->vb.height = fh->height;
-        buf->vb.field  = field;
-        init_buffer = 1;
+       buf->vb.width  != fh->width  ||
+       buf->vb.height != fh->height ||
+       buf->vb.field  != field) {
+       buf->fmt       = fh->fmt;
+       buf->vb.width  = fh->width;
+       buf->vb.height = fh->height;
+       buf->vb.field  = field;
+       init_buffer = 1;
     }
 
     if (VIDEOBUF_NEEDS_INIT == buf->vb.state) {
-        init_buffer = 1;
-        rc = videobuf_iolock(q, &buf->vb, NULL);
-        if (0 != rc)
-                {
-            printk(KERN_DEBUG "videobuf_iolock failed!\n");
-            goto fail;
-                }
+       init_buffer = 1;
+       rc = videobuf_iolock(q, &buf->vb, NULL);
+       if (0 != rc)
+               {
+           printk(KERN_DEBUG "videobuf_iolock failed!\n");
+           goto fail;
+               }
     }
 
     dprintk(1, "init_buffer=%d\n", init_buffer);
 
     if (init_buffer) {
-        
-        channel_opened = dev->channel_opened;       
-        channel_opened = (channel_opened < 0 || channel_opened > 7) ? 7 : channel_opened;
-        
-        if( dev->pixel_formats[channel_opened] == PIXEL_FRMT_411 )
-            buf->bpl = (buf->fmt->depth * buf->vb.width) >> 3;
-        else
-            buf->bpl = (buf->fmt->depth >> 3) * (buf->vb.width);
-
-            
-        if( dev->pixel_formats[channel_opened] == PIXEL_FRMT_411 )
-        {
-            bpl_local = buf->bpl;
-        }
-        else 
-        {
-            bpl_local = buf->bpl;   //Default
-            
-            if( channel_opened >= 0 && channel_opened <= 7 )
-            {
-                if( dev->use_cif_resolution[channel_opened] )
-                {
-                    if( dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK )
-                        bpl_local = 352 << 1;
-                    else
-                        bpl_local = dev->cif_width[channel_opened] << 1;
-                }
-            }
-        }
-        
-         
-        switch (buf->vb.field) {
-            case V4L2_FIELD_TOP:
-                cx25821_risc_buffer(dev->pci, &buf->risc,
-                         dma->sglist, 0, UNSET,
-                         buf->bpl, 0, buf->vb.height);
-                break;
-            case V4L2_FIELD_BOTTOM:
-                cx25821_risc_buffer(dev->pci, &buf->risc,
-                         dma->sglist, UNSET, 0,
-                         buf->bpl, 0, buf->vb.height);
-                break;
-            case V4L2_FIELD_INTERLACED:
-                /* All other formats are top field first */
-                line0_offset = 0;
-                line1_offset = buf->bpl;
-                dprintk(1, "top field first\n");
-                
-                cx25821_risc_buffer(dev->pci, &buf->risc,
-                        dma->sglist, line0_offset,
-                        bpl_local, bpl_local, bpl_local,
-                        buf->vb.height >> 1);
-                break;
-            case V4L2_FIELD_SEQ_TB:
-                cx25821_risc_buffer(dev->pci, &buf->risc,
-                         dma->sglist,
-                         0, buf->bpl * (buf->vb.height >> 1),
-                         buf->bpl, 0,
-                         buf->vb.height >> 1);
-                break;
-            case V4L2_FIELD_SEQ_BT:
-                cx25821_risc_buffer(dev->pci, &buf->risc,
-                         dma->sglist,
-                         buf->bpl * (buf->vb.height >> 1), 0,
-                         buf->bpl, 0,
-                         buf->vb.height >> 1);
-                break;
-            default:
-                BUG();
-        }
+
+       channel_opened = dev->channel_opened;
+       channel_opened = (channel_opened < 0 || channel_opened > 7) ? 7 : channel_opened;
+
+       if( dev->pixel_formats[channel_opened] == PIXEL_FRMT_411 )
+           buf->bpl = (buf->fmt->depth * buf->vb.width) >> 3;
+       else
+           buf->bpl = (buf->fmt->depth >> 3) * (buf->vb.width);
+
+
+       if( dev->pixel_formats[channel_opened] == PIXEL_FRMT_411 )
+       {
+           bpl_local = buf->bpl;
+       }
+       else
+       {
+           bpl_local = buf->bpl;   //Default
+
+           if( channel_opened >= 0 && channel_opened <= 7 )
+           {
+               if( dev->use_cif_resolution[channel_opened] )
+               {
+                   if( dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK )
+                       bpl_local = 352 << 1;
+                   else
+                       bpl_local = dev->cif_width[channel_opened] << 1;
+               }
+           }
+       }
+
+
+       switch (buf->vb.field) {
+           case V4L2_FIELD_TOP:
+               cx25821_risc_buffer(dev->pci, &buf->risc,
+                        dma->sglist, 0, UNSET,
+                        buf->bpl, 0, buf->vb.height);
+               break;
+           case V4L2_FIELD_BOTTOM:
+               cx25821_risc_buffer(dev->pci, &buf->risc,
+                        dma->sglist, UNSET, 0,
+                        buf->bpl, 0, buf->vb.height);
+               break;
+           case V4L2_FIELD_INTERLACED:
+               /* All other formats are top field first */
+               line0_offset = 0;
+               line1_offset = buf->bpl;
+               dprintk(1, "top field first\n");
+
+               cx25821_risc_buffer(dev->pci, &buf->risc,
+                       dma->sglist, line0_offset,
+                       bpl_local, bpl_local, bpl_local,
+                       buf->vb.height >> 1);
+               break;
+           case V4L2_FIELD_SEQ_TB:
+               cx25821_risc_buffer(dev->pci, &buf->risc,
+                        dma->sglist,
+                        0, buf->bpl * (buf->vb.height >> 1),
+                        buf->bpl, 0,
+                        buf->vb.height >> 1);
+               break;
+           case V4L2_FIELD_SEQ_BT:
+               cx25821_risc_buffer(dev->pci, &buf->risc,
+                        dma->sglist,
+                        buf->bpl * (buf->vb.height >> 1), 0,
+                        buf->bpl, 0,
+                        buf->vb.height >> 1);
+               break;
+           default:
+               BUG();
+       }
     }
 
     dprintk(2, "[%p/%d] buffer_prep - %dx%d %dbpp \"%s\" - dma=0x%08lx\n",
-        buf, buf->vb.i, fh->width, fh->height, fh->fmt->depth, fh->fmt->name,
-        (unsigned long)buf->risc.dma);
+       buf, buf->vb.i, fh->width, fh->height, fh->fmt->depth, fh->fmt->name,
+       (unsigned long)buf->risc.dma);
 
     buf->vb.state = VIDEOBUF_PREPARED;
 
@@ -665,10 +665,10 @@ struct videobuf_queue *get_queue(struct cx25821_fh *fh)
 {
     switch (fh->type) {
     case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-        return &fh->vidq;
+       return &fh->vidq;
     default:
-        BUG();
-        return NULL;
+       BUG();
+       return NULL;
     }
 }
 
@@ -676,10 +676,10 @@ int get_resource(struct cx25821_fh *fh, int resource)
 {
     switch (fh->type) {
     case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-        return resource;
+       return resource;
     default:
-        BUG();
-        return 0;
+       BUG();
+       return 0;
     }
 }
 
@@ -714,38 +714,38 @@ int vidioc_try_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *f)
 
     fmt = format_by_fourcc(f->fmt.pix.pixelformat);
     if (NULL == fmt)
-        return -EINVAL;
+       return -EINVAL;
 
     field = f->fmt.pix.field;
     maxw  = 720;
     maxh  = 576;
 
     if (V4L2_FIELD_ANY == field) {
-        field = (f->fmt.pix.height > maxh/2)
-            ? V4L2_FIELD_INTERLACED
-            : V4L2_FIELD_TOP;
+       field = (f->fmt.pix.height > maxh/2)
+           ? V4L2_FIELD_INTERLACED
+           : V4L2_FIELD_TOP;
     }
 
     switch (field) {
     case V4L2_FIELD_TOP:
     case V4L2_FIELD_BOTTOM:
-        maxh = maxh / 2;
-        break;
+       maxh = maxh / 2;
+       break;
     case V4L2_FIELD_INTERLACED:
-        break;
+       break;
     default:
-        return -EINVAL;
+       return -EINVAL;
     }
 
     f->fmt.pix.field = field;
     if (f->fmt.pix.height < 32)
-        f->fmt.pix.height  = 32;
+       f->fmt.pix.height  = 32;
     if (f->fmt.pix.height > maxh)
-        f->fmt.pix.height = maxh;
+       f->fmt.pix.height = maxh;
     if (f->fmt.pix.width < 48)
-        f->fmt.pix.width = 48;
+       f->fmt.pix.width = 48;
     if (f->fmt.pix.width > maxw)
-        f->fmt.pix.width = maxw;
+       f->fmt.pix.width = maxw;
     f->fmt.pix.width &= ~0x03;
     f->fmt.pix.bytesperline  = (f->fmt.pix.width * fmt->depth) >> 3;
     f->fmt.pix.sizeimage     = f->fmt.pix.height * f->fmt.pix.bytesperline;
@@ -764,18 +764,18 @@ int vidioc_querycap(struct file *file, void  *priv, struct v4l2_capability *cap)
     sprintf(cap->bus_info, "PCIe:%s", pci_name(dev->pci));
     cap->version = CX25821_VERSION_CODE;
     cap->capabilities =
-        V4L2_CAP_VIDEO_CAPTURE |
-        V4L2_CAP_READWRITE     |
-        V4L2_CAP_STREAMING;
+       V4L2_CAP_VIDEO_CAPTURE |
+       V4L2_CAP_READWRITE     |
+       V4L2_CAP_STREAMING;
     if (UNSET != dev->tuner_type)
-        cap->capabilities |= V4L2_CAP_TUNER;
+       cap->capabilities |= V4L2_CAP_TUNER;
     return 0;
 }
 
 int vidioc_enum_fmt_vid_cap(struct file *file, void  *priv, struct v4l2_fmtdesc *f)
 {
     if (unlikely(f->index >= ARRAY_SIZE(formats)))
-        return -EINVAL;
+       return -EINVAL;
 
     strlcpy(f->description, formats[f->index].name, sizeof(f->description));
     f->pixelformat = formats[f->index].fourcc;
@@ -799,13 +799,13 @@ int vidiocgmbuf(struct file *file, void *priv, struct video_mbuf *mbuf)
     req.memory = V4L2_MEMORY_MMAP;
     err = videobuf_reqbufs(q, &req);
     if (err < 0)
-        return err;
+       return err;
 
     mbuf->frames = req.count;
     mbuf->size   = 0;
     for (i = 0; i < mbuf->frames; i++) {
-        mbuf->offsets[i]  = q->bufs[i]->boff;
-        mbuf->size       += q->bufs[i]->bsize;
+       mbuf->offsets[i]  = q->bufs[i]->boff;
+       mbuf->size       += q->bufs[i]->bsize;
     }
     return 0;
 }
@@ -856,17 +856,17 @@ int vidioc_s_std(struct file *file, void *priv, v4l2_std_id *tvnorms)
     int err;
 
     dprintk(1, "%s()\n", __func__);
-    
-    if (fh) 
+
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     if( dev->tvnorm == *tvnorms )
     {
-        return 0;
+       return 0;
     }
 
     mutex_lock(&dev->lock);
@@ -882,19 +882,19 @@ int vidioc_s_std(struct file *file, void *priv, v4l2_std_id *tvnorms)
 int cx25821_enum_input(struct cx25821_dev *dev, struct v4l2_input *i)
 {
     static const char *iname[] = {
-        [CX25821_VMUX_COMPOSITE] = "Composite",
-        [CX25821_VMUX_SVIDEO]     = "S-Video",
-        [CX25821_VMUX_DEBUG]      = "for debug only",
+       [CX25821_VMUX_COMPOSITE] = "Composite",
+       [CX25821_VMUX_SVIDEO]     = "S-Video",
+       [CX25821_VMUX_DEBUG]      = "for debug only",
     };
     unsigned int n;
     dprintk(1, "%s()\n", __func__);
 
     n = i->index;
     if (n > 2)
-        return -EINVAL;
+       return -EINVAL;
 
     if (0 == INPUT(n)->type)
-        return -EINVAL;
+       return -EINVAL;
 
     memset(i, 0, sizeof(*i));
     i->index = n;
@@ -913,9 +913,9 @@ int vidioc_enum_input(struct file *file, void *priv, struct v4l2_input *i)
 }
 
 int vidioc_g_input(struct file *file, void *priv, unsigned int *i)
-{   
+{
     struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
-    
+
     *i = dev->input;
     dprintk(1, "%s() returns %d\n", __func__, *i);
     return 0;
@@ -930,16 +930,16 @@ int vidioc_s_input(struct file *file, void *priv, unsigned int i)
 
     dprintk(1, "%s(%d)\n", __func__, i);
 
-    if (fh) 
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     if (i > 2) {
-        dprintk(1, "%s() -EINVAL\n", __func__);
-        return -EINVAL;
+       dprintk(1, "%s() -EINVAL\n", __func__);
+       return -EINVAL;
     }
 
     mutex_lock(&dev->lock);
@@ -982,11 +982,11 @@ int vidioc_s_frequency(struct file *file, void *priv, struct v4l2_frequency *f)
     struct cx25821_dev *dev = fh->dev;
     int err;
 
-    if (fh) 
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     return  cx25821_set_freq(dev, f);
@@ -995,12 +995,12 @@ int vidioc_s_frequency(struct file *file, void *priv, struct v4l2_frequency *f)
 
 #ifdef CONFIG_VIDEO_ADV_DEBUG
 int vidioc_g_register(struct file *file, void *fh,
-                struct v4l2_dbg_register *reg)
+               struct v4l2_dbg_register *reg)
 {
     struct cx25821_dev *dev = ((struct cx25821_fh *)fh)->dev;
 
     if (!v4l2_chip_match_host(&reg->match))
-        return -EINVAL;
+       return -EINVAL;
 
     cx25821_call_all(dev, core, g_register, reg);
 
@@ -1008,12 +1008,12 @@ int vidioc_g_register(struct file *file, void *fh,
 }
 
 int vidioc_s_register(struct file *file, void *fh,
-                struct v4l2_dbg_register *reg)
+               struct v4l2_dbg_register *reg)
 {
     struct cx25821_dev *dev = ((struct cx25821_fh *)fh)->dev;
 
     if (!v4l2_chip_match_host(&reg->match))
-        return -EINVAL;
+       return -EINVAL;
 
     cx25821_call_all(dev, core, s_register, reg);
 
@@ -1029,9 +1029,9 @@ int vidioc_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t)
     struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
 
     if (unlikely(UNSET == dev->tuner_type))
-        return -EINVAL;
+       return -EINVAL;
     if (0 != t->index)
-        return -EINVAL;
+       return -EINVAL;
 
     strcpy(t->name, "Television");
     t->type       = V4L2_TUNER_ANALOG_TV;
@@ -1043,24 +1043,24 @@ int vidioc_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t)
 }
 
 int vidioc_s_tuner(struct file *file, void *priv,
-                struct v4l2_tuner *t)
+               struct v4l2_tuner *t)
 {
     struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
     struct cx25821_fh *fh = priv;
     int err;
 
-    if (fh) 
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     dprintk(1, "%s()\n", __func__);
     if (UNSET == dev->tuner_type)
-        return -EINVAL;
+       return -EINVAL;
     if (0 != t->index)
-        return -EINVAL;
+       return -EINVAL;
 
     return 0;
 }
@@ -1130,7 +1130,7 @@ static int cx25821_ctrl_query(struct v4l2_queryctrl *qctrl)
 
 int vidioc_queryctrl(struct file *file, void *priv,
                                struct v4l2_queryctrl *qctrl)
-{      
+{
        return cx25821_ctrl_query(qctrl);
 }
 
@@ -1147,20 +1147,20 @@ static const struct v4l2_queryctrl* ctrl_by_id(unsigned int id)
        return NULL;
 }
 
-int vidioc_g_ctrl(struct file *file, 
-                  void *priv,
+int vidioc_g_ctrl(struct file *file,
+                 void *priv,
                  struct v4l2_control *ctl)
 {
-        struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
+       struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
 
-        const struct v4l2_queryctrl* ctrl;
+       const struct v4l2_queryctrl* ctrl;
 
        ctrl = ctrl_by_id(ctl->id);
 
        if (NULL == ctrl)
                return -EINVAL;
-       switch (ctl->id) 
-        {
+       switch (ctl->id)
+       {
            case V4L2_CID_BRIGHTNESS:
                ctl->value = dev->ctl_bright;
                break;
@@ -1173,25 +1173,25 @@ int vidioc_g_ctrl(struct file *file,
            case V4L2_CID_SATURATION:
                ctl->value = dev->ctl_saturation;
                break;
-        }
+       }
        return 0;
 }
 
 int cx25821_set_control(struct cx25821_dev *dev,
                  struct v4l2_control *ctl, int chan_num)
 {
-        int err;
-        const struct v4l2_queryctrl* ctrl;
+       int err;
+       const struct v4l2_queryctrl* ctrl;
 
-       err = -EINVAL;
+       err = -EINVAL;
 
        ctrl = ctrl_by_id(ctl->id);
 
-        if (NULL == ctrl)
+       if (NULL == ctrl)
                return err;
 
-        switch (ctrl->type) 
-        {
+       switch (ctrl->type)
+       {
            case V4L2_CTRL_TYPE_BOOLEAN:
            case V4L2_CTRL_TYPE_MENU:
            case V4L2_CTRL_TYPE_INTEGER:
@@ -1204,8 +1204,8 @@ int cx25821_set_control(struct cx25821_dev *dev,
                /* nothing */;
        };
 
-        switch (ctl->id) 
-        {
+       switch (ctl->id)
+       {
            case V4L2_CID_BRIGHTNESS:
                dev->ctl_bright = ctl->value;
                medusa_set_brightness(dev, ctl->value, chan_num);
@@ -1222,9 +1222,9 @@ int cx25821_set_control(struct cx25821_dev *dev,
                dev->ctl_saturation = ctl->value;
                medusa_set_saturation(dev, ctl->value, chan_num);
                break;
-        }
+       }
 
-        err = 0;
+       err = 0;
 
        return err;
 }
@@ -1241,12 +1241,12 @@ static void init_controls(struct cx25821_dev *dev, int chan_num)
        }
 }
 
-int vidioc_cropcap(struct file *file, 
-                   void *priv,
+int vidioc_cropcap(struct file *file,
+                  void *priv,
                   struct v4l2_cropcap *cropcap)
 {
        struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
-       
+
        if (cropcap->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
                return -EINVAL;
        cropcap->bounds.top = cropcap->bounds.left = 0;
@@ -1258,34 +1258,34 @@ int vidioc_cropcap(struct file *file,
        return 0;
 }
 
-int vidioc_s_crop(struct file *file, 
-                  void *priv,
+int vidioc_s_crop(struct file *file,
+                 void *priv,
                  struct v4l2_crop *crop)
 {
     struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
     struct cx25821_fh *fh = priv;
     int err;
 
-    if (fh) 
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
     // vidioc_s_crop not supported
     return -EINVAL;
 }
 
-int vidioc_g_crop(struct file *file, 
-                  void *priv,
+int vidioc_g_crop(struct file *file,
+                 void *priv,
                  struct v4l2_crop *crop)
 {
     // vidioc_g_crop not supported
     return -EINVAL;
 }
 
-int vidioc_querystd(struct file *file, 
-                   void *priv,
+int vidioc_querystd(struct file *file,
+                  void *priv,
                   v4l2_std_id *norm)
 {
     // medusa does not support video standard sensing of current input
@@ -1299,17 +1299,17 @@ int is_valid_width(u32 width, v4l2_std_id tvnorm)
     if(tvnorm == V4L2_STD_PAL_BG)
     {
        if (width == 352 || width == 720)
-            return 1;
-        else
-            return 0;
+           return 1;
+       else
+           return 0;
     }
-    
+
     if(tvnorm == V4L2_STD_NTSC_M)
     {
-        if (width == 320 || width == 352 || width == 720)
-            return 1;
-        else
-            return 0;
+       if (width == 320 || width == 352 || width == 720)
+           return 1;
+       else
+           return 0;
     }
     return 0;
 }
@@ -1317,19 +1317,19 @@ int is_valid_width(u32 width, v4l2_std_id tvnorm)
 int is_valid_height(u32 height, v4l2_std_id tvnorm)
 {
     if(tvnorm == V4L2_STD_PAL_BG)
-    { 
-        if (height == 576 || height == 288)
-            return 1;
-        else
-            return 0;
+    {
+       if (height == 576 || height == 288)
+           return 1;
+       else
+           return 0;
     }
 
     if(tvnorm == V4L2_STD_NTSC_M)
     {
-        if (height == 480 || height == 240)
-            return 1;
-        else
-            return 0;
+       if (height == 480 || height == 240)
+           return 1;
+       else
+           return 0;
     }
 
     return 0;
index fa2ec78..8b16201 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -52,7 +52,7 @@
 
 #define dprintk(level, fmt, arg...)\
     do { if (VIDEO_DEBUG >= level)\
-        printk(KERN_DEBUG "%s/0: " fmt, dev->name, ## arg);\
+       printk(KERN_DEBUG "%s/0: " fmt, dev->name, ## arg);\
     } while (0)
 
 
@@ -117,9 +117,9 @@ extern int res_locked(struct cx25821_dev *dev, unsigned int bit);
 extern void res_free(struct cx25821_dev *dev, struct cx25821_fh *fh, unsigned int bits);
 extern int cx25821_video_mux(struct cx25821_dev *dev, unsigned int input);
 extern int cx25821_start_video_dma(struct cx25821_dev *dev,
-                   struct cx25821_dmaqueue *q,
-                   struct cx25821_buffer *buf,
-                   struct sram_channel *channel);
+                  struct cx25821_dmaqueue *q,
+                  struct cx25821_buffer *buf,
+                  struct sram_channel *channel);
 
 extern int cx25821_set_scale(struct cx25821_dev *dev, unsigned int width, unsigned int height, enum v4l2_field field);
 extern int cx25821_video_irq(struct cx25821_dev *dev, int chan_num, u32 status);
index 9dbd740..92b5eb9 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -40,37 +40,37 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
     dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
 
     if (!list_empty(&q->queued)) {
-        list_add_tail(&buf->vb.queue, &q->queued);
-        buf->vb.state = VIDEOBUF_QUEUED;
-        dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
+       list_add_tail(&buf->vb.queue, &q->queued);
+       buf->vb.state = VIDEOBUF_QUEUED;
+       dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
 
     } else if (list_empty(&q->active)) {
-        list_add_tail(&buf->vb.queue, &q->active);
-        cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH00]);
-        buf->vb.state = VIDEOBUF_ACTIVE;
-        buf->count    = q->count++;
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
-                                buf, buf->vb. i, buf->count, q->count);
+       list_add_tail(&buf->vb.queue, &q->active);
+       cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH00]);
+       buf->vb.state = VIDEOBUF_ACTIVE;
+       buf->count    = q->count++;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
+                               buf, buf->vb. i, buf->count, q->count);
     } else {
-        prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
-        if (prev->vb.width  == buf->vb.width  &&
-            prev->vb.height == buf->vb.height &&
-            prev->fmt       == buf->fmt) {
-            list_add_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-
-            /* 64 bit bits 63-32 */
-            prev->risc.jmp[2] = cpu_to_le32(0);
-            dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
-
-        } else {
-            list_add_tail(&buf->vb.queue, &q->queued);
-            buf->vb.state = VIDEOBUF_QUEUED;
-            dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
-        }
+       prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
+       if (prev->vb.width  == buf->vb.width  &&
+           prev->vb.height == buf->vb.height &&
+           prev->fmt       == buf->fmt) {
+           list_add_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+
+           /* 64 bit bits 63-32 */
+           prev->risc.jmp[2] = cpu_to_le32(0);
+           dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
+
+       } else {
+           list_add_tail(&buf->vb.queue, &q->queued);
+           buf->vb.state = VIDEOBUF_QUEUED;
+           dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
+       }
     }
 
     if (list_empty(&q->active))
@@ -100,18 +100,18 @@ static int video_open(struct file *file)
     lock_kernel();
     list_for_each(list, &cx25821_devlist)
     {
-        h = list_entry(list, struct cx25821_dev, devlist);
+       h = list_entry(list, struct cx25821_dev, devlist);
 
-        if (h->video_dev[SRAM_CH00] && h->video_dev[SRAM_CH00]->minor == minor)
-        {
-            dev  = h;
-            type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        }
+       if (h->video_dev[SRAM_CH00] && h->video_dev[SRAM_CH00]->minor == minor)
+       {
+           dev  = h;
+           type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       }
     }
 
     if (NULL == dev) {
-        unlock_kernel();
-        return -ENODEV;
+       unlock_kernel();
+       return -ENODEV;
     }
 
     printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
@@ -119,8 +119,8 @@ static int video_open(struct file *file)
     /* allocate + initialize per filehandle data */
     fh = kzalloc(sizeof(*fh), GFP_KERNEL);
     if (NULL == fh) {
-        unlock_kernel();
-        return -ENOMEM;
+       unlock_kernel();
+       return -ENOMEM;
     }
 
     file->private_data = fh;
@@ -129,22 +129,22 @@ static int video_open(struct file *file)
     fh->width    = 720;
 
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
-        fh->height = 576;
+       fh->height = 576;
     else
-        fh->height = 480;
+       fh->height = 480;
 
     dev->channel_opened = SRAM_CH00;
     pix_format          = (dev->pixel_formats[dev->channel_opened] == PIXEL_FRMT_411) ? V4L2_PIX_FMT_Y41P : V4L2_PIX_FMT_YUYV;
     fh->fmt             = format_by_fourcc(pix_format);
-    
+
     v4l2_prio_open(&dev->prio,&fh->prio);
 
     videobuf_queue_sg_init(&fh->vidq, &cx25821_video_qops,
-                &dev->pci->dev, &dev->slock,
-                V4L2_BUF_TYPE_VIDEO_CAPTURE,
-                V4L2_FIELD_INTERLACED,
-                sizeof(struct cx25821_buffer),
-                fh);
+               &dev->pci->dev, &dev->slock,
+               V4L2_BUF_TYPE_VIDEO_CAPTURE,
+               V4L2_FIELD_INTERLACED,
+               sizeof(struct cx25821_buffer),
+               fh);
 
     dprintk(1, "post videobuf_queue_init()\n");
     unlock_kernel();
@@ -158,15 +158,15 @@ static ssize_t video_read(struct file *file, char __user *data, size_t count, lo
 
     switch (fh->type)
     {
-        case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-            if (res_locked(fh->dev, RESOURCE_VIDEO0))
-                return -EBUSY;
+       case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+           if (res_locked(fh->dev, RESOURCE_VIDEO0))
+               return -EBUSY;
 
-            return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
+           return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
 
-        default:
-            BUG();
-            return 0;
+       default:
+           BUG();
+           return 0;
     }
 }
 
@@ -176,36 +176,36 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
     struct cx25821_buffer *buf;
 
     if (res_check(fh, RESOURCE_VIDEO0)) {
-        /* streaming capture */
-        if (list_empty(&fh->vidq.stream))
-            return POLLERR;
-        buf = list_entry(fh->vidq.stream.next,
-            struct cx25821_buffer, vb.stream);
+       /* streaming capture */
+       if (list_empty(&fh->vidq.stream))
+           return POLLERR;
+       buf = list_entry(fh->vidq.stream.next,
+           struct cx25821_buffer, vb.stream);
     } else {
-        /* read() capture */
-        buf = (struct cx25821_buffer *)fh->vidq.read_buf;
-        if (NULL == buf)
-            return POLLERR;
+       /* read() capture */
+       buf = (struct cx25821_buffer *)fh->vidq.read_buf;
+       if (NULL == buf)
+           return POLLERR;
     }
 
     poll_wait(file, &buf->vb.done, wait);
     if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)
-    {       
-        if( buf->vb.state == VIDEOBUF_DONE )
-        {            
-            struct cx25821_dev *dev = fh->dev;
-            
-            if( dev && dev->use_cif_resolution[SRAM_CH00] )
-            {
-                u8 cam_id = *((char*)buf->vb.baddr+3); 
-                memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));                      
-                *((char*)buf->vb.baddr+3) = cam_id;
-            }
-        }
-        
-        return POLLIN|POLLRDNORM;
+    {
+       if( buf->vb.state == VIDEOBUF_DONE )
+       {
+           struct cx25821_dev *dev = fh->dev;
+
+           if( dev && dev->use_cif_resolution[SRAM_CH00] )
+           {
+               u8 cam_id = *((char*)buf->vb.baddr+3);
+               memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));
+               *((char*)buf->vb.baddr+3) = cam_id;
+           }
+       }
+
+       return POLLIN|POLLRDNORM;
     }
-    
+
     return 0;
 }
 
@@ -220,13 +220,13 @@ static int video_release(struct file *file)
 
     /* stop video capture */
     if (res_check(fh, RESOURCE_VIDEO0)) {
-        videobuf_queue_cancel(&fh->vidq);
-        res_free(dev, fh, RESOURCE_VIDEO0);
+       videobuf_queue_cancel(&fh->vidq);
+       res_free(dev, fh, RESOURCE_VIDEO0);
     }
 
     if (fh->vidq.read_buf) {
-        buffer_release(&fh->vidq, fh->vidq.read_buf);
-        kfree(fh->vidq.read_buf);
+       buffer_release(&fh->vidq, fh->vidq.read_buf);
+       kfree(fh->vidq.read_buf);
     }
 
     videobuf_mmap_free(&fh->vidq);
@@ -246,17 +246,17 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
     if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(i != fh->type))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO0))))
     {
-        return -EBUSY;
+       return -EBUSY;
     }
 
     return videobuf_streamon(get_queue(fh));
@@ -269,14 +269,14 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
     int err, res;
 
     if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-        return -EINVAL;
+       return -EINVAL;
     if (i != fh->type)
-        return -EINVAL;
+       return -EINVAL;
 
     res = get_resource(fh, RESOURCE_VIDEO0);
     err = videobuf_streamoff(get_queue(fh));
     if (err < 0)
-        return err;
+       return err;
     res_free(dev, fh, res);
     return 0;
 }
@@ -286,21 +286,21 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
 {
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
-    int err;    
+    int err;
     int pix_format = PIXEL_FRMT_422;
-    
-    if (fh) 
+
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     dprintk(2, "%s()\n", __func__);
     err = vidioc_try_fmt_vid_cap(file, priv, f);
 
     if (0 != err)
-        return err;
+       return err;
 
     fh->fmt        = format_by_fourcc(f->fmt.pix.pixelformat);
     fh->vidq.field = f->fmt.pix.field;
@@ -308,33 +308,33 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     // check if width and height is valid based on set standard
     if (is_valid_width(f->fmt.pix.width, dev->tvnorm))
     {
-        fh->width      = f->fmt.pix.width;
+       fh->width      = f->fmt.pix.width;
     }
 
     if (is_valid_height(f->fmt.pix.height, dev->tvnorm))
     {
-        fh->height     = f->fmt.pix.height;
+       fh->height     = f->fmt.pix.height;
     }
 
     if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_Y41P)
        pix_format = PIXEL_FRMT_411;
     else if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_YUYV)
-        pix_format = PIXEL_FRMT_422;
+       pix_format = PIXEL_FRMT_422;
     else
-        return -EINVAL;
+       return -EINVAL;
+
+    cx25821_set_pixel_format( dev, SRAM_CH00, pix_format );
 
-    cx25821_set_pixel_format( dev, SRAM_CH00, pix_format ); 
     // check if cif resolution
     if (fh->width == 320 || fh->width == 352)
     {
-        dev->use_cif_resolution[SRAM_CH00] = 1;
+       dev->use_cif_resolution[SRAM_CH00] = 1;
     }else
     {
-        dev->use_cif_resolution[SRAM_CH00] = 0;
+       dev->use_cif_resolution[SRAM_CH00] = 0;
     }
     dev->cif_width[SRAM_CH00]          = fh->width;
-    medusa_set_resolution( dev, fh->width, SRAM_CH00 ); 
+    medusa_set_resolution( dev, fh->width, SRAM_CH00 );
 
     dprintk(2, "%s() width=%d height=%d field=%d\n", __func__, fh->width, fh->height, fh->vidq.field);
     cx25821_call_all(dev, video, s_fmt, f);
@@ -348,7 +348,7 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p)
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
 
-    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK); 
+    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK);
 
     p->sequence = dev->vidq[SRAM_CH00].count;
 
@@ -360,7 +360,7 @@ static int vidioc_log_status (struct file *file, void *priv)
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     char name[32 + 2];
 
-    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH00];  
+    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH00];
     u32 tmp = 0;
 
     snprintf(name, sizeof(name), "%s/2", dev->name);
@@ -378,10 +378,10 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
                                struct v4l2_control *ctl)
 {
        struct cx25821_fh *fh = priv;
-        struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
-        int err;
+       struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
+       int err;
 
-        if (fh) {
+       if (fh) {
                err = v4l2_prio_check(&dev->prio, &fh->prio);
                if (0 != err)
                        return err;
@@ -398,7 +398,7 @@ static const struct v4l2_file_operations video_fops = {
     .read          = video_read,
     .poll          = video_poll,
     .mmap          = video_mmap,
-    .ioctl         = video_ioctl2, 
+    .ioctl         = video_ioctl2,
 };
 
 static const struct v4l2_ioctl_ops video_ioctl_ops = {
index 44db119..c36f664 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -41,37 +41,37 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
     dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
 
     if (!list_empty(&q->queued)) {
-        list_add_tail(&buf->vb.queue, &q->queued);
-        buf->vb.state = VIDEOBUF_QUEUED;
-        dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
+       list_add_tail(&buf->vb.queue, &q->queued);
+       buf->vb.state = VIDEOBUF_QUEUED;
+       dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
 
     } else if (list_empty(&q->active)) {
-        list_add_tail(&buf->vb.queue, &q->active);
-        cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH01]);
-        buf->vb.state = VIDEOBUF_ACTIVE;
-        buf->count    = q->count++;
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
-                                buf, buf->vb. i, buf->count, q->count);
+       list_add_tail(&buf->vb.queue, &q->active);
+       cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH01]);
+       buf->vb.state = VIDEOBUF_ACTIVE;
+       buf->count    = q->count++;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
+                               buf, buf->vb. i, buf->count, q->count);
     } else {
-        prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
-        if (prev->vb.width  == buf->vb.width  &&
-            prev->vb.height == buf->vb.height &&
-            prev->fmt       == buf->fmt) {
-            list_add_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-
-            /* 64 bit bits 63-32 */
-            prev->risc.jmp[2] = cpu_to_le32(0);
-            dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
-
-        } else {
-            list_add_tail(&buf->vb.queue, &q->queued);
-            buf->vb.state = VIDEOBUF_QUEUED;
-            dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
-        }
+       prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
+       if (prev->vb.width  == buf->vb.width  &&
+           prev->vb.height == buf->vb.height &&
+           prev->fmt       == buf->fmt) {
+           list_add_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+
+           /* 64 bit bits 63-32 */
+           prev->risc.jmp[2] = cpu_to_le32(0);
+           dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
+
+       } else {
+           list_add_tail(&buf->vb.queue, &q->queued);
+           buf->vb.state = VIDEOBUF_QUEUED;
+           dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
+       }
     }
 
     if (list_empty(&q->active))
@@ -101,17 +101,17 @@ static int video_open(struct file *file)
     lock_kernel();
     list_for_each(list, &cx25821_devlist)
     {
-        h = list_entry(list, struct cx25821_dev, devlist);
+       h = list_entry(list, struct cx25821_dev, devlist);
 
-        if (h->video_dev[SRAM_CH01] && h->video_dev[SRAM_CH01]->minor == minor) {
-            dev  = h;
-            type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        }
+       if (h->video_dev[SRAM_CH01] && h->video_dev[SRAM_CH01]->minor == minor) {
+           dev  = h;
+           type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       }
     }
 
     if (NULL == dev) {
-        unlock_kernel();
-        return -ENODEV;
+       unlock_kernel();
+       return -ENODEV;
     }
 
     printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
@@ -119,8 +119,8 @@ static int video_open(struct file *file)
     /* allocate + initialize per filehandle data */
     fh = kzalloc(sizeof(*fh), GFP_KERNEL);
     if (NULL == fh) {
-        unlock_kernel();
-        return -ENOMEM;
+       unlock_kernel();
+       return -ENOMEM;
     }
 
     file->private_data = fh;
@@ -129,9 +129,9 @@ static int video_open(struct file *file)
     fh->width    = 720;
 
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
-        fh->height = 576;
+       fh->height = 576;
     else
-        fh->height = 480;
+       fh->height = 480;
 
     dev->channel_opened = SRAM_CH01;
     pix_format          = (dev->pixel_formats[dev->channel_opened] == PIXEL_FRMT_411) ? V4L2_PIX_FMT_Y41P : V4L2_PIX_FMT_YUYV;
@@ -140,11 +140,11 @@ static int video_open(struct file *file)
     v4l2_prio_open(&dev->prio,&fh->prio);
 
     videobuf_queue_sg_init(&fh->vidq, &cx25821_video_qops,
-                &dev->pci->dev, &dev->slock,
-                V4L2_BUF_TYPE_VIDEO_CAPTURE,
-                V4L2_FIELD_INTERLACED,
-                sizeof(struct cx25821_buffer),
-                fh);
+               &dev->pci->dev, &dev->slock,
+               V4L2_BUF_TYPE_VIDEO_CAPTURE,
+               V4L2_FIELD_INTERLACED,
+               sizeof(struct cx25821_buffer),
+               fh);
 
     dprintk(1, "post videobuf_queue_init()\n");
     unlock_kernel();
@@ -158,15 +158,15 @@ static ssize_t video_read(struct file *file, char __user *data, size_t count, lo
 
     switch (fh->type)
     {
-        case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-            if (res_locked(fh->dev, RESOURCE_VIDEO1))
-                return -EBUSY;
+       case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+           if (res_locked(fh->dev, RESOURCE_VIDEO1))
+               return -EBUSY;
 
-            return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
+           return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
 
-        default:
-            BUG();
-            return 0;
+       default:
+           BUG();
+           return 0;
     }
 }
 
@@ -176,36 +176,36 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
     struct cx25821_buffer *buf;
 
     if (res_check(fh, RESOURCE_VIDEO1)) {
-        /* streaming capture */
-        if (list_empty(&fh->vidq.stream))
-            return POLLERR;
-        buf = list_entry(fh->vidq.stream.next,
-            struct cx25821_buffer, vb.stream);
+       /* streaming capture */
+       if (list_empty(&fh->vidq.stream))
+           return POLLERR;
+       buf = list_entry(fh->vidq.stream.next,
+           struct cx25821_buffer, vb.stream);
     } else {
-        /* read() capture */
-        buf = (struct cx25821_buffer *)fh->vidq.read_buf;
-        if (NULL == buf)
-            return POLLERR;
+       /* read() capture */
+       buf = (struct cx25821_buffer *)fh->vidq.read_buf;
+       if (NULL == buf)
+           return POLLERR;
     }
 
     poll_wait(file, &buf->vb.done, wait);
     if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)
-    {        
-        if( buf->vb.state == VIDEOBUF_DONE )
-        {            
-            struct cx25821_dev *dev = fh->dev;
-            
-            if( dev && dev->use_cif_resolution[SRAM_CH01] )
-            {
-                u8 cam_id = *((char*)buf->vb.baddr+3); 
-                memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));                      
-                *((char*)buf->vb.baddr+3) = cam_id;
-            }
-        }
-        
-        return POLLIN|POLLRDNORM;
+    {
+       if( buf->vb.state == VIDEOBUF_DONE )
+       {
+           struct cx25821_dev *dev = fh->dev;
+
+           if( dev && dev->use_cif_resolution[SRAM_CH01] )
+           {
+               u8 cam_id = *((char*)buf->vb.baddr+3);
+               memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));
+               *((char*)buf->vb.baddr+3) = cam_id;
+           }
+       }
+
+       return POLLIN|POLLRDNORM;
     }
-    
+
     return 0;
 }
 
@@ -219,13 +219,13 @@ static int video_release(struct file *file)
 
     /* stop video capture */
     if (res_check(fh, RESOURCE_VIDEO1)) {
-        videobuf_queue_cancel(&fh->vidq);
-        res_free(dev, fh, RESOURCE_VIDEO1);
+       videobuf_queue_cancel(&fh->vidq);
+       res_free(dev, fh, RESOURCE_VIDEO1);
     }
 
     if (fh->vidq.read_buf) {
-        buffer_release(&fh->vidq, fh->vidq.read_buf);
-        kfree(fh->vidq.read_buf);
+       buffer_release(&fh->vidq, fh->vidq.read_buf);
+       kfree(fh->vidq.read_buf);
     }
 
     videobuf_mmap_free(&fh->vidq);
@@ -245,17 +245,17 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
     if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(i != fh->type))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO1))))
     {
-        return -EBUSY;
+       return -EBUSY;
     }
 
     return videobuf_streamon(get_queue(fh));
@@ -268,14 +268,14 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
     int err, res;
 
     if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-        return -EINVAL;
+       return -EINVAL;
     if (i != fh->type)
-        return -EINVAL;
+       return -EINVAL;
 
     res = get_resource(fh, RESOURCE_VIDEO1);
     err = videobuf_streamoff(get_queue(fh));
     if (err < 0)
-        return err;
+       return err;
     res_free(dev, fh, res);
     return 0;
 }
@@ -286,21 +286,21 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
 {
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
-    int err;    
+    int err;
     int pix_format = 0;
-   
-    if (fh) 
+
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     dprintk(2, "%s()\n", __func__);
     err = vidioc_try_fmt_vid_cap(file, priv, f);
 
     if (0 != err)
-        return err;
+       return err;
 
     fh->fmt        = format_by_fourcc(f->fmt.pix.pixelformat);
     fh->vidq.field = f->fmt.pix.field;
@@ -308,33 +308,33 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     // check if width and height is valid based on set standard
     if (is_valid_width(f->fmt.pix.width, dev->tvnorm))
     {
-        fh->width      = f->fmt.pix.width;
+       fh->width      = f->fmt.pix.width;
     }
 
     if (is_valid_height(f->fmt.pix.height, dev->tvnorm))
     {
-        fh->height     = f->fmt.pix.height;
+       fh->height     = f->fmt.pix.height;
     }
 
     if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_Y41P)
        pix_format = PIXEL_FRMT_411;
     else if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_YUYV)
-        pix_format = PIXEL_FRMT_422;
+       pix_format = PIXEL_FRMT_422;
     else
-        return -EINVAL;
+       return -EINVAL;
+
+    cx25821_set_pixel_format( dev, SRAM_CH01, pix_format );
 
-    cx25821_set_pixel_format( dev, SRAM_CH01, pix_format ); 
     // check if cif resolution
     if (fh->width == 320 || fh->width == 352)
     {
-        dev->use_cif_resolution[SRAM_CH01] = 1;
+       dev->use_cif_resolution[SRAM_CH01] = 1;
     }else
     {
        dev->use_cif_resolution[SRAM_CH01] = 0;
     }
     dev->cif_width[SRAM_CH01]          = fh->width;
-    medusa_set_resolution( dev, fh->width, SRAM_CH01 ); 
+    medusa_set_resolution( dev, fh->width, SRAM_CH01 );
 
     dprintk(2, "%s() width=%d height=%d field=%d\n", __func__, fh->width, fh->height, fh->vidq.field);
     cx25821_call_all(dev, video, s_fmt, f);
@@ -348,7 +348,7 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p)
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
 
-    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK); 
+    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK);
 
     p->sequence = dev->vidq[SRAM_CH01].count;
 
@@ -360,7 +360,7 @@ static int vidioc_log_status (struct file *file, void *priv)
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     char name[32 + 2];
 
-    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH01];  
+    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH01];
     u32 tmp = 0;
 
     snprintf(name, sizeof(name), "%s/2", dev->name);
@@ -378,10 +378,10 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
                                struct v4l2_control *ctl)
 {
        struct cx25821_fh *fh = priv;
-        struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
-        int err;
+       struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
+       int err;
 
-        if (fh) {
+       if (fh) {
                err = v4l2_prio_check(&dev->prio, &fh->prio);
                if (0 != err)
                        return err;
@@ -397,7 +397,7 @@ static const struct v4l2_file_operations video_fops = {
     .read          = video_read,
     .poll          = video_poll,
     .mmap          = video_mmap,
-    .ioctl         = video_ioctl2,     
+    .ioctl         = video_ioctl2,
 };
 
 static const struct v4l2_ioctl_ops video_ioctl_ops = {
index 98db148..10df4f9 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -41,37 +41,37 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
     dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
 
     if (!list_empty(&q->queued)) {
-        list_add_tail(&buf->vb.queue, &q->queued);
-        buf->vb.state = VIDEOBUF_QUEUED;
-        dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
+       list_add_tail(&buf->vb.queue, &q->queued);
+       buf->vb.state = VIDEOBUF_QUEUED;
+       dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
 
     } else if (list_empty(&q->active)) {
-        list_add_tail(&buf->vb.queue, &q->active);
-        cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH02]);
-        buf->vb.state = VIDEOBUF_ACTIVE;
-        buf->count    = q->count++;
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
-                                buf, buf->vb. i, buf->count, q->count);
+       list_add_tail(&buf->vb.queue, &q->active);
+       cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH02]);
+       buf->vb.state = VIDEOBUF_ACTIVE;
+       buf->count    = q->count++;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
+                               buf, buf->vb. i, buf->count, q->count);
     } else {
-        prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
-        if (prev->vb.width  == buf->vb.width  &&
-            prev->vb.height == buf->vb.height &&
-            prev->fmt       == buf->fmt) {
-            list_add_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-
-            /* 64 bit bits 63-32 */
-            prev->risc.jmp[2] = cpu_to_le32(0);
-            dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
-
-        } else {
-            list_add_tail(&buf->vb.queue, &q->queued);
-            buf->vb.state = VIDEOBUF_QUEUED;
-            dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
-        }
+       prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
+       if (prev->vb.width  == buf->vb.width  &&
+           prev->vb.height == buf->vb.height &&
+           prev->fmt       == buf->fmt) {
+           list_add_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+
+           /* 64 bit bits 63-32 */
+           prev->risc.jmp[2] = cpu_to_le32(0);
+           dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
+
+       } else {
+           list_add_tail(&buf->vb.queue, &q->queued);
+           buf->vb.state = VIDEOBUF_QUEUED;
+           dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
+       }
     }
 
     if (list_empty(&q->active))
@@ -101,17 +101,17 @@ static int video_open(struct file *file)
     lock_kernel();
     list_for_each(list, &cx25821_devlist)
     {
-        h = list_entry(list, struct cx25821_dev, devlist);
+       h = list_entry(list, struct cx25821_dev, devlist);
 
-        if (h->video_dev[SRAM_CH02] && h->video_dev[SRAM_CH02]->minor == minor) {
-            dev  = h;
-            type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        }
+       if (h->video_dev[SRAM_CH02] && h->video_dev[SRAM_CH02]->minor == minor) {
+           dev  = h;
+           type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       }
     }
 
     if (NULL == dev) {
-        unlock_kernel();
-        return -ENODEV;
+       unlock_kernel();
+       return -ENODEV;
     }
 
     printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
@@ -119,8 +119,8 @@ static int video_open(struct file *file)
     /* allocate + initialize per filehandle data */
     fh = kzalloc(sizeof(*fh), GFP_KERNEL);
     if (NULL == fh) {
-        unlock_kernel();
-        return -ENOMEM;
+       unlock_kernel();
+       return -ENOMEM;
     }
     file->private_data = fh;
     fh->dev      = dev;
@@ -128,9 +128,9 @@ static int video_open(struct file *file)
     fh->width    = 720;
 
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
-        fh->height = 576;
+       fh->height = 576;
     else
-        fh->height = 480;
+       fh->height = 480;
 
     dev->channel_opened = SRAM_CH02;
     pix_format          = (dev->pixel_formats[dev->channel_opened] == PIXEL_FRMT_411) ? V4L2_PIX_FMT_Y41P : V4L2_PIX_FMT_YUYV;
@@ -139,11 +139,11 @@ static int video_open(struct file *file)
     v4l2_prio_open(&dev->prio,&fh->prio);
 
     videobuf_queue_sg_init(&fh->vidq, &cx25821_video_qops,
-                &dev->pci->dev, &dev->slock,
-                V4L2_BUF_TYPE_VIDEO_CAPTURE,
-                V4L2_FIELD_INTERLACED,
-                sizeof(struct cx25821_buffer),
-                fh);
+               &dev->pci->dev, &dev->slock,
+               V4L2_BUF_TYPE_VIDEO_CAPTURE,
+               V4L2_FIELD_INTERLACED,
+               sizeof(struct cx25821_buffer),
+               fh);
 
     dprintk(1, "post videobuf_queue_init()\n");
     unlock_kernel();
@@ -157,15 +157,15 @@ static ssize_t video_read(struct file *file, char __user *data, size_t count, lo
 
     switch (fh->type)
     {
-        case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-            if (res_locked(fh->dev, RESOURCE_VIDEO2))
-                return -EBUSY;
+       case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+           if (res_locked(fh->dev, RESOURCE_VIDEO2))
+               return -EBUSY;
 
-            return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
+           return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
 
-        default:
-            BUG();
-            return 0;
+       default:
+           BUG();
+           return 0;
     }
 }
 
@@ -175,36 +175,36 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
     struct cx25821_buffer *buf;
 
     if (res_check(fh, RESOURCE_VIDEO2)) {
-        /* streaming capture */
-        if (list_empty(&fh->vidq.stream))
-            return POLLERR;
-        buf = list_entry(fh->vidq.stream.next,
-            struct cx25821_buffer, vb.stream);
+       /* streaming capture */
+       if (list_empty(&fh->vidq.stream))
+           return POLLERR;
+       buf = list_entry(fh->vidq.stream.next,
+           struct cx25821_buffer, vb.stream);
     } else {
-        /* read() capture */
-        buf = (struct cx25821_buffer *)fh->vidq.read_buf;
-        if (NULL == buf)
-            return POLLERR;
+       /* read() capture */
+       buf = (struct cx25821_buffer *)fh->vidq.read_buf;
+       if (NULL == buf)
+           return POLLERR;
     }
 
     poll_wait(file, &buf->vb.done, wait);
     if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)
-    {        
-        if( buf->vb.state == VIDEOBUF_DONE )
-        {            
-            struct cx25821_dev *dev = fh->dev;
-            
-            if( dev && dev->use_cif_resolution[SRAM_CH02] )
-            {
-                u8 cam_id = *((char*)buf->vb.baddr+3); 
-                memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));                      
-                *((char*)buf->vb.baddr+3) = cam_id;
-            }
-        }
-        
-        return POLLIN|POLLRDNORM;
+    {
+       if( buf->vb.state == VIDEOBUF_DONE )
+       {
+           struct cx25821_dev *dev = fh->dev;
+
+           if( dev && dev->use_cif_resolution[SRAM_CH02] )
+           {
+               u8 cam_id = *((char*)buf->vb.baddr+3);
+               memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));
+               *((char*)buf->vb.baddr+3) = cam_id;
+           }
+       }
+
+       return POLLIN|POLLRDNORM;
     }
-    
+
     return 0;
 }
 
@@ -219,13 +219,13 @@ static int video_release(struct file *file)
 
     /* stop video capture */
     if (res_check(fh, RESOURCE_VIDEO2)) {
-        videobuf_queue_cancel(&fh->vidq);
-        res_free(dev, fh, RESOURCE_VIDEO2);
+       videobuf_queue_cancel(&fh->vidq);
+       res_free(dev, fh, RESOURCE_VIDEO2);
     }
 
     if (fh->vidq.read_buf) {
-        buffer_release(&fh->vidq, fh->vidq.read_buf);
-        kfree(fh->vidq.read_buf);
+       buffer_release(&fh->vidq, fh->vidq.read_buf);
+       kfree(fh->vidq.read_buf);
     }
 
     videobuf_mmap_free(&fh->vidq);
@@ -245,17 +245,17 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
     if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(i != fh->type))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO2))))
     {
-        return -EBUSY;
+       return -EBUSY;
     }
 
     return videobuf_streamon(get_queue(fh));
@@ -268,14 +268,14 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
     int err, res;
 
     if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-        return -EINVAL;
+       return -EINVAL;
     if (i != fh->type)
-        return -EINVAL;
+       return -EINVAL;
 
     res = get_resource(fh, RESOURCE_VIDEO2);
     err = videobuf_streamoff(get_queue(fh));
     if (err < 0)
-        return err;
+       return err;
     res_free(dev, fh, res);
     return 0;
 }
@@ -286,21 +286,21 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
 {
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
-    int err;    
+    int err;
     int pix_format = 0;
-   
-    if (fh) 
+
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     dprintk(2, "%s()\n", __func__);
     err = vidioc_try_fmt_vid_cap(file, priv, f);
 
     if (0 != err)
-        return err;
+       return err;
 
     fh->fmt        = format_by_fourcc(f->fmt.pix.pixelformat);
     fh->vidq.field = f->fmt.pix.field;
@@ -308,33 +308,33 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     // check if width and height is valid based on set standard
     if (is_valid_width(f->fmt.pix.width, dev->tvnorm))
     {
-        fh->width      = f->fmt.pix.width;
+       fh->width      = f->fmt.pix.width;
     }
 
     if (is_valid_height(f->fmt.pix.height, dev->tvnorm))
     {
-        fh->height     = f->fmt.pix.height;
+       fh->height     = f->fmt.pix.height;
     }
 
     if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_Y41P)
-        pix_format = PIXEL_FRMT_411;
+       pix_format = PIXEL_FRMT_411;
     else if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_YUYV)
-        pix_format = PIXEL_FRMT_422;
+       pix_format = PIXEL_FRMT_422;
     else
-        return -EINVAL;
+       return -EINVAL;
+
+    cx25821_set_pixel_format( dev, SRAM_CH02, pix_format );
 
-    cx25821_set_pixel_format( dev, SRAM_CH02, pix_format ); 
     // check if cif resolution
     if (fh->width == 320 || fh->width == 352)
     {
-        dev->use_cif_resolution[SRAM_CH02] = 1;
+       dev->use_cif_resolution[SRAM_CH02] = 1;
     }else
     {
        dev->use_cif_resolution[SRAM_CH02] = 0;
     }
     dev->cif_width[SRAM_CH02]          = fh->width;
-    medusa_set_resolution( dev, fh->width, SRAM_CH02 ); 
+    medusa_set_resolution( dev, fh->width, SRAM_CH02 );
 
 
     dprintk(2, "%s() width=%d height=%d field=%d\n", __func__, fh->width, fh->height, fh->vidq.field);
@@ -349,7 +349,7 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p)
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
 
-    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK); 
+    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK);
 
     p->sequence = dev->vidq[SRAM_CH02].count;
 
@@ -361,15 +361,15 @@ static int vidioc_log_status (struct file *file, void *priv)
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     char name[32 + 2];
 
-    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH02];  
+    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH02];
     u32 tmp = 0;
 
     snprintf(name, sizeof(name), "%s/2", dev->name);
     printk(KERN_INFO "%s/2: ============  START LOG STATUS  ============\n",
               dev->name);
-    
+
     cx25821_call_all(dev, core, log_status);
-    
+
     tmp = cx_read(sram_ch->dma_ctl);
     printk(KERN_INFO "Video input 2 is %s\n", (tmp & 0x11)?"streaming" : "stopped");
     printk(KERN_INFO "%s/2: =============  END LOG STATUS  =============\n",
@@ -381,10 +381,10 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
                                struct v4l2_control *ctl)
 {
        struct cx25821_fh *fh = priv;
-        struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
-        int err;
+       struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
+       int err;
 
-        if (fh) {
+       if (fh) {
                err = v4l2_prio_check(&dev->prio, &fh->prio);
                if (0 != err)
                        return err;
index 3dcecd2..2191152 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -41,37 +41,37 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
     dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
 
     if (!list_empty(&q->queued)) {
-        list_add_tail(&buf->vb.queue, &q->queued);
-        buf->vb.state = VIDEOBUF_QUEUED;
-        dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
+       list_add_tail(&buf->vb.queue, &q->queued);
+       buf->vb.state = VIDEOBUF_QUEUED;
+       dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
 
     } else if (list_empty(&q->active)) {
-        list_add_tail(&buf->vb.queue, &q->active);
-        cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH03]);
-        buf->vb.state = VIDEOBUF_ACTIVE;
-        buf->count    = q->count++;
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
-                                buf, buf->vb. i, buf->count, q->count);
+       list_add_tail(&buf->vb.queue, &q->active);
+       cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH03]);
+       buf->vb.state = VIDEOBUF_ACTIVE;
+       buf->count    = q->count++;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
+                               buf, buf->vb. i, buf->count, q->count);
     } else {
-        prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
-        if (prev->vb.width  == buf->vb.width  &&
-            prev->vb.height == buf->vb.height &&
-            prev->fmt       == buf->fmt) {
-            list_add_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-
-            /* 64 bit bits 63-32 */
-            prev->risc.jmp[2] = cpu_to_le32(0);
-            dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
-
-        } else {
-            list_add_tail(&buf->vb.queue, &q->queued);
-            buf->vb.state = VIDEOBUF_QUEUED;
-            dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
-        }
+       prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
+       if (prev->vb.width  == buf->vb.width  &&
+           prev->vb.height == buf->vb.height &&
+           prev->fmt       == buf->fmt) {
+           list_add_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+
+           /* 64 bit bits 63-32 */
+           prev->risc.jmp[2] = cpu_to_le32(0);
+           dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
+
+       } else {
+           list_add_tail(&buf->vb.queue, &q->queued);
+           buf->vb.state = VIDEOBUF_QUEUED;
+           dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
+       }
     }
 
     if (list_empty(&q->active))
@@ -101,17 +101,17 @@ static int video_open(struct file *file)
     lock_kernel();
     list_for_each(list, &cx25821_devlist)
     {
-        h = list_entry(list, struct cx25821_dev, devlist);
+       h = list_entry(list, struct cx25821_dev, devlist);
 
-        if (h->video_dev[SRAM_CH03] && h->video_dev[SRAM_CH03]->minor == minor) {
-            dev  = h;
-            type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        }
+       if (h->video_dev[SRAM_CH03] && h->video_dev[SRAM_CH03]->minor == minor) {
+           dev  = h;
+           type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       }
     }
 
     if (NULL == dev) {
-        unlock_kernel();
-        return -ENODEV;
+       unlock_kernel();
+       return -ENODEV;
     }
 
     printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
@@ -119,8 +119,8 @@ static int video_open(struct file *file)
     /* allocate + initialize per filehandle data */
     fh = kzalloc(sizeof(*fh), GFP_KERNEL);
     if (NULL == fh) {
-        unlock_kernel();
-        return -ENOMEM;
+       unlock_kernel();
+       return -ENOMEM;
     }
     file->private_data = fh;
     fh->dev      = dev;
@@ -128,9 +128,9 @@ static int video_open(struct file *file)
     fh->width    = 720;
 
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
-        fh->height = 576;
+       fh->height = 576;
     else
-        fh->height = 480;
+       fh->height = 480;
 
     dev->channel_opened = SRAM_CH03;
     pix_format          = (dev->pixel_formats[dev->channel_opened] == PIXEL_FRMT_411) ? V4L2_PIX_FMT_Y41P : V4L2_PIX_FMT_YUYV;
@@ -139,11 +139,11 @@ static int video_open(struct file *file)
     v4l2_prio_open(&dev->prio,&fh->prio);
 
     videobuf_queue_sg_init(&fh->vidq, &cx25821_video_qops,
-                &dev->pci->dev, &dev->slock,
-                V4L2_BUF_TYPE_VIDEO_CAPTURE,
-                V4L2_FIELD_INTERLACED,
-                sizeof(struct cx25821_buffer),
-                fh);
+               &dev->pci->dev, &dev->slock,
+               V4L2_BUF_TYPE_VIDEO_CAPTURE,
+               V4L2_FIELD_INTERLACED,
+               sizeof(struct cx25821_buffer),
+               fh);
 
     dprintk(1, "post videobuf_queue_init()\n");
     unlock_kernel();
@@ -157,15 +157,15 @@ static ssize_t video_read(struct file *file, char __user *data, size_t count, lo
 
     switch (fh->type)
     {
-        case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-            if (res_locked(fh->dev, RESOURCE_VIDEO3))
-                return -EBUSY;
+       case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+           if (res_locked(fh->dev, RESOURCE_VIDEO3))
+               return -EBUSY;
 
-            return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
+           return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
 
-        default:
-            BUG();
-            return 0;
+       default:
+           BUG();
+           return 0;
     }
 }
 
@@ -175,36 +175,36 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
     struct cx25821_buffer *buf;
 
     if (res_check(fh, RESOURCE_VIDEO3)) {
-        /* streaming capture */
-        if (list_empty(&fh->vidq.stream))
-            return POLLERR;
-        buf = list_entry(fh->vidq.stream.next,
-            struct cx25821_buffer, vb.stream);
+       /* streaming capture */
+       if (list_empty(&fh->vidq.stream))
+           return POLLERR;
+       buf = list_entry(fh->vidq.stream.next,
+           struct cx25821_buffer, vb.stream);
     } else {
-        /* read() capture */
-        buf = (struct cx25821_buffer *)fh->vidq.read_buf;
-        if (NULL == buf)
-            return POLLERR;
+       /* read() capture */
+       buf = (struct cx25821_buffer *)fh->vidq.read_buf;
+       if (NULL == buf)
+           return POLLERR;
     }
 
     poll_wait(file, &buf->vb.done, wait);
     if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)
-    {        
-        if( buf->vb.state == VIDEOBUF_DONE )
-        {            
-            struct cx25821_dev *dev = fh->dev;
-            
-            if( dev && dev->use_cif_resolution[SRAM_CH03] )
-            {
-                u8 cam_id = *((char*)buf->vb.baddr+3); 
-                memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));                      
-                *((char*)buf->vb.baddr+3) = cam_id;
-            }
-        }
-        
-        return POLLIN|POLLRDNORM;
+    {
+       if( buf->vb.state == VIDEOBUF_DONE )
+       {
+           struct cx25821_dev *dev = fh->dev;
+
+           if( dev && dev->use_cif_resolution[SRAM_CH03] )
+           {
+               u8 cam_id = *((char*)buf->vb.baddr+3);
+               memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));
+               *((char*)buf->vb.baddr+3) = cam_id;
+           }
+       }
+
+       return POLLIN|POLLRDNORM;
     }
-    
+
     return 0;
 }
 
@@ -219,13 +219,13 @@ static int video_release(struct file *file)
 
     /* stop video capture */
     if (res_check(fh, RESOURCE_VIDEO3)) {
-        videobuf_queue_cancel(&fh->vidq);
-        res_free(dev, fh, RESOURCE_VIDEO3);
+       videobuf_queue_cancel(&fh->vidq);
+       res_free(dev, fh, RESOURCE_VIDEO3);
     }
 
     if (fh->vidq.read_buf) {
-        buffer_release(&fh->vidq, fh->vidq.read_buf);
-        kfree(fh->vidq.read_buf);
+       buffer_release(&fh->vidq, fh->vidq.read_buf);
+       kfree(fh->vidq.read_buf);
     }
 
     videobuf_mmap_free(&fh->vidq);
@@ -245,17 +245,17 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
     if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(i != fh->type))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO3))))
     {
-        return -EBUSY;
+       return -EBUSY;
     }
 
     return videobuf_streamon(get_queue(fh));
@@ -268,14 +268,14 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
     int err, res;
 
     if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-        return -EINVAL;
+       return -EINVAL;
     if (i != fh->type)
-        return -EINVAL;
+       return -EINVAL;
 
     res = get_resource(fh, RESOURCE_VIDEO3);
     err = videobuf_streamoff(get_queue(fh));
     if (err < 0)
-        return err;
+       return err;
     res_free(dev, fh, res);
     return 0;
 }
@@ -286,21 +286,21 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
 {
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
-    int err;    
+    int err;
     int pix_format = 0;
-   
-    if (fh) 
+
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     dprintk(2, "%s()\n", __func__);
     err = vidioc_try_fmt_vid_cap(file, priv, f);
 
     if (0 != err)
-        return err;
+       return err;
 
     fh->fmt        = format_by_fourcc(f->fmt.pix.pixelformat);
     fh->vidq.field = f->fmt.pix.field;
@@ -308,33 +308,33 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     // check if width and height is valid based on set standard
     if (is_valid_width(f->fmt.pix.width, dev->tvnorm))
     {
-        fh->width      = f->fmt.pix.width;
+       fh->width      = f->fmt.pix.width;
     }
 
     if (is_valid_height(f->fmt.pix.height, dev->tvnorm))
     {
-        fh->height     = f->fmt.pix.height;
+       fh->height     = f->fmt.pix.height;
     }
 
     if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_Y41P)
-        pix_format = PIXEL_FRMT_411;
+       pix_format = PIXEL_FRMT_411;
     else if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_YUYV)
-        pix_format = PIXEL_FRMT_422;
+       pix_format = PIXEL_FRMT_422;
     else
-        return -EINVAL;
+       return -EINVAL;
+
+    cx25821_set_pixel_format( dev, SRAM_CH03, pix_format );
 
-    cx25821_set_pixel_format( dev, SRAM_CH03, pix_format ); 
     // check if cif resolution
     if (fh->width == 320 || fh->width == 352)
     {
-        dev->use_cif_resolution[SRAM_CH03] = 1;
+       dev->use_cif_resolution[SRAM_CH03] = 1;
     }else
     {
-        dev->use_cif_resolution[SRAM_CH03] = 0;
+       dev->use_cif_resolution[SRAM_CH03] = 0;
     }
     dev->cif_width[SRAM_CH03]          = fh->width;
-    medusa_set_resolution( dev, fh->width, SRAM_CH03 ); 
+    medusa_set_resolution( dev, fh->width, SRAM_CH03 );
 
     dprintk(2, "%s() width=%d height=%d field=%d\n", __func__, fh->width, fh->height, fh->vidq.field);
     cx25821_call_all(dev, video, s_fmt, f);
@@ -348,7 +348,7 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p)
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
 
-    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK); 
+    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK);
 
     p->sequence = dev->vidq[SRAM_CH03].count;
 
@@ -360,7 +360,7 @@ static int vidioc_log_status (struct file *file, void *priv)
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     char name[32 + 2];
 
-    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH03];  
+    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH03];
     u32 tmp = 0;
 
     snprintf(name, sizeof(name), "%s/2", dev->name);
@@ -379,10 +379,10 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
                                struct v4l2_control *ctl)
 {
        struct cx25821_fh *fh = priv;
-        struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
-        int err;
+       struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
+       int err;
 
-        if (fh) {
+       if (fh) {
                err = v4l2_prio_check(&dev->prio, &fh->prio);
                if (0 != err)
                        return err;
index 03da364..c1799d9 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -40,37 +40,37 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
     dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
 
     if (!list_empty(&q->queued)) {
-        list_add_tail(&buf->vb.queue, &q->queued);
-        buf->vb.state = VIDEOBUF_QUEUED;
-        dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
+       list_add_tail(&buf->vb.queue, &q->queued);
+       buf->vb.state = VIDEOBUF_QUEUED;
+       dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
 
     } else if (list_empty(&q->active)) {
-        list_add_tail(&buf->vb.queue, &q->active);
-        cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH04]);
-        buf->vb.state = VIDEOBUF_ACTIVE;
-        buf->count    = q->count++;
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
-                                buf, buf->vb. i, buf->count, q->count);
+       list_add_tail(&buf->vb.queue, &q->active);
+       cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH04]);
+       buf->vb.state = VIDEOBUF_ACTIVE;
+       buf->count    = q->count++;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
+                               buf, buf->vb. i, buf->count, q->count);
     } else {
-        prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
-        if (prev->vb.width  == buf->vb.width  &&
-            prev->vb.height == buf->vb.height &&
-            prev->fmt       == buf->fmt) {
-            list_add_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-
-            /* 64 bit bits 63-32 */
-            prev->risc.jmp[2] = cpu_to_le32(0);
-            dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
-
-        } else {
-            list_add_tail(&buf->vb.queue, &q->queued);
-            buf->vb.state = VIDEOBUF_QUEUED;
-            dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
-        }
+       prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
+       if (prev->vb.width  == buf->vb.width  &&
+           prev->vb.height == buf->vb.height &&
+           prev->fmt       == buf->fmt) {
+           list_add_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+
+           /* 64 bit bits 63-32 */
+           prev->risc.jmp[2] = cpu_to_le32(0);
+           dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
+
+       } else {
+           list_add_tail(&buf->vb.queue, &q->queued);
+           buf->vb.state = VIDEOBUF_QUEUED;
+           dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
+       }
     }
 
     if (list_empty(&q->active))
@@ -100,17 +100,17 @@ static int video_open(struct file *file)
     lock_kernel();
     list_for_each(list, &cx25821_devlist)
     {
-        h = list_entry(list, struct cx25821_dev, devlist);
+       h = list_entry(list, struct cx25821_dev, devlist);
 
-        if (h->video_dev[SRAM_CH04] && h->video_dev[SRAM_CH04]->minor == minor) {
-            dev  = h;
-            type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        }
+       if (h->video_dev[SRAM_CH04] && h->video_dev[SRAM_CH04]->minor == minor) {
+           dev  = h;
+           type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       }
     }
 
     if (NULL == dev) {
-        unlock_kernel();
-        return -ENODEV;
+       unlock_kernel();
+       return -ENODEV;
     }
 
     printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
@@ -118,8 +118,8 @@ static int video_open(struct file *file)
     /* allocate + initialize per filehandle data */
     fh = kzalloc(sizeof(*fh), GFP_KERNEL);
     if (NULL == fh) {
-        unlock_kernel();
-        return -ENOMEM;
+       unlock_kernel();
+       return -ENOMEM;
     }
     file->private_data = fh;
     fh->dev      = dev;
@@ -127,9 +127,9 @@ static int video_open(struct file *file)
     fh->width    = 720;
 
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
-        fh->height = 576;
+       fh->height = 576;
     else
-        fh->height = 480;
+       fh->height = 480;
 
     dev->channel_opened = SRAM_CH04;
     pix_format          = (dev->pixel_formats[dev->channel_opened] == PIXEL_FRMT_411) ? V4L2_PIX_FMT_Y41P : V4L2_PIX_FMT_YUYV;
@@ -137,11 +137,11 @@ static int video_open(struct file *file)
 
     v4l2_prio_open(&dev->prio,&fh->prio);
     videobuf_queue_sg_init(&fh->vidq, &cx25821_video_qops,
-                &dev->pci->dev, &dev->slock,
-                V4L2_BUF_TYPE_VIDEO_CAPTURE,
-                V4L2_FIELD_INTERLACED,
-                sizeof(struct cx25821_buffer),
-                fh);
+               &dev->pci->dev, &dev->slock,
+               V4L2_BUF_TYPE_VIDEO_CAPTURE,
+               V4L2_FIELD_INTERLACED,
+               sizeof(struct cx25821_buffer),
+               fh);
 
     dprintk(1, "post videobuf_queue_init()\n");
     unlock_kernel();
@@ -155,15 +155,15 @@ static ssize_t video_read(struct file *file, char __user *data, size_t count, lo
 
     switch (fh->type)
     {
-        case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-            if (res_locked(fh->dev, RESOURCE_VIDEO4))
-                return -EBUSY;
+       case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+           if (res_locked(fh->dev, RESOURCE_VIDEO4))
+               return -EBUSY;
 
-            return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
+           return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
 
-        default:
-            BUG();
-            return 0;
+       default:
+           BUG();
+           return 0;
     }
 }
 
@@ -173,36 +173,36 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
     struct cx25821_buffer *buf;
 
     if (res_check(fh, RESOURCE_VIDEO4)) {
-        /* streaming capture */
-        if (list_empty(&fh->vidq.stream))
-            return POLLERR;
-        buf = list_entry(fh->vidq.stream.next,
-            struct cx25821_buffer, vb.stream);
+       /* streaming capture */
+       if (list_empty(&fh->vidq.stream))
+           return POLLERR;
+       buf = list_entry(fh->vidq.stream.next,
+           struct cx25821_buffer, vb.stream);
     } else {
-        /* read() capture */
-        buf = (struct cx25821_buffer *)fh->vidq.read_buf;
-        if (NULL == buf)
-            return POLLERR;
+       /* read() capture */
+       buf = (struct cx25821_buffer *)fh->vidq.read_buf;
+       if (NULL == buf)
+           return POLLERR;
     }
 
     poll_wait(file, &buf->vb.done, wait);
     if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)
-    {        
-        if( buf->vb.state == VIDEOBUF_DONE )
-        {            
-            struct cx25821_dev *dev = fh->dev;
-            
-            if( dev && dev->use_cif_resolution[SRAM_CH04] )
-            {
-                u8 cam_id = *((char*)buf->vb.baddr+3); 
-                memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));                      
-                *((char*)buf->vb.baddr+3) = cam_id;
-            }
-        }
-        
-        return POLLIN|POLLRDNORM;
+    {
+       if( buf->vb.state == VIDEOBUF_DONE )
+       {
+           struct cx25821_dev *dev = fh->dev;
+
+           if( dev && dev->use_cif_resolution[SRAM_CH04] )
+           {
+               u8 cam_id = *((char*)buf->vb.baddr+3);
+               memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));
+               *((char*)buf->vb.baddr+3) = cam_id;
+           }
+       }
+
+       return POLLIN|POLLRDNORM;
     }
-    
+
     return 0;
 }
 
@@ -217,13 +217,13 @@ static int video_release(struct file *file)
 
     /* stop video capture */
     if (res_check(fh, RESOURCE_VIDEO4)) {
-        videobuf_queue_cancel(&fh->vidq);
-        res_free(dev, fh, RESOURCE_VIDEO4);
+       videobuf_queue_cancel(&fh->vidq);
+       res_free(dev, fh, RESOURCE_VIDEO4);
     }
 
     if (fh->vidq.read_buf) {
-        buffer_release(&fh->vidq, fh->vidq.read_buf);
-        kfree(fh->vidq.read_buf);
+       buffer_release(&fh->vidq, fh->vidq.read_buf);
+       kfree(fh->vidq.read_buf);
     }
 
     videobuf_mmap_free(&fh->vidq);
@@ -243,17 +243,17 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
     if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(i != fh->type))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO4))))
     {
-        return -EBUSY;
+       return -EBUSY;
     }
 
     return videobuf_streamon(get_queue(fh));
@@ -266,14 +266,14 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
     int err, res;
 
     if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-        return -EINVAL;
+       return -EINVAL;
     if (i != fh->type)
-        return -EINVAL;
+       return -EINVAL;
 
     res = get_resource(fh, RESOURCE_VIDEO4);
     err = videobuf_streamoff(get_queue(fh));
     if (err < 0)
-        return err;
+       return err;
     res_free(dev, fh, res);
     return 0;
 }
@@ -284,21 +284,21 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
 {
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
-    int err;    
+    int err;
     int pix_format = 0;
 
     // check priority
     if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
     dprintk(2, "%s()\n", __func__);
     err = vidioc_try_fmt_vid_cap(file, priv, f);
 
     if (0 != err)
-        return err;
+       return err;
 
     fh->fmt        = format_by_fourcc(f->fmt.pix.pixelformat);
     fh->vidq.field = f->fmt.pix.field;
@@ -306,33 +306,33 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     // check if width and height is valid based on set standard
     if (is_valid_width(f->fmt.pix.width, dev->tvnorm))
     {
-        fh->width      = f->fmt.pix.width;
+       fh->width      = f->fmt.pix.width;
     }
 
     if (is_valid_height(f->fmt.pix.height, dev->tvnorm))
     {
-        fh->height     = f->fmt.pix.height;
+       fh->height     = f->fmt.pix.height;
     }
 
     if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_Y41P)
-        pix_format = PIXEL_FRMT_411;
+       pix_format = PIXEL_FRMT_411;
     else if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_YUYV)
-        pix_format = PIXEL_FRMT_422;
+       pix_format = PIXEL_FRMT_422;
     else
-        return -EINVAL;
+       return -EINVAL;
+
+    cx25821_set_pixel_format( dev, SRAM_CH04, pix_format );
 
-    cx25821_set_pixel_format( dev, SRAM_CH04, pix_format ); 
     // check if cif resolution
     if (fh->width == 320 || fh->width == 352)
     {
-        dev->use_cif_resolution[SRAM_CH04] = 1; 
+       dev->use_cif_resolution[SRAM_CH04] = 1;
     }else
     {
        dev->use_cif_resolution[SRAM_CH04] = 0;
     }
     dev->cif_width[SRAM_CH04]          = fh->width;
-    medusa_set_resolution( dev, fh->width, SRAM_CH04); 
+    medusa_set_resolution( dev, fh->width, SRAM_CH04);
 
     dprintk(2, "%s() width=%d height=%d field=%d\n", __func__, fh->width, fh->height, fh->vidq.field);
     cx25821_call_all(dev, video, s_fmt, f);
@@ -346,7 +346,7 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p)
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
 
-    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK); 
+    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK);
 
     p->sequence = dev->vidq[SRAM_CH04].count;
 
@@ -358,7 +358,7 @@ static int vidioc_log_status (struct file *file, void *priv)
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     char name[32 + 2];
 
-    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH04];  
+    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH04];
     u32 tmp = 0;
 
     snprintf(name, sizeof(name), "%s/2", dev->name);
@@ -377,10 +377,10 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
                                struct v4l2_control *ctl)
 {
        struct cx25821_fh *fh = priv;
-        struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
-        int err;
+       struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
+       int err;
 
-        if (fh) {
+       if (fh) {
                err = v4l2_prio_check(&dev->prio, &fh->prio);
                if (0 != err)
                        return err;
index 1d47543..f1b4742 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -40,37 +40,37 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
     dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
 
     if (!list_empty(&q->queued)) {
-        list_add_tail(&buf->vb.queue, &q->queued);
-        buf->vb.state = VIDEOBUF_QUEUED;
-        dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
+       list_add_tail(&buf->vb.queue, &q->queued);
+       buf->vb.state = VIDEOBUF_QUEUED;
+       dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
 
     } else if (list_empty(&q->active)) {
-        list_add_tail(&buf->vb.queue, &q->active);
-        cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH05]);
-        buf->vb.state = VIDEOBUF_ACTIVE;
-        buf->count    = q->count++;
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
-                                buf, buf->vb. i, buf->count, q->count);
+       list_add_tail(&buf->vb.queue, &q->active);
+       cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH05]);
+       buf->vb.state = VIDEOBUF_ACTIVE;
+       buf->count    = q->count++;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
+                               buf, buf->vb. i, buf->count, q->count);
     } else {
-        prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
-        if (prev->vb.width  == buf->vb.width  &&
-            prev->vb.height == buf->vb.height &&
-            prev->fmt       == buf->fmt) {
-            list_add_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-
-            /* 64 bit bits 63-32 */
-            prev->risc.jmp[2] = cpu_to_le32(0);
-            dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
-
-        } else {
-            list_add_tail(&buf->vb.queue, &q->queued);
-            buf->vb.state = VIDEOBUF_QUEUED;
-            dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
-        }
+       prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
+       if (prev->vb.width  == buf->vb.width  &&
+           prev->vb.height == buf->vb.height &&
+           prev->fmt       == buf->fmt) {
+           list_add_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+
+           /* 64 bit bits 63-32 */
+           prev->risc.jmp[2] = cpu_to_le32(0);
+           dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
+
+       } else {
+           list_add_tail(&buf->vb.queue, &q->queued);
+           buf->vb.state = VIDEOBUF_QUEUED;
+           dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
+       }
     }
 
     if (list_empty(&q->active))
@@ -100,17 +100,17 @@ static int video_open(struct file *file)
     lock_kernel();
     list_for_each(list, &cx25821_devlist)
     {
-        h = list_entry(list, struct cx25821_dev, devlist);
+       h = list_entry(list, struct cx25821_dev, devlist);
 
-        if (h->video_dev[SRAM_CH05] && h->video_dev[SRAM_CH05]->minor == minor) {
-            dev  = h;
-            type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        }
+       if (h->video_dev[SRAM_CH05] && h->video_dev[SRAM_CH05]->minor == minor) {
+           dev  = h;
+           type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       }
     }
 
     if (NULL == dev) {
-        unlock_kernel();
-        return -ENODEV;
+       unlock_kernel();
+       return -ENODEV;
     }
 
     printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
@@ -118,8 +118,8 @@ static int video_open(struct file *file)
     /* allocate + initialize per filehandle data */
     fh = kzalloc(sizeof(*fh), GFP_KERNEL);
     if (NULL == fh) {
-        unlock_kernel();
-        return -ENOMEM;
+       unlock_kernel();
+       return -ENOMEM;
     }
     file->private_data = fh;
     fh->dev      = dev;
@@ -127,9 +127,9 @@ static int video_open(struct file *file)
     fh->width    = 720;
 
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
-        fh->height = 576;
+       fh->height = 576;
     else
-        fh->height = 480;
+       fh->height = 480;
 
     dev->channel_opened = SRAM_CH05;
     pix_format          = (dev->pixel_formats[dev->channel_opened] == PIXEL_FRMT_411) ? V4L2_PIX_FMT_Y41P : V4L2_PIX_FMT_YUYV;
@@ -138,11 +138,11 @@ static int video_open(struct file *file)
     v4l2_prio_open(&dev->prio,&fh->prio);
 
     videobuf_queue_sg_init(&fh->vidq, &cx25821_video_qops,
-                &dev->pci->dev, &dev->slock,
-                V4L2_BUF_TYPE_VIDEO_CAPTURE,
-                V4L2_FIELD_INTERLACED,
-                sizeof(struct cx25821_buffer),
-                fh);
+               &dev->pci->dev, &dev->slock,
+               V4L2_BUF_TYPE_VIDEO_CAPTURE,
+               V4L2_FIELD_INTERLACED,
+               sizeof(struct cx25821_buffer),
+               fh);
 
     dprintk(1, "post videobuf_queue_init()\n");
     unlock_kernel();
@@ -156,15 +156,15 @@ static ssize_t video_read(struct file *file, char __user *data, size_t count, lo
 
     switch (fh->type)
     {
-        case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-            if (res_locked(fh->dev, RESOURCE_VIDEO5))
-                return -EBUSY;
+       case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+           if (res_locked(fh->dev, RESOURCE_VIDEO5))
+               return -EBUSY;
 
-            return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
+           return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
 
-        default:
-            BUG();
-            return 0;
+       default:
+           BUG();
+           return 0;
     }
 }
 
@@ -174,34 +174,34 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
     struct cx25821_buffer *buf;
 
     if (res_check(fh, RESOURCE_VIDEO5)) {
-        /* streaming capture */
-        if (list_empty(&fh->vidq.stream))
-            return POLLERR;
-        buf = list_entry(fh->vidq.stream.next,
-            struct cx25821_buffer, vb.stream);
+       /* streaming capture */
+       if (list_empty(&fh->vidq.stream))
+           return POLLERR;
+       buf = list_entry(fh->vidq.stream.next,
+           struct cx25821_buffer, vb.stream);
     } else {
-        /* read() capture */
-        buf = (struct cx25821_buffer *)fh->vidq.read_buf;
-        if (NULL == buf)
-            return POLLERR;
+       /* read() capture */
+       buf = (struct cx25821_buffer *)fh->vidq.read_buf;
+       if (NULL == buf)
+           return POLLERR;
     }
 
     poll_wait(file, &buf->vb.done, wait);
     if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)
-    {        
-        if( buf->vb.state == VIDEOBUF_DONE )
-        {            
-            struct cx25821_dev *dev = fh->dev;
-            
-            if( dev && dev->use_cif_resolution[SRAM_CH05] )
-            {
-                u8 cam_id = *((char*)buf->vb.baddr+3); 
-                memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));                      
-                *((char*)buf->vb.baddr+3) = cam_id;
-            }
-        }
-        
-        return POLLIN|POLLRDNORM;
+    {
+       if( buf->vb.state == VIDEOBUF_DONE )
+       {
+           struct cx25821_dev *dev = fh->dev;
+
+           if( dev && dev->use_cif_resolution[SRAM_CH05] )
+           {
+               u8 cam_id = *((char*)buf->vb.baddr+3);
+               memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));
+               *((char*)buf->vb.baddr+3) = cam_id;
+           }
+       }
+
+       return POLLIN|POLLRDNORM;
     }
 
     return 0;
@@ -218,13 +218,13 @@ static int video_release(struct file *file)
 
     /* stop video capture */
     if (res_check(fh, RESOURCE_VIDEO5)) {
-        videobuf_queue_cancel(&fh->vidq);
-        res_free(dev, fh, RESOURCE_VIDEO5);
+       videobuf_queue_cancel(&fh->vidq);
+       res_free(dev, fh, RESOURCE_VIDEO5);
     }
 
     if (fh->vidq.read_buf) {
-        buffer_release(&fh->vidq, fh->vidq.read_buf);
-        kfree(fh->vidq.read_buf);
+       buffer_release(&fh->vidq, fh->vidq.read_buf);
+       kfree(fh->vidq.read_buf);
     }
 
     videobuf_mmap_free(&fh->vidq);
@@ -244,17 +244,17 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
     if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(i != fh->type))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO5))))
     {
-        return -EBUSY;
+       return -EBUSY;
     }
 
     return videobuf_streamon(get_queue(fh));
@@ -267,14 +267,14 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
     int err, res;
 
     if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-        return -EINVAL;
+       return -EINVAL;
     if (i != fh->type)
-        return -EINVAL;
+       return -EINVAL;
 
     res = get_resource(fh, RESOURCE_VIDEO5);
     err = videobuf_streamoff(get_queue(fh));
     if (err < 0)
-        return err;
+       return err;
     res_free(dev, fh, res);
     return 0;
 }
@@ -284,21 +284,21 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
 {
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
-    int err;    
+    int err;
     int pix_format = 0;
-   
-    if (fh) 
+
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     dprintk(2, "%s()\n", __func__);
     err = vidioc_try_fmt_vid_cap(file, priv, f);
 
     if (0 != err)
-        return err;
+       return err;
 
     fh->fmt        = format_by_fourcc(f->fmt.pix.pixelformat);
     fh->vidq.field = f->fmt.pix.field;
@@ -306,33 +306,33 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     // check if width and height is valid based on set standard
     if (is_valid_width(f->fmt.pix.width, dev->tvnorm))
     {
-        fh->width      = f->fmt.pix.width;
+       fh->width      = f->fmt.pix.width;
     }
 
     if (is_valid_height(f->fmt.pix.height, dev->tvnorm))
     {
-        fh->height     = f->fmt.pix.height;
+       fh->height     = f->fmt.pix.height;
     }
 
     if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_Y41P)
-        pix_format = PIXEL_FRMT_411;
+       pix_format = PIXEL_FRMT_411;
     else if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_YUYV)
-        pix_format = PIXEL_FRMT_422;
+       pix_format = PIXEL_FRMT_422;
     else
-        return -EINVAL;
+       return -EINVAL;
+
+    cx25821_set_pixel_format( dev, SRAM_CH05, pix_format );
 
-    cx25821_set_pixel_format( dev, SRAM_CH05, pix_format ); 
     // check if cif resolution
     if (fh->width == 320 || fh->width == 352)
     {
-        dev->use_cif_resolution[SRAM_CH05] = 1;
+       dev->use_cif_resolution[SRAM_CH05] = 1;
     }else
     {
        dev->use_cif_resolution[SRAM_CH05] = 0;
     }
     dev->cif_width[SRAM_CH05]          = fh->width;
-    medusa_set_resolution( dev, fh->width, SRAM_CH05 ); 
+    medusa_set_resolution( dev, fh->width, SRAM_CH05 );
 
     dprintk(2, "%s() width=%d height=%d field=%d\n", __func__, fh->width, fh->height, fh->vidq.field);
     cx25821_call_all(dev, video, s_fmt, f);
@@ -346,7 +346,7 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p)
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
 
-    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK); 
+    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK);
 
     p->sequence = dev->vidq[SRAM_CH05].count;
 
@@ -357,14 +357,14 @@ static int vidioc_log_status (struct file *file, void *priv)
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     char name[32 + 2];
 
-    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH05];  
+    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH05];
     u32 tmp = 0;
 
     snprintf(name, sizeof(name), "%s/2", dev->name);
     printk(KERN_INFO "%s/2: ============  START LOG STATUS  ============\n",
               dev->name);
     cx25821_call_all(dev, core, log_status);
-    
+
     tmp = cx_read(sram_ch->dma_ctl);
     printk(KERN_INFO "Video input 5 is %s\n", (tmp & 0x11)?"streaming" : "stopped");
     printk(KERN_INFO "%s/2: =============  END LOG STATUS  =============\n",
@@ -376,10 +376,10 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
                                struct v4l2_control *ctl)
 {
        struct cx25821_fh *fh = priv;
-        struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
-        int err;
+       struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
+       int err;
 
-        if (fh) {
+       if (fh) {
                err = v4l2_prio_check(&dev->prio, &fh->prio);
                if (0 != err)
                        return err;
index 980565a..1c0319c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -40,37 +40,37 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
     dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
 
     if (!list_empty(&q->queued)) {
-        list_add_tail(&buf->vb.queue, &q->queued);
-        buf->vb.state = VIDEOBUF_QUEUED;
-        dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
+       list_add_tail(&buf->vb.queue, &q->queued);
+       buf->vb.state = VIDEOBUF_QUEUED;
+       dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
 
     } else if (list_empty(&q->active)) {
-        list_add_tail(&buf->vb.queue, &q->active);
-        cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH06]);
-        buf->vb.state = VIDEOBUF_ACTIVE;
-        buf->count    = q->count++;
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
-                                buf, buf->vb. i, buf->count, q->count);
+       list_add_tail(&buf->vb.queue, &q->active);
+       cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH06]);
+       buf->vb.state = VIDEOBUF_ACTIVE;
+       buf->count    = q->count++;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
+                               buf, buf->vb. i, buf->count, q->count);
     } else {
-        prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
-        if (prev->vb.width  == buf->vb.width  &&
-            prev->vb.height == buf->vb.height &&
-            prev->fmt       == buf->fmt) {
-            list_add_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-
-            /* 64 bit bits 63-32 */
-            prev->risc.jmp[2] = cpu_to_le32(0);
-            dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
-
-        } else {
-            list_add_tail(&buf->vb.queue, &q->queued);
-            buf->vb.state = VIDEOBUF_QUEUED;
-            dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
-        }
+       prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
+       if (prev->vb.width  == buf->vb.width  &&
+           prev->vb.height == buf->vb.height &&
+           prev->fmt       == buf->fmt) {
+           list_add_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+
+           /* 64 bit bits 63-32 */
+           prev->risc.jmp[2] = cpu_to_le32(0);
+           dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
+
+       } else {
+           list_add_tail(&buf->vb.queue, &q->queued);
+           buf->vb.state = VIDEOBUF_QUEUED;
+           dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
+       }
     }
 
     if (list_empty(&q->active))
@@ -100,17 +100,17 @@ static int video_open(struct file *file)
     lock_kernel();
     list_for_each(list, &cx25821_devlist)
     {
-        h = list_entry(list, struct cx25821_dev, devlist);
+       h = list_entry(list, struct cx25821_dev, devlist);
 
-        if (h->video_dev[SRAM_CH06] && h->video_dev[SRAM_CH06]->minor == minor) {
-            dev  = h;
-            type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        }
+       if (h->video_dev[SRAM_CH06] && h->video_dev[SRAM_CH06]->minor == minor) {
+           dev  = h;
+           type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       }
     }
 
     if (NULL == dev) {
-        unlock_kernel();
-        return -ENODEV;
+       unlock_kernel();
+       return -ENODEV;
     }
 
     printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
@@ -118,8 +118,8 @@ static int video_open(struct file *file)
     /* allocate + initialize per filehandle data */
     fh = kzalloc(sizeof(*fh), GFP_KERNEL);
     if (NULL == fh) {
-        unlock_kernel();
-        return -ENOMEM;
+       unlock_kernel();
+       return -ENOMEM;
     }
     file->private_data = fh;
     fh->dev      = dev;
@@ -127,9 +127,9 @@ static int video_open(struct file *file)
     fh->width    = 720;
 
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
-        fh->height = 576;
+       fh->height = 576;
     else
-        fh->height = 480;
+       fh->height = 480;
 
     dev->channel_opened = SRAM_CH06;
     pix_format          = (dev->pixel_formats[dev->channel_opened] == PIXEL_FRMT_411) ? V4L2_PIX_FMT_Y41P : V4L2_PIX_FMT_YUYV;
@@ -138,11 +138,11 @@ static int video_open(struct file *file)
     v4l2_prio_open(&dev->prio,&fh->prio);
 
     videobuf_queue_sg_init(&fh->vidq, &cx25821_video_qops,
-                &dev->pci->dev, &dev->slock,
-                V4L2_BUF_TYPE_VIDEO_CAPTURE,
-                V4L2_FIELD_INTERLACED,
-                sizeof(struct cx25821_buffer),
-                fh);
+               &dev->pci->dev, &dev->slock,
+               V4L2_BUF_TYPE_VIDEO_CAPTURE,
+               V4L2_FIELD_INTERLACED,
+               sizeof(struct cx25821_buffer),
+               fh);
 
     dprintk(1, "post videobuf_queue_init()\n");
     unlock_kernel();
@@ -156,15 +156,15 @@ static ssize_t video_read(struct file *file, char __user *data, size_t count, lo
 
     switch (fh->type)
     {
-        case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-            if (res_locked(fh->dev, RESOURCE_VIDEO6))
-                return -EBUSY;
+       case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+           if (res_locked(fh->dev, RESOURCE_VIDEO6))
+               return -EBUSY;
 
-            return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
+           return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
 
-        default:
-            BUG();
-            return 0;
+       default:
+           BUG();
+           return 0;
     }
 }
 
@@ -174,36 +174,36 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
     struct cx25821_buffer *buf;
 
     if (res_check(fh, RESOURCE_VIDEO6)) {
-        /* streaming capture */
-        if (list_empty(&fh->vidq.stream))
-            return POLLERR;
-        buf = list_entry(fh->vidq.stream.next,
-            struct cx25821_buffer, vb.stream);
+       /* streaming capture */
+       if (list_empty(&fh->vidq.stream))
+           return POLLERR;
+       buf = list_entry(fh->vidq.stream.next,
+           struct cx25821_buffer, vb.stream);
     } else {
-        /* read() capture */
-        buf = (struct cx25821_buffer *)fh->vidq.read_buf;
-        if (NULL == buf)
-            return POLLERR;
+       /* read() capture */
+       buf = (struct cx25821_buffer *)fh->vidq.read_buf;
+       if (NULL == buf)
+           return POLLERR;
     }
 
     poll_wait(file, &buf->vb.done, wait);
     if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)
-    {        
-        if( buf->vb.state == VIDEOBUF_DONE )
-        {            
-            struct cx25821_dev *dev = fh->dev;
-            
-            if( dev && dev->use_cif_resolution[SRAM_CH06] )
-            {
-                u8 cam_id = *((char*)buf->vb.baddr+3); 
-                memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));                      
-                *((char*)buf->vb.baddr+3) = cam_id;
-            }
-        }
-        
-        return POLLIN|POLLRDNORM;
+    {
+       if( buf->vb.state == VIDEOBUF_DONE )
+       {
+           struct cx25821_dev *dev = fh->dev;
+
+           if( dev && dev->use_cif_resolution[SRAM_CH06] )
+           {
+               u8 cam_id = *((char*)buf->vb.baddr+3);
+               memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));
+               *((char*)buf->vb.baddr+3) = cam_id;
+           }
+       }
+
+       return POLLIN|POLLRDNORM;
     }
-    
+
     return 0;
 }
 
@@ -218,12 +218,12 @@ static int video_release(struct file *file)
 
     /* stop video capture */
     if (res_check(fh, RESOURCE_VIDEO6)) {
-        videobuf_queue_cancel(&fh->vidq);
-        res_free(dev, fh, RESOURCE_VIDEO6);
+       videobuf_queue_cancel(&fh->vidq);
+       res_free(dev, fh, RESOURCE_VIDEO6);
     }
     if (fh->vidq.read_buf) {
-        buffer_release(&fh->vidq, fh->vidq.read_buf);
-        kfree(fh->vidq.read_buf);
+       buffer_release(&fh->vidq, fh->vidq.read_buf);
+       kfree(fh->vidq.read_buf);
     }
 
     videobuf_mmap_free(&fh->vidq);
@@ -243,17 +243,17 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
     if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(i != fh->type))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO6))))
     {
-        return -EBUSY;
+       return -EBUSY;
     }
 
     return videobuf_streamon(get_queue(fh));
@@ -266,14 +266,14 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
     int err, res;
 
     if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-        return -EINVAL;
+       return -EINVAL;
     if (i != fh->type)
-        return -EINVAL;
+       return -EINVAL;
 
     res = get_resource(fh, RESOURCE_VIDEO6);
     err = videobuf_streamoff(get_queue(fh));
     if (err < 0)
-        return err;
+       return err;
     res_free(dev, fh, res);
     return 0;
 }
@@ -283,21 +283,21 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
 {
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
-    int err;    
+    int err;
     int pix_format = 0;
-   
-    if (fh) 
+
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     dprintk(2, "%s()\n", __func__);
     err = vidioc_try_fmt_vid_cap(file, priv, f);
 
     if (0 != err)
-        return err;
+       return err;
 
     fh->fmt        = format_by_fourcc(f->fmt.pix.pixelformat);
     fh->vidq.field = f->fmt.pix.field;
@@ -305,33 +305,33 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     // check if width and height is valid based on set standard
     if (is_valid_width(f->fmt.pix.width, dev->tvnorm))
     {
-        fh->width      = f->fmt.pix.width;
+       fh->width      = f->fmt.pix.width;
     }
 
     if (is_valid_height(f->fmt.pix.height, dev->tvnorm))
     {
-        fh->height     = f->fmt.pix.height;
+       fh->height     = f->fmt.pix.height;
     }
 
     if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_Y41P)
-        pix_format = PIXEL_FRMT_411;
+       pix_format = PIXEL_FRMT_411;
     else if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_YUYV)
-        pix_format = PIXEL_FRMT_422;
+       pix_format = PIXEL_FRMT_422;
     else
-        return -EINVAL;
+       return -EINVAL;
+
+    cx25821_set_pixel_format( dev, SRAM_CH06, pix_format );
 
-    cx25821_set_pixel_format( dev, SRAM_CH06, pix_format ); 
     // check if cif resolution
     if (fh->width == 320 || fh->width == 352)
     {
-        dev->use_cif_resolution[SRAM_CH06] = 1;
+       dev->use_cif_resolution[SRAM_CH06] = 1;
     }else
     {
        dev->use_cif_resolution[SRAM_CH06] = 0;
     }
     dev->cif_width[SRAM_CH06]          = fh->width;
-    medusa_set_resolution( dev, fh->width, SRAM_CH06 ); 
+    medusa_set_resolution( dev, fh->width, SRAM_CH06 );
 
     dprintk(2, "%s() width=%d height=%d field=%d\n", __func__, fh->width, fh->height, fh->vidq.field);
     cx25821_call_all(dev, video, s_fmt, f);
@@ -345,7 +345,7 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p)
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
 
-    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK); 
+    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK);
 
     p->sequence = dev->vidq[SRAM_CH06].count;
 
@@ -357,14 +357,14 @@ static int vidioc_log_status (struct file *file, void *priv)
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     char name[32 + 2];
 
-    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH06];  
+    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH06];
     u32 tmp = 0;
 
     snprintf(name, sizeof(name), "%s/2", dev->name);
     printk(KERN_INFO "%s/2: ============  START LOG STATUS  ============\n",
               dev->name);
     cx25821_call_all(dev, core, log_status);
-    
+
     tmp = cx_read(sram_ch->dma_ctl);
     printk(KERN_INFO "Video input 6 is %s\n", (tmp & 0x11)?"streaming" : "stopped");
     printk(KERN_INFO "%s/2: =============  END LOG STATUS  =============\n",
@@ -376,10 +376,10 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
                                struct v4l2_control *ctl)
 {
        struct cx25821_fh *fh = priv;
-        struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
-        int err;
+       struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
+       int err;
 
-        if (fh) {
+       if (fh) {
                err = v4l2_prio_check(&dev->prio, &fh->prio);
                if (0 != err)
                        return err;
index 966e369..71da809 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -37,39 +37,39 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
     buf->risc.jmp[1] = cpu_to_le32(q->stopper.dma);
     buf->risc.jmp[2] = cpu_to_le32(0); /* bits 63-32 */
 
-        dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
+       dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
     if (!list_empty(&q->queued)) {
-        list_add_tail(&buf->vb.queue, &q->queued);
-        buf->vb.state = VIDEOBUF_QUEUED;
-        dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
+       list_add_tail(&buf->vb.queue, &q->queued);
+       buf->vb.state = VIDEOBUF_QUEUED;
+       dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
 
     } else if (list_empty(&q->active)) {
-        list_add_tail(&buf->vb.queue, &q->active);
-        cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH07]);
-        buf->vb.state = VIDEOBUF_ACTIVE;
-        buf->count    = q->count++;
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
-                                buf, buf->vb. i, buf->count, q->count);
+       list_add_tail(&buf->vb.queue, &q->active);
+       cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH07]);
+       buf->vb.state = VIDEOBUF_ACTIVE;
+       buf->count    = q->count++;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
+                               buf, buf->vb. i, buf->count, q->count);
     } else {
-        prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
-        if (prev->vb.width  == buf->vb.width  &&
-            prev->vb.height == buf->vb.height &&
-            prev->fmt       == buf->fmt) {
-            list_add_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-
-            /* 64 bit bits 63-32 */
-            prev->risc.jmp[2] = cpu_to_le32(0);
-            dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
-
-        } else {
-            list_add_tail(&buf->vb.queue, &q->queued);
-            buf->vb.state = VIDEOBUF_QUEUED;
-            dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
-        }
+       prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
+       if (prev->vb.width  == buf->vb.width  &&
+           prev->vb.height == buf->vb.height &&
+           prev->fmt       == buf->fmt) {
+           list_add_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+
+           /* 64 bit bits 63-32 */
+           prev->risc.jmp[2] = cpu_to_le32(0);
+           dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
+
+       } else {
+           list_add_tail(&buf->vb.queue, &q->queued);
+           buf->vb.state = VIDEOBUF_QUEUED;
+           dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
+       }
     }
 
     if (list_empty(&q->active))
@@ -99,17 +99,17 @@ static int video_open(struct file *file)
     lock_kernel();
     list_for_each(list, &cx25821_devlist)
     {
-        h = list_entry(list, struct cx25821_dev, devlist);
+       h = list_entry(list, struct cx25821_dev, devlist);
 
-        if (h->video_dev[SRAM_CH07] && h->video_dev[SRAM_CH07]->minor == minor) {
-            dev  = h;
-            type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        }
+       if (h->video_dev[SRAM_CH07] && h->video_dev[SRAM_CH07]->minor == minor) {
+           dev  = h;
+           type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       }
     }
 
     if (NULL == dev) {
-        unlock_kernel();
-        return -ENODEV;
+       unlock_kernel();
+       return -ENODEV;
     }
 
     printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
@@ -117,8 +117,8 @@ static int video_open(struct file *file)
     /* allocate + initialize per filehandle data */
     fh = kzalloc(sizeof(*fh), GFP_KERNEL);
     if (NULL == fh) {
-        unlock_kernel();
-        return -ENOMEM;
+       unlock_kernel();
+       return -ENOMEM;
     }
     file->private_data = fh;
     fh->dev      = dev;
@@ -126,22 +126,22 @@ static int video_open(struct file *file)
     fh->width    = 720;
 
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
-        fh->height = 576;
+       fh->height = 576;
     else
-        fh->height = 480;
+       fh->height = 480;
 
-    dev->channel_opened = SRAM_CH07;        
+    dev->channel_opened = SRAM_CH07;
     pix_format          = (dev->pixel_formats[dev->channel_opened] == PIXEL_FRMT_411) ? V4L2_PIX_FMT_Y41P : V4L2_PIX_FMT_YUYV;
     fh->fmt             = format_by_fourcc(pix_format);
 
     v4l2_prio_open(&dev->prio,&fh->prio);
 
     videobuf_queue_sg_init(&fh->vidq, &cx25821_video_qops,
-                &dev->pci->dev, &dev->slock,
-                V4L2_BUF_TYPE_VIDEO_CAPTURE,
-                V4L2_FIELD_INTERLACED,
-                sizeof(struct cx25821_buffer),
-                fh);
+               &dev->pci->dev, &dev->slock,
+               V4L2_BUF_TYPE_VIDEO_CAPTURE,
+               V4L2_FIELD_INTERLACED,
+               sizeof(struct cx25821_buffer),
+               fh);
 
     dprintk(1, "post videobuf_queue_init()\n");
     unlock_kernel();
@@ -155,15 +155,15 @@ static ssize_t video_read(struct file *file, char __user *data, size_t count, lo
 
     switch (fh->type)
     {
-        case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-            if (res_locked(fh->dev, RESOURCE_VIDEO7))
-                return -EBUSY;
+       case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+           if (res_locked(fh->dev, RESOURCE_VIDEO7))
+               return -EBUSY;
 
-            return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
+           return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
 
-        default:
-            BUG();
-            return 0;
+       default:
+           BUG();
+           return 0;
     }
 }
 
@@ -173,34 +173,34 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
     struct cx25821_buffer *buf;
 
     if (res_check(fh, RESOURCE_VIDEO7)) {
-        /* streaming capture */
-        if (list_empty(&fh->vidq.stream))
-            return POLLERR;
-        buf = list_entry(fh->vidq.stream.next,
-            struct cx25821_buffer, vb.stream);
+       /* streaming capture */
+       if (list_empty(&fh->vidq.stream))
+           return POLLERR;
+       buf = list_entry(fh->vidq.stream.next,
+           struct cx25821_buffer, vb.stream);
     } else {
-        /* read() capture */
-        buf = (struct cx25821_buffer *)fh->vidq.read_buf;
-        if (NULL == buf)
-            return POLLERR;
+       /* read() capture */
+       buf = (struct cx25821_buffer *)fh->vidq.read_buf;
+       if (NULL == buf)
+           return POLLERR;
     }
 
     poll_wait(file, &buf->vb.done, wait);
     if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)
     {
-        if( buf->vb.state == VIDEOBUF_DONE )
-        {            
-            struct cx25821_dev *dev = fh->dev;
-            
-            if( dev && dev->use_cif_resolution[SRAM_CH07] )
-            {
-                u8 cam_id = *((char*)buf->vb.baddr+3); 
-                memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));                      
-                *((char*)buf->vb.baddr+3) = cam_id;
-            }
-        }
-        
-        return POLLIN|POLLRDNORM;
+       if( buf->vb.state == VIDEOBUF_DONE )
+       {
+           struct cx25821_dev *dev = fh->dev;
+
+           if( dev && dev->use_cif_resolution[SRAM_CH07] )
+           {
+               u8 cam_id = *((char*)buf->vb.baddr+3);
+               memcpy((char*)buf->vb.baddr, (char*)buf->vb.baddr + (fh->width * 2), (fh->width * 2));
+               *((char*)buf->vb.baddr+3) = cam_id;
+           }
+       }
+
+       return POLLIN|POLLRDNORM;
     }
 
     return 0;
@@ -217,13 +217,13 @@ static int video_release(struct file *file)
 
     /* stop video capture */
     if (res_check(fh, RESOURCE_VIDEO7)) {
-        videobuf_queue_cancel(&fh->vidq);
-        res_free(dev, fh, RESOURCE_VIDEO7);
+       videobuf_queue_cancel(&fh->vidq);
+       res_free(dev, fh, RESOURCE_VIDEO7);
     }
 
     if (fh->vidq.read_buf) {
-        buffer_release(&fh->vidq, fh->vidq.read_buf);
-        kfree(fh->vidq.read_buf);
+       buffer_release(&fh->vidq, fh->vidq.read_buf);
+       kfree(fh->vidq.read_buf);
     }
 
     videobuf_mmap_free(&fh->vidq);
@@ -243,17 +243,17 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
     if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(i != fh->type))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO7))))
     {
-        return -EBUSY;
+       return -EBUSY;
     }
 
     return videobuf_streamon(get_queue(fh));
@@ -266,14 +266,14 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
     int err, res;
 
     if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-        return -EINVAL;
+       return -EINVAL;
     if (i != fh->type)
-        return -EINVAL;
+       return -EINVAL;
 
     res = get_resource(fh, RESOURCE_VIDEO7);
     err = videobuf_streamoff(get_queue(fh));
     if (err < 0)
-        return err;
+       return err;
     res_free(dev, fh, res);
     return 0;
 }
@@ -283,13 +283,13 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
 {
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
-    int err;    
+    int err;
     int pix_format = 0;
-   
-    if (fh) 
+
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
            return err;
     }
 
@@ -297,7 +297,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     err = vidioc_try_fmt_vid_cap(file, priv, f);
 
     if (0 != err)
-        return err;
+       return err;
 
     fh->fmt        = format_by_fourcc(f->fmt.pix.pixelformat);
     fh->vidq.field = f->fmt.pix.field;
@@ -305,33 +305,33 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     // check if width and height is valid based on set standard
     if (is_valid_width(f->fmt.pix.width, dev->tvnorm))
     {
-        fh->width      = f->fmt.pix.width;
+       fh->width      = f->fmt.pix.width;
     }
 
     if (is_valid_height(f->fmt.pix.height, dev->tvnorm))
     {
-        fh->height     = f->fmt.pix.height;
+       fh->height     = f->fmt.pix.height;
     }
 
     if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_Y41P)
-        pix_format = PIXEL_FRMT_411;
+       pix_format = PIXEL_FRMT_411;
     else if (f->fmt.pix.pixelformat == V4L2_PIX_FMT_YUYV)
-        pix_format = PIXEL_FRMT_422;
+       pix_format = PIXEL_FRMT_422;
     else
-        return -EINVAL;
+       return -EINVAL;
+
+    cx25821_set_pixel_format( dev, SRAM_CH07, pix_format );
 
-    cx25821_set_pixel_format( dev, SRAM_CH07, pix_format ); 
     // check if cif resolution
     if (fh->width == 320 || fh->width == 352)
     {
-        dev->use_cif_resolution[SRAM_CH07] = 1;
+       dev->use_cif_resolution[SRAM_CH07] = 1;
     }else
     {
        dev->use_cif_resolution[SRAM_CH07] = 0;
     }
     dev->cif_width[SRAM_CH07]          = fh->width;
-    medusa_set_resolution( dev, fh->width, SRAM_CH07 ); 
+    medusa_set_resolution( dev, fh->width, SRAM_CH07 );
 
     dprintk(2, "%s() width=%d height=%d field=%d\n", __func__, fh->width, fh->height, fh->vidq.field);
     cx25821_call_all(dev, video, s_fmt, f);
@@ -345,7 +345,7 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p)
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
 
-    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK); 
+    ret_val = videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK);
 
     p->sequence = dev->vidq[SRAM_CH07].count;
 
@@ -356,14 +356,14 @@ static int vidioc_log_status (struct file *file, void *priv)
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     char name[32 + 2];
 
-    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH07];  
+    struct sram_channel *sram_ch = &dev->sram_channels[SRAM_CH07];
     u32 tmp = 0;
 
     snprintf(name, sizeof(name), "%s/2", dev->name);
     printk(KERN_INFO "%s/2: ============  START LOG STATUS  ============\n",
               dev->name);
     cx25821_call_all(dev, core, log_status);
-    
+
     tmp = cx_read(sram_ch->dma_ctl);
     printk(KERN_INFO "Video input 7 is %s\n", (tmp & 0x11)?"streaming" : "stopped");
     printk(KERN_INFO "%s/2: =============  END LOG STATUS  =============\n",
@@ -375,10 +375,10 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
                                struct v4l2_control *ctl)
 {
        struct cx25821_fh *fh = priv;
-        struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
-        int err;
+       struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
+       int err;
 
-        if (fh) {
+       if (fh) {
                err = v4l2_prio_check(&dev->prio, &fh->prio);
                if (0 != err)
                        return err;
index a5363e4..ca93cd2 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -40,37 +40,37 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
     dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
 
     if (!list_empty(&q->queued)) {
-        list_add_tail(&buf->vb.queue, &q->queued);
-        buf->vb.state = VIDEOBUF_QUEUED;
-        dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
+       list_add_tail(&buf->vb.queue, &q->queued);
+       buf->vb.state = VIDEOBUF_QUEUED;
+       dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
 
     } else if (list_empty(&q->active)) {
-        list_add_tail(&buf->vb.queue, &q->active);
-        cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[VIDEO_IOCTL_CH]);
-        buf->vb.state = VIDEOBUF_ACTIVE;
-        buf->count    = q->count++;
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
-                                buf, buf->vb. i, buf->count, q->count);
+       list_add_tail(&buf->vb.queue, &q->active);
+       cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[VIDEO_IOCTL_CH]);
+       buf->vb.state = VIDEOBUF_ACTIVE;
+       buf->count    = q->count++;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
+                               buf, buf->vb. i, buf->count, q->count);
     } else {
-        prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
-        if (prev->vb.width  == buf->vb.width  &&
-            prev->vb.height == buf->vb.height &&
-            prev->fmt       == buf->fmt) {
-            list_add_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-
-            /* 64 bit bits 63-32 */
-            prev->risc.jmp[2] = cpu_to_le32(0);
-            dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
-
-        } else {
-            list_add_tail(&buf->vb.queue, &q->queued);
-            buf->vb.state = VIDEOBUF_QUEUED;
-            dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
-        }
+       prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
+       if (prev->vb.width  == buf->vb.width  &&
+           prev->vb.height == buf->vb.height &&
+           prev->fmt       == buf->fmt) {
+           list_add_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+
+           /* 64 bit bits 63-32 */
+           prev->risc.jmp[2] = cpu_to_le32(0);
+           dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
+
+       } else {
+           list_add_tail(&buf->vb.queue, &q->queued);
+           buf->vb.state = VIDEOBUF_QUEUED;
+           dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
+       }
     }
 
     if (list_empty(&q->active))
@@ -100,18 +100,18 @@ static int video_open(struct file *file)
     lock_kernel();
     list_for_each(list, &cx25821_devlist)
     {
-        h = list_entry(list, struct cx25821_dev, devlist);
+       h = list_entry(list, struct cx25821_dev, devlist);
 
-        if (h->ioctl_dev && h->ioctl_dev->minor == minor)
-        {
-            dev  = h;
-            type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        }
+       if (h->ioctl_dev && h->ioctl_dev->minor == minor)
+       {
+           dev  = h;
+           type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       }
     }
 
     if (NULL == dev) {
-        unlock_kernel();
-        return -ENODEV;
+       unlock_kernel();
+       return -ENODEV;
     }
 
     printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
@@ -119,8 +119,8 @@ static int video_open(struct file *file)
     /* allocate + initialize per filehandle data */
     fh = kzalloc(sizeof(*fh), GFP_KERNEL);
     if (NULL == fh) {
-        unlock_kernel();
-        return -ENOMEM;
+       unlock_kernel();
+       return -ENOMEM;
     }
 
     file->private_data = fh;
@@ -129,22 +129,22 @@ static int video_open(struct file *file)
     fh->width    = 720;
 
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
-        fh->height = 576;
+       fh->height = 576;
     else
-        fh->height = 480;
+       fh->height = 480;
 
     dev->channel_opened = VIDEO_IOCTL_CH;
     pix_format          = V4L2_PIX_FMT_YUYV;
     fh->fmt             = format_by_fourcc(pix_format);
-    
+
     v4l2_prio_open(&dev->prio,&fh->prio);
 
     videobuf_queue_sg_init(&fh->vidq, &cx25821_video_qops,
-                &dev->pci->dev, &dev->slock,
-                V4L2_BUF_TYPE_VIDEO_CAPTURE,
-                V4L2_FIELD_INTERLACED,
-                sizeof(struct cx25821_buffer),
-                fh);
+               &dev->pci->dev, &dev->slock,
+               V4L2_BUF_TYPE_VIDEO_CAPTURE,
+               V4L2_FIELD_INTERLACED,
+               sizeof(struct cx25821_buffer),
+               fh);
 
     dprintk(1, "post videobuf_queue_init()\n");
     unlock_kernel();
@@ -158,15 +158,15 @@ static ssize_t video_read(struct file *file, char __user *data, size_t count, lo
 
     switch (fh->type)
     {
-        case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-            if (res_locked(fh->dev, RESOURCE_VIDEO_IOCTL))
-                return -EBUSY;
+       case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+           if (res_locked(fh->dev, RESOURCE_VIDEO_IOCTL))
+               return -EBUSY;
 
-            return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
+           return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
 
-        default:
-            BUG();
-            return 0;
+       default:
+           BUG();
+           return 0;
     }
 }
 
@@ -176,22 +176,22 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
     struct cx25821_buffer *buf;
 
     if (res_check(fh, RESOURCE_VIDEO_IOCTL)) {
-        /* streaming capture */
-        if (list_empty(&fh->vidq.stream))
-            return POLLERR;
-        buf = list_entry(fh->vidq.stream.next,
-            struct cx25821_buffer, vb.stream);
+       /* streaming capture */
+       if (list_empty(&fh->vidq.stream))
+           return POLLERR;
+       buf = list_entry(fh->vidq.stream.next,
+           struct cx25821_buffer, vb.stream);
     } else {
-        /* read() capture */
-        buf = (struct cx25821_buffer *)fh->vidq.read_buf;
-        if (NULL == buf)
-            return POLLERR;
+       /* read() capture */
+       buf = (struct cx25821_buffer *)fh->vidq.read_buf;
+       if (NULL == buf)
+           return POLLERR;
     }
 
     poll_wait(file, &buf->vb.done, wait);
-    if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)       
-        return POLLIN|POLLRDNORM;
-    
+    if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)
+       return POLLIN|POLLRDNORM;
+
     return 0;
 }
 
@@ -199,17 +199,17 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
 static int video_release(struct file *file)
 {
     struct cx25821_fh *fh = file->private_data;
-    struct cx25821_dev *dev = fh->dev; 
+    struct cx25821_dev *dev = fh->dev;
 
     /* stop video capture */
     if (res_check(fh, RESOURCE_VIDEO_IOCTL)) {
-        videobuf_queue_cancel(&fh->vidq);
-        res_free(dev, fh, RESOURCE_VIDEO_IOCTL);
+       videobuf_queue_cancel(&fh->vidq);
+       res_free(dev, fh, RESOURCE_VIDEO_IOCTL);
     }
 
     if (fh->vidq.read_buf) {
-        buffer_release(&fh->vidq, fh->vidq.read_buf);
-        kfree(fh->vidq.read_buf);
+       buffer_release(&fh->vidq, fh->vidq.read_buf);
+       kfree(fh->vidq.read_buf);
     }
 
     videobuf_mmap_free(&fh->vidq);
@@ -230,17 +230,17 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
     if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(i != fh->type))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO_IOCTL))))
     {
-        return -EBUSY;
+       return -EBUSY;
     }
 
     return videobuf_streamon(get_queue(fh));
@@ -253,14 +253,14 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
     int err, res;
 
     if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-        return -EINVAL;
+       return -EINVAL;
     if (i != fh->type)
-        return -EINVAL;
+       return -EINVAL;
 
     res = get_resource(fh, RESOURCE_VIDEO_IOCTL);
     err = videobuf_streamoff(get_queue(fh));
     if (err < 0)
-        return err;
+       return err;
     res_free(dev, fh, res);
     return 0;
 }
@@ -272,18 +272,18 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     int err;
 
-    if (fh) 
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     dprintk(2, "%s()\n", __func__);
     err = vidioc_try_fmt_vid_cap(file, priv, f);
 
     if (0 != err)
-        return err;
+       return err;
     fh->fmt        = format_by_fourcc(f->fmt.pix.pixelformat);
     fh->width      = f->fmt.pix.width;
     fh->height     = f->fmt.pix.height;
@@ -299,8 +299,8 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p)
     return videobuf_dqbuf(get_queue(fh), p, file->f_flags & O_NONBLOCK);
 }
 
-static long video_ioctl_set(struct file *file, unsigned int cmd, unsigned long arg)   
-{   
+static long video_ioctl_set(struct file *file, unsigned int cmd, unsigned long arg)
+{
     struct cx25821_fh *fh = file->private_data;
     struct cx25821_dev *dev = fh->dev;
     struct downstream_user_struct *data_from_user;
@@ -310,96 +310,96 @@ static long video_ioctl_set(struct file *file, unsigned int cmd, unsigned long a
     int cif_enable = 0, cif_width = 0;
     u32 value = 0;
 
-    
+
     data_from_user = (struct downstream_user_struct *)arg;
-    
+
     if( !data_from_user )
     {
-        printk("cx25821 in %s(): User data is INVALID. Returning.\n", __func__);
-        return 0;
+       printk("cx25821 in %s(): User data is INVALID. Returning.\n", __func__);
+       return 0;
     }
-    
+
     command = data_from_user->command;
-    
-    if( command != SET_VIDEO_STD && command != SET_PIXEL_FORMAT && command != ENABLE_CIF_RESOLUTION  && 
-        command != REG_READ && command != REG_WRITE && command != MEDUSA_READ && command != MEDUSA_WRITE)
+
+    if( command != SET_VIDEO_STD && command != SET_PIXEL_FORMAT && command != ENABLE_CIF_RESOLUTION  &&
+       command != REG_READ && command != REG_WRITE && command != MEDUSA_READ && command != MEDUSA_WRITE)
     {
-        return 0;
+       return 0;
     }
-                         
-                         
+
+
     switch(command)
-    {             
-        case SET_VIDEO_STD:    
-            dev->tvnorm = !strcmp(data_from_user->vid_stdname,"PAL") ? V4L2_STD_PAL_BG : V4L2_STD_NTSC_M;          
-            medusa_set_videostandard(dev);
-            break; 
-            
-        case SET_PIXEL_FORMAT:       
-            selected_channel    = data_from_user->decoder_select;  
-            pix_format          = data_from_user->pixel_format;
-
-            if( !(selected_channel <= 7 && selected_channel >= 0) )
-            {              
-                selected_channel -= 4;
-                selected_channel = selected_channel % 8;
-            }   
-            
-            if( selected_channel >= 0 )
-                cx25821_set_pixel_format( dev, selected_channel, pix_format ); 
-                           
-            break;
-            
-        case ENABLE_CIF_RESOLUTION:    
-            selected_channel    = data_from_user->decoder_select;
-            cif_enable          = data_from_user->cif_resolution_enable;
-            cif_width           = data_from_user->cif_width;            
-            
-            if( cif_enable )
-            {
-                if( dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK )
-                    width = 352;
-                else
-                    width = (cif_width == 320 || cif_width == 352) ? cif_width : 320;
-            }
-            
-            if( !(selected_channel <= 7 && selected_channel >= 0) )
-            {
-                selected_channel -= 4;
-                selected_channel = selected_channel % 8;   
-            }
-            
-            
-            if( selected_channel <= 7 && selected_channel >= 0 )
-            {
-                dev->use_cif_resolution[selected_channel] = cif_enable;
-                dev->cif_width[selected_channel]          = width;   
-            }        
-            else
-            {
-                for( i=0; i < VID_CHANNEL_NUM; i++ )
-                {
-                    dev->use_cif_resolution[i] = cif_enable;
-                    dev->cif_width[i]          = width;     
-                }
-            }         
-
-            medusa_set_resolution( dev, width, selected_channel );        
-            break;
-        case REG_READ:
-                data_from_user->reg_data = cx_read(data_from_user->reg_address);
-            break;
-        case REG_WRITE:
-                cx_write(data_from_user->reg_address, data_from_user->reg_data);
-            break;
-        case MEDUSA_READ:
-                value = cx25821_i2c_read(&dev->i2c_bus[0], (u16)data_from_user->reg_address, &data_from_user->reg_data);
-            break;
-        case MEDUSA_WRITE:
-                cx25821_i2c_write(&dev->i2c_bus[0], (u16)data_from_user->reg_address, data_from_user->reg_data);
-            break;
+    {
+       case SET_VIDEO_STD:
+           dev->tvnorm = !strcmp(data_from_user->vid_stdname,"PAL") ? V4L2_STD_PAL_BG : V4L2_STD_NTSC_M;
+           medusa_set_videostandard(dev);
+           break;
+
+       case SET_PIXEL_FORMAT:
+           selected_channel    = data_from_user->decoder_select;
+           pix_format          = data_from_user->pixel_format;
+
+           if( !(selected_channel <= 7 && selected_channel >= 0) )
+           {
+               selected_channel -= 4;
+               selected_channel = selected_channel % 8;
+           }
+
+           if( selected_channel >= 0 )
+               cx25821_set_pixel_format( dev, selected_channel, pix_format );
+
+           break;
+
+       case ENABLE_CIF_RESOLUTION:
+           selected_channel    = data_from_user->decoder_select;
+           cif_enable          = data_from_user->cif_resolution_enable;
+           cif_width           = data_from_user->cif_width;
+
+           if( cif_enable )
+           {
+               if( dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK )
+                   width = 352;
+               else
+                   width = (cif_width == 320 || cif_width == 352) ? cif_width : 320;
+           }
+
+           if( !(selected_channel <= 7 && selected_channel >= 0) )
+           {
+               selected_channel -= 4;
+               selected_channel = selected_channel % 8;
+           }
+
+
+           if( selected_channel <= 7 && selected_channel >= 0 )
+           {
+               dev->use_cif_resolution[selected_channel] = cif_enable;
+               dev->cif_width[selected_channel]          = width;
+           }
+           else
+           {
+               for( i=0; i < VID_CHANNEL_NUM; i++ )
+               {
+                   dev->use_cif_resolution[i] = cif_enable;
+                   dev->cif_width[i]          = width;
+               }
+           }
+
+           medusa_set_resolution( dev, width, selected_channel );
+           break;
+       case REG_READ:
+               data_from_user->reg_data = cx_read(data_from_user->reg_address);
+           break;
+       case REG_WRITE:
+               cx_write(data_from_user->reg_address, data_from_user->reg_data);
+           break;
+       case MEDUSA_READ:
+               value = cx25821_i2c_read(&dev->i2c_bus[0], (u16)data_from_user->reg_address, &data_from_user->reg_data);
+           break;
+       case MEDUSA_WRITE:
+               cx25821_i2c_write(&dev->i2c_bus[0], (u16)data_from_user->reg_address, data_from_user->reg_data);
+           break;
     }
-       
+
     return 0;
 }
 
@@ -423,12 +423,12 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
     struct cx25821_fh *fh = priv;
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     int err;
-    
-    if (fh) 
+
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
        return 0;
index 4738e91..1e18a87 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -41,37 +41,37 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
     dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
 
     if (!list_empty(&q->queued)) {
-        list_add_tail(&buf->vb.queue, &q->queued);
-        buf->vb.state = VIDEOBUF_QUEUED;
-        dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
+       list_add_tail(&buf->vb.queue, &q->queued);
+       buf->vb.state = VIDEOBUF_QUEUED;
+       dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
 
     } else if (list_empty(&q->active)) {
-        list_add_tail(&buf->vb.queue, &q->active);
-        cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH10]);
-        buf->vb.state = VIDEOBUF_ACTIVE;
-        buf->count    = q->count++;
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
-                                buf, buf->vb. i, buf->count, q->count);
+       list_add_tail(&buf->vb.queue, &q->active);
+       cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH10]);
+       buf->vb.state = VIDEOBUF_ACTIVE;
+       buf->count    = q->count++;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
+                               buf, buf->vb. i, buf->count, q->count);
     } else {
-        prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
-        if (prev->vb.width  == buf->vb.width  &&
-            prev->vb.height == buf->vb.height &&
-            prev->fmt       == buf->fmt) {
-            list_add_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-
-            /* 64 bit bits 63-32 */
-            prev->risc.jmp[2] = cpu_to_le32(0);
-            dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
-
-        } else {
-            list_add_tail(&buf->vb.queue, &q->queued);
-            buf->vb.state = VIDEOBUF_QUEUED;
-            dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
-        }
+       prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
+       if (prev->vb.width  == buf->vb.width  &&
+           prev->vb.height == buf->vb.height &&
+           prev->fmt       == buf->fmt) {
+           list_add_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+
+           /* 64 bit bits 63-32 */
+           prev->risc.jmp[2] = cpu_to_le32(0);
+           dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
+
+       } else {
+           list_add_tail(&buf->vb.queue, &q->queued);
+           buf->vb.state = VIDEOBUF_QUEUED;
+           dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
+       }
     }
 
     if (list_empty(&q->active))
@@ -100,17 +100,17 @@ static int video_open(struct file *file)
     lock_kernel();
     list_for_each(list, &cx25821_devlist)
     {
-        h = list_entry(list, struct cx25821_dev, devlist);
+       h = list_entry(list, struct cx25821_dev, devlist);
 
-        if (h->video_dev[SRAM_CH10] && h->video_dev[SRAM_CH10]->minor == minor) {
-            dev  = h;
-            type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        }
+       if (h->video_dev[SRAM_CH10] && h->video_dev[SRAM_CH10]->minor == minor) {
+           dev  = h;
+           type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       }
     }
 
     if (NULL == dev) {
-        unlock_kernel();
-        return -ENODEV;
+       unlock_kernel();
+       return -ENODEV;
     }
 
     printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
@@ -118,8 +118,8 @@ static int video_open(struct file *file)
     /* allocate + initialize per filehandle data */
     fh = kzalloc(sizeof(*fh), GFP_KERNEL);
     if (NULL == fh) {
-        unlock_kernel();
-        return -ENOMEM;
+       unlock_kernel();
+       return -ENOMEM;
     }
 
     file->private_data = fh;
@@ -128,22 +128,22 @@ static int video_open(struct file *file)
     fh->width    = 720;
 
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
-        fh->height = 576;
+       fh->height = 576;
     else
-        fh->height = 480;
+       fh->height = 480;
+
 
-    
     dev->channel_opened = 9;
     fh->fmt             = format_by_fourcc(V4L2_PIX_FMT_YUYV);
 
     v4l2_prio_open(&dev->prio,&fh->prio);
 
     videobuf_queue_sg_init(&fh->vidq, &cx25821_video_qops,
-                &dev->pci->dev, &dev->slock,
-                V4L2_BUF_TYPE_VIDEO_CAPTURE,
-                V4L2_FIELD_INTERLACED,
-                sizeof(struct cx25821_buffer),
-                fh);
+               &dev->pci->dev, &dev->slock,
+               V4L2_BUF_TYPE_VIDEO_CAPTURE,
+               V4L2_FIELD_INTERLACED,
+               sizeof(struct cx25821_buffer),
+               fh);
 
     dprintk(1, "post videobuf_queue_init()\n");
     unlock_kernel();
@@ -157,15 +157,15 @@ static ssize_t video_read(struct file *file, char __user *data, size_t count, lo
 
     switch (fh->type)
     {
-        case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-            if (res_locked(fh->dev, RESOURCE_VIDEO10))
-                return -EBUSY;
+       case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+           if (res_locked(fh->dev, RESOURCE_VIDEO10))
+               return -EBUSY;
 
-            return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
+           return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
 
-        default:
-            BUG();
-            return 0;
+       default:
+           BUG();
+           return 0;
     }
 }
 
@@ -175,21 +175,21 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
     struct cx25821_buffer *buf;
 
     if (res_check(fh, RESOURCE_VIDEO10)) {
-        /* streaming capture */
-        if (list_empty(&fh->vidq.stream))
-            return POLLERR;
-        buf = list_entry(fh->vidq.stream.next,
-            struct cx25821_buffer, vb.stream);
+       /* streaming capture */
+       if (list_empty(&fh->vidq.stream))
+           return POLLERR;
+       buf = list_entry(fh->vidq.stream.next,
+           struct cx25821_buffer, vb.stream);
     } else {
-        /* read() capture */
-        buf = (struct cx25821_buffer *)fh->vidq.read_buf;
-        if (NULL == buf)
-            return POLLERR;
+       /* read() capture */
+       buf = (struct cx25821_buffer *)fh->vidq.read_buf;
+       if (NULL == buf)
+           return POLLERR;
     }
 
     poll_wait(file, &buf->vb.done, wait);
     if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)
-        return POLLIN|POLLRDNORM;
+       return POLLIN|POLLRDNORM;
     return 0;
 }
 
@@ -199,17 +199,17 @@ static int video_release(struct file *file)
     struct cx25821_dev *dev = fh->dev;
 
     //stop the risc engine and fifo
-    //cx_write(channel10->dma_ctl, 0);  
+    //cx_write(channel10->dma_ctl, 0);
 
     /* stop video capture */
     if (res_check(fh, RESOURCE_VIDEO10)) {
-        videobuf_queue_cancel(&fh->vidq);
-        res_free(dev, fh, RESOURCE_VIDEO10);
+       videobuf_queue_cancel(&fh->vidq);
+       res_free(dev, fh, RESOURCE_VIDEO10);
     }
 
     if (fh->vidq.read_buf) {
-        buffer_release(&fh->vidq, fh->vidq.read_buf);
-        kfree(fh->vidq.read_buf);
+       buffer_release(&fh->vidq, fh->vidq.read_buf);
+       kfree(fh->vidq.read_buf);
     }
 
     videobuf_mmap_free(&fh->vidq);
@@ -230,17 +230,17 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
     if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(i != fh->type))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO10))))
     {
-        return -EBUSY;
+       return -EBUSY;
     }
 
     return videobuf_streamon(get_queue(fh));
@@ -253,61 +253,61 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
     int err, res;
 
     if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-        return -EINVAL;
+       return -EINVAL;
     if (i != fh->type)
-        return -EINVAL;
+       return -EINVAL;
 
     res = get_resource(fh, RESOURCE_VIDEO10);
     err = videobuf_streamoff(get_queue(fh));
     if (err < 0)
-        return err;
+       return err;
     res_free(dev, fh, res);
     return 0;
 }
 
 
-static long video_ioctl_upstream10(struct file *file, unsigned int cmd, unsigned long arg) 
-{   
+static long video_ioctl_upstream10(struct file *file, unsigned int cmd, unsigned long arg)
+{
     struct cx25821_fh *fh = file->private_data;
     struct cx25821_dev *dev = fh->dev;
     int command = 0;
     struct upstream_user_struct *data_from_user;
-     
 
-    data_from_user = (struct upstream_user_struct *)arg;    
-    
+
+    data_from_user = (struct upstream_user_struct *)arg;
+
     if( !data_from_user )
     {
-        printk("cx25821 in %s(): Upstream data is INVALID. Returning.\n", __func__);
-        return 0;
+       printk("cx25821 in %s(): Upstream data is INVALID. Returning.\n", __func__);
+       return 0;
     }
-            
+
     command = data_from_user->command;
-    
+
     if( command != UPSTREAM_START_VIDEO && command != UPSTREAM_STOP_VIDEO )
     {
-        return 0;
+       return 0;
     }
-    
+
     dev->input_filename_ch2     = data_from_user->input_filename;
     dev->input_audiofilename    = data_from_user->input_filename;
     dev->vid_stdname_ch2        = data_from_user->vid_stdname;
     dev->pixel_format_ch2       = data_from_user->pixel_format;
     dev->channel_select_ch2     = data_from_user->channel_select;
     dev->command_ch2            = data_from_user->command;
-    
-    
+
+
     switch(command)
-    {   
-        case UPSTREAM_START_VIDEO:
-            cx25821_start_upstream_video_ch2(dev, data_from_user);
-            break;
-
-        case UPSTREAM_STOP_VIDEO:   
-            cx25821_stop_upstream_video_ch2(dev);
-            break;            
+    {
+       case UPSTREAM_START_VIDEO:
+           cx25821_start_upstream_video_ch2(dev, data_from_user);
+           break;
+
+       case UPSTREAM_STOP_VIDEO:
+           cx25821_stop_upstream_video_ch2(dev);
+           break;
     }
-       
+
     return 0;
 }
 
@@ -318,18 +318,18 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     int err;
 
-    if (fh) 
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     dprintk(2, "%s()\n", __func__);
     err = vidioc_try_fmt_vid_cap(file, priv, f);
 
     if (0 != err)
-        return err;
+       return err;
     fh->fmt        = format_by_fourcc(f->fmt.pix.pixelformat);
     fh->width      = f->fmt.pix.width;
     fh->height     = f->fmt.pix.height;
@@ -366,11 +366,11 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     int err;
 
-    if (fh) 
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     return 0;
@@ -384,7 +384,7 @@ static const struct v4l2_file_operations video_fops = {
     .read          = video_read,
     .poll          = video_poll,
     .mmap          = video_mmap,
-    .ioctl         = video_ioctl_upstream10, 
+    .ioctl         = video_ioctl_upstream10,
 };
 
 static const struct v4l2_ioctl_ops video_ioctl_ops = {
index 7832fd1..947ea5b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -40,37 +40,37 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
     dprintk(2, "jmp to stopper (0x%x)\n", buf->risc.jmp[1]);
 
     if (!list_empty(&q->queued)) {
-        list_add_tail(&buf->vb.queue, &q->queued);
-        buf->vb.state = VIDEOBUF_QUEUED;
-        dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
+       list_add_tail(&buf->vb.queue, &q->queued);
+       buf->vb.state = VIDEOBUF_QUEUED;
+       dprintk(2, "[%p/%d] buffer_queue - append to queued\n", buf, buf->vb.i);
 
     } else if (list_empty(&q->active)) {
-        list_add_tail(&buf->vb.queue, &q->active);
-        cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH09]);
-        buf->vb.state = VIDEOBUF_ACTIVE;
-        buf->count    = q->count++;
-        mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
-        dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
-                                buf, buf->vb. i, buf->count, q->count);
+       list_add_tail(&buf->vb.queue, &q->active);
+       cx25821_start_video_dma(dev, q, buf, &dev->sram_channels[SRAM_CH09]);
+       buf->vb.state = VIDEOBUF_ACTIVE;
+       buf->count    = q->count++;
+       mod_timer(&q->timeout, jiffies+BUFFER_TIMEOUT);
+       dprintk(2, "[%p/%d] buffer_queue - first active, buf cnt = %d, q->count = %d\n",
+                               buf, buf->vb. i, buf->count, q->count);
     } else {
-        prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
-        if (prev->vb.width  == buf->vb.width  &&
-            prev->vb.height == buf->vb.height &&
-            prev->fmt       == buf->fmt) {
-            list_add_tail(&buf->vb.queue, &q->active);
-            buf->vb.state = VIDEOBUF_ACTIVE;
-            buf->count    = q->count++;
-            prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
-
-            /* 64 bit bits 63-32 */
-            prev->risc.jmp[2] = cpu_to_le32(0);
-            dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
-
-        } else {
-            list_add_tail(&buf->vb.queue, &q->queued);
-            buf->vb.state = VIDEOBUF_QUEUED;
-            dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
-        }
+       prev = list_entry(q->active.prev, struct cx25821_buffer, vb.queue);
+       if (prev->vb.width  == buf->vb.width  &&
+           prev->vb.height == buf->vb.height &&
+           prev->fmt       == buf->fmt) {
+           list_add_tail(&buf->vb.queue, &q->active);
+           buf->vb.state = VIDEOBUF_ACTIVE;
+           buf->count    = q->count++;
+           prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
+
+           /* 64 bit bits 63-32 */
+           prev->risc.jmp[2] = cpu_to_le32(0);
+           dprintk(2, "[%p/%d] buffer_queue - append to active, buf->count=%d\n",  buf, buf->vb.i, buf->count);
+
+       } else {
+           list_add_tail(&buf->vb.queue, &q->queued);
+           buf->vb.state = VIDEOBUF_QUEUED;
+           dprintk(2, "[%p/%d] buffer_queue - first queued\n", buf, buf->vb.i);
+       }
     }
 
     if (list_empty(&q->active))
@@ -99,18 +99,18 @@ static int video_open(struct file *file)
     lock_kernel();
     list_for_each(list, &cx25821_devlist)
     {
-        h = list_entry(list, struct cx25821_dev, devlist);
+       h = list_entry(list, struct cx25821_dev, devlist);
 
-        if (h->video_dev[SRAM_CH09] && h->video_dev[SRAM_CH09]->minor == minor)
-        {
-            dev  = h;
-            type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        }
+       if (h->video_dev[SRAM_CH09] && h->video_dev[SRAM_CH09]->minor == minor)
+       {
+           dev  = h;
+           type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       }
     }
 
     if (NULL == dev) {
-        unlock_kernel();
-        return -ENODEV;
+       unlock_kernel();
+       return -ENODEV;
     }
 
     printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
@@ -118,8 +118,8 @@ static int video_open(struct file *file)
     /* allocate + initialize per filehandle data */
     fh = kzalloc(sizeof(*fh), GFP_KERNEL);
     if (NULL == fh) {
-        unlock_kernel();
-        return -ENOMEM;
+       unlock_kernel();
+       return -ENOMEM;
     }
 
     file->private_data = fh;
@@ -128,9 +128,9 @@ static int video_open(struct file *file)
     fh->width    = 720;
 
     if(dev->tvnorm & V4L2_STD_PAL_BG || dev->tvnorm & V4L2_STD_PAL_DK)
-        fh->height = 576;
+       fh->height = 576;
     else
-        fh->height = 480;
+       fh->height = 480;
 
     dev->channel_opened = 8;
     fh->fmt             = format_by_fourcc(V4L2_PIX_FMT_YUYV);
@@ -138,11 +138,11 @@ static int video_open(struct file *file)
     v4l2_prio_open(&dev->prio,&fh->prio);
 
     videobuf_queue_sg_init(&fh->vidq, &cx25821_video_qops,
-                &dev->pci->dev, &dev->slock,
-                V4L2_BUF_TYPE_VIDEO_CAPTURE,
-                V4L2_FIELD_INTERLACED,
-                sizeof(struct cx25821_buffer),
-                fh);
+               &dev->pci->dev, &dev->slock,
+               V4L2_BUF_TYPE_VIDEO_CAPTURE,
+               V4L2_FIELD_INTERLACED,
+               sizeof(struct cx25821_buffer),
+               fh);
 
     dprintk(1, "post videobuf_queue_init()\n");
     unlock_kernel();
@@ -156,15 +156,15 @@ static ssize_t video_read(struct file *file, char __user *data, size_t count, lo
 
     switch (fh->type)
     {
-        case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-            if (res_locked(fh->dev, RESOURCE_VIDEO9))
-                return -EBUSY;
+       case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+           if (res_locked(fh->dev, RESOURCE_VIDEO9))
+               return -EBUSY;
 
-            return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
+           return videobuf_read_one(&fh->vidq, data, count, ppos, file->f_flags & O_NONBLOCK);
 
-        default:
-            BUG();
-            return 0;
+       default:
+           BUG();
+           return 0;
     }
 }
 
@@ -174,21 +174,21 @@ static unsigned int video_poll(struct file *file, struct poll_table_struct *wait
     struct cx25821_buffer *buf;
 
     if (res_check(fh, RESOURCE_VIDEO9)) {
-        /* streaming capture */
-        if (list_empty(&fh->vidq.stream))
-            return POLLERR;
-        buf = list_entry(fh->vidq.stream.next,
-            struct cx25821_buffer, vb.stream);
+       /* streaming capture */
+       if (list_empty(&fh->vidq.stream))
+           return POLLERR;
+       buf = list_entry(fh->vidq.stream.next,
+           struct cx25821_buffer, vb.stream);
     } else {
-        /* read() capture */
-        buf = (struct cx25821_buffer *)fh->vidq.read_buf;
-        if (NULL == buf)
-            return POLLERR;
+       /* read() capture */
+       buf = (struct cx25821_buffer *)fh->vidq.read_buf;
+       if (NULL == buf)
+           return POLLERR;
     }
 
     poll_wait(file, &buf->vb.done, wait);
     if (buf->vb.state == VIDEOBUF_DONE || buf->vb.state == VIDEOBUF_ERROR)
-        return POLLIN|POLLRDNORM;
+       return POLLIN|POLLRDNORM;
     return 0;
 }
 
@@ -199,17 +199,17 @@ static int video_release(struct file *file)
     struct cx25821_dev *dev = fh->dev;
 
     //stop the risc engine and fifo
-    //cx_write(channel9->dma_ctl, 0); 
+    //cx_write(channel9->dma_ctl, 0);
 
     /* stop video capture */
     if (res_check(fh, RESOURCE_VIDEO9)) {
-        videobuf_queue_cancel(&fh->vidq);
-        res_free(dev, fh, RESOURCE_VIDEO9);
+       videobuf_queue_cancel(&fh->vidq);
+       res_free(dev, fh, RESOURCE_VIDEO9);
     }
 
     if (fh->vidq.read_buf) {
-        buffer_release(&fh->vidq, fh->vidq.read_buf);
-        kfree(fh->vidq.read_buf);
+       buffer_release(&fh->vidq, fh->vidq.read_buf);
+       kfree(fh->vidq.read_buf);
     }
 
     videobuf_mmap_free(&fh->vidq);
@@ -230,17 +230,17 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
     if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(i != fh->type))
     {
-        return -EINVAL;
+       return -EINVAL;
     }
 
     if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO9))))
     {
-        return -EBUSY;
+       return -EBUSY;
     }
 
     return videobuf_streamon(get_queue(fh));
@@ -253,62 +253,62 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
     int err, res;
 
     if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-        return -EINVAL;
+       return -EINVAL;
     if (i != fh->type)
-        return -EINVAL;
+       return -EINVAL;
 
     res = get_resource(fh, RESOURCE_VIDEO9);
     err = videobuf_streamoff(get_queue(fh));
     if (err < 0)
-        return err;
+       return err;
     res_free(dev, fh, res);
     return 0;
 }
 
-static long video_ioctl_upstream9(struct file *file, unsigned int cmd, unsigned long arg)    
-{   
+
+static long video_ioctl_upstream9(struct file *file, unsigned int cmd, unsigned long arg)
+{
     struct cx25821_fh *fh = file->private_data;
     struct cx25821_dev *dev = fh->dev;
     int command = 0;
     struct upstream_user_struct *data_from_user;
-        
-    
+
+
     data_from_user = (struct upstream_user_struct *)arg;
-    
+
     if( !data_from_user )
     {
-        printk("cx25821 in %s(): Upstream data is INVALID. Returning.\n", __func__);
-        return 0;
+       printk("cx25821 in %s(): Upstream data is INVALID. Returning.\n", __func__);
+       return 0;
     }
-      
-    command = data_from_user->command;    
-        
+
+    command = data_from_user->command;
+
     if( command != UPSTREAM_START_VIDEO && command != UPSTREAM_STOP_VIDEO )
     {
-        return 0;
+       return 0;
     }
-    
-    
+
+
     dev->input_filename      = data_from_user->input_filename;
     dev->input_audiofilename = data_from_user->input_filename;
     dev->vid_stdname         = data_from_user->vid_stdname;
     dev->pixel_format        = data_from_user->pixel_format;
     dev->channel_select      = data_from_user->channel_select;
     dev->command             = data_from_user->command;
-    
+
+
     switch(command)
-    {   
-        case UPSTREAM_START_VIDEO:
-            cx25821_start_upstream_video_ch1(dev, data_from_user);
-            break;
-            
-        case UPSTREAM_STOP_VIDEO:   
-            cx25821_stop_upstream_video_ch1(dev);
-            break;            
+    {
+       case UPSTREAM_START_VIDEO:
+           cx25821_start_upstream_video_ch1(dev, data_from_user);
+           break;
+
+       case UPSTREAM_STOP_VIDEO:
+           cx25821_stop_upstream_video_ch1(dev);
+           break;
     }
-       
+
     return 0;
 }
 
@@ -319,18 +319,18 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     int err;
 
-    if (fh) 
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     dprintk(2, "%s()\n", __func__);
     err = vidioc_try_fmt_vid_cap(file, priv, f);
 
     if (0 != err)
-        return err;
+       return err;
     fh->fmt        = format_by_fourcc(f->fmt.pix.pixelformat);
     fh->width      = f->fmt.pix.width;
     fh->height     = f->fmt.pix.height;
@@ -365,11 +365,11 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
     struct cx25821_dev *dev  = ((struct cx25821_fh *)priv)->dev;
     struct cx25821_fh *fh = priv;
     int err;
-    if (fh) 
+    if (fh)
     {
-        err = v4l2_prio_check(&dev->prio, &fh->prio);
-        if (0 != err)
-            return err;
+       err = v4l2_prio_check(&dev->prio, &fh->prio);
+       if (0 != err)
+           return err;
     }
 
     return 0;
@@ -382,7 +382,7 @@ static const struct v4l2_file_operations video_fops = {
     .read          = video_read,
     .poll          = video_poll,
     .mmap          = video_mmap,
-    .ioctl         = video_ioctl_upstream9,  
+    .ioctl         = video_ioctl_upstream9,
 };
 
 static const struct v4l2_ioctl_ops video_ioctl_ops = {
index 578cdd5..94f16ce 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for the Conexant CX25821 PCIe bridge
  *
- *  Copyright (C) 2009 Conexant Systems Inc. 
+ *  Copyright (C) 2009 Conexant Systems Inc.
  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
  *  Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
  *
@@ -35,7 +35,7 @@
 #include <linux/smp_lock.h>
 
 #include <media/v4l2-common.h>
-#include <media/v4l2-device.h>  
+#include <media/v4l2-device.h>
 #include <media/tuner.h>
 #include <media/tveeprom.h>
 #include <media/videobuf-dma-sg.h>
@@ -62,7 +62,7 @@
 #define FALSE   0
 #define LINE_SIZE_D1    1440
 
-// Number of decoders and encoders 
+// Number of decoders and encoders
 #define MAX_DECODERS            8
 #define MAX_ENCODERS            2
 #define QUAD_DECODERS           4
@@ -91,7 +91,7 @@
 #define UNKNOWN_BOARD       0
 #define CX25821_BOARD        1
 
-/* Currently supported by the driver */ 
+/* Currently supported by the driver */
 #define CX25821_NORMS (\
     V4L2_STD_NTSC_M |  V4L2_STD_NTSC_M_JP | V4L2_STD_NTSC_M_KR | \
     V4L2_STD_PAL_BG |  V4L2_STD_PAL_DK    |  V4L2_STD_PAL_I    | \
@@ -292,7 +292,7 @@ struct cx25821_dev {
     struct cx25821_data        timeout_data[MAX_VID_CHANNEL_NUM];
 
     /* Analog Audio Upstream */
-    int _audio_is_running;  
+    int _audio_is_running;
     int _audiopixel_format;
     int _is_first_audio_frame;
     int _audiofile_status;
@@ -311,7 +311,7 @@ struct cx25821_dev {
     unsigned int _audiodata_buf_size;
     __le32 *     _audiodata_buf_virt_addr;
     dma_addr_t   _audiodata_buf_phys_addr;
-    char *_audiofilename;           
+    char *_audiofilename;
 
     /* V4l */
     u32                        freq;
@@ -322,7 +322,7 @@ struct cx25821_dev {
 
     struct cx25821_dmaqueue    vidq[MAX_VID_CHANNEL_NUM];
     spinlock_t                 slock;
-    
+
     /* Video Upstream */
     int _line_size;
     int _prog_cnt;
@@ -343,8 +343,8 @@ struct cx25821_dev {
     unsigned int _data_buf_size;
     __le32 *     _data_buf_virt_addr;
     dma_addr_t   _data_buf_phys_addr;
-    char * _filename;       
-    char * _defaultname;      
+    char * _filename;
+    char * _defaultname;
 
 
     int _line_size_ch2;
@@ -366,8 +366,8 @@ struct cx25821_dev {
     unsigned int _data_buf_size_ch2;
     __le32 *     _data_buf_virt_addr_ch2;
     dma_addr_t   _data_buf_phys_addr_ch2;
-    char * _filename_ch2;    
-    char * _defaultname_ch2; 
+    char * _filename_ch2;
+    char * _defaultname_ch2;
 
     /* MPEG Encoder ONLY settings */
     u32                        cx23417_mailbox;
@@ -375,26 +375,26 @@ struct cx25821_dev {
     struct video_device        *v4l_device;
     atomic_t                   v4l_reader_count;
     struct cx25821_tvnorm      encodernorm;
-    
+
     u32                        upstream_riscbuf_size;
     u32                        upstream_databuf_size;
     u32                        upstream_riscbuf_size_ch2;
     u32                        upstream_databuf_size_ch2;
     u32                        audio_upstream_riscbuf_size;
     u32                        audio_upstream_databuf_size;
-    int                        _isNTSC;    
-    int                        _frame_index;     
-    int                        _audioframe_index;  
-    struct workqueue_struct *  _irq_queues;       
-    struct work_struct         _irq_work_entry;         
-    struct workqueue_struct *  _irq_queues_ch2;       
-    struct work_struct         _irq_work_entry_ch2;         
-    struct workqueue_struct *  _irq_audio_queues;       
-    struct work_struct         _audio_work_entry; 
+    int                        _isNTSC;
+    int                        _frame_index;
+    int                        _audioframe_index;
+    struct workqueue_struct *  _irq_queues;
+    struct work_struct         _irq_work_entry;
+    struct workqueue_struct *  _irq_queues_ch2;
+    struct work_struct         _irq_work_entry_ch2;
+    struct workqueue_struct *  _irq_audio_queues;
+    struct work_struct         _audio_work_entry;
     char *input_filename;
     char *input_filename_ch2;
-    int  _frame_index_ch2;  
-    int  _isNTSC_ch2;    
+    int  _frame_index_ch2;
+    int  _isNTSC_ch2;
     char *vid_stdname_ch2;
     int pixel_format_ch2;
     int channel_select_ch2;
@@ -439,7 +439,7 @@ static inline struct cx25821_dev *get_cx25821(struct v4l2_device *v4l2_dev)
 
 #define cx25821_call_all(dev, o, f, args...) \
     v4l2_device_call_all(&dev->v4l2_dev, 0, o, f, ##args)
-    
+
 extern struct list_head cx25821_devlist;
 extern struct cx25821_board cx25821_boards[];
 extern struct cx25821_subid cx25821_subids[];
@@ -487,16 +487,16 @@ struct sram_channel {
     u32  aud_cfg;
     u32  fld_aud_fifo_en;
     u32  fld_aud_risc_en;
-    
+
     //For Upstream Video
     u32  vid_fmt_ctl;
     u32  vid_active_ctl1;
     u32  vid_active_ctl2;
     u32  vid_cdt_size;
-    
+
     u32  vip_ctl;
     u32  pix_frmt;
-    u32  jumponly;    
+    u32  jumponly;
     u32  irq_bit;
 };
 extern struct sram_channel cx25821_sram_channels[];
@@ -529,9 +529,9 @@ extern int  cx25821_i2c_write(struct cx25821_i2c *bus, u16 reg_addr, int value);
 extern int  cx25821_i2c_unregister(struct cx25821_i2c *bus);
 extern void cx25821_gpio_init(struct cx25821_dev *dev);
 extern void cx25821_set_gpiopin_direction( struct cx25821_dev *dev,
-                                           int    pin_number,
-                                           int    pin_logic_value);
-                                 
+                                          int    pin_number,
+                                          int    pin_logic_value);
+
 extern int  medusa_video_init(struct cx25821_dev *dev);
 extern int  medusa_set_videostandard(struct cx25821_dev *dev);
 extern void medusa_set_resolution(struct cx25821_dev *dev, int width, int decoder_select);
@@ -543,18 +543,18 @@ extern int  medusa_set_saturation(struct cx25821_dev *dev, int saturation, int d
 extern int  cx25821_sram_channel_setup(struct cx25821_dev *dev, struct sram_channel *ch, unsigned int bpl, u32 risc);
 
 extern int cx25821_risc_buffer(struct pci_dev *pci, struct btcx_riscmem *risc,
-                   struct scatterlist *sglist, 
-                   unsigned int top_offset,
-                   unsigned int bottom_offset, 
-                   unsigned int bpl,
-                   unsigned int padding, 
-                   unsigned int lines);
+                  struct scatterlist *sglist,
+                  unsigned int top_offset,
+                  unsigned int bottom_offset,
+                  unsigned int bpl,
+                  unsigned int padding,
+                  unsigned int lines);
 extern int cx25821_risc_databuffer_audio(struct pci_dev *pci,
-                   struct btcx_riscmem *risc,
-                   struct scatterlist *sglist,
-                   unsigned int bpl,
-                   unsigned int lines,
-                   unsigned int lpi);           
+                  struct btcx_riscmem *risc,
+                  struct scatterlist *sglist,
+                  unsigned int bpl,
+                  unsigned int lines,
+                  unsigned int lpi);
 extern void cx25821_free_buffer(struct videobuf_queue *q, struct cx25821_buffer *buf);
 extern int cx25821_risc_stopper(struct pci_dev *pci, struct btcx_riscmem *risc,u32 reg, u32 mask, u32 value);
 extern void cx25821_sram_channel_dump(struct cx25821_dev *dev, struct sram_channel *ch);
@@ -565,26 +565,26 @@ extern struct cx25821_dev* cx25821_dev_get(struct pci_dev *pci);
 extern void cx25821_print_irqbits(char *name, char *tag, char **strings, int len, u32 bits, u32 mask);
 extern void cx25821_dev_unregister(struct cx25821_dev *dev);
 extern int cx25821_sram_channel_setup_audio(struct cx25821_dev *dev,
-                   struct sram_channel *ch,
-                   unsigned int bpl, u32 risc);
-                   
+                  struct sram_channel *ch,
+                  unsigned int bpl, u32 risc);
+
 extern int  cx25821_vidupstream_init_ch1(struct cx25821_dev *dev, int channel_select, int pixel_format);
 extern int  cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select, int pixel_format);
 extern int  cx25821_audio_upstream_init(struct cx25821_dev *dev, int channel_select);
-extern void cx25821_free_mem_upstream_ch1(struct cx25821_dev *dev);            
-extern void cx25821_free_mem_upstream_ch2(struct cx25821_dev *dev);             
-extern void cx25821_free_mem_upstream_audio(struct cx25821_dev *dev);   
-extern void cx25821_start_upstream_video_ch1(struct cx25821_dev *dev, struct upstream_user_struct *up_data);  
-extern void cx25821_start_upstream_video_ch2(struct cx25821_dev *dev, struct upstream_user_struct *up_data);  
-extern void cx25821_start_upstream_audio(struct cx25821_dev *dev, struct upstream_user_struct *up_data);    
-extern void cx25821_stop_upstream_video_ch1(struct cx25821_dev *dev);    
-extern void cx25821_stop_upstream_video_ch2(struct cx25821_dev *dev);  
-extern void cx25821_stop_upstream_audio(struct cx25821_dev *dev); 
+extern void cx25821_free_mem_upstream_ch1(struct cx25821_dev *dev);
+extern void cx25821_free_mem_upstream_ch2(struct cx25821_dev *dev);
+extern void cx25821_free_mem_upstream_audio(struct cx25821_dev *dev);
+extern void cx25821_start_upstream_video_ch1(struct cx25821_dev *dev, struct upstream_user_struct *up_data);
+extern void cx25821_start_upstream_video_ch2(struct cx25821_dev *dev, struct upstream_user_struct *up_data);
+extern void cx25821_start_upstream_audio(struct cx25821_dev *dev, struct upstream_user_struct *up_data);
+extern void cx25821_stop_upstream_video_ch1(struct cx25821_dev *dev);
+extern void cx25821_stop_upstream_video_ch2(struct cx25821_dev *dev);
+extern void cx25821_stop_upstream_audio(struct cx25821_dev *dev);
 extern int  cx25821_sram_channel_setup_upstream( struct cx25821_dev *dev, struct sram_channel *ch, unsigned int bpl, u32 risc);
 extern void cx25821_set_pixel_format(struct cx25821_dev *dev, int channel, u32 format);
 extern void cx25821_videoioctl_unregister(struct cx25821_dev *dev);
 extern struct video_device *cx25821_vdev_init(struct cx25821_dev *dev,
-                    struct pci_dev *pci,
-                    struct video_device *template,
-                    char *type);
+                   struct pci_dev *pci,
+                   struct video_device *template,
+                   char *type);
 #endif