diff options
author | Sami Kiminki <skiminki@nvidia.com> | 2014-05-09 16:57:13 +0300 |
---|---|---|
committer | Riham Haidar <rhaidar@nvidia.com> | 2014-05-28 13:43:22 -0700 |
commit | cb0c6f039bd815838731443b61d1ece030689f68 (patch) | |
tree | 61e5c4bee5787d17b3e2080d62ec33b75a37aadb /drivers/video/tegra/dc/ext | |
parent | 234701b0ada6bb8e92aab412887e42c84bf26417 (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.c | 8 |
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; |