Staging: dt3155: remove remaining 32-bit and 8-bit global registers
[pandora-kernel.git] / drivers / staging / dt3155 / dt3155_drv.c
index 6d35a6f..fed7e62 100644 (file)
@@ -140,6 +140,8 @@ static void quick_stop (int minor)
 
   // TODO: scott was here
 #if 1
+  INT_CSR_R int_csr_r;
+
   int_csr_r.reg = readl(dt3155_lbase[minor] + INT_CSR);
   /* disable interrupts */
   int_csr_r.fld.FLD_END_EVE_EN = 0;
@@ -175,6 +177,10 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs)
   void __iomem *mmio;
   struct dt3155_status *dts;
   struct dt3155_fbuffer *fb;
+  INT_CSR_R int_csr_r;
+  CSR1_R csr1_r;
+  I2C_EVEN_CSR i2c_even_csr;
+  I2C_ODD_CSR i2c_odd_csr;
 
   /* find out who issued the interrupt */
   for (index = 0; index < ndevices; index++) {
@@ -411,35 +417,30 @@ static void dt3155_init_isr(int minor)
 {
   struct dt3155_status *dts = &dt3155_status[minor];
   struct dt3155_fbuffer *fb = &dts->fbuffer;
-  const u32 stride = dts->config.cols;
   void __iomem *mmio = dt3155_lbase[minor];
+  u32 dma_addr = fb->frame_info[fb->active_buf].addr;
+  const u32 stride = dts->config.cols;
+  CSR1_R csr1_r;
+  INT_CSR_R int_csr_r;
+  I2C_CSR2 i2c_csr2;
 
   switch (dts->state & DT3155_STATE_MODE)
     {
     case DT3155_STATE_FLD:
       {
-       even_dma_start_r  = fb->frame_info[fb->active_buf].addr;
-       even_dma_stride_r = 0;
-       odd_dma_stride_r  = 0;
-
-       writel(even_dma_start_r, mmio + EVEN_DMA_START);
-       writel(even_dma_stride_r, mmio + EVEN_DMA_STRIDE);
-       writel(odd_dma_stride_r, mmio + ODD_DMA_STRIDE);
+       writel(dma_addr, mmio + EVEN_DMA_START);
+       writel(0, mmio + EVEN_DMA_STRIDE);
+       writel(0, mmio + ODD_DMA_STRIDE);
        break;
       }
 
     case DT3155_STATE_FRAME:
     default:
       {
-       even_dma_start_r  = fb->frame_info[fb->active_buf].addr;
-       odd_dma_start_r   =  even_dma_start_r + stride;
-       even_dma_stride_r =  stride;
-       odd_dma_stride_r  =  stride;
-
-       writel(even_dma_start_r, mmio + EVEN_DMA_START);
-       writel(odd_dma_start_r, mmio + ODD_DMA_START);
-       writel(even_dma_stride_r, mmio + EVEN_DMA_STRIDE);
-       writel(odd_dma_stride_r, mmio + ODD_DMA_STRIDE);
+       writel(dma_addr, mmio + EVEN_DMA_START);
+       writel(dma_addr + stride, mmio + ODD_DMA_START);
+       writel(stride, mmio + EVEN_DMA_STRIDE);
+       writel(stride, mmio + ODD_DMA_STRIDE);
        break;
       }
     }
@@ -694,8 +695,7 @@ static int dt3155_open(struct inode* inode, struct file* filep)
   dt3155_flush(minor);
 
   /* Disable ALL interrupts */
-  int_csr_r.reg = 0;
-  writel(int_csr_r.reg, dt3155_lbase[minor] + INT_CSR);
+  writel(0, dt3155_lbase[minor] + INT_CSR);
 
   init_waitqueue_head(&(dt3155_read_wait_queue[minor]));
 
@@ -1027,12 +1027,11 @@ int init_module(void)
     }
 
   /* Disable ALL interrupts */
-  int_csr_r.reg = 0;
   for( index = 0;  index < ndevices;  index++)
     {
       dts = &dt3155_status[index];
 
-      writel(int_csr_r.reg, dt3155_lbase[index] + INT_CSR);
+      writel(0, dt3155_lbase[index] + INT_CSR);
       if(dts->device_installed)
        {
          /*