Received: by 10.213.65.68 with SMTP id h4csp1110130imn; Wed, 14 Mar 2018 09:53:24 -0700 (PDT) X-Google-Smtp-Source: AG47ELv2PxbQVDlCeaYk1Jtfg7qKKUI3nlR92TzGZ+b0JIl9npGbU45IoNfK4hGmLtMqGT0tCD7y X-Received: by 10.98.225.2 with SMTP id q2mr4896546pfh.23.1521046403947; Wed, 14 Mar 2018 09:53:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521046403; cv=none; d=google.com; s=arc-20160816; b=PYafRYGUKcWS0L603/TVTVWOX/fwqTfqwp4BjWikVircqZ9ViPA3Lj8hpGnK1hTxQ1 WMUnJJ3OuVgrruqX0YQkuI7MJcO+3FiwZUMiXp3HgBZ2FmbdV3Kla4LsVxjGVyM7CBq7 5fP2M5w3RpbttLOrtAj2v/uL9/kd1RZHZPO6f2MiEvM37KGtAbERLvcpKoK8Z/xLO3TJ 8uyeEw+T+qrcztzOHSITbTA7QL7XoZ/Al99i2O+msOeUEo/BlqOAIo9jQs86Q1U3soHW 9X5tkX4+RYJLS1GLzVZ3UffC6zxh+LRQzqMBpDC3zQ8yF7AIctvWIC4gWOD3kdl2fdUC fyBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=ihu04jX3Sd/FiyaUF66KXXE/zyz1nc7hYkDL3qKPK4o=; b=wCGovYGq4yRZp1sLmeMlKcxg3QlTO8reysWx6vCke0BSQkwpa6/mlE98LEhIGrFIp+ E8EwlV6tX5GU5Teq7nOpltIWef/lVIjN84dnoQk7BY9BGYm19oBEq1zNePQkCc92dT6w 9QfIbeDgDRlMn100sPYJl0JIkCjxXz3hQmkUCwtj3aFu7SL7MB/y/zeBJdUPzspQR23w SuYP9jWLIJiSWgrFM/SuDExhX8UmxSbLKYXjS/JZaSMNc8VOZRosSlnQa2KcbO+zwsCC XxfstehHO8SZzbOPr4AQxwwOaPZa4FpuIbqhJPwj621TU6hSIdGk8H16jueOg78gUiVQ CwlA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 68si2353527pfl.312.2018.03.14.09.53.09; Wed, 14 Mar 2018 09:53:23 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752411AbeCNQv6 (ORCPT + 99 others); Wed, 14 Mar 2018 12:51:58 -0400 Received: from mout.gmx.net ([212.227.15.15]:39353 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752336AbeCNQvx (ORCPT ); Wed, 14 Mar 2018 12:51:53 -0400 Received: from localhost.localdomain ([188.99.117.73]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MAgvb-1elTB30BnX-00Bw7u; Wed, 14 Mar 2018 17:51:46 +0100 From: Peter Seiderer To: linux-media@vger.kernel.org Cc: Steve Longerbeam , Philipp Zabel , Mauro Carvalho Chehab , Greg Kroah-Hartman , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, Peter Seiderer Subject: [PATCH v3] media: staging/imx: fill vb2_v4l2_buffer sequence entry Date: Wed, 14 Mar 2018 17:51:39 +0100 Message-Id: <20180314165139.5356-1-ps.report@gmx.net> X-Mailer: git-send-email 2.16.2 X-Provags-ID: V03:K0:AMQlfiAbu6xwGIHavbo8gFeLsx3iDR+uzaG35igP4KBVru9YQSe OBSlQNeM9WTku1dUQzpoJ6iy2Nk09YT8eYr6lis43tocKBmjmT16/6o1Y3SK8CCwOf4k0Xp 9Fwd8iNTI+poGxoSn2Gk5u1u3hQD38uYSdKUbY71aKibRXKBW7XuJHNKld5l9Jx4gj0vISX ZfZJj+6uKaN/fYSRqMyuw== X-UI-Out-Filterresults: notjunk:1;V01:K0:BhH0ddctKY0=:mTsysCRGK2h6fv3x7aXY/3 LT53ft7MQG2qYQhOUqyxHBk7I4YrccQ513/DSxOOu0wXugfuWHAqPvoc4yyCkt9Joxjw30VUk BLf9ck3SZ4GNLQxzZganOaH4vrjDlazj0sE7B9d7mLfC3MsYxh9YuCLtoOLVuie+g1KTN21fA BUGo5QqzEqdeotlbV/9NAh+vxTghzj6GKHNfxKSe+Txp+gHIuhfT/InjwpLfPtJt5C+AetQV5 sg5DLs9wSuq4GUm3sFwFHEvkti4XQ0J2trJHO9wm6EaqJY/u8dhW4O0BVlkOmDG38pABibHdK ppLnh4doWybIqAOFbukOV4xhmMx1iWL83LDdAheMCCs5YVgHk3K7UjP0ysyCvwQUwWLMi4ptW JfwO3LJ2bUjwZlqIpR88EVSvxmSC/9iMBVR7peVEZfC1gOF/MbsQcfHgQzjKv0bUeKSWvnCMl V6yd7c/GVMwV1uJNmNacvVyMwfA8z3bgVBxAPzBv50nukSls5KcI0/m6DIW60XS5Bb59QBGpP ku/8R4pXIrY7J+ygfoYxeBkOv9GwKMNR+xJ/3RwKF2p3w0hDdRpELJC8n2WVArci6KiwZ5gcH 0jFqaxs1T7Ld54t5mksK6WmuICttP/vuwQzHMUuu498mAk5eOeiMQQGi3/N1f4F84xsLeISlI JZn7ExMvDYWl25jHjiwAQAnK0k6jPXRMTe5VIXFrvqMrIf9W6/CLtXaQcWMLTIfvFrDDy219r PMKMzQuAs3SNfW36U2jRXTkdtuL/YrIDC3V7uUQNQYWBJpf2w3LUr3eMjG8ahnkhnye9CU9r/ i4Vri5oC5bo2b3eceuEzuTfhSkeHg== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Enables gstreamer v4l2src lost frame detection, e.g: 0:00:08.685185668 348 0x54f520 WARN v4l2src gstv4l2src.c:970:gst_v4l2src_create: lost frames detected: count = 141 - ts: 0:00:08.330177332 Signed-off-by: Peter Seiderer --- Changes in v2: - fill vb2_v4l2_buffer sequence entry in imx-ic-prpencvf too (suggested by Steve Longerbeam) Changes in v3: - add changelog (suggested by Greg Kroah-Hartman, Fabio Estevam and Dan Carpenter) and patch history - use u32 (instead of __u32) (suggested by Dan Carpenter) - let sequence counter start with zero, keeping v4l2-compliance testing happy (needs additional setting of field to a valid value, patch will follow soon) --- drivers/staging/media/imx/imx-ic-prpencvf.c | 5 +++++ drivers/staging/media/imx/imx-media-csi.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/drivers/staging/media/imx/imx-ic-prpencvf.c b/drivers/staging/media/imx/imx-ic-prpencvf.c index ae453fd422f0..274683d2d4ba 100644 --- a/drivers/staging/media/imx/imx-ic-prpencvf.c +++ b/drivers/staging/media/imx/imx-ic-prpencvf.c @@ -103,6 +103,7 @@ struct prp_priv { int nfb4eof_irq; int stream_count; + u32 frame_sequence; /* frame sequence counter */ bool last_eof; /* waiting for last EOF at stream off */ bool nfb4eof; /* NFB4EOF encountered during streaming */ struct completion last_eof_comp; @@ -208,8 +209,11 @@ static void prp_vb2_buf_done(struct prp_priv *priv, struct ipuv3_channel *ch) struct vb2_buffer *vb; dma_addr_t phys; + priv->frame_sequence++; + done = priv->active_vb2_buf[priv->ipu_buf_num]; if (done) { + done->vbuf.sequence = priv->frame_sequence; vb = &done->vbuf.vb2_buf; vb->timestamp = ktime_get_ns(); vb2_buffer_done(vb, priv->nfb4eof ? @@ -637,6 +641,7 @@ static int prp_start(struct prp_priv *priv) /* init EOF completion waitq */ init_completion(&priv->last_eof_comp); + priv->frame_sequence = -1; priv->last_eof = false; priv->nfb4eof = false; diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c index 5a195f80a24d..161a92946a86 100644 --- a/drivers/staging/media/imx/imx-media-csi.c +++ b/drivers/staging/media/imx/imx-media-csi.c @@ -111,6 +111,7 @@ struct csi_priv { struct v4l2_ctrl_handler ctrl_hdlr; int stream_count; /* streaming counter */ + u32 frame_sequence; /* frame sequence counter */ bool last_eof; /* waiting for last EOF at stream off */ bool nfb4eof; /* NFB4EOF encountered during streaming */ struct completion last_eof_comp; @@ -234,8 +235,11 @@ static void csi_vb2_buf_done(struct csi_priv *priv) struct vb2_buffer *vb; dma_addr_t phys; + priv->frame_sequence++; + done = priv->active_vb2_buf[priv->ipu_buf_num]; if (done) { + done->vbuf.sequence = priv->frame_sequence; vb = &done->vbuf.vb2_buf; vb->timestamp = ktime_get_ns(); vb2_buffer_done(vb, priv->nfb4eof ? @@ -543,6 +547,7 @@ static int csi_idmac_start(struct csi_priv *priv) /* init EOF completion waitq */ init_completion(&priv->last_eof_comp); + priv->frame_sequence = -1; priv->last_eof = false; priv->nfb4eof = false; -- 2.16.2