Received: by 10.223.176.5 with SMTP id f5csp1809304wra; Thu, 8 Feb 2018 03:57:44 -0800 (PST) X-Google-Smtp-Source: AH8x225c6lDxLSgupq/9GZX22pSdgFHUCCNcc9ZI0h8AVawTS5tXdUtGfbu5rjrNwn2PZ6slGt45 X-Received: by 2002:a17:902:7d95:: with SMTP id a21-v6mr384137plm.291.1518091064329; Thu, 08 Feb 2018 03:57:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518091064; cv=none; d=google.com; s=arc-20160816; b=ZoG2YpJ6+dAshlxtUeEX8HOUMMpW9NXXX5wli77teedrGoWE7uP14JLQ1KVdSxQoEp 9lCRWeiplRk6DYkwgUL1ZEEci3whb7q/tDb54aNjV/3EG00Ui2Q/hh0fYt4O9RVReyoM zvJuobYvvk4kBo/oyWJ3Nj6ZRIHprh7Vnd/15jcFjid0WqYWFAfxlcgIK4LoPpD1J69Z 2m8Z4JsLW9mQmjswxNgI5F/23pTueJdZXXam9geDAh2FsInVp8hVeCaSn97mHdOrlI32 7pE/L5vD2o4hMb5HmjkoBl/pRQ3hTUYuGlgd83UBa88f6kuEsranvJn2eOKQJMFcpQGA C8vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=FrZwzF7thQTuFaU5GITzIUAlQYOi3YmP/QDWVXDkwxQ=; b=YmVABfxQH79csecZ86qnKZlm2JPDr/m/s/hdo75tb019K8dxljUEAKe3RzyzT84ddH 8/X+xXzzHZCPjMgaLG6MgQWP2ikELzGlycnznjbFyTZcyxPF7ybFjBnTf/wEpKfsL0Pk CJCNODfdD2bE497n3BCYOC33sbLXhIaoL6TXoxaRBCC/piGg7r5CmkForCxJVMLYGZh0 7JXVdblaa29IWHzzBVC+l7X5YpizsWTPkgF/8MDakrZsLDPTgQL0u//0Gu0AXCo7t6hw 2Qj7E9Nbg1ZjkLZqTi9ie4KHU9K3ZTDX624q884juODCkQI/dp9c5hdFDhHddARXodTj uFoA== 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 l8-v6si1188906pln.323.2018.02.08.03.57.31; Thu, 08 Feb 2018 03:57:44 -0800 (PST) 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 S1752331AbeBHL4c (ORCPT + 99 others); Thu, 8 Feb 2018 06:56:32 -0500 Received: from lb2-smtp-cloud9.xs4all.net ([194.109.24.26]:44078 "EHLO lb2-smtp-cloud9.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752233AbeBHL4b (ORCPT ); Thu, 8 Feb 2018 06:56:31 -0500 Received: from [IPv6:2001:420:44c1:2579:6057:603d:42a8:f06c] ([IPv6:2001:420:44c1:2579:6057:603d:42a8:f06c]) by smtp-cloud9.xs4all.net with ESMTPA id jkoTehJtroWCOjkoWe3xlB; Thu, 08 Feb 2018 12:56:29 +0100 Subject: Re: [PATCH v8 0/7] TDA1997x HDMI video reciver To: Philipp Zabel , Tim Harvey Cc: linux-media , alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Shawn Guo , Steve Longerbeam , Hans Verkuil , Mauro Carvalho Chehab References: <1517948874-21681-1-git-send-email-tharvey@gateworks.com> <605fd4a8-43ab-c566-57b6-abb1c9f8f0f8@xs4all.nl> <7cf38465-7a79-5d81-a995-9acfbacf5023@xs4all.nl> <1518086816.4359.4.camel@pengutronix.de> From: Hans Verkuil Message-ID: <3b95357c-e44f-eed9-efd3-e2b0e4ff9eb2@xs4all.nl> Date: Thu, 8 Feb 2018 12:56:25 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <1518086816.4359.4.camel@pengutronix.de> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-CMAE-Envelope: MS4wfK/DTb+GpJAWvlNCHG2DeXpXezOfeQLgDPvGdGoO3yacfQ9NpUjHZ5hLyWpzUhIBwPdkg5HBMsYjE9lC83TFPAyXiS90/8+cGn1HyXnsekNJqqReY6zE 1ii4I+Msf5rVpnFLtWUSWQzchaQg8ZkPxmmSQh6ocaGcw+cVZUMwpI0NJxkRDYoi90ktHzjmZyBQx8WGbBHnG6xydiZVuVXUvTYOfGTM8vU7fXjCqokggwwS 3MXSxkt7BU8OInT8INgnwxiQ2N4lgKoZ+9ZeHpo4Hzn6yTyMeAYdQF+ZWmlgRksyP7ycCgwckO2f5HeIXwuqIhaQqWpZb4YED1r+cMxoeHBQ0kAOssOTaa96 zr9XWXqUQlwVp9BHnofHP6uHDbZ4U0zLP5Xn61C0wa8EaKzDSOOjT5Dz3M2ZxY+W99EzipzxuGVyZFo8NZ2m1NfF7mLA61gVrJ9RF2Kagos8OkCku0bRAit4 UJXdwWVcyk39VBunXelE9ybDRpVdprUYq7eSWTLLI7GU3fRVPGU5/d9qzelUoRS1GflNMPW7qv7dZ5FkVSQ/6HCLwoXDY+e+IBXMcd8YCVE0Au9XMIKfDKo6 fME= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/08/18 11:46, Philipp Zabel wrote: > On Wed, 2018-02-07 at 23:19 +0100, Hans Verkuil wrote: >> On 02/07/2018 11:05 PM, Tim Harvey wrote: >>> On Wed, Feb 7, 2018 at 1:09 AM, Hans Verkuil wrote: >>>> On 02/07/18 09:22, Hans Verkuil wrote: >>>>> On 02/07/2018 12:29 AM, Tim Harvey wrote: >>>>>> Media Controller ioctls: >>>>>> fail: v4l2-test-media.cpp(141): ent.function == >>>>>> MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN >>>>> >>>>> Weird, this shouldn't happen. I'll look into this a bit more. >>>> >>>> Can you run 'mc_nextgen_test -e -i' and post the output? >>>> >>>> It's found in contrib/test. >>>> >>> >>> root@ventana:~# ./v4l-utils/contrib/test/mc_nextgen_test -e -i >>> Device: imx-media (driver imx-media) >>> Bus: >>> version: 0 >>> number of entities: 24 >>> number of interfaces: 24 >>> number of pads: 48 >>> number of links: 50 >>> entity entity#1: 'unknown entity type' adv7180 2-0020, 1 pad(s), 1 source(s) >>> entity entity#3: 'unknown entity type' tda19971 2-0048, 1 pad(s), 1 source(s) >>> entity entity#5: 'unknown entity type' ipu1_vdic, 3 pad(s), 2 sink(s), >>> 1 source(s) >>> entity entity#9: 'unknown entity type' ipu2_vdic, 3 pad(s), 2 sink(s), >>> 1 source(s) >>> entity entity#13: 'unknown entity type' ipu1_ic_prp, 3 pad(s), 1 >>> sink(s), 2 source(s) >>> entity entity#17: 'unknown entity type' ipu1_ic_prpenc, 2 pad(s), 1 >>> sink(s), 1 source(s) >>> entity entity#20: 'V4L I/O' ipu1_ic_prpenc capture, 1 pad(s), 1 sink(s) >>> entity entity#26: 'unknown entity type' ipu1_ic_prpvf, 2 pad(s), 1 >>> sink(s), 1 source(s) >>> entity entity#29: 'V4L I/O' ipu1_ic_prpvf capture, 1 pad(s), 1 sink(s) >>> entity entity#35: 'unknown entity type' ipu2_ic_prp, 3 pad(s), 1 >>> sink(s), 2 source(s) >>> entity entity#39: 'unknown entity type' ipu2_ic_prpenc, 2 pad(s), 1 >>> sink(s), 1 source(s) >>> entity entity#42: 'V4L I/O' ipu2_ic_prpenc capture, 1 pad(s), 1 sink(s) >>> entity entity#48: 'unknown entity type' ipu2_ic_prpvf, 2 pad(s), 1 >>> sink(s), 1 source(s) >>> entity entity#51: 'V4L I/O' ipu2_ic_prpvf capture, 1 pad(s), 1 sink(s) >>> entity entity#57: 'unknown entity type' ipu1_csi0, 3 pad(s), 1 >>> sink(s), 2 source(s) >>> entity entity#61: 'V4L I/O' ipu1_csi0 capture, 1 pad(s), 1 sink(s) >>> entity entity#67: 'unknown entity type' ipu1_csi1, 3 pad(s), 1 >>> sink(s), 2 source(s) >>> entity entity#71: 'V4L I/O' ipu1_csi1 capture, 1 pad(s), 1 sink(s) >>> entity entity#77: 'unknown entity type' ipu2_csi0, 3 pad(s), 1 >>> sink(s), 2 source(s) >>> entity entity#81: 'V4L I/O' ipu2_csi0 capture, 1 pad(s), 1 sink(s) >>> entity entity#87: 'unknown entity type' ipu2_csi1, 3 pad(s), 1 >>> sink(s), 2 source(s) >>> entity entity#91: 'V4L I/O' ipu2_csi1 capture, 1 pad(s), 1 sink(s) >>> entity entity#97: 'unknown entity type' ipu1_csi0_mux, 3 pad(s), 2 >>> sink(s), 1 source(s) >>> entity entity#101: 'unknown entity type' ipu2_csi1_mux, 3 pad(s), 2 >>> sink(s), 1 source(s) >> >> Yuck. So nobody in imx (and adv7180!) is setting a valid function. >> And I see the mc_nextgen_test.c doesn't know all the latest functions >> anyway. > > That's probably because for most of the entities it's a bit unclear > which function should be assigned. Well, that's one reason. The other is that there never was a utility to test this :-) > ipu[12]_csi[01]_mux are video multiplexers, so MEDIA_ENT_F_VID_MUX. I > thought those should already be set correctly in the video-mux driver. They are. The mc_nextgen_test, media-ctl and now v4l2-ctl/v4l2-compliance all have their own list of functions that they know about and it's all different. It's one of the things I want to fix. > ipu[12]_csi[01] are the interfaces to the outside parallel busses, but > they can also 'downscale' by skipping, skip frames and pack or expand > pixels from the bus into the internal FIFOs that lead to the next > element. These are not MEDIA_ENT_F_VID_IF_BRIDGE, are they? Yes, they are. One limitation of the current API is that you cannot represent correctly devices with multiple functions. This is planned for a long time now, but nobody actually did the work. So for now just fill in the primary function with a comment that in the future other functions should be set as well. > ipu[12]_vdic are mainly deinterlacers, so a new function > MEDIA_ENT_F_PROC_VIDEO_DEINTERLACER ? These entities could also be used > as composers in a mem2mem scenario (MEDIA_ENT_F_PROC_VIDEO_COMPOSER ?), > but this is currently not supported. Yes, we need a PROC_VIDEO_DEINTERLACER function. > > ipu[12]_ic_prp is just a tee element that feeds both ipu[12]_ic_prpenc > and ipu[12]_ic_prpvf. These are both scalers and colorspace converters. > MEDIA_ENT_F_PROC_VIDEO_SCALER ? > MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV ? The tee element would be a new PROC_VIDEO_SPLITTER function. The other two would be scalers, but should add the VIDEO_PIXEL_ENC_CONV function once it is possible to do so. > > "ipu[12]_csi[01] capture" are the DMA elements writing to memory, so > MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER ? These are likely to be filled correctly already. I've just added a commit to v4l2-compliance to make it easier to see what function is used: v4l2-compliance -m0 -v Regards, Hans