Re: [PATCH] Add OMAP2 camera driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



ext Mauro Carvalho Chehab wrote:
On Thu, 27 Nov 2008 00:14:51 +0530
"Trilok Soni" <soni.trilok@xxxxxxxxx> wrote:

+
+/*
+ *
+ * DMA hardware.
+ *
+ */
+
+/* Ack all interrupt on CSR and IRQSTATUS_L0 */
+static void omap24xxcam_dmahw_ack_all(unsigned long base)

Oh, no! yet another dma video buffers handling...

Soni, couldn't this be converted to use videobuf?

Yes, it could be.

The DMA part is definitely the ugliest part of omap24xxcam.

This is actually also a DMA controller driver. The system DMA driver could not be used as such as it was limited to just one controller --- the OMAP 2 camera block has its own DMA controller with four transfers in queue (maximum).

There's also an MMU, not the system MMU but the camera block MMU. This MMU is not being used now by omap24xxcam at all since when omap24xxcam driver was written, there was not too much time available and no generic MMU framework. So the MMU support was left out. Instead, there's a hack to allocate as large as possible continuous memory areas and avoid overruns that way. DMA transfer overruns happen on large proportion of frames without this hack.

Hiroshi Doyu is working on a generic IOMMU framework for OMAPs that could be used here. With that framework available, converting the OMAP 2 camera driver to use videobuf would be a lot easier. The performance would be better, too. A generic DMA controller driver would be also good to have but not mandatory.

Cheers,

--
Sakari Ailus
sakari.ailus@xxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux