From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp.nokia.com ([147.243.1.47]:46601 "EHLO mgw-sa01.nokia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756479Ab1IORJ6 (ORCPT ); Thu, 15 Sep 2011 13:09:58 -0400 Message-ID: <4E72319C.4030904@iki.fi> Date: Thu, 15 Sep 2011 20:10:52 +0300 From: Sakari Ailus MIME-Version: 1.0 To: Cliff Cai CC: Laurent Pinchart , linux-media@vger.kernel.org Subject: Re: Asking advice for Camera/ISP driver framework design References: <201109151220.54131.laurent.pinchart@ideasonboard.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-media-owner@vger.kernel.org List-ID: Cliff Cai wrote: > On Thu, Sep 15, 2011 at 6:20 PM, Laurent Pinchart > wrote: >> Hi Cliff, >> >> On Wednesday 14 September 2011 08:13:32 Cliff Cai wrote: >>> Dear guys, >>> >>> I'm currently working on a camera/ISP Linux driver project.Of course,I >>> want it to be a V4L2 driver,but I got a problem about how to design >>> the driver framework. >>> let me introduce the background of this ISP(Image signal processor) a >>> little bit. >>> 1.The ISP has two output paths,first one called main path which is >>> used to transfer image data for taking picture and recording,the other >>> one called preview path which is used to transfer image data for >>> previewing. >>> 2.the two paths have the same image data input from sensor,but their >>> outputs are different,the output of main path is high quality and >>> larger image,while the output of preview path is smaller image. >>> 3.the two output paths have independent DMA engines used to move image >>> data to system memory. >>> >>> The problem is currently, the V4L2 framework seems only support one >>> buffer queue,and in my case,obviously,two buffer queues are required. >>> Any idea/advice for implementing such kind of V4L2 driver? or any >>> other better solutions? >> >> Your driver should create two video nodes, one for each stream. They will each >> have their own buffers queue. >> >> The driver should also implement the media controller API to let applications >> discover that the video nodes are related and how they interact with the ISP. > > Hi Laurent, > > As "Documentation/media-framework" says, one of the goals of media > device model is "Discovering a device internal topology,and > configuring it at runtime".I'm just a bit confused about how > applications can discover the related video notes? Could you explain > it a little more? Hi Cliff, The major and minor numbers of video nodes are provided to the user space in struct media_entity_desc (defined in include/linux/media.h) using MEDIA_IOC_ENUM_ENTITIES IOCTL. The major and minor numbers define which device node corresponds to the video device; this isn't trivial for an application to do so there's a library which makes it easier: See src/media.h for the interface. An example how to use this is available in src/main.c. Entities the type of which is MEDIA_ENT_T_DEVNODE_V4L are V4L2 device nodes. Regards, -- Sakari Ailus sakari.ailus@iki.fi