summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorKrishna Reddy <vdumpa@nvidia.com>2014-08-01 14:33:42 -0700
committerMatthew Pedro <mapedro@nvidia.com>2014-08-15 10:32:38 -0700
commit40da3728d6236fd73455e66a03526bb557dffc5c (patch)
treed515b6bafb062a271cb6e1e8f530847f4a7d078e /drivers/video
parent34e6115e16c5f84d9dea61de01ba3e1fdea3ecee (diff)
video: tegra: adf: replace nvmap_alloc_dmabuf with v4l2 API
Replace deprecated nvmap_alloc_dmabuf with V4L2 videobuf2 contig dma API. Bug 1540346 Change-Id: I06dd4a64a5a548d29443a0dfb8e4ccdeee62644c Signed-off-by: Krishna Reddy <vdumpa@nvidia.com> Reviewed-on: http://git-master/r/450681 (cherry picked from commit 9fa74918f508958b99d0314581683969454f9eb3) Reviewed-on: http://git-master/r/456779 Reviewed-by: Alex Waterman <alexw@nvidia.com> Reviewed-by: Jon Mayo <jmayo@nvidia.com> GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/tegra/Kconfig1
-rw-r--r--drivers/video/tegra/tegra_adf.c12
2 files changed, 11 insertions, 2 deletions
diff --git a/drivers/video/tegra/Kconfig b/drivers/video/tegra/Kconfig
index 7de456facf4a..fd00dd026836 100644
--- a/drivers/video/tegra/Kconfig
+++ b/drivers/video/tegra/Kconfig
@@ -113,6 +113,7 @@ config ADF_TEGRA
depends on TEGRA_DC && ADF
default ADF
select ADF_FBDEV
+ select VIDEOBUF2_DMA_CONTIG
help
ADF device support for the Tegra display controller.
diff --git a/drivers/video/tegra/tegra_adf.c b/drivers/video/tegra/tegra_adf.c
index 3c760951b359..90b3fe8f1941 100644
--- a/drivers/video/tegra/tegra_adf.c
+++ b/drivers/video/tegra/tegra_adf.c
@@ -15,14 +15,14 @@
*
*/
-#include <linux/nvmap.h>
+#include <linux/gfp.h>
+#include <media/videobuf2-dma-contig.h>
#include <video/adf.h>
#include <video/adf_fbdev.h>
#include <video/adf_format.h>
#include "dc/dc_config.h"
#include "dc/dc_priv.h"
-#include "nvmap/nvmap_priv.h"
#include "tegra_adf.h"
struct tegra_adf_info {
@@ -30,6 +30,7 @@ struct tegra_adf_info {
struct adf_interface intf;
struct adf_overlay_engine eng;
struct tegra_dc *dc;
+ void *vb2_dma_conf;
};
#define adf_dev_to_tegra(p) \
@@ -810,6 +811,9 @@ static int tegra_adf_intf_alloc_simple_buffer(struct adf_interface *intf,
struct dma_buf **dma_buf, u32 *offset, u32 *pitch)
{
size_t i;
+ struct tegra_adf_info *adf_info = adf_intf_to_tegra(intf);
+ const struct vb2_mem_ops *mem_ops = &vb2_dma_contig_memops;
+ void *vb2_buf;
bool format_valid = false;
for (i = 0; i < ARRAY_SIZE(tegra_adf_formats); i++) {
@@ -961,6 +965,10 @@ struct tegra_adf_info *tegra_adf_init(struct platform_device *ndev,
if (err < 0)
goto err_attach;
+ adf_info->vb2_dma_conf = vb2_dma_contig_init_ctx(&ndev->dev);
+ if ((err = IS_ERR(adf_info->vb2_dma_conf)))
+ goto err_attach;
+
if (dc->out->n_modes) {
err = tegra_adf_process_hotplug_connected(adf_info, NULL);
if (err < 0)