From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E67DCC433E2 for ; Tue, 15 Sep 2020 02:40:42 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 877C820732 for ; Tue, 15 Sep 2020 02:40:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="B4Lj67n1"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="gi7UkDFo" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 877C820732 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=8nHBTCE5u3wbADp1GkaSJicUzPZaLuMD72cIyUGD8Mg=; b=B4Lj67n1dRPRPgxzV4cQttPuP 70+UTweeEEVdCbxoBOoLeycyImlGgTckSSgVdJf+t5UiOtNDT+9WIwRBSrIQewkc4HR4Ubzljm2F3 ivvfsFwhJp/HsH6oUcDqe5Tq/cHZsfKD52eKHcJeDyPKRwmdxp+kSDBPQvbWAF0UZs5IMXnY5ewg1 Br2/FTYe1R/UNAI8etAjTn3IsZNKr4m/pPwb152edOaXKnrR9hWTEGM8icaCwEtEt3fjRs9fp1mdi bfPSAejc1z/8U/Ql8dZVsjEuzCp1W7LvIL1+/8wc4kPaWTM+PqmxS3eGeqjI/HRnv00+bUBQ1LfQX U8qhAOP9g==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kI0sA-00015m-6B; Tue, 15 Sep 2020 02:39:10 +0000 Received: from perceval.ideasonboard.com ([213.167.242.64]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kI0s6-00014i-EA for linux-arm-kernel@lists.infradead.org; Tue, 15 Sep 2020 02:39:07 +0000 Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id A4A49275; Tue, 15 Sep 2020 04:38:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1600137538; bh=ceWb6jetlVmK1+PMT2AVlI5YUi1hnO6JDbvNsbyGh1A=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=gi7UkDFo1MmLdvpjAPNCuF8guUHpOsMGcJeUtmsmlHYNPmrlMi547DhAkV7pyXB9n 6t2V4NYVKhn1IbeMI42FK0avPvMj+sjGDtJlvrqOHzxAVFJnj21ImsIYY7AQGFAi8O l9AH6jIGoGXIaQgrnldofe+GRZvzuPKZVv4WTezE= Date: Tue, 15 Sep 2020 05:38:29 +0300 From: Laurent Pinchart To: Hans Verkuil Subject: Re: [PATCH v3 3/3] media: v4l: xilinx: Add Xilinx UHD-SDI Rx Subsystem driver Message-ID: <20200915023829.GE15543@pendragon.ideasonboard.com> References: <20200618053304.14551-1-vishal.sagar@xilinx.com> <20200618053304.14551-4-vishal.sagar@xilinx.com> <50cc4f4b-e788-c5ad-cd6a-b428b96d5377@xs4all.nl> <20200715213315.GF6144@pendragon.ideasonboard.com> <20200819165641.GS6049@pendragon.ideasonboard.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200914_223906_589978_603FDA3C X-CRM114-Status: GOOD ( 47.74 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "mark.rutland@arm.com" , "devicetree@vger.kernel.org" , Dinesh Kumar , Hyun Kwon , Sandip Kothari , "linux-kernel@vger.kernel.org" , Nicolas Dufresne , "robh+dt@kernel.org" , Michal Simek , "linux-arm-kernel@lists.infradead.org" , "joe@perches.com" , "mchehab@kernel.org" , Vishal Sagar , "linux-media@vger.kernel.org" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgSGFucywKCk9uIFRodSwgU2VwIDEwLCAyMDIwIGF0IDEyOjIyOjI4UE0gKzAyMDAsIEhhbnMg VmVya3VpbCB3cm90ZToKPiBPbiAyNi8wOC8yMDIwIDE2OjEwLCBOaWNvbGFzIER1ZnJlc25lIHdy b3RlOgo+ID4gTGUgbWVyY3JlZGkgMTkgYW/Du3QgMjAyMCDDoCAxOTo1NiArMDMwMCwgTGF1cmVu dCBQaW5jaGFydCBhIMOpY3JpdCA6Cj4gPj4gSGkgVmlzaGFsLAo+ID4+Cj4gPj4gKEhhbnMsIHRo ZXJlJ3MgYSBxdWVzdGlvbiBmb3IgeW91IGJlbG93KQo+ID4+Cj4gPj4gT24gV2VkLCBBdWcgMTks IDIwMjAgYXQgMDE6NDc6NDlQTSArMDAwMCwgVmlzaGFsIFNhZ2FyIHdyb3RlOgo+ID4+PiBPbiBU aHVyc2RheSwgSnVseSAxNiwgMjAyMCAzOjAzIEFNIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6Cj4g Pj4+PiBPbiBUaHUsIEp1biAyNSwgMjAyMCBhdCAxMTo0MzowMUFNICswMjAwLCBIYW5zIFZlcmt1 aWwgd3JvdGU6Cj4gPj4+Pj4gT24gMTgvMDYvMjAyMCAwNzozMywgVmlzaGFsIFNhZ2FyIHdyb3Rl Ogo+ID4+Pj4+PiBUaGUgWGlsaW54IFVIRC1TREkgUnggc3Vic3lzdGVtIHNvZnQgSVAgaXMgdXNl ZCB0byBjYXB0dXJlIG5hdGl2ZSBTREkKPiA+Pj4+Pj4gc3RyZWFtcyBmcm9tIFNESSBzb3VyY2Vz IGxpa2UgU0RJIGJyb2FkY2FzdCBlcXVpcG1lbnQgbGlrZSBjYW1lcmFzIGFuZAo+ID4+Pj4+PiBt aXhlcnMuIFRoaXMgYmxvY2sgb3V0cHV0cyBlaXRoZXIgbmF0aXZlIFNESSwgbmF0aXZlIHZpZGVv IG9yCj4gPj4+Pj4+IEFYSTQtU3RyZWFtIGNvbXBsaWFudCBkYXRhIHN0cmVhbSBmb3IgZnVydGhl ciBwcm9jZXNzaW5nLiBQbGVhc2UgcmVmZXIKPiA+Pj4+Pj4gdG8gUEcyOTAgZm9yIGRldGFpbHMu Cj4gPj4+Pj4+Cj4gPj4+Pj4+IFRoZSBkcml2ZXIgaXMgdXNlZCB0byBjb25maWd1cmUgdGhlIElQ IHRvIGFkZCBmcmFtZXIsIHNlYXJjaCBmb3IKPiA+Pj4+Pj4gc3BlY2lmaWMgbW9kZXMsIGdldCB0 aGUgZGV0ZWN0ZWQgbW9kZSwgc3RyZWFtIHBhcmFtZXRlcnMsIGVycm9ycywgZXRjLgo+ID4+Pj4+ PiBJdCBhbHNvIGdlbmVyYXRlcyBldmVudHMgZm9yIHZpZGVvIGxvY2svdW5sb2NrLCBicmlkZ2Ug b3Zlci91bmRlciBmbG93Lgo+ID4+Pj4+Pgo+ID4+Pj4+PiBUaGUgZHJpdmVyIHN1cHBvcnRzIDEw LzEyIGJwYyBZVVYgNDIyIG1lZGlhIGJ1cyBmb3JtYXQgY3VycmVudGx5LiBJdAo+ID4+Pj4+PiBh bHNvIGRlY29kZXMgdGhlIHN0cmVhbSBwYXJhbWV0ZXJzIGJhc2VkIG9uIHRoZSBTVDM1MiBwYWNr ZXQgZW1iZWRkZWQgaW4gdGhlCj4gPj4+Pj4+IHN0cmVhbS4gSW4gY2FzZSB0aGUgU1QzNTIgcGFj a2V0IGlzbid0IHByZXNlbnQgaW4gdGhlIHN0cmVhbSwgdGhlIGNvcmUncwo+ID4+Pj4+PiBkZXRl Y3RlZCBwcm9wZXJ0aWVzIGFyZSB1c2VkIHRvIHNldCBzdHJlYW0gcHJvcGVydGllcy4KPiA+Pj4+ Pj4KPiA+Pj4+Pj4gVGhlIGRyaXZlciBjdXJyZW50bHkgc3VwcG9ydHMgb25seSB0aGUgQVhJNC1T dHJlYW0gSVAgY29uZmlndXJhdGlvbi4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gU2lnbmVkLW9mZi1ieTog VmlzaGFsIFNhZ2FyIDx2aXNoYWwuc2FnYXJAeGlsaW54LmNvbT4KPiA+Pj4+Pj4gLS0tCj4gPj4+ Pj4+IHYzCj4gPj4+Pj4+IC0gZml4ZWQgS0NvbmZpZyB3aXRoIGJldHRlciBkZXNjcmlwdGlvbgo+ ID4+Pj4+PiAtIHJlbW92ZWQgdW5uZWNlc3NhcnkgaGVhZGVyIGZpbGVzCj4gPj4+Pj4+IC0gY29u dmVydGVkIHVwcGVyY2FzZSB0byBsb3dlcmNhc2UgZm9yIGFsbCBoZXggdmFsdWVzCj4gPj4+Pj4+ IC0gbWVyZ2VkIGNvcmUgc3RydWN0IHRvIHN0YXRlIHN0cnVjdAo+ID4+Pj4+PiAtIHJlbW92ZWQg bW9zdCBvbmUgbGluZSBmdW5jdGlvbnMgYW5kIHJlcGxhY2VkIHdpdGggZGlyZWN0IHJlZwo+ID4+ Pj4+PiAgIHJlYWQvd3JpdGUgb3IgbWFjcm9zCj4gPj4+Pj4+IC0gZHQgcHJvcGVydHkgYnBwIHRv IGJwYy4gZGVmYXVsdCAxMC4gbm90IG1hbmRhdG9yeS4KPiA+Pj4+Pj4gLSBmaXhlZCBzdWJzY3Jp YmUgZXZlbnRzLCBsb2dfc3RhdHVzLCBzX3N0cmVhbQo+ID4+Pj4+PiAtIG1lcmdlZCBvdmVyZmxv dy91bmRlcmZsb3cgdG8gb25lIGV2ZW50Cj4gPj4+Pj4+IC0gbW92ZWQgYWxsIGNvbnRyb2xzIHRv IHhpbGlueC1zZGlyeHNzLmgKPiA+Pj4+Pj4gLSBtYXggZXZlbnRzIGZyb20gMTI4IHRvIDgKPiA+ Pj4+Pj4gLSB1c2VkIEZJRUxEX0dFVCgpIGluc3RlYWQgb2YgY3VzdG9tIG1hY3JvCj4gPj4+Pj4+ IC0gdXBkYXRlZCB0aGUgY29udHJvbHMgZG9jdW1lbnRhdGlvbgo+ID4+Pj4+PiAtIGFkZGVkIHNw aW5sb2NrCj4gPj4+Pj4+IC0gcmVtb3ZlZCAzR0IgY29udHJvbCBhbmQgYWRkZWQgbW9kZSB0byBk ZXRlY3QgYml0bWFzawo+ID4+Pj4+PiAtIGZpeGVkIGZvcm1hdCBmb3IgKHdpZHRoLCBoZWlnaHQs IGNvbG9yc3BhY2UsIHhmZXIgZnVuYywgZXRjKQo+ID4+Pj4+PiAtIGFkZGVkIGR2X3RpbWluZ3Nf Y2FwLCBzL2dfZHZfdGltaW5ncwo+ID4+Pj4+PiAtIGZpeGVkIHNldC9nZXRfZm9ybWF0Cj4gPj4+ Pj4+IC0gZml4IHY0bCBjb250cm9sIHJlZ2lzdHJhdGlvbnMKPiA+Pj4+Pj4gLSBmaXggb3JkZXIg b2YgcmVnaXN0cmF0aW9uIC8gZGVyZWdpc3RyYXRpb24gaW4gcHJvYmUoKSByZW1vdmUoKQo+ID4+ Pj4+PiAtIGZpeGVkIG90aGVyIGNvbW1lbnRzIGZyb20gSHl1biwgTGF1cmVudCBhbmQgSGFucwo+ ID4+Pj4+PiAtIHRoaW5ncyB5ZXQgdG8gY2xvc2UKPiA+Pj4+Pj4gICAtIGFkZGluZyBzb3VyY2Ug cG9ydCBmb3IgY29ubmVjdG9yIChMYXVyZW50J3Mgc3VnZ2VzdGlvbikKPiA+Pj4+Pj4gICAtIGFk ZGluZyBuZXcgRklFTEQgdHlwZSBmb3IgVHJhbnNwb3J0IFN0cmVhbSBWNEwyX0ZJRUxEX0FMVEVS TkFURV9QUk9HIChIYW4ncyBzdWdnZXN0aW9uKQo+ID4+Pj4+PiAgIC0gVXBkYXRlIC8gcmVtb3Zl IEVESCBvciBDUkMgcmVsYXRlZCBjb250cm9scwo+ID4+Pj4+Pgo+ID4+Pj4+PiB2Mgo+ID4+Pj4+ PiAtIEFkZGVkIERWIHRpbWluZyBzdXBwb3J0IGJhc2VkIG9uIEhhbnMgVmVya3VpbMWbIGZlZWRi YWNrCj4gPj4+Pj4+IC0gTW9yZSBkb2N1bWVudGF0aW9uIHRvIGN1c3RvbSB2NGwgY29udHJvbHMg YW5kIGV2ZW50cwo+ID4+Pj4+PiAtIEZpeGVkIEh5dW7FmyBjb21tZW50cwo+ID4+Pj4+PiAtIEFk ZGVkIG1hY3JvIGZvciBtYXNraW5nIGFuZCBzaGlmdGluZyBhcyBwZXIgSm9lIFBlcmNoZXMgY29t bWVudHMKPiA+Pj4+Pj4gLSBVcGRhdGVkIHRvIGxhdGVzdCBhcyBwZXIgWGlsaW54IGdpdGh1YiBy ZXBvIGRyaXZlciBsaWtlCj4gPj4+Pj4+ICAgYWRkaW5nIG5ldyBEViB0aW1pbmdzIG5vdCBpbiBt YWlubGluZSB5ZXQgdXB0aWxsIDAzLzIxLzIwCj4gPj4+Pj4+Cj4gPj4+Pj4+ICBkcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3hpbGlueC9LY29uZmlnICAgICAgICAgfCAgIDExICsKPiA+Pj4+Pj4gIGRy aXZlcnMvbWVkaWEvcGxhdGZvcm0veGlsaW54L01ha2VmaWxlICAgICAgICB8ICAgIDEgKwo+ID4+ Pj4+PiAgLi4uL21lZGlhL3BsYXRmb3JtL3hpbGlueC94aWxpbngtc2Rpcnhzcy5jICAgIHwgMjEy MSArKysrKysrKysrKysrKysrKwo+ID4+Pj4+PiAgaW5jbHVkZS91YXBpL2xpbnV4L3Y0bDItY29u dHJvbHMuaCAgICAgICAgICAgIHwgICAgNiArCj4gPj4+Pj4+ICBpbmNsdWRlL3VhcGkvbGludXgv eGlsaW54LXNkaXJ4c3MuaCAgICAgICAgICAgfCAgMjgzICsrKwo+ID4+Pj4+PiAgNSBmaWxlcyBj aGFuZ2VkLCAyNDIyIGluc2VydGlvbnMoKykKPiA+Pj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL21lZGlhL3BsYXRmb3JtL3hpbGlueC94aWxpbngtc2Rpcnhzcy5jCj4gPj4+Pj4+ICBj cmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS91YXBpL2xpbnV4L3hpbGlueC1zZGlyeHNzLmgKPiA+ Pgo+ID4+IFtzbmlwXQo+ID4+Cj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Bs YXRmb3JtL3hpbGlueC94aWxpbngtc2Rpcnhzcy5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS94 aWxpbngveGlsaW54LXNkaXJ4c3MuYwo+ID4+Pj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4+ Pj4+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmUzOWFhYjdjNjU2YQo+ID4+Pj4+PiAtLS0gL2Rldi9u dWxsCj4gPj4+Pj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0veGlsaW54L3hpbGlueC1z ZGlyeHNzLmMKPiA+Pj4+Pj4gQEAgLTAsMCArMSwyMTIxIEBACj4gPj4KPiA+PiBbc25pcF0KPiA+ Pgo+ID4+Pj4+PiArCWNhc2UgVjRMMl9DSURfWElMSU5YX1NESVJYX1RTX0lTX0lOVEVSTEFDRUQ6 Cj4gPj4+Pj4+ICsJCWN0cmwtPnZhbCA9IHhzZGlyeHNzLT50c19pc19pbnRlcmxhY2VkOwo+ID4+ Pj4+PiArCQlicmVhazsKPiA+Pj4+Pgo+ID4+Pj4+IEkgYXNzdW1lIHRoaXMgY29udHJvbCB3aWxs IGRpc2FwcGVhciBvbmNlIHlvdSBhZGRlZCBzdXBwb3J0IGZvcgo+ID4+Pj4+IEZJRUxEX0FMVEVS TkFURV9QUk9HPwo+ID4+Pj4KPiA+Pj4+IEknbSBub3Qgc3VyZSBGSUVMRF9BTFRFUk5BVEVfUFJP RyBpcyBhIGdvb2QgaWRlYS4gVGhlIHY0bDJfZmllbGQKPiA+Pj4+IHNwZWNpZmllcyB0b2RheSBo b3cgZnJhbWVzIGFyZSBzcGxpdCBpbnRvIG11bHRpcGxlIGJ1ZmZlcnMuIFRoZXJlJ3MgYW4KPiA+ Pj4+IGltcGxpY2l0IGFzc3VtcHRpb24gdGhhdCBhIGZyYW1lIHNwbGl0IGludG8gdHdvIGJ1ZmZl cnMgaXMgY2FwdHVyZWQgd2l0aAo+ID4+Pj4gaW50ZXJsYWNpbmcuIEluIHRoZSBTREkgY2FzZSwg dGhlIHR3byBjb25jZXB0cyBnZXQgZGVjb3VwbGVkLCBhCj4gPj4+PiBwcm9ncmVzc2l2ZSBmcmFt ZSBjYW4gYmUgdHJhbnNtaXR0ZWQgKGFuZCBjYXB0dXJlZCkgaW4gdHdvIHNlcGFyYXRlCj4gPj4+ PiBwYXJ0cy4gSWYgd2UgYWRkIGEgKl9QUk9HIGZpZWxkLCB3ZSdsbCBuZWVkIHRvIGR1cGxpY2F0 ZSBtb3N0IG9mIHRoZQo+ID4+Pj4gdjRsMl9maWVsZCB2YWx1ZXMgd2l0aCBhIF9QUk9HIHN1ZmZp eCwgYXMgdGhlIHByb2dyZXNzaXZlIGZyYW1lIGNhbiBiZQo+ID4+Pj4gY2FwdHVyZWQgaW4gYWx0 ZXJuYXRlIGJ1ZmZlcnMgb24gYSB2aWRlbyBub2RlLCBidXQgYWxzbyBpbiBzZXBhcmF0ZSBvZGQK PiA+Pj4+IGFuZCBldmVuIGJ1ZmZlcnMgb24gdHdvIHZpZGVvIG5vZGVzLiBUdCB0aGUgaGFyZHdh cmUgbGV2ZWwsIGRhdGEgaXMKPiA+Pj4+IHRyYW5zbWl0dGVkIHdpdGggb2RkIGxpbmVzIG9uIG9u ZSBsaW5rLCBhbmQgZXZlbiBsaW5lcyBvbiBhIHNlY29uZCBsaW5rLgo+ID4+Pj4gVGhlcmUgYXJl IHRoZW4gdHdvIGluc3RhbmNlcyBvZiB0aGlzIElQIGNvcmUsIG9uZSBmb3IgZWFjaCBsaW5rLiBP bmUKPiA+Pj4+IGluc3RhbmNlIHdvdWxkIHJlY2VpdmUgYW5kIHByb2Nlc3MgdGhlIGV2ZW4gbGlu ZXMsIHRoZSBvdGhlciBpbnN0YW5jZQo+ID4+Pj4gdGhlIG9kZCBsaW5lcy4gVGhlIG91dHB1dCBv ZiB0aGUgdHdvIGluc3RhbmNlcyBjYW4gdGhlbiBiZSBjb25uZWN0ZWQgdG8KPiA+Pj4+IHR3byBz ZXBhcmF0ZSBETUEgZW5naW5lcywgb3IgY29tYmluZWQgaW4gdGhlIEZQR0EgZmFicmljLCBkZXBl bmRpbmcgb24KPiA+Pj4+IGhvdyB0aGUgdXNlciBkZXNpZ25zIHRoZSBzeXN0ZW0uCj4gPj4+Cj4g Pj4+IE15IGFwb2xvZ2llcyB0byBnaXZlIGluY29ycmVjdCBpbmZvIHJlZ2FyZGluZyB0aGlzLgo+ ID4+PiBJbiB0aGUgcHJvZ3Jlc3NpdmUgc2VnbWVudGVkIGZyYW1lLCBhIHByb2dyZXNzaXZlIGNh cHR1cmVkIGZyYW1lIGlzIHNlbnQKPiA+Pj4gYWNyb3NzIHRvIHJlY2VpdmVyIG92ZXIgYW4gaW50 ZXJsYWNlZCB0cmFuc3BvcnQuIFRoZSAyIGZpZWxkcyByZWNlaXZlZAo+ID4+PiBhcmUgc2ltaWxh ciB0byBob3cgVjRMMl9GSUVMRF9BTFRFUk5BVEUgaXMgZXhjZXB0IHRoYXQgdGhlIGZpZWxkcyB3 ZXJlbid0Cj4gPj4+IGNhcHR1cmVkIGF0IDIgZGlmZmVyZW50IHRpbWVzLgo+ID4+Cj4gPj4gSSd2 ZSBub3cgcmVhZCBtb3JlIGFib3V0IHByb2dyZXNzaXZlIHNlZ21lbnRlZCBmcmFtZXMsIGFuZCBJ IHdhcyBpbmRlZWQKPiA+PiB3cm9uZyBhYm91dCB0aGUgZmFjdCB0aGF0IHRoZSB0d28gc2VnbWVu dHMgYXJlIHRyYW5zcG9ydGVkIG92ZXIKPiA+PiBkaWZmZXJlbnQgbGlua3MuCj4gPj4KPiA+PiBJ IHN0aWxsIHdvbmRlciwgaG93ZXZlciwgaWYgYSBfUFJPRyBzdWZmaXggaXMgdGhlIGJlc3Qgb3B0 aW9uLiBXb3VsZG4ndAo+ID4+IHdlIG5lZWQgdG8gYWxzbyBhZGQgVjRMMl9GSUVMRF9UT1BfUFJP RywgVjRMMl9GSUVMRF9CT1RUT01fUFJPRywKPiA+PiBWNEwyX0ZJRUxEX1NFUV9UQl9QUk9HIGFu ZCBWNEwyX0ZJRUxEX1NFUV9CVF9QUk9HLCBub3QgbmVjZXNzYXJpbHkgZm9yCj4gPj4gdGhpcyBk cml2ZXIsIGJ1dCBmb3Igb3RoZXIgZGV2aWNlcyB0aGF0IHdvdWxkIHN1cHBvcnQgY2FwdHVyaW5n IHRoZQo+ID4+IG9kZC9ldmVuIHNlZ21lbnRzIG9ubHksIG9yIHN1cHBvcnQgY2FwdHVyaW5nIGJv dGggc2VnbWVudHMgaW4gYSBzaW5nbGUKPiA+PiBidWZmZXIsIG9uZSBhZnRlciB0aGUgb3RoZXIg Pwo+ID4+Cj4gPj4gTWF5YmUgdGhhdCdzIHVuYXZvaWRhYmxlLCBhcyBlbnVtIHY0bDJfZmllbGQg Y29tYmluZXMgYm90aCB0aGUgYnVmZmVyCj4gPj4gbGF5b3V0IGFuZCB0aGUgZmFjdCB0aGF0IHRo ZSBmcmFtZSBpcyBpbnRlcmxhY2VkIG9yIHByb2dyZXNzaXZlLiBJZiB3ZQo+ID4+IGhhZCB0byBy ZWRlc2lnbiBpdCB3ZSBjb3VsZCBkbyBiZXR0ZXIsIGJ1dCBoYXZpbmcgdG8ga2VlcCBiYWNrd2Fy ZAo+ID4+IGNvbXBhdGliaWxpdHksIGR1cGxpY2F0aW5nIG1vc3QgdmFsdWVzIHdpdGggYSBfUFJP RyBzdWZmaXggbWF5IGJlIHRoZQo+ID4+IGJlc3Qgb3B0aW9uLgo+ID4+Cj4gPj4gSGFucywgYW55 IG9waW5pb24gPwo+IAo+IEkgZG9uJ3QgYmVsaWV2ZSB0aGVyZSBpcyBhbnkgbmVlZCB0byBjcmVh dGUgdGhvc2Ugb3RoZXIgVjRMMl9GSUVMRF8gdmFyaWFudHMuCj4gV2l0aCBWNEwyX0ZJRUxEX0FM VEVSTkFURV9QUk9HIGVhY2ggYnVmZmVyIHdpbGwgYmUgc2V0IHRvIFY0TDJfRklFTERfVE9QIChp LmUuCj4gb2RkIGxpbmVzKSBvciBWNEwyX0ZJRUxEX0JPVFRPTSAoaS5lLiBldmVuIGxpbmVzKS4K CldoYXQgaWYgYW4gYXBwbGljYXRpb24gd2FudHMgdG8gY2FwdHVyZSBUT1Agb3IgQk9UVE9NIGZp ZWxkcyBvbmx5IHRob3VnaAo/IFRoZSBETUEgZW5naW5lIHdvdWxkIG5lZWQgdG8gYmUgY29uZmln dXJlZCB3aXRoIGVpdGhlcgpWNEwyX0ZJRUxEX1RPUF9QUk9HIG9yIFY0TDJfRklFTERfQk9UVE9N X1BST0csIHdvdWxkbid0IGl0ID8gT3Igc2hvdWxkCnRoZSBfUFJPRyBpbmZvcm1hdGlvbiBiZSBy ZXBvcnRlZCBieSB0aGlzIHN1YmRldiBvbmx5LCBhbmQgbm90CnByb3BhZ2F0ZWQgdGhyb3VnaCB0 aGUgcGlwZWxpbmUgPwoKPiBUaGVyZSBpcyBub3RoaW5nIGVsc2UgeW91IG5lZWQgaGVyZS4KPiAK PiBBIFY0TDJfRklFTERfU0VRX1RCX1BST0cgbWlnaHQgYmUgbmVlZGVkIGlmIHdlIGdldCBIVyB0 aGF0IGRvZXMgc29tZXRoaW5nCj4gc28gc3RyYW5nZS4KPiAKPiA+IENhbid0IHlvdXIgcmVjZWl2 ZXIgc3RvcmUgdGhlc2UgdHdvIGZyYWdtZW50IGRpcmVjdGx5IGludG8gYQo+ID4gcHJvZ3Jlc3Np dmUgYnVmZmVyIGluc3RlYWQgb2YgbGVha2luZyB0aGlzIEhXIHNwZWNpZmljIHRoaW5nIGludG8g dUFQSQo+ID4gPyBBbGwgeW91J2QgbmVlZCBpcyBzdXBwb3J0IGZvciBzdHJpZGUgKGJ5dGVzcGVy bGluZSkgYXQgdGhlIEhXCj4gPiB3cml0ZWJhY2sgbGV2ZWwsIGFuZCB0aGVuIHlvdSBjYW4gaGlk ZSB0aGlzIGNvbXBsZXhpY3V0eSB0byB1c2Vyc3BhY2UKPiA+IGJ5IGZpbGxpbmcgdGhlIHRvcC9i b3R0b20gbGluZSBvbmx5LiBZb3Ugc2ltcGx5IG11bHRpcGx5IHRoZSBzdHJpZGUgYnkKPiA+IHR3 byBpbiB0aGlzIGNvbnRleHQuCj4gCj4gVmlzaGFsLCB0aGlzIGlzIGEgZ29vZCBxdWVzdGlvbiBm cm9tIE5pY29sYXMuCj4gCj4gQW4gYWx0ZXJuYXRpdmUgc29sdXRpb24gbWlnaHQgYmUgdG8gRE1B IHRoZSBvZGQgYW5kIGV2ZW4gbGluZXMgdG8gdGhlCj4gc2FtZSBidWZmZXIsIGJ1dCBjb25zZWN1 dGl2ZS4gSS5lLiwgaW5zdGVhZCBvZiBoYXZpbmcgdG8gY3JlYXRlIGEKPiBWNEwyX0ZJRUxEX0FM VEVSTkFURV9QUk9HLCB5b3UnZCBjcmVhdGUgYSBWNEwyX0ZJRUxEX1NFUV9UQl9QUk9HLCB3aGlj aAo+IGlzIGlkZW50aWNhbCB0byBWNEwyX0ZJRUxEX1NFUV9UQiwgZXhjZXB0IHRoYXQgaXQgaXMg Zm9yIGEgcHJvZ3Jlc3NpdmUKPiBmcmFtZS4KPiAKPiBJZiB5b3UgY2FuIGF2b2lkIFY0TDJfRklF TERfQUxURVJOQVRFX1BST0cgc29tZWhvdyBhbmQganVzdCByZXR1cm4gYQo+IHNpbmdsZSBidWZm ZXIgcGVyIGZyYW1lLCB0aGVuIHRoYXQgd291bGQgYmUgbXVjaCBiZXR0ZXIuIE9uZSBmaWVsZCBw ZXIKPiBidWZmZXIgaXMgYSBiaWcgcGFpbiBmb3IgdXNlcnNwYWNlLgoKVGhhdCdzIG91dCBvZiBj b250cm9sIG9mIHRoaXMgZHJpdmVyIHRob3VnaCwgaXQgZGVwZW5kcyBvbiB0aGUgcmVzdCBvZgp0 aGUgcGlwZWxpbmUuIFRoZSBTREkgUlggc3ViZGV2IHByb2R1Y2VzIGFsdGVybmF0ZSBmcmFtZXMs IGl0J3MgdXAgdG8KdGhlIHJlc3Qgb2YgdGhlIEZQR0EgdG8gZGVjaWRlIGhvdyB0byBzdG9yZSB0 aGF0IGluIG1lbW9yeS4KCj4gPj4+IFNvIEkgd2lsbCBhZGQgdGhlIFY0TDJfRklFTERfQUxURVJO QVRFX1BST0cgaW4gbmV4dCBwYXRjaCB2ZXJzaW9uLgo+ID4+Cj4gPj4gW3NuaXBdCgotLSAKUmVn YXJkcywKCkxhdXJlbnQgUGluY2hhcnQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5CD95C433E2 for ; Tue, 15 Sep 2020 02:39:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 05CED208E4 for ; Tue, 15 Sep 2020 02:39:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="gi7UkDFo" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726057AbgIOCjH (ORCPT ); Mon, 14 Sep 2020 22:39:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37688 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726045AbgIOCjG (ORCPT ); Mon, 14 Sep 2020 22:39:06 -0400 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 776E4C06174A; Mon, 14 Sep 2020 19:39:06 -0700 (PDT) Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id A4A49275; Tue, 15 Sep 2020 04:38:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1600137538; bh=ceWb6jetlVmK1+PMT2AVlI5YUi1hnO6JDbvNsbyGh1A=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=gi7UkDFo1MmLdvpjAPNCuF8guUHpOsMGcJeUtmsmlHYNPmrlMi547DhAkV7pyXB9n 6t2V4NYVKhn1IbeMI42FK0avPvMj+sjGDtJlvrqOHzxAVFJnj21ImsIYY7AQGFAi8O l9AH6jIGoGXIaQgrnldofe+GRZvzuPKZVv4WTezE= Date: Tue, 15 Sep 2020 05:38:29 +0300 From: Laurent Pinchart To: Hans Verkuil Cc: Nicolas Dufresne , Vishal Sagar , Hyun Kwon , "mchehab@kernel.org" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , Michal Simek , "linux-media@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "joe@perches.com" , Sandip Kothari , Dinesh Kumar Subject: Re: [PATCH v3 3/3] media: v4l: xilinx: Add Xilinx UHD-SDI Rx Subsystem driver Message-ID: <20200915023829.GE15543@pendragon.ideasonboard.com> References: <20200618053304.14551-1-vishal.sagar@xilinx.com> <20200618053304.14551-4-vishal.sagar@xilinx.com> <50cc4f4b-e788-c5ad-cd6a-b428b96d5377@xs4all.nl> <20200715213315.GF6144@pendragon.ideasonboard.com> <20200819165641.GS6049@pendragon.ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Hi Hans, On Thu, Sep 10, 2020 at 12:22:28PM +0200, Hans Verkuil wrote: > On 26/08/2020 16:10, Nicolas Dufresne wrote: > > Le mercredi 19 août 2020 à 19:56 +0300, Laurent Pinchart a écrit : > >> Hi Vishal, > >> > >> (Hans, there's a question for you below) > >> > >> On Wed, Aug 19, 2020 at 01:47:49PM +0000, Vishal Sagar wrote: > >>> On Thursday, July 16, 2020 3:03 AM Laurent Pinchart wrote: > >>>> On Thu, Jun 25, 2020 at 11:43:01AM +0200, Hans Verkuil wrote: > >>>>> On 18/06/2020 07:33, Vishal Sagar wrote: > >>>>>> The Xilinx UHD-SDI Rx subsystem soft IP is used to capture native SDI > >>>>>> streams from SDI sources like SDI broadcast equipment like cameras and > >>>>>> mixers. This block outputs either native SDI, native video or > >>>>>> AXI4-Stream compliant data stream for further processing. Please refer > >>>>>> to PG290 for details. > >>>>>> > >>>>>> The driver is used to configure the IP to add framer, search for > >>>>>> specific modes, get the detected mode, stream parameters, errors, etc. > >>>>>> It also generates events for video lock/unlock, bridge over/under flow. > >>>>>> > >>>>>> The driver supports 10/12 bpc YUV 422 media bus format currently. It > >>>>>> also decodes the stream parameters based on the ST352 packet embedded in the > >>>>>> stream. In case the ST352 packet isn't present in the stream, the core's > >>>>>> detected properties are used to set stream properties. > >>>>>> > >>>>>> The driver currently supports only the AXI4-Stream IP configuration. > >>>>>> > >>>>>> Signed-off-by: Vishal Sagar > >>>>>> --- > >>>>>> v3 > >>>>>> - fixed KConfig with better description > >>>>>> - removed unnecessary header files > >>>>>> - converted uppercase to lowercase for all hex values > >>>>>> - merged core struct to state struct > >>>>>> - removed most one line functions and replaced with direct reg > >>>>>> read/write or macros > >>>>>> - dt property bpp to bpc. default 10. not mandatory. > >>>>>> - fixed subscribe events, log_status, s_stream > >>>>>> - merged overflow/underflow to one event > >>>>>> - moved all controls to xilinx-sdirxss.h > >>>>>> - max events from 128 to 8 > >>>>>> - used FIELD_GET() instead of custom macro > >>>>>> - updated the controls documentation > >>>>>> - added spinlock > >>>>>> - removed 3GB control and added mode to detect bitmask > >>>>>> - fixed format for (width, height, colorspace, xfer func, etc) > >>>>>> - added dv_timings_cap, s/g_dv_timings > >>>>>> - fixed set/get_format > >>>>>> - fix v4l control registrations > >>>>>> - fix order of registration / deregistration in probe() remove() > >>>>>> - fixed other comments from Hyun, Laurent and Hans > >>>>>> - things yet to close > >>>>>> - adding source port for connector (Laurent's suggestion) > >>>>>> - adding new FIELD type for Transport Stream V4L2_FIELD_ALTERNATE_PROG (Han's suggestion) > >>>>>> - Update / remove EDH or CRC related controls > >>>>>> > >>>>>> v2 > >>>>>> - Added DV timing support based on Hans Verkuilś feedback > >>>>>> - More documentation to custom v4l controls and events > >>>>>> - Fixed Hyunś comments > >>>>>> - Added macro for masking and shifting as per Joe Perches comments > >>>>>> - Updated to latest as per Xilinx github repo driver like > >>>>>> adding new DV timings not in mainline yet uptill 03/21/20 > >>>>>> > >>>>>> drivers/media/platform/xilinx/Kconfig | 11 + > >>>>>> drivers/media/platform/xilinx/Makefile | 1 + > >>>>>> .../media/platform/xilinx/xilinx-sdirxss.c | 2121 +++++++++++++++++ > >>>>>> include/uapi/linux/v4l2-controls.h | 6 + > >>>>>> include/uapi/linux/xilinx-sdirxss.h | 283 +++ > >>>>>> 5 files changed, 2422 insertions(+) > >>>>>> create mode 100644 drivers/media/platform/xilinx/xilinx-sdirxss.c > >>>>>> create mode 100644 include/uapi/linux/xilinx-sdirxss.h > >> > >> [snip] > >> > >>>>>> diff --git a/drivers/media/platform/xilinx/xilinx-sdirxss.c b/drivers/media/platform/xilinx/xilinx-sdirxss.c > >>>>>> new file mode 100644 > >>>>>> index 000000000000..e39aab7c656a > >>>>>> --- /dev/null > >>>>>> +++ b/drivers/media/platform/xilinx/xilinx-sdirxss.c > >>>>>> @@ -0,0 +1,2121 @@ > >> > >> [snip] > >> > >>>>>> + case V4L2_CID_XILINX_SDIRX_TS_IS_INTERLACED: > >>>>>> + ctrl->val = xsdirxss->ts_is_interlaced; > >>>>>> + break; > >>>>> > >>>>> I assume this control will disappear once you added support for > >>>>> FIELD_ALTERNATE_PROG? > >>>> > >>>> I'm not sure FIELD_ALTERNATE_PROG is a good idea. The v4l2_field > >>>> specifies today how frames are split into multiple buffers. There's an > >>>> implicit assumption that a frame split into two buffers is captured with > >>>> interlacing. In the SDI case, the two concepts get decoupled, a > >>>> progressive frame can be transmitted (and captured) in two separate > >>>> parts. If we add a *_PROG field, we'll need to duplicate most of the > >>>> v4l2_field values with a _PROG suffix, as the progressive frame can be > >>>> captured in alternate buffers on a video node, but also in separate odd > >>>> and even buffers on two video nodes. Tt the hardware level, data is > >>>> transmitted with odd lines on one link, and even lines on a second link. > >>>> There are then two instances of this IP core, one for each link. One > >>>> instance would receive and process the even lines, the other instance > >>>> the odd lines. The output of the two instances can then be connected to > >>>> two separate DMA engines, or combined in the FPGA fabric, depending on > >>>> how the user designs the system. > >>> > >>> My apologies to give incorrect info regarding this. > >>> In the progressive segmented frame, a progressive captured frame is sent > >>> across to receiver over an interlaced transport. The 2 fields received > >>> are similar to how V4L2_FIELD_ALTERNATE is except that the fields weren't > >>> captured at 2 different times. > >> > >> I've now read more about progressive segmented frames, and I was indeed > >> wrong about the fact that the two segments are transported over > >> different links. > >> > >> I still wonder, however, if a _PROG suffix is the best option. Wouldn't > >> we need to also add V4L2_FIELD_TOP_PROG, V4L2_FIELD_BOTTOM_PROG, > >> V4L2_FIELD_SEQ_TB_PROG and V4L2_FIELD_SEQ_BT_PROG, not necessarily for > >> this driver, but for other devices that would support capturing the > >> odd/even segments only, or support capturing both segments in a single > >> buffer, one after the other ? > >> > >> Maybe that's unavoidable, as enum v4l2_field combines both the buffer > >> layout and the fact that the frame is interlaced or progressive. If we > >> had to redesign it we could do better, but having to keep backward > >> compatibility, duplicating most values with a _PROG suffix may be the > >> best option. > >> > >> Hans, any opinion ? > > I don't believe there is any need to create those other V4L2_FIELD_ variants. > With V4L2_FIELD_ALTERNATE_PROG each buffer will be set to V4L2_FIELD_TOP (i.e. > odd lines) or V4L2_FIELD_BOTTOM (i.e. even lines). What if an application wants to capture TOP or BOTTOM fields only though ? The DMA engine would need to be configured with either V4L2_FIELD_TOP_PROG or V4L2_FIELD_BOTTOM_PROG, wouldn't it ? Or should the _PROG information be reported by this subdev only, and not propagated through the pipeline ? > There is nothing else you need here. > > A V4L2_FIELD_SEQ_TB_PROG might be needed if we get HW that does something > so strange. > > > Can't your receiver store these two fragment directly into a > > progressive buffer instead of leaking this HW specific thing into uAPI > > ? All you'd need is support for stride (bytesperline) at the HW > > writeback level, and then you can hide this complexicuty to userspace > > by filling the top/bottom line only. You simply multiply the stride by > > two in this context. > > Vishal, this is a good question from Nicolas. > > An alternative solution might be to DMA the odd and even lines to the > same buffer, but consecutive. I.e., instead of having to create a > V4L2_FIELD_ALTERNATE_PROG, you'd create a V4L2_FIELD_SEQ_TB_PROG, which > is identical to V4L2_FIELD_SEQ_TB, except that it is for a progressive > frame. > > If you can avoid V4L2_FIELD_ALTERNATE_PROG somehow and just return a > single buffer per frame, then that would be much better. One field per > buffer is a big pain for userspace. That's out of control of this driver though, it depends on the rest of the pipeline. The SDI RX subdev produces alternate frames, it's up to the rest of the FPGA to decide how to store that in memory. > >>> So I will add the V4L2_FIELD_ALTERNATE_PROG in next patch version. > >> > >> [snip] -- Regards, Laurent Pinchart