struct isi_dma_desc {
        struct list_head list;
        struct fbd *p_fbd;
-       u32 fbd_phys;
+       dma_addr_t fbd_phys;
 };
 
 /* Frame buffer data */
 
        /* Allocate descriptors for dma buffer use */
        struct fbd                      *p_fb_descriptors;
-       u32                             fb_descriptors_phys;
+       dma_addr_t                      fb_descriptors_phys;
        struct                          list_head dma_desc_head;
        struct isi_dma_desc             dma_desc[MAX_BUFFER_NUM];
 
                isi->active = list_entry(isi->video_buffer_list.next,
                                        struct frame_buffer, list);
                isi_writel(isi, ISI_DMA_C_DSCR,
-                       isi->active->p_dma_desc->fbd_phys);
+                       (u32)isi->active->p_dma_desc->fbd_phys);
                isi_writel(isi, ISI_DMA_C_CTRL,
                        ISI_DMA_CTRL_FETCH | ISI_DMA_CTRL_DONE);
                isi_writel(isi, ISI_DMA_CHER, ISI_DMA_CHSR_C_CH);
                return;
        }
 
-       isi_writel(isi, ISI_DMA_C_DSCR, buffer->p_dma_desc->fbd_phys);
+       isi_writel(isi, ISI_DMA_C_DSCR, (u32)buffer->p_dma_desc->fbd_phys);
        isi_writel(isi, ISI_DMA_C_CTRL, ISI_DMA_CTRL_FETCH | ISI_DMA_CTRL_DONE);
        isi_writel(isi, ISI_DMA_CHER, ISI_DMA_CHSR_C_CH);