Received: by 10.213.65.68 with SMTP id h4csp1128524imn; Wed, 14 Mar 2018 10:23:57 -0700 (PDT) X-Google-Smtp-Source: AG47ELs2HxpsFCjFOTdmUriQEB9Y/eSnj3G5ybWlXT0RNAkZZTBc86dmQkC3LD8D01n1hy6fPYDC X-Received: by 10.98.162.26 with SMTP id m26mr4977788pff.217.1521048237319; Wed, 14 Mar 2018 10:23:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521048237; cv=none; d=google.com; s=arc-20160816; b=SiDtW/VCocTqLimQLYxjmlSPhNJtOlzYvS82a4ZSLDAZ4tTISbxHO9nfbL4x9u6HfQ g1PMDV+LHO/An5G1QZO/MpinrzXml84Ghs4++GatbYVDAQ1ggtY5HKIgrPIUexhbg3j+ cX60oK0/vNf8gmULOTYhXIh94iPY+7TUKkoxN+CsqcFaCwkcFXvn53MpEhOceSh4qPzm 5bTR+FiPa2P22+m4WQWKnbONdk5HwCRWlyjXJ7HZy3fhOw+D2YMzLuDjG5yGpWMMq7zM MSGAGSJ081x/61bkMN0of8/1sd2M2bJAjO4QUwQ/Egg65TKzacwY3k2Og2g6rbkqUghe JKhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=eMYsF15TOOZ189nAQDSMN3L0svNmVy6pkwB+aDgKwQI=; b=peiAzMbIVbTGFxvU3OjJ0TSKmaIyVJjlA2AHjwCIIaRdK4bdq5QFUwFUdd5rs/Pa7G GOZJTDZ+rqMcVhgttkcRLwuJD5nwYjNrIJdMr8KYecOgMOrIsQahK/F5D94m0hiCqEvG WwdK08nlNjKnbPpwLExF8nu1BHzTjM3QdFq6Z9Vti+0Ljb+TUsu3BSlxjaJuD8pymB+n xA4eIhOewAR0ToRkB4DKqONITHi9g8XXadPT1Sr4XEO6qcqrRgorSg61nLgiMdVRVJJu QplXJq1LM955qADdveYSeFHLvEvNeta7Hevcb2YmlcYGhC+mzjohgxTWZdknPcUQ5fK9 iuPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=NJfI8LBw; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j62si2159785pgc.583.2018.03.14.10.23.42; Wed, 14 Mar 2018 10:23:57 -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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=NJfI8LBw; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751739AbeCNRVl (ORCPT + 99 others); Wed, 14 Mar 2018 13:21:41 -0400 Received: from mail-pg0-f65.google.com ([74.125.83.65]:45808 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751350AbeCNRVj (ORCPT ); Wed, 14 Mar 2018 13:21:39 -0400 Received: by mail-pg0-f65.google.com with SMTP id s13so1636025pgn.12; Wed, 14 Mar 2018 10:21:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=eMYsF15TOOZ189nAQDSMN3L0svNmVy6pkwB+aDgKwQI=; b=NJfI8LBwBpj71R7wiYUhZKHEo3htQneoAzJc3qWpvGw9mtQIGXpJ3EFMF/BC6VQf9P QbPqCxGSg+ZKTTceTQt7wiqUDZkVkMD9ylO0xBdUKeIbQTR91Y7it4wxGsOZYSMJjJ0l ZHT6bMBYT8FRrwZBhzbucjfsl25BoeQy9AMVDKGEv9jlTDXfbbBjuFmA4cqsy/7iSl6d KK++ne0P6fEO/ixRfjQsZ6lc9/BUa7juA1vdDjjwi2LXPE13GroGJ4KrIUbfHazvW0Cm f0lpkLeNRBaiCxwBL0nGWNwdcyh8IptMpWbYN9wdfb/5dhPAgcusNVdMlN7aY3MgvWtw N8FQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=eMYsF15TOOZ189nAQDSMN3L0svNmVy6pkwB+aDgKwQI=; b=Bcn9z0wUh71d9OpGuM2V/8A6ZNCAyCzFONiOn9IEjZk766u4pfbaFcxx/QMT2wzc9R xQvpJIqU0wd+F65buQ0UgPNXsq9s76UCyeB9Gr0T4MYLwvbrAaM/OovS/HjGYVvfo6Mc 39q5LO7GVsYjw+CSABWG3vS9gqoMLDWEKBF9g/ewS5yf3dF6qXhMhEca/mIwyRqqgMwf S8WL9IYwah7K8YZdmJFuBdju4+X+hn5di1u0mmk1aVVoHDiSGiORzlvTQacLfjkDm3FP XN4++yx2OIk0MUdcPIZyilRmFFYTxcQP9gnEjgqF5HnouiezrkxAXrk/324RnTbYvMAN JDSA== X-Gm-Message-State: AElRT7FVFJEUeVFeGRIiURc9ZAlToe/d1xWM8vNMEEkTvwV3aFRWdAiG xAfFCWhes12LWhnMS+Ytf7yuMQuo X-Received: by 10.101.74.15 with SMTP id s15mr1035712pgq.382.1521048098581; Wed, 14 Mar 2018 10:21:38 -0700 (PDT) Received: from [192.168.1.54] (c-98-210-181-167.hsd1.ca.comcast.net. [98.210.181.167]) by smtp.gmail.com with ESMTPSA id 71sm6160290pfs.179.2018.03.14.10.21.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Mar 2018 10:21:37 -0700 (PDT) Subject: Re: [PATCH v3] media: staging/imx: fill vb2_v4l2_buffer sequence entry To: Peter Seiderer , linux-media@vger.kernel.org Cc: Philipp Zabel , Mauro Carvalho Chehab , Greg Kroah-Hartman , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org References: <20180314165139.5356-1-ps.report@gmx.net> From: Steve Longerbeam Message-ID: <7f723320-f1cf-a769-dd32-d48c49b041e1@gmail.com> Date: Wed, 14 Mar 2018 10:21:31 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180314165139.5356-1-ps.report@gmx.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Peter, On 03/14/2018 09:51 AM, Peter Seiderer wrote: > 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, There's no need to initialize (unsigned) priv->frame_sequence to -1. Just increment it _after_ the "if (done) {...}" block instead of before. Steve > 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; >