summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/dc/ext
diff options
context:
space:
mode:
authorSami Kiminki <skiminki@nvidia.com>2014-05-09 16:57:13 +0300
committerRiham Haidar <rhaidar@nvidia.com>2014-05-28 13:43:22 -0700
commitcb0c6f039bd815838731443b61d1ece030689f68 (patch)
tree61e5c4bee5787d17b3e2080d62ec33b75a37aadb /drivers/video/tegra/dc/ext
parent234701b0ada6bb8e92aab412887e42c84bf26417 (diff)
video: tegra: dc: Handle missing DMA address
If DMA address is not defined, use the physical address. Bug 1500983 Change-Id: I73f41c32ffbf8bd4cdcb0500acf9a9a884e82231 Signed-off-by: Sami Kiminki <skiminki@nvidia.com> (cherry picked from commit f4f571b9e66c82001b23927b4c70e75d3f1db007) Reviewed-on: http://git-master/r/415237 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/video/tegra/dc/ext')
-rw-r--r--drivers/video/tegra/dc/ext/util.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/video/tegra/dc/ext/util.c b/drivers/video/tegra/dc/ext/util.c
index 398f65ac1126..d39ff5a832dc 100644
--- a/drivers/video/tegra/dc/ext/util.c
+++ b/drivers/video/tegra/dc/ext/util.c
@@ -30,6 +30,7 @@ int tegra_dc_ext_pin_window(struct tegra_dc_ext_user *user, u32 fd,
{
struct tegra_dc_ext *ext = user->ext;
struct tegra_dc_dmabuf *dc_dmabuf;
+ dma_addr_t dma_addr;
*dc_buf = NULL;
*phys_addr = -1;
@@ -53,7 +54,12 @@ int tegra_dc_ext_pin_window(struct tegra_dc_ext_user *user, u32 fd,
if (IS_ERR_OR_NULL(dc_dmabuf->sgt))
goto sgt_fail;
- *phys_addr = sg_dma_address(dc_dmabuf->sgt->sgl);
+ dma_addr = sg_dma_address(dc_dmabuf->sgt->sgl);
+ if (dma_addr)
+ *phys_addr = dma_addr;
+ else
+ *phys_addr = sg_phys(dc_dmabuf->sgt->sgl);
+
*dc_buf = dc_dmabuf;
return 0;