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=-5.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HK_RANDOM_FROM,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS 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 95803C28CC7 for ; Mon, 10 Jun 2019 10:28:20 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 6C403204FD for ; Mon, 10 Jun 2019 10:28:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="bo5o2He0"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tBDV51gl" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6C403204FD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-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=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date: In-reply-to:Subject:To:From:References:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=H+8+qhO3LrRvbI3zxSsf+mQpsW7M2QXK3fIAMcMkIF8=; b=bo5o2He09TCfRqWefrr0GN7Fh8 otfFxezklOUQmgsHiCiyHXU2mhKfyYdkH9zwb9oUZUTsiOdZuURAtTwm6lChJeDFmZvhss3cUnsvA 3EXctk+D3mKlD6JqLLhqsCUwzC4d1oGI7USLfHOzg3VsOhVXzXKi+JV6Uy6jWRvTwvShFxdPq9gEm lc0gdjIrVbhQZphtD1Jd21WlsMNwj79LQIrWcnorBYBB6HAPLWVYornG24UkEtQkSRKEbCDKINFqt XgWUz2pjLmYYs7y9so6la7ovPZISTDadRkKx6/cjI2Oel5z1malA/emqsXZbt1k1SxPiUOL2/K3l1 RETc6Npg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1haHXI-0006Pv-1R; Mon, 10 Jun 2019 10:28:20 +0000 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1haHXE-0006PA-NB for linux-arm-kernel@lists.infradead.org; Mon, 10 Jun 2019 10:28:18 +0000 Received: by mail-wm1-x344.google.com with SMTP id 22so7620445wmg.2 for ; Mon, 10 Jun 2019 03:28:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version:content-transfer-encoding; bh=7m8Bu7lB4ksYeqfRRC/lPM6W8s5DmEJuKn8IqoNFhQw=; b=tBDV51glZGanQgxTrzVO0gB6qKNLNtHFVJzlIdOXKGFCpw7T2XTusKAcqq5pAPTZAV T6CwrZ2oBTDEfeBXhPbGHmcpWOZs6QTbrqEv638tstP43CPTIdgyI41jQmDrxkqKexUU PB+xRjdPYhQmXn4iaBf36w0LvmNDU8/8osT9T5NNys5zD+/3v+tag4dVgO8yKRUr59K4 Yo93vCwOp0HnDL7ooheDNURFFjUecG1drH7yqU4z8fUD6JLePi+D8Ucl1MqXjiyvR8bN e7HApf+oVcNBzoZYrjDHSi8Kxy4eKs9VeP/L1UuHL+l0m9zwz0btnfIUxobuQx6kNaO8 Bb5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version:content-transfer-encoding; bh=7m8Bu7lB4ksYeqfRRC/lPM6W8s5DmEJuKn8IqoNFhQw=; b=OgVi6iWasv3WKMro1lqTod9iO9NjGZmCNlNTYbV9E4+sF1l1V53XHG13Cf70pRleWe BGt55YEta57bkUJQ03NinRhVPSIaXuUvHE6psDuRIhjqlB43r/iLSuv1yAc3gTuA7b7V iSNHxkAYZog6CffBtNxWdXMP6gWXLusofsNj0wloMilCIagQDtH8dgb1IavjtypAyyTT ditBjUn+e4sDL2nl3GKLoyA/n3x8fTksnfSkA9baAFkX8qilhx2f+0BPqIMPbYjG9nCN sLqv+KxXcjc5BKCc04EC7R60LARA8IQZDK8G/VIo86Ht76/7iW+Xo9OY41xxmhuguLXR +ClQ== X-Gm-Message-State: APjAAAVSb+M/wQxztF47Hb/LKDPi6gswG4Ekc0f58CSaJzgY4MMerqgn VVVNL4LQK9WKrUoRo2ltqxM= X-Google-Smtp-Source: APXvYqz1+ua/jKrobyjGWLS/odDhaaFrpS9jOQgWwoi1byT+KHk9e6DZ6ewbswDaW86v2EWAQi4f6g== X-Received: by 2002:a7b:cc93:: with SMTP id p19mr8190437wma.12.1560162494535; Mon, 10 Jun 2019 03:28:14 -0700 (PDT) Received: from arch-late ([87.196.73.9]) by smtp.gmail.com with ESMTPSA id z5sm8466932wma.36.2019.06.10.03.28.12 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 10 Jun 2019 03:28:13 -0700 (PDT) References: <20190606153825.8183-1-sebastien.szymanski@armadeus.com> <20190606153825.8183-2-sebastien.szymanski@armadeus.com> User-agent: mu4e 1.2.0; emacs 27.0.50 From: Rui Miguel Silva To: =?utf-8?Q?S=C3=A9bastien?= Szymanski Subject: Re: [PATCH v2 2/3] media: imx7-media-csi: add i.MX6UL support In-reply-to: <20190606153825.8183-2-sebastien.szymanski@armadeus.com> Date: Mon, 10 Jun 2019 11:28:06 +0100 Message-ID: MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190610_032816_761753_04986940 X-CRM114-Status: GOOD ( 25.81 ) 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: devel@driverdev.osuosl.org, devicetree@vger.kernel.org, Fabio Estevam , Pengutronix Kernel Team , Greg Kroah-Hartman , Sascha Hauer , linux-kernel@vger.kernel.org, Rob Herring , NXP Linux Team , Philipp Zabel , Steve Longerbeam , Mark Rutland , Mauro Carvalho Chehab , Shawn Guo , linux-arm-kernel@lists.infradead.org, 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+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgU2ViYXN0aWVuLApUaGFua3MgZm9yIHRoZSBwYXRjaC4KCk9uIFRodSAwNiBKdW4gMjAxOSBh dCAxNjozOCwgU8OpYmFzdGllbiBTenltYW5za2kgd3JvdGU6Cj4gaS5NWDcgYW5kIGkuTVg2VUwv TCBoYXZlIHRoZSBzYW1lIENTSSBjb250cm9sbGVyLiBTbyBhZGQgaS5NWDZVTC9MIHN1cHBvcnQK PiB0byBpbXg3LW1lZGlhLWNzaSBkcml2ZXIuCj4KPiBTaWduZWQtb2ZmLWJ5OiBTw6liYXN0aWVu IFN6eW1hbnNraSA8c2ViYXN0aWVuLnN6eW1hbnNraUBhcm1hZGV1cy5jb20+Cj4gLS0tCj4KPiBD aGFuZ2VzIGZvciB2MjoKPiAgLSByZWJhc2Ugb24gdG9wIG9mIGxpbnV4dHYvbWFzdGVyCj4gIC0g bWVudGlvbiBpLk1YNlVML0wgaW4gaGVhZGVyIGFuZCBLY29uZmlnIGhlbHAgdGV4dAo+ICAtIHJl bmFtZSBjc2lfdHlwZSB0byBjc2lfc29jX2lkCj4KPiAgZHJpdmVycy9zdGFnaW5nL21lZGlhL2lt eC9LY29uZmlnICAgICAgICAgIHwgIDQgKy0KPiAgZHJpdmVycy9zdGFnaW5nL21lZGlhL2lteC9p bXg3LW1lZGlhLWNzaS5jIHwgNjIgKysrKysrKysrKysrKysrKy0tLS0tLQo+ICAyIGZpbGVzIGNo YW5nZWQsIDQ5IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9pbXgvS2NvbmZpZyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRp YS9pbXgvS2NvbmZpZwo+IGluZGV4IGFkM2Q3ZGY2YmIzYy4uOGI2ZGM0MmMzOWUwIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9pbXgvS2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMv c3RhZ2luZy9tZWRpYS9pbXgvS2NvbmZpZwo+IEBAIC0yMiwxMSArMjIsMTEgQEAgY29uZmlnIFZJ REVPX0lNWF9DU0kKPiAgCSAgQSB2aWRlbzRsaW51eCBjYW1lcmEgc2Vuc29yIGludGVyZmFjZSBk cml2ZXIgZm9yIGkuTVg1LzYuCj4KPiAgY29uZmlnIFZJREVPX0lNWDdfQ1NJCj4gLQl0cmlzdGF0 ZSAiaS5NWDcgQ2FtZXJhIFNlbnNvciBJbnRlcmZhY2UgZHJpdmVyIgo+ICsJdHJpc3RhdGUgImku TVg2VUwvTCAvIGkuTVg3IENhbWVyYSBTZW5zb3IgSW50ZXJmYWNlIGRyaXZlciIKPiAgCWRlcGVu ZHMgb24gVklERU9fSU1YX01FRElBICYmIFZJREVPX0RFViAmJiBJMkMKPiAgCWRlZmF1bHQgeQo+ ICAJaGVscAo+ICAJICBFbmFibGUgc3VwcG9ydCBmb3IgdmlkZW80bGludXggY2FtZXJhIHNlbnNv ciBpbnRlcmZhY2UgZHJpdmVyIGZvcgo+IC0JICBpLk1YNy4KPiArCSAgaS5NWDZVTC9MIG9yIGku TVg3Lgo+ICBlbmRtZW51Cj4gIGVuZGlmCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9t ZWRpYS9pbXgvaW14Ny1tZWRpYS1jc2kuYyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9pbXgvaW14 Ny1tZWRpYS1jc2kuYwo+IGluZGV4IDkxMDE1NjZmM2Y2Ny4uOTAyYmRjZTU5NGNmIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9pbXgvaW14Ny1tZWRpYS1jc2kuYwo+ICsrKyBi L2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9pbXgvaW14Ny1tZWRpYS1jc2kuYwo+IEBAIC0xLDYgKzEs NiBAQAo+ICAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ICAvKgo+IC0gKiBW NEwyIENhcHR1cmUgQ1NJIFN1YmRldiBmb3IgRnJlZXNjYWxlIGkuTVg3IFNPQwo+ICsgKiBWNEwy IENhcHR1cmUgQ1NJIFN1YmRldiBmb3IgRnJlZXNjYWxlIGkuTVg2VUwvTCAvIGkuTVg3IFNPQwo+ ICAgKgo+ICAgKiBDb3B5cmlnaHQgKGMpIDIwMTkgTGluYXJvIEx0ZAo+ICAgKgo+IEBAIC0xNTIs NiArMTUyLDExIEBACj4gICNkZWZpbmUgQ1NJX0NTSUNSMTgJCTB4NDgKPiAgI2RlZmluZSBDU0lf Q1NJQ1IxOQkJMHg0Ywo+Cj4gK2VudW0gY3NpX3NvY19pZCB7Cj4gKwlJTVg3LAo+ICsJSU1YNlVM Cj4gK307Cj4gKwo+ICBzdHJ1Y3QgaW14N19jc2kgewo+ICAJc3RydWN0IGRldmljZSAqZGV2Owo+ ICAJc3RydWN0IHY0bDJfc3ViZGV2IHNkOwo+IEBAIC0xOTEsNiArMTk2LDcgQEAgc3RydWN0IGlt eDdfY3NpIHsKPiAgCWJvb2wgaXNfaW5pdDsKPiAgCWJvb2wgaXNfc3RyZWFtaW5nOwo+ICAJYm9v bCBpc19jc2kyOwo+ICsJZW51bSBjc2lfc29jX2lkIHNvY19pZDsKPgo+ICAJc3RydWN0IGNvbXBs ZXRpb24gbGFzdF9lb2ZfY29tcGxldGlvbjsKPiAgfTsKPiBAQCAtNTQ4LDYgKzU1NCwxNCBAQCBz dGF0aWMgaW50IGlteDdfY3NpX3BhZF9saW5rX3ZhbGlkYXRlKHN0cnVjdCB2NGwyX3N1YmRldiAq c2QsCj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4KPiArCWlmIChjc2ktPnNvY19pZCA9 PSBJTVg2VUwpIHsKPiArCQltdXRleF9sb2NrKCZjc2ktPmxvY2spOwo+ICsJCWNzaS0+aXNfY3Np MiA9IGZhbHNlOwo+ICsJCW11dGV4X3VubG9jaygmY3NpLT5sb2NrKTsKPiArCj4gKwkJcmV0dXJu IDA7Cj4gKwl9Cj4gKwo+ICAJcmV0ID0gaW14N19jc2lfZ2V0X3Vwc3RyZWFtX2VuZHBvaW50KGNz aSwgJnVwc3RyZWFtX2VwLCB0cnVlKTsKPiAgCWlmIChyZXQpIHsKPiAgCQl2NGwyX2VycigmY3Np LT5zZCwgImZhaWxlZCB0byBmaW5kIHVwc3RyZWFtIGVuZHBvaW50XG4iKTsKPiBAQCAtNzU3LDYg Kzc3MSw3IEBAIHN0YXRpYyBpbnQgaW14N19jc2lfY29uZmlndXJlKHN0cnVjdCBpbXg3X2NzaSAq Y3NpKQo+ICAJc3RydWN0IHY0bDJfcGl4X2Zvcm1hdCAqb3V0X3BpeCA9ICZ2ZGV2LT5mbXQuZm10 LnBpeDsKPiAgCV9fdTMyIGluX2NvZGUgPSBjc2ktPmZvcm1hdF9tYnVzW0lNWDdfQ1NJX1BBRF9T SU5LXS5jb2RlOwo+ICAJdTMyIGNyMSwgY3IxODsKPiArCWludCB3aWR0aCA9IG91dF9waXgtPndp ZHRoOwo+Cj4gIAlpZiAob3V0X3BpeC0+ZmllbGQgPT0gVjRMMl9GSUVMRF9JTlRFUkxBQ0VEKSB7 Cj4gIAkJaW14N19jc2lfZGVpbnRlcmxhY2VfZW5hYmxlKGNzaSwgdHJ1ZSk7Cj4gQEAgLTc2Niwx NSArNzgxLDI3IEBAIHN0YXRpYyBpbnQgaW14N19jc2lfY29uZmlndXJlKHN0cnVjdCBpbXg3X2Nz aSAqY3NpKQo+ICAJCWlteDdfY3NpX2J1Zl9zdHJpZGVfc2V0KGNzaSwgMCk7Cj4gIAl9Cj4KPiAt CWlteDdfY3NpX3NldF9pbWFncGFyYShjc2ksIG91dF9waXgtPndpZHRoLCBvdXRfcGl4LT5oZWln aHQpOwo+ICsJY3IxOCA9IGlteDdfY3NpX3JlZ19yZWFkKGNzaSwgQ1NJX0NTSUNSMTgpOwo+ICsK PiArCWlmICghY3NpLT5pc19jc2kyKSB7Cj4gKwkJaWYgKG91dF9waXgtPnBpeGVsZm9ybWF0ID09 IFY0TDJfUElYX0ZNVF9VWVZZIHx8Cj4gKwkJICAgIG91dF9waXgtPnBpeGVsZm9ybWF0ID09IFY0 TDJfUElYX0ZNVF9ZVVlWKQo+ICsJCQl3aWR0aCAqPSAyOwo+ICsKPiArCQlpbXg3X2NzaV9zZXRf aW1hZ3BhcmEoY3NpLCB3aWR0aCwgb3V0X3BpeC0+aGVpZ2h0KTsKPiArCj4gKwkJY3IxOCB8PSAo QklUX0JBU0VBRERSX1NXSVRDSF9FTiB8IEJJVF9CQVNFQUREUl9TV0lUQ0hfU0VMIHwKPiArCQkJ QklUX0JBU0VBRERSX0NIR19FUlJfRU4pOwo+ICsJCWlteDdfY3NpX3JlZ193cml0ZShjc2ksIGNy MTgsIENTSV9DU0lDUjE4KTsKPgo+IC0JaWYgKCFjc2ktPmlzX2NzaTIpCj4gIAkJcmV0dXJuIDA7 Cj4gKwl9Cj4gKwo+ICsJaW14N19jc2lfc2V0X2ltYWdwYXJhKGNzaSwgd2lkdGgsIG91dF9waXgt PmhlaWdodCk7Cj4KPiAgCWNyMSA9IGlteDdfY3NpX3JlZ19yZWFkKGNzaSwgQ1NJX0NTSUNSMSk7 Cj4gIAljcjEgJj0gfkJJVF9HQ0xLX01PREU7Cj4KPiAtCWNyMTggPSBpbXg3X2NzaV9yZWdfcmVh ZChjc2ksIENTSV9DU0lDUjE4KTsKPiAgCWNyMTggJj0gQklUX01JUElfREFUQV9GT1JNQVRfTUFT SzsKPiAgCWNyMTggfD0gQklUX0RBVEFfRlJPTV9NSVBJOwo+Cj4gQEAgLTgwOSwxMSArODM2LDkg QEAgc3RhdGljIHZvaWQgaW14N19jc2lfZW5hYmxlKHN0cnVjdCBpbXg3X2NzaSAqY3NpKQo+ICB7 Cj4gIAlpbXg3X2NzaV9zd19yZXNldChjc2kpOwo+Cj4gLQlpZiAoY3NpLT5pc19jc2kyKSB7Cj4g LQkJaW14N19jc2lfZG1hcmVxX3JmZl9lbmFibGUoY3NpKTsKPiAtCQlpbXg3X2NzaV9od19lbmFi bGVfaXJxKGNzaSk7Cj4gLQkJaW14N19jc2lfaHdfZW5hYmxlKGNzaSk7Cj4gLQl9Cj4gKwlpbXg3 X2NzaV9kbWFyZXFfcmZmX2VuYWJsZShjc2kpOwo+ICsJaW14N19jc2lfaHdfZW5hYmxlX2lycShj c2kpOwo+ICsJaW14N19jc2lfaHdfZW5hYmxlKGNzaSk7Cj4gIH0KPgo+ICBzdGF0aWMgdm9pZCBp bXg3X2NzaV9kaXNhYmxlKHN0cnVjdCBpbXg3X2NzaSAqY3NpKQo+IEBAIC0xMTY2LDE5ICsxMTkx LDMyIEBAIHN0YXRpYyBpbnQgaW14N19jc2lfcGFyc2VfZW5kcG9pbnQoc3RydWN0IGRldmljZSAq ZGV2LAo+ICAJcmV0dXJuIGZ3bm9kZV9kZXZpY2VfaXNfYXZhaWxhYmxlKGFzZC0+bWF0Y2guZndu b2RlKSA/IDAgOiAtRUlOVkFMOwo+ICB9Cj4KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZp Y2VfaWQgaW14N19jc2lfb2ZfbWF0Y2hbXSA9IHsKPiArCXsgLmNvbXBhdGlibGUgPSAiZnNsLGlt eDctY3NpIiwgLmRhdGEgPSAodm9pZCAqKUlNWDcgfSwKPiArCXsgLmNvbXBhdGlibGUgPSAiZnNs LGlteDZ1bC1jc2kiLCAuZGF0YSA9ICh2b2lkICopSU1YNlVMIH0sCgpsb29raW5nIGF0IHRoaXMg YWdhaW4gSSB0aGluayB3ZSBjYW4gZG8gdGhpcyBpcyBhIGRpZmZlcmVudCB3YXkuCkluc3RlYWQg ZGF0YSBiZWluZyB0aGUgc29jX2lkLCBqdXN0IHNldCBoZXJlIGlmIGl0IGlzX2NzaTIgb3Igbm90 LgoKVGhpcyB3b3VsZCBhdm9pZCB0byBhZGQgYSBzb2NfaWQgIHRvIHRoZSBzdHJ1Y3QgdGhhdCBp dCByZWFsbHkgaXQKaXMgdXNlZCBvbmx5IHRvIHNldHVwIHRoZSBpc19jc2kyIHZhci4gSSB0aGlu ayB0aGlzIHdpbGwgbWFrZSB0aGlzCnBhdGNoIGEgbG90IHNpbXBsZXIuCgo+ICsJeyB9LAo+ICt9 Owo+ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpbXg3X2NzaV9vZl9tYXRjaCk7Cj4gKwo+ICBz dGF0aWMgaW50IGlteDdfY3NpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4g IHsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gIAlzdHJ1Y3QgZGV2aWNl X25vZGUgKm5vZGUgPSBkZXYtPm9mX25vZGU7Cj4gIAlzdHJ1Y3QgaW14X21lZGlhX2RldiAqaW14 bWQ7Cj4gIAlzdHJ1Y3QgaW14N19jc2kgKmNzaTsKPiArCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2Vf aWQgKm9mX2lkOwo+ICAJaW50IHJldDsKPgo+ICsJb2ZfaWQgPSBvZl9tYXRjaF9ub2RlKGlteDdf Y3NpX29mX21hdGNoLCBub2RlKTsKCldpdGggdGhlIGFib3ZlIHNhaWQsIGhlcmUgSSB0aGluayB3 ZSBjYW4gdXNlIHRoZSBvZl9tYXRjaF9kZXZpY2U/Cgpob3BlIHRoaXMgbWFrZXMgc2Vuc2UgYWxz byB0byB5b3UuCgpPbmNlIGFnYWluIHRoYW5rcyBmb3IgdGhlIHBhdGNoZXMuCgotLS0KQ2hlZXJz LAogICAgICAgIFJ1aQoKPiArCWlmICghb2ZfaWQpCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwo+ ICAJY3NpID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqY3NpKSwgR0ZQX0tFUk5F TCk7Cj4gIAlpZiAoIWNzaSkKPiAgCQlyZXR1cm4gLUVOT01FTTsKPgo+ICAJY3NpLT5kZXYgPSBk ZXY7Cj4gKwljc2ktPnNvY19pZCA9IChlbnVtIGNzaV9zb2NfaWQpb2ZfaWQtPmRhdGE7Cj4KPiAg CWNzaS0+bWNsayA9IGRldm1fY2xrX2dldCgmcGRldi0+ZGV2LCAibWNsayIpOwo+ICAJaWYgKElT X0VSUihjc2ktPm1jbGspKSB7Cj4gQEAgLTEyOTQsMTIgKzEzMzIsNiBAQCBzdGF0aWMgaW50IGlt eDdfY3NpX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJcmV0dXJuIDA7 Cj4gIH0KPgo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbXg3X2NzaV9vZl9t YXRjaFtdID0gewo+IC0JeyAuY29tcGF0aWJsZSA9ICJmc2wsaW14Ny1jc2kiIH0sCj4gLQl7IH0s Cj4gLX07Cj4gLU1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGlteDdfY3NpX29mX21hdGNoKTsKPiAt Cj4gIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGlteDdfY3NpX2RyaXZlciA9IHsKPiAg CS5wcm9iZSA9IGlteDdfY3NpX3Byb2JlLAo+ICAJLnJlbW92ZSA9IGlteDdfY3NpX3JlbW92ZSwK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1h cm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5v cmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0t a2VybmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rui Miguel Silva Subject: Re: [PATCH v2 2/3] media: imx7-media-csi: add i.MX6UL support Date: Mon, 10 Jun 2019 11:28:06 +0100 Message-ID: References: <20190606153825.8183-1-sebastien.szymanski@armadeus.com> <20190606153825.8183-2-sebastien.szymanski@armadeus.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: In-reply-to: <20190606153825.8183-2-sebastien.szymanski@armadeus.com> Sender: linux-kernel-owner@vger.kernel.org To: =?utf-8?Q?S=C3=A9bastien?= Szymanski Cc: devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, Shawn Guo , Mauro Carvalho Chehab , Greg Kroah-Hartman , Philipp Zabel , Steve Longerbeam , NXP Linux Team , Fabio Estevam , Pengutronix Kernel Team , Sascha Hauer , Mark Rutland , Rob Herring List-Id: devicetree@vger.kernel.org Hi Sebastien, Thanks for the patch. On Thu 06 Jun 2019 at 16:38, S=C3=A9bastien Szymanski wrote: > i.MX7 and i.MX6UL/L have the same CSI controller. So add i.MX6UL/L support > to imx7-media-csi driver. > > Signed-off-by: S=C3=A9bastien Szymanski > --- > > Changes for v2: > - rebase on top of linuxtv/master > - mention i.MX6UL/L in header and Kconfig help text > - rename csi_type to csi_soc_id > > drivers/staging/media/imx/Kconfig | 4 +- > drivers/staging/media/imx/imx7-media-csi.c | 62 ++++++++++++++++------ > 2 files changed, 49 insertions(+), 17 deletions(-) > > diff --git a/drivers/staging/media/imx/Kconfig b/drivers/staging/media/im= x/Kconfig > index ad3d7df6bb3c..8b6dc42c39e0 100644 > --- a/drivers/staging/media/imx/Kconfig > +++ b/drivers/staging/media/imx/Kconfig > @@ -22,11 +22,11 @@ config VIDEO_IMX_CSI > A video4linux camera sensor interface driver for i.MX5/6. > > config VIDEO_IMX7_CSI > - tristate "i.MX7 Camera Sensor Interface driver" > + tristate "i.MX6UL/L / i.MX7 Camera Sensor Interface driver" > depends on VIDEO_IMX_MEDIA && VIDEO_DEV && I2C > default y > help > Enable support for video4linux camera sensor interface driver for > - i.MX7. > + i.MX6UL/L or i.MX7. > endmenu > endif > diff --git a/drivers/staging/media/imx/imx7-media-csi.c b/drivers/staging= /media/imx/imx7-media-csi.c > index 9101566f3f67..902bdce594cf 100644 > --- a/drivers/staging/media/imx/imx7-media-csi.c > +++ b/drivers/staging/media/imx/imx7-media-csi.c > @@ -1,6 +1,6 @@ > // SPDX-License-Identifier: GPL-2.0 > /* > - * V4L2 Capture CSI Subdev for Freescale i.MX7 SOC > + * V4L2 Capture CSI Subdev for Freescale i.MX6UL/L / i.MX7 SOC > * > * Copyright (c) 2019 Linaro Ltd > * > @@ -152,6 +152,11 @@ > #define CSI_CSICR18 0x48 > #define CSI_CSICR19 0x4c > > +enum csi_soc_id { > + IMX7, > + IMX6UL > +}; > + > struct imx7_csi { > struct device *dev; > struct v4l2_subdev sd; > @@ -191,6 +196,7 @@ struct imx7_csi { > bool is_init; > bool is_streaming; > bool is_csi2; > + enum csi_soc_id soc_id; > > struct completion last_eof_completion; > }; > @@ -548,6 +554,14 @@ static int imx7_csi_pad_link_validate(struct v4l2_su= bdev *sd, > if (ret) > return ret; > > + if (csi->soc_id =3D=3D IMX6UL) { > + mutex_lock(&csi->lock); > + csi->is_csi2 =3D false; > + mutex_unlock(&csi->lock); > + > + return 0; > + } > + > ret =3D imx7_csi_get_upstream_endpoint(csi, &upstream_ep, true); > if (ret) { > v4l2_err(&csi->sd, "failed to find upstream endpoint\n"); > @@ -757,6 +771,7 @@ static int imx7_csi_configure(struct imx7_csi *csi) > struct v4l2_pix_format *out_pix =3D &vdev->fmt.fmt.pix; > __u32 in_code =3D csi->format_mbus[IMX7_CSI_PAD_SINK].code; > u32 cr1, cr18; > + int width =3D out_pix->width; > > if (out_pix->field =3D=3D V4L2_FIELD_INTERLACED) { > imx7_csi_deinterlace_enable(csi, true); > @@ -766,15 +781,27 @@ static int imx7_csi_configure(struct imx7_csi *csi) > imx7_csi_buf_stride_set(csi, 0); > } > > - imx7_csi_set_imagpara(csi, out_pix->width, out_pix->height); > + cr18 =3D imx7_csi_reg_read(csi, CSI_CSICR18); > + > + if (!csi->is_csi2) { > + if (out_pix->pixelformat =3D=3D V4L2_PIX_FMT_UYVY || > + out_pix->pixelformat =3D=3D V4L2_PIX_FMT_YUYV) > + width *=3D 2; > + > + imx7_csi_set_imagpara(csi, width, out_pix->height); > + > + cr18 |=3D (BIT_BASEADDR_SWITCH_EN | BIT_BASEADDR_SWITCH_SEL | > + BIT_BASEADDR_CHG_ERR_EN); > + imx7_csi_reg_write(csi, cr18, CSI_CSICR18); > > - if (!csi->is_csi2) > return 0; > + } > + > + imx7_csi_set_imagpara(csi, width, out_pix->height); > > cr1 =3D imx7_csi_reg_read(csi, CSI_CSICR1); > cr1 &=3D ~BIT_GCLK_MODE; > > - cr18 =3D imx7_csi_reg_read(csi, CSI_CSICR18); > cr18 &=3D BIT_MIPI_DATA_FORMAT_MASK; > cr18 |=3D BIT_DATA_FROM_MIPI; > > @@ -809,11 +836,9 @@ static void imx7_csi_enable(struct imx7_csi *csi) > { > imx7_csi_sw_reset(csi); > > - if (csi->is_csi2) { > - imx7_csi_dmareq_rff_enable(csi); > - imx7_csi_hw_enable_irq(csi); > - imx7_csi_hw_enable(csi); > - } > + imx7_csi_dmareq_rff_enable(csi); > + imx7_csi_hw_enable_irq(csi); > + imx7_csi_hw_enable(csi); > } > > static void imx7_csi_disable(struct imx7_csi *csi) > @@ -1166,19 +1191,32 @@ static int imx7_csi_parse_endpoint(struct device = *dev, > return fwnode_device_is_available(asd->match.fwnode) ? 0 : -EINVAL; > } > > +static const struct of_device_id imx7_csi_of_match[] =3D { > + { .compatible =3D "fsl,imx7-csi", .data =3D (void *)IMX7 }, > + { .compatible =3D "fsl,imx6ul-csi", .data =3D (void *)IMX6UL }, looking at this again I think we can do this is a different way. Instead data being the soc_id, just set here if it is_csi2 or not. This would avoid to add a soc_id to the struct that it really it is used only to setup the is_csi2 var. I think this will make this patch a lot simpler. > + { }, > +}; > +MODULE_DEVICE_TABLE(of, imx7_csi_of_match); > + > static int imx7_csi_probe(struct platform_device *pdev) > { > struct device *dev =3D &pdev->dev; > struct device_node *node =3D dev->of_node; > struct imx_media_dev *imxmd; > struct imx7_csi *csi; > + const struct of_device_id *of_id; > int ret; > > + of_id =3D of_match_node(imx7_csi_of_match, node); With the above said, here I think we can use the of_match_device? hope this makes sense also to you. Once again thanks for the patches. --- Cheers, Rui > + if (!of_id) > + return -ENODEV; > + > csi =3D devm_kzalloc(&pdev->dev, sizeof(*csi), GFP_KERNEL); > if (!csi) > return -ENOMEM; > > csi->dev =3D dev; > + csi->soc_id =3D (enum csi_soc_id)of_id->data; > > csi->mclk =3D devm_clk_get(&pdev->dev, "mclk"); > if (IS_ERR(csi->mclk)) { > @@ -1294,12 +1332,6 @@ static int imx7_csi_remove(struct platform_device = *pdev) > return 0; > } > > -static const struct of_device_id imx7_csi_of_match[] =3D { > - { .compatible =3D "fsl,imx7-csi" }, > - { }, > -}; > -MODULE_DEVICE_TABLE(of, imx7_csi_of_match); > - > static struct platform_driver imx7_csi_driver =3D { > .probe =3D imx7_csi_probe, > .remove =3D imx7_csi_remove,