|
@@ -368,6 +368,11 @@ static int tegra_vde_setup_hw_context(struct tegra_vde *vde,
|
|
|
tegra_vde_setup_iram_tables(vde, dpb_frames,
|
|
|
ctx->dpb_frames_nb - 1,
|
|
|
ctx->dpb_ref_frames_with_earlier_poc_nb);
|
|
|
+
|
|
|
+ /*
|
|
|
+ * The IRAM mapping is write-combine, ensure that CPU buffers have
|
|
|
+ * been flushed at this point.
|
|
|
+ */
|
|
|
wmb();
|
|
|
|
|
|
VDE_WR(0x00000000, vde->bsev + 0x8C);
|
|
@@ -542,15 +547,13 @@ static int tegra_vde_attach_dmabuf(struct device *dev,
|
|
|
}
|
|
|
|
|
|
if (dmabuf->size & (align_size - 1)) {
|
|
|
- dev_err(dev, "Unaligned dmabuf 0x%zX, "
|
|
|
- "should be aligned to 0x%zX\n",
|
|
|
+ dev_err(dev, "Unaligned dmabuf 0x%zX, should be aligned to 0x%zX\n",
|
|
|
dmabuf->size, align_size);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
if ((u64)offset + min_size > dmabuf->size) {
|
|
|
- dev_err(dev, "Too small dmabuf size %zu @0x%lX, "
|
|
|
- "should be at least %zu\n",
|
|
|
+ dev_err(dev, "Too small dmabuf size %zu @0x%lX, should be at least %zu\n",
|
|
|
dmabuf->size, offset, min_size);
|
|
|
return -EINVAL;
|
|
|
}
|
|
@@ -863,8 +866,7 @@ static int tegra_vde_ioctl_decode_h264(struct tegra_vde *vde,
|
|
|
macroblocks_nb = readl_relaxed(vde->sxe + 0xC8) & 0x1FFF;
|
|
|
read_bytes = bsev_ptr ? bsev_ptr - bitstream_data_addr : 0;
|
|
|
|
|
|
- dev_err(dev, "Decoding failed: "
|
|
|
- "read 0x%X bytes, %u macroblocks parsed\n",
|
|
|
+ dev_err(dev, "Decoding failed: read 0x%X bytes, %u macroblocks parsed\n",
|
|
|
read_bytes, macroblocks_nb);
|
|
|
|
|
|
ret = -EIO;
|