if (IS_ERR(isp->mmio_base[res]))
                return PTR_ERR(isp->mmio_base[res]);
 
-       isp->mmio_base_phys[res] = mem->start;
+       if (res == OMAP3_ISP_IOMEM_HIST)
+               isp->mmio_hist_base_phys = mem->start;
 
        return 0;
 }
 
  * @irq_num: Currently used IRQ number.
  * @mmio_base: Array with kernel base addresses for ioremapped ISP register
  *             regions.
- * @mmio_base_phys: Array with physical L4 bus addresses for ISP register
- *                  regions.
+ * @mmio_hist_base_phys: Physical L4 bus address for ISP hist block register
+ *                      region.
  * @mapping: IOMMU mapping
  * @stat_lock: Spinlock for handling statistics
  * @isp_mutex: Mutex for serializing requests to ISP.
        unsigned int irq_num;
 
        void __iomem *mmio_base[OMAP3_ISP_IOMEM_LAST];
-       unsigned long mmio_base_phys[OMAP3_ISP_IOMEM_LAST];
+       unsigned long mmio_hist_base_phys;
 
        struct dma_iommu_mapping *mapping;
 
 
        omap3isp_flush(hist->isp);
 
        memset(&cfg, 0, sizeof(cfg));
-       cfg.src_addr = hist->isp->mmio_base_phys[OMAP3_ISP_IOMEM_HIST]
-                    + ISPHIST_DATA;
+       cfg.src_addr = hist->isp->mmio_hist_base_phys + ISPHIST_DATA;
        cfg.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
        cfg.src_maxburst = hist->buf_size / 4;