[PATCH 2/2] media: coda: Use iram_alloc() for codadx6 too.

Javier Martin javier.martin at vista-silicon.com
Mon Nov 5 10:59:45 EST 2012


Use this helper function instead of hardcoding the
physical address of the IRAM in the i.MX27.

Signed-off-by: Javier Martin <javier.martin at vista-silicon.com>
---
 drivers/media/video/Kconfig |    2 +-
 drivers/media/video/coda.c  |   18 ++++++++++--------
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index ecab6ef..0b5f785 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -1229,7 +1229,7 @@ config VIDEO_CODA
 	depends on VIDEO_DEV && VIDEO_V4L2 && ARCH_MXC
 	select VIDEOBUF2_DMA_CONTIG
 	select V4L2_MEM2MEM_DEV
-	select IRAM_ALLOC if SOC_IMX53
+	select IRAM_ALLOC
 	---help---
 	   Coda is a range of video codec IPs that supports
 	   H.264, MPEG-4, and other video formats.
diff --git a/drivers/media/video/coda.c b/drivers/media/video/coda.c
index 7febcd9..96ecb3f 100644
--- a/drivers/media/video/coda.c
+++ b/drivers/media/video/coda.c
@@ -43,6 +43,7 @@
 #define CODA_PARA_BUF_SIZE	(10 * 1024)
 #define CODA_ISRAM_SIZE	(2048 * 2)
 #define CODA7_IRAM_SIZE		0x14000 /* 81920 bytes */
+#define CODADX6_IRAM_SIZE	45056
 
 #define CODA_MAX_FRAMEBUFFERS	2
 
@@ -1919,6 +1920,8 @@ static int __devinit coda_probe(struct platform_device *pdev)
 	const struct of_device_id *of_id =
 			of_match_device(of_match_ptr(coda_dt_ids), &pdev->dev);
 	const struct platform_device_id *pdev_id;
+	void __iomem *iram_vaddr;
+	unsigned long iram_size;
 	struct coda_dev *dev;
 	struct resource *res;
 	int ret, irq;
@@ -2016,16 +2019,15 @@ static int __devinit coda_probe(struct platform_device *pdev)
 	}
 
 	if (dev->devtype->product == CODA_DX6) {
-		dev->iram_paddr = 0xffff4c00;
+		iram_size = CODADX6_IRAM_SIZE;
 	} else {
-		void __iomem *iram_vaddr;
+		iram_size = CODA7_IRAM_SIZE;
+	}
 
-		iram_vaddr = iram_alloc(CODA7_IRAM_SIZE,
-					&dev->iram_paddr);
-		if (!iram_vaddr) {
-			dev_err(&pdev->dev, "unable to alloc iram\n");
-			return -ENOMEM;
-		}
+	iram_vaddr = iram_alloc(iram_size, &dev->iram_paddr);
+	if (!iram_vaddr) {
+		dev_err(&pdev->dev, "unable to alloc iram\n");
+		return -ENOMEM;
 	}
 
 	platform_set_drvdata(pdev, dev);
-- 
1.7.9.5




More information about the linux-arm-kernel mailing list