static void dmm_txn_append(struct dmm_txn *txn, struct pat_area *area,
                struct page **pages, uint32_t npages, uint32_t roll)
 {
-       dma_addr_t pat_pa = 0;
+       dma_addr_t pat_pa = 0, data_pa = 0;
        uint32_t *data;
        struct pat *pat;
        struct refill_engine *engine = txn->engine_handle;
                        .lut_id = engine->tcm->lut_id,
                };
 
-       data = alloc_dma(txn, 4*i, &pat->data_pa);
+       data = alloc_dma(txn, 4*i, &data_pa);
+       /* FIXME: what if data_pa is more than 32-bit ? */
+       pat->data_pa = data_pa;
 
        while (i--) {
                int n = i + roll;
 
                        omap_obj->paddr = tiler_ssptr(block);
                        omap_obj->block = block;
 
-                       DBG("got paddr: %08x", omap_obj->paddr);
+                       DBG("got paddr: %pad", &omap_obj->paddr);
                }
 
                omap_obj->paddr_cnt++;
 
        off = drm_vma_node_start(&obj->vma_node);
 
-       seq_printf(m, "%08x: %2d (%2d) %08llx %08Zx (%2d) %p %4d",
+       seq_printf(m, "%08x: %2d (%2d) %08llx %pad (%2d) %p %4d",
                        omap_obj->flags, obj->name, obj->refcount.refcount.counter,
-                       off, omap_obj->paddr, omap_obj->paddr_cnt,
+                       off, &omap_obj->paddr, omap_obj->paddr_cnt,
                        omap_obj->vaddr, omap_obj->roll);
 
        if (omap_obj->flags & OMAP_BO_TILED) {
                        entry->paddr = tiler_ssptr(block);
                        entry->block = block;
 
-                       DBG("%d:%d: %dx%d: paddr=%08x stride=%d", i, j, w, h,
-                                       entry->paddr,
+                       DBG("%d:%d: %dx%d: paddr=%pad stride=%d", i, j, w, h,
+                                       &entry->paddr,
                                        usergart[i].stride_pfn << PAGE_SHIFT);
                }
        }
 
        DBG("%dx%d -> %dx%d (%d)", info->width, info->height,
                        info->out_width, info->out_height,
                        info->screen_width);
-       DBG("%d,%d %08x %08x", info->pos_x, info->pos_y,
-                       info->paddr, info->p_uv_addr);
+       DBG("%d,%d %pad %pad", info->pos_x, info->pos_y,
+                       &info->paddr, &info->p_uv_addr);
 
        /* TODO: */
        ilace = false;