Skip to content

Commit b0cd515

Browse files
Sakari Ailusgregkh
authored andcommitted
media: ipu6: Fix DMA and physical address debugging messages for 32-bit
[ Upstream commit 199c204 ] Fix printing DMA and physical address printing on 32-bit platforms, by using correct types. Also cast DMA_BIT_MASK() result to dma_addr_t to make Clang happy. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Reviewed-by: Bingbu Cao <bingbu.cao@intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Stable-dep-of: daabc5c ("media: ipu6: not override the dma_ops of device in driver") Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 9beaff4 commit b0cd515

2 files changed

Lines changed: 21 additions & 14 deletions

File tree

drivers/media/pci/intel/ipu6/ipu6-dma.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -428,11 +428,12 @@ static int ipu6_dma_map_sg(struct device *dev, struct scatterlist *sglist,
428428

429429
iova_addr = iova->pfn_lo;
430430
for_each_sg(sglist, sg, count, i) {
431+
phys_addr_t iova_pa;
431432
int ret;
432433

433-
dev_dbg(dev, "mapping entry %d: iova 0x%llx phy %pad size %d\n",
434-
i, PFN_PHYS(iova_addr), &sg_dma_address(sg),
435-
sg_dma_len(sg));
434+
iova_pa = PFN_PHYS(iova_addr);
435+
dev_dbg(dev, "mapping entry %d: iova %pap phy %pap size %d\n",
436+
i, &iova_pa, &sg_dma_address(sg), sg_dma_len(sg));
436437

437438
ret = ipu6_mmu_map(mmu->dmap->mmu_info, PFN_PHYS(iova_addr),
438439
sg_dma_address(sg),

drivers/media/pci/intel/ipu6/ipu6-mmu.c

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,15 @@ static void page_table_dump(struct ipu6_mmu_info *mmu_info)
9797
for (l1_idx = 0; l1_idx < ISP_L1PT_PTES; l1_idx++) {
9898
u32 l2_idx;
9999
u32 iova = (phys_addr_t)l1_idx << ISP_L1PT_SHIFT;
100+
phys_addr_t l2_phys;
100101

101102
if (mmu_info->l1_pt[l1_idx] == mmu_info->dummy_l2_pteval)
102103
continue;
104+
105+
l2_phys = TBL_PHYS_ADDR(mmu_info->l1_pt[l1_idx];)
103106
dev_dbg(mmu_info->dev,
104-
"l1 entry %u; iovas 0x%8.8x-0x%8.8x, at %pa\n",
105-
l1_idx, iova, iova + ISP_PAGE_SIZE,
106-
TBL_PHYS_ADDR(mmu_info->l1_pt[l1_idx]));
107+
"l1 entry %u; iovas 0x%8.8x-0x%8.8x, at %pap\n",
108+
l1_idx, iova, iova + ISP_PAGE_SIZE, &l2_phys);
107109

108110
for (l2_idx = 0; l2_idx < ISP_L2PT_PTES; l2_idx++) {
109111
u32 *l2_pt = mmu_info->l2_pts[l1_idx];
@@ -227,7 +229,7 @@ static u32 *alloc_l1_pt(struct ipu6_mmu_info *mmu_info)
227229
}
228230

229231
mmu_info->l1_pt_dma = dma >> ISP_PADDR_SHIFT;
230-
dev_dbg(mmu_info->dev, "l1 pt %p mapped at %llx\n", pt, dma);
232+
dev_dbg(mmu_info->dev, "l1 pt %p mapped at %pad\n", pt, &dma);
231233

232234
return pt;
233235

@@ -330,8 +332,8 @@ static int __ipu6_mmu_map(struct ipu6_mmu_info *mmu_info, unsigned long iova,
330332
u32 iova_end = ALIGN(iova + size, ISP_PAGE_SIZE);
331333

332334
dev_dbg(mmu_info->dev,
333-
"mapping iova 0x%8.8x--0x%8.8x, size %zu at paddr 0x%10.10llx\n",
334-
iova_start, iova_end, size, paddr);
335+
"mapping iova 0x%8.8x--0x%8.8x, size %zu at paddr %pap\n",
336+
iova_start, iova_end, size, &paddr);
335337

336338
return l2_map(mmu_info, iova_start, paddr, size);
337339
}
@@ -361,10 +363,13 @@ static size_t l2_unmap(struct ipu6_mmu_info *mmu_info, unsigned long iova,
361363
for (l2_idx = (iova_start & ISP_L2PT_MASK) >> ISP_L2PT_SHIFT;
362364
(iova_start & ISP_L1PT_MASK) + (l2_idx << ISP_PAGE_SHIFT)
363365
< iova_start + size && l2_idx < ISP_L2PT_PTES; l2_idx++) {
366+
phys_addr_t pteval;
367+
364368
l2_pt = mmu_info->l2_pts[l1_idx];
369+
pteval = TBL_PHYS_ADDR(l2_pt[l2_idx]);
365370
dev_dbg(mmu_info->dev,
366-
"unmap l2 index %u with pteval 0x%10.10llx\n",
367-
l2_idx, TBL_PHYS_ADDR(l2_pt[l2_idx]));
371+
"unmap l2 index %u with pteval 0x%p\n",
372+
l2_idx, &pteval);
368373
l2_pt[l2_idx] = mmu_info->dummy_page_pteval;
369374

370375
clflush_cache_range((void *)&l2_pt[l2_idx],
@@ -525,9 +530,10 @@ static struct ipu6_mmu_info *ipu6_mmu_alloc(struct ipu6_device *isp)
525530
return NULL;
526531

527532
mmu_info->aperture_start = 0;
528-
mmu_info->aperture_end = DMA_BIT_MASK(isp->secure_mode ?
529-
IPU6_MMU_ADDR_BITS :
530-
IPU6_MMU_ADDR_BITS_NON_SECURE);
533+
mmu_info->aperture_end =
534+
(dma_addr_t)DMA_BIT_MASK(isp->secure_mode ?
535+
IPU6_MMU_ADDR_BITS :
536+
IPU6_MMU_ADDR_BITS_NON_SECURE);
531537
mmu_info->pgsize_bitmap = SZ_4K;
532538
mmu_info->dev = &isp->pdev->dev;
533539

0 commit comments

Comments
 (0)