From patchwork Fri Jun 17 19:00:46 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Longerbeam X-Patchwork-Id: 9184783 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id EEB60608A2 for ; Fri, 17 Jun 2016 19:00:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C44A527F07 for ; Fri, 17 Jun 2016 19:00:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B8D10282EE; Fri, 17 Jun 2016 19:00:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_TVD_MIME_EPI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1AE1927F07 for ; Fri, 17 Jun 2016 19:00:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932406AbcFQTAu (ORCPT ); Fri, 17 Jun 2016 15:00:50 -0400 Received: from relay1.mentorg.com ([192.94.38.131]:51031 "EHLO relay1.mentorg.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752847AbcFQTAu (ORCPT ); Fri, 17 Jun 2016 15:00:50 -0400 Received: from svr-orw-fem-03.mgc.mentorg.com ([147.34.97.39]) by relay1.mentorg.com with esmtp id 1bDz0a-0005If-A2 from Steve_Longerbeam@mentor.com ; Fri, 17 Jun 2016 12:00:48 -0700 Received: from [172.30.88.22] (147.34.91.1) by svr-orw-fem-03.mgc.mentorg.com (147.34.97.39) with Microsoft SMTP Server id 14.3.224.2; Fri, 17 Jun 2016 12:00:47 -0700 Subject: tchellRe: [19/38] ARM: dts: imx6-sabrelite: add video capture ports and connections To: Gary Bisson , Steve Longerbeam References: <1465944574-15745-20-git-send-email-steve_longerbeam@mentor.com> <20160616083231.GA6548@t450s.lan> <20160617151814.GA16378@t450s.lan> CC: , Jack Mitchell From: Steve Longerbeam Message-ID: <576448DE.1040002@mentor.com> Date: Fri, 17 Jun 2016 12:00:46 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <20160617151814.GA16378@t450s.lan> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On 06/17/2016 08:18 AM, Gary Bisson wrote: > Steve, All, > > On Thu, Jun 16, 2016 at 10:32:31AM +0200, Gary Bisson wrote: >> Steve, All, >> >> On Tue, Jun 14, 2016 at 03:49:15PM -0700, Steve Longerbeam wrote: >>> Defines the host video capture device node and an OV5642 camera sensor >>> node on i2c2. The host capture device connects to the OV5642 via the >>> parallel-bus mux input on the ipu1_csi0_mux. >>> >>> Note there is a pin conflict with GPIO6. This pin functions as a power >>> input pin to the OV5642, but ENET requires it to wake-up the ARM cores >>> on normal RX and TX packet done events (see 6261c4c8). So by default, >>> capture is disabled, enable by uncommenting __OV5642_CAPTURE__ macro. >>> Ethernet will still work just not quite as well. >> Actually the following patch fixes this issue and has already been >> applied on Shawn's tree: >> https://patchwork.kernel.org/patch/9153523/ >> >> Also, this follow-up patch declared the HW workaround for SabreLite: >> https://patchwork.kernel.org/patch/9153525/ >> >> So ideally, once those two patches land on your base tree, you could get >> rid of the #define and remove the HW workaround declaration. >> >> Finally, I'll test the series on Sabre-Lite this week. > I've applied this series on top of Shawn tree (for-next branch) in order > not to worry about the GPIO6 workaround. > > Although the camera seems to get enumerated properly, I can't seem to > get anything from it. See log: > http://pastebin.com/xnw1ujUq Hi Gary, the driver does not implement vidioc_cropcap, it has switched to the new selection APIs and v4l2src should be using vidioc_g_selection instead of vidioc_cropcap. > > In your cover letter, you said that you have not run through > v4l2-compliance. How have you tested the capture? I use v4l2-ctl, and have used v4l2src in the past, but that was before switching to the selection APIs. Try the attached hack that adds vidioc_cropcap back in, and see how far you get on SabreLite with v4l2src. I tried the following on SabreAuto: gst-launch-1.0 v4l2src io_mode=4 ! "video/x-raw,format=RGB16,width=640,height=480" ! fbdevsink > > Also, why isn't the OV5640 MIPI camera declared on the SabreLite device > tree? See Jack Mitchell's patch at http://ix.io/TTg. Thanks Jack! I will work on incorporating it. Steve diff --git a/drivers/staging/media/imx/capture/imx-camif.c b/drivers/staging/media/imx/capture/imx-camif.c index 9c247e0..2c51bc7 100644 --- a/drivers/staging/media/imx/capture/imx-camif.c +++ b/drivers/staging/media/imx/capture/imx-camif.c @@ -1561,6 +1561,23 @@ static int vidioc_s_parm(struct file *file, void *fh, return v4l2_subdev_call(dev->sensor->sd, video, s_parm, a); } +static int vidioc_cropcap(struct file *file, void *priv, + struct v4l2_cropcap *cropcap) +{ + struct imxcam_ctx *ctx = file2ctx(file); + struct imxcam_dev *dev = ctx->dev; + + if (cropcap->type != V4L2_BUF_TYPE_VIDEO_CAPTURE && + cropcap->type != V4L2_BUF_TYPE_VIDEO_OVERLAY) + return -EINVAL; + + cropcap->bounds = dev->crop_bounds; + cropcap->defrect = dev->crop_defrect; + cropcap->pixelaspect.numerator = 1; + cropcap->pixelaspect.denominator = 1; + return 0; +} + static int vidioc_g_selection(struct file *file, void *priv, struct v4l2_selection *sel) { @@ -1794,6 +1811,7 @@ static const struct v4l2_ioctl_ops imxcam_ioctl_ops = { .vidioc_g_parm = vidioc_g_parm, .vidioc_s_parm = vidioc_s_parm, + .vidioc_cropcap = vidioc_cropcap, .vidioc_g_selection = vidioc_g_selection, .vidioc_s_selection = vidioc_s_selection,