summaryrefslogtreecommitdiff
path: root/tegra.c
diff options
context:
space:
mode:
Diffstat (limited to 'tegra.c')
-rw-r--r--tegra.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/tegra.c b/tegra.c
index fe20fad..2fac455 100644
--- a/tegra.c
+++ b/tegra.c
@@ -334,9 +334,6 @@ static int tegra_bo_unmap(struct bo *bo, struct map_info *data)
{
if (data->priv) {
struct tegra_private_map_data *priv = data->priv;
- if (priv->prot & PROT_WRITE)
- transfer_tiled_memory(bo, priv->tiled, priv->untiled,
- TEGRA_WRITE_TILED_BUFFER);
data->addr = priv->tiled;
free(priv->untiled);
free(priv);
@@ -346,6 +343,17 @@ static int tegra_bo_unmap(struct bo *bo, struct map_info *data)
return munmap(data->addr, data->length);
}
+static int tegra_bo_flush(struct bo *bo, struct map_info *data)
+{
+ struct tegra_private_map_data *priv = data->priv;
+
+ if (priv && priv->prot & PROT_WRITE)
+ transfer_tiled_memory(bo, priv->tiled, priv->untiled,
+ TEGRA_WRITE_TILED_BUFFER);
+
+ return 0;
+}
+
struct backend backend_tegra = {
.name = "tegra",
.init = tegra_init,
@@ -354,6 +362,7 @@ struct backend backend_tegra = {
.bo_import = tegra_bo_import,
.bo_map = tegra_bo_map,
.bo_unmap = tegra_bo_unmap,
+ .bo_flush = tegra_bo_flush,
};
#endif