From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mauro Carvalho Chehab Subject: Re: [PATCH 5/5] media: tvp5150: add support to limit tv norms on connector Date: Wed, 20 Mar 2019 14:29:31 -0300 Message-ID: <20190320142931.4a4b91fd@coco.lan> References: <20190202121004.9014-1-m.felsch@pengutronix.de> <20190202121004.9014-6-m.felsch@pengutronix.de> <20190320111851.1749c9ac@coco.lan> <20190320163650.ua6cx3jwffm36p3m@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190320163650.ua6cx3jwffm36p3m@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Marco Felsch Cc: devicetree@vger.kernel.org, sakari.ailus@linux.intel.com, airlied@linux.ie, dri-devel@lists.freedesktop.org, robh+dt@kernel.org, hans.verkuil@cisco.com, kernel@pengutronix.de, linux-media@vger.kernel.org List-Id: devicetree@vger.kernel.org RW0gV2VkLCAyMCBNYXIgMjAxOSAxNzozNjo1MCArMDEwMApNYXJjbyBGZWxzY2ggPG0uZmVsc2No QHBlbmd1dHJvbml4LmRlPiBlc2NyZXZldToKCj4gSGkgTWF1cm8sCj4gCj4gT24gMTktMDMtMjAg MTE6MTgsIE1hdXJvIENhcnZhbGhvIENoZWhhYiB3cm90ZToKPiA+IEVtIFNhdCwgIDIgRmViIDIw MTkgMTM6MTA6MDQgKzAxMDAKPiA+IE1hcmNvIEZlbHNjaCA8bS5mZWxzY2hAcGVuZ3V0cm9uaXgu ZGU+IGVzY3JldmV1Ogo+ID4gICAKPiA+ID4gVGhlIHR2cDUxNTAgYWNjZXB0cyBOVFNDKE0sSiw0 LjQzKSwgUEFMIChCLEQsRyxILEksTSxOKSBhbmQgU0VDQU0gdmlkZW8KPiA+ID4gZGF0YSBhbmQg aXMgYWJsZSB0byBhdXRvLWRldGVjdCB0aGUgaW5wdXQgc2lnbmFsLiAgIAo+ID4gCj4gPiBIbW0u Li4gSSdtIGFmcmFpZCBvZiB0aGlzIGNoYW5nZS4gQXMgZmFyIGFzIEkgcmVtZW1iZXIsIEkgdGVz dGVkIHNvbWUKPiA+IHdlaXJkIGZvcm1hdCB2YXJpYW50cyBsaWtlIFY0TDJfU1REX1BBTF82MCBh IGxvbmcgdGltZSBhZ28sIGJ1dCB0aGVyZSdzCj4gPiBubyB3YXkgdG8gZm9yY2UgdmlkZW8gdG8g dXNlIHRob3NlLiBUaGUgZm9ybWF0IHNlbGVjdGlvbiBsb2dpYyBzaW1wbHkKPiA+IHBsYWNlcyB0 aGUgZGV2aWNlIG9uIGF1dG8tZGV0ZWN0IG1vZGUgZm9yIHRob3NlIHdlaXJkb3MsIGFuZCB0aGF0 Cj4gPiB3b3JrcyBmaW5lIGF0IHRoZSBkZXZpY2VzIEkga25vdy4gIAo+IAo+IFNvcnJ5IEkgZGlk bid0IGdldCB0aGlzLiBUaGUgZm9ybWF0IGlzIHNldCB0byBhdXRvZGV0ZWN0IGR1cmluZyBwcm9i ZSgpLgoKWWVzLCBidXQgYXBwcyB3aWxsIGNoYW5nZSBiYXNlZCBvbiBHX0ZNVCwgVFJZX0ZNVCBh bmQgU19GTVQuCgpTZWUsIG15IG1haW4gY29uY2VybiBoZXJlIGlzIHdpdGggZXhpc3RpbmcgdHZw NTE1MCBub24tcGxhdGZvcm0KZHJpdmVycywgYXMgYSBjaGFuZ2UgdGhlcmUgd291bGQgYmUgYSBy ZWdyZXNzaW9uLgoKPiBJZiB0aGVyZSBpcyBubyBmb3JtYXQgbGltaXRhdGlvbiB0aGlzIHdvbid0 IGJlIGNoYW5nZWQgZHVyaW5nCj4gbWVkaWEubGlua19zZXR1cCgpLiBZb3UncmUgcmlnaHQgSSBm b3Jnb3QgdG8gY2hlY2sgaWYgdGhlIGN1cl9jb25uZWN0b3IKPiBpcyBhdmFpbGFibGUgZHVyaW5n IHR2cDUxNTBfc19zdGQoKSwgaW4gY2FzZSBvZiBwZGF0YSByZWxhdGVkIGRldmljZXMuCgpZZWFo LCB0aGF0J3Mgd2hhdCBJJ20gdGFsa2luZyBhYm91dC4KCj4gSW4gc3VjaCBhIGNhc2Ugd2Ugc2hv dWxkIHNldCBzdXBwb3J0ZWRfbm9ybXMgdG8gVjRMMl9TVERfQUxMIGFzIGl0IGlzCj4gZG9uZSBi eSB2NGwyX2Z3bm9kZV9wYXJzZV9jb25uZWN0b3IoKSBpZiBubyBsaW1pdGF0aW9ucyBhcmUgZ2l2 ZW4uCj4gCj4gQnR3LCBob3cgZG9lcyBpdCBsb29rIHdpdGggdGhlIG90aGVyIHBhdGNoc2V0PwoK SSBhc2tlZCBIYW5zIHRvIHRha2UgYSBsb29rIGF0IHRoZSBwYXRjaCBzZXJpZXMsIGFzIGhlJ3Mg c3ViLW1haW50YWluaW5nCnRoZSB2NGwyIHN0dWZmLiAKCkknbSBpbnRlbmRpbmcgdG8gdGFrZQph IGRlZXBlciBsb29rIGF0IHBhdGNoIDIvNyB2NCBmcm9tIHRoZSBwYXN0IHNlcmllcy4KCj4gCj4g UmVnYXJkcywKPiBNYXJjbwo+IAo+ID4gCj4gPiBBIGNoYW5nZSBsaWtlIHRoYXQgbWF5IGJyZWFr IHRoaW5ncy4gU28gSSB3b3VsZCBhY3R1YWxseSBoYXZlIGEgcXVpcmsKPiA+IHRvIG9wdGlvbmFs bHkgZGlzYWJsZSBhdXRvLWRldGVjdGlvbiBvbiBkZXZpY2VzIHRoYXQgdGhpcyBpcyBub3Qga25v dwo+ID4gdG8gd29yay4KPiA+ICAgCj4gPiA+IFRoZSBhdXRvLWRldGVjdGlvbgo+ID4gPiBkb2Vz IG5vdCB3b3JrIGlmIHRoZSBjb25uZWN0b3IgZG9lcyBub3QgcmVjZWl2ZSBhbiBpbnB1dCBzaWdu YWwgYW5kIHRoZQo+ID4gPiB0dnA1MTUwIG1pZ2h0IG5vdCBiZSBjb25maWd1cmVkIGNvcnJlY3Rs eS4gVGhpcyBtaXNjb25maWd1cmF0aW9uIGxlYWRzCj4gPiA+IGludG8gd3JvbmcgZGVjb2RlZCB2 aWRlbyBzdHJlYW1zIGlmIHRoZSB0dnA1MTUwIGdldHMgcG93ZXJlZCBvbiBiZWZvcmUKPiA+ID4g dGhlIHZpZGVvIHNpZ25hbCBpcyBwcmVzZW50Lgo+ID4gPiAKPiA+ID4gTGltaXQgdGhlIHN1cHBv cnRlZCB0diBub3JtcyBhY2NvcmRpbmcgdG8gdGhlIGFjdHVhbCBzZWxlY3RlZCBjb25uZWN0b3IK PiA+ID4gdG8gYXZvaWQgYSBtaXNjb25maWd1cmF0aW9uLgo+ID4gPiAKPiA+ID4gU2lnbmVkLW9m Zi1ieTogTWFyY28gRmVsc2NoIDxtLmZlbHNjaEBwZW5ndXRyb25peC5kZT4KPiA+ID4gLS0tCj4g PiA+ICBkcml2ZXJzL21lZGlhL2kyYy90dnA1MTUwLmMgfCA0MiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCj4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgNDEgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEv aTJjL3R2cDUxNTAuYyBiL2RyaXZlcnMvbWVkaWEvaTJjL3R2cDUxNTAuYwo+ID4gPiBpbmRleCBm M2EyYWQwMGE0MGQuLjc2MTk3OTNkZWU2NyAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9tZWRp YS9pMmMvdHZwNTE1MC5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEvaTJjL3R2cDUxNTAuYwo+ ID4gPiBAQCAtMzIsNiArMzIsMTMgQEAKPiA+ID4gICNkZWZpbmUgVFZQNTE1MF9NQlVTX0ZNVAlN RURJQV9CVVNfRk1UX1VZVlk4XzJYOAo+ID4gPiAgI2RlZmluZSBUVlA1MTUwX0ZJRUxECQlWNEwy X0ZJRUxEX0FMVEVSTkFURQo+ID4gPiAgI2RlZmluZSBUVlA1MTUwX0NPTE9SU1BBQ0UJVjRMMl9D T0xPUlNQQUNFX1NNUFRFMTcwTQo+ID4gPiArI2RlZmluZSBUVlA1MTUwX1NURF9NQVNLCShWNEwy X1NURF9OVFNDICAgICB8IFwKPiA+ID4gKwkJCQkgVjRMMl9TVERfTlRTQ180NDMgfCBcCj4gPiA+ ICsJCQkJIFY0TDJfU1REX1BBTCAgICAgIHwgXAo+ID4gPiArCQkJCSBWNEwyX1NURF9QQUxfTSAg ICB8IFwKPiA+ID4gKwkJCQkgVjRMMl9TVERfUEFMX04gICAgfCBcCj4gPiA+ICsJCQkJIFY0TDJf U1REX1BBTF9OYyAgIHwgXAo+ID4gPiArCQkJCSBWNEwyX1NURF9TRUNBTSkKPiA+ID4gIAo+ID4g PiAgTU9EVUxFX0RFU0NSSVBUSU9OKCJUZXhhcyBJbnN0cnVtZW50cyBUVlA1MTUwQS9UVlA1MTUw QU0xL1RWUDUxNTEgdmlkZW8gZGVjb2RlciBkcml2ZXIiKTsKPiA+ID4gIE1PRFVMRV9BVVRIT1Io Ik1hdXJvIENhcnZhbGhvIENoZWhhYiIpOwo+ID4gPiBAQCAtNzQsNiArODEsNyBAQCBzdHJ1Y3Qg dHZwNTE1MCB7Cj4gPiA+ICAJc3RydWN0IG1lZGlhX3BhZCBwYWRzW1RWUDUxNTBfTlVNX1BBRFNd Owo+ID4gPiAgCWludCBwYWRzX3N0YXRlW1RWUDUxNTBfTlVNX1BBRFNdOwo+ID4gPiAgCXN0cnVj dCB0dnA1MTUwX2Nvbm5lY3RvciAqY29ubmVjdG9yczsKPiA+ID4gKwlzdHJ1Y3QgdHZwNTE1MF9j b25uZWN0b3IgKmN1cl9jb25uZWN0b3I7Cj4gPiA+ICAJaW50IGNvbm5lY3RvcnNfbnVtOwo+ID4g PiAgCWJvb2wgbW9kaWZ5X3NlY29uZF9saW5rOwo+ID4gPiAgI2VuZGlmCj4gPiA+IEBAIC03OTQs MTcgKzgwMiwyNyBAQCBzdGF0aWMgaW50IHR2cDUxNTBfZ19zdGQoc3RydWN0IHY0bDJfc3ViZGV2 ICpzZCwgdjRsMl9zdGRfaWQgKnN0ZCkKPiA+ID4gIHN0YXRpYyBpbnQgdHZwNTE1MF9zX3N0ZChz dHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLCB2NGwyX3N0ZF9pZCBzdGQpCj4gPiA+ICB7Cj4gPiA+ICAJ c3RydWN0IHR2cDUxNTAgKmRlY29kZXIgPSB0b190dnA1MTUwKHNkKTsKPiA+ID4gKwl2NGwyX3N0 ZF9pZCBzdXBwb3J0ZWRfbm9ybXMgPQo+ID4gPiArCQlkZWNvZGVyLT5jdXJfY29ubmVjdG9yLT5i YXNlLmNvbm5lY3Rvci5hbmFsb2cuc3VwcG9ydGVkX3R2bm9ybXM7Cj4gPiA+ICAKPiA+ID4gIAlp ZiAoZGVjb2Rlci0+bm9ybSA9PSBzdGQpCj4gPiA+ICAJCXJldHVybiAwOwo+ID4gPiAgCj4gPiA+ ICsJLyoKPiA+ID4gKwkgKiBjaGVjayBpZiByZXF1ZXN0ZWQgc3RkIG9yIGdyb3VwIG9mIHN0ZCdz IGlzL2FyZSBzdXBwb3J0ZWQgYnkgdGhlCj4gPiA+ICsJICogY29ubmVjdG9yCj4gPiA+ICsJICov Cj4gPiA+ICsJaWYgKChzdXBwb3J0ZWRfbm9ybXMgJiBzdGQpID09IDApCj4gPiA+ICsJCXJldHVy biAtRUlOVkFMOwo+ID4gPiArCj4gPiA+ICAJLyogQ2hhbmdlIGNyb3BwaW5nIGhlaWdodCBsaW1p dHMgKi8KPiA+ID4gIAlpZiAoc3RkICYgVjRMMl9TVERfNTI1XzYwKQo+ID4gPiAgCQlkZWNvZGVy LT5yZWN0LmhlaWdodCA9IFRWUDUxNTBfVl9NQVhfNTI1XzYwOwo+ID4gPiAgCWVsc2UKPiA+ID4g IAkJZGVjb2Rlci0+cmVjdC5oZWlnaHQgPSBUVlA1MTUwX1ZfTUFYX09USEVSUzsKPiA+ID4gIAo+ ID4gPiAtCWRlY29kZXItPm5vcm0gPSBzdGQ7Cj4gPiA+ICsJLyogc2V0IG9ubHkgdGhlIHNwZWNp ZmljIHN1cHBvcnRlZCBzdGQgaW4gY2FzZSBvZiBncm91cCBvZiBzdGQncyAqLwo+ID4gPiArCWRl Y29kZXItPm5vcm0gPSBzdXBwb3J0ZWRfbm9ybXMgJiBzdGQ7Cj4gPiA+ICAKPiA+ID4gIAlyZXR1 cm4gdHZwNTE1MF9zZXRfc3RkKHNkLCBzdGQpOwo+ID4gPiAgfQo+ID4gPiBAQCAtMTI5OCw2ICsx MzE2LDcgQEAgc3RhdGljIGludCB0dnA1MTUwX2xpbmtfc2V0dXAoc3RydWN0IG1lZGlhX2VudGl0 eSAqZW50aXR5LAo+ID4gPiAgCWludCAqcGFkX3N0YXRlID0gJmRlY29kZXItPnBhZHNfc3RhdGVb MF07Cj4gPiA+ICAJaW50IGksIGFjdGl2ZV9wYWQsIHJldCA9IDA7Cj4gPiA+ICAJYm9vbCBpc19z dmlkZW8gPSBmYWxzZTsKPiA+ID4gKwlib29sIHVwZGF0ZV9jdXJfY29ubmVjdG9yID0gZmFsc2U7 Cj4gPiA+ICAKPiA+ID4gIAkvKgo+ID4gPiAgCSAqIFRoZSB0dnAgc3RhdGUgaXMgZGV0ZXJtaW5l ZCBieSB0aGUgZW5hYmxlZCBzaW5rIHBhZCBsaW5rLgo+ID4gPiBAQCAtMTM0NCwxMCArMTM2Mywx MiBAQCBzdGF0aWMgaW50IHR2cDUxNTBfbGlua19zZXR1cChzdHJ1Y3QgbWVkaWFfZW50aXR5ICpl bnRpdHksCj4gPiA+ICAJCQkJZGVjb2Rlci0+bW9kaWZ5X3NlY29uZF9saW5rID0gZmFsc2U7Cj4g PiA+ICAJCQkJdHZwNTE1MF9zX3JvdXRpbmcoc2QsIFRWUDUxNTBfU1ZJREVPLAo+ID4gPiAgCQkJ CQkJICBUVlA1MTUwX05PUk1BTCwgMCk7Cj4gPiA+ICsJCQkJdXBkYXRlX2N1cl9jb25uZWN0b3Ig PSB0cnVlOwo+ID4gPiAgCQkJfQo+ID4gPiAgCQl9IGVsc2Ugewo+ID4gPiAgCQkJdHZwNTE1MF9z X3JvdXRpbmcoc2QsIHR2cDUxNTBfcGFkLT5pbmRleCwKPiA+ID4gIAkJCQkJICBUVlA1MTUwX05P Uk1BTCwgMCk7Cj4gPiA+ICsJCQl1cGRhdGVfY3VyX2Nvbm5lY3RvciA9IHRydWU7Cj4gPiA+ICAJ CX0KPiA+ID4gIAl9IGVsc2Ugewo+ID4gPiAgCQkvKgo+ID4gPiBAQCAtMTM3Niw2ICsxMzk3LDE0 IEBAIHN0YXRpYyBpbnQgdHZwNTE1MF9saW5rX3NldHVwKHN0cnVjdCBtZWRpYV9lbnRpdHkgKmVu dGl0eSwKPiA+ID4gIAkJCQkJICBhY3RpdmVfcGFkLCBUVlA1MTUwX0JMQUNLX1NDUkVFTiwgMCk7 Cj4gPiA+ICAJCWRlY29kZXItPm1vZGlmeV9zZWNvbmRfbGluayA9IGZhbHNlOwo+ID4gPiAgCX0K PiA+ID4gKwo+ID4gPiArCWlmICh1cGRhdGVfY3VyX2Nvbm5lY3Rvcikgewo+ID4gPiArCQkvKiBV cGRhdGUgdHZub3JtIGFjY29yZGluZyB0byBjb25uZWN0b3IgKi8KPiA+ID4gKwkJZGVjb2Rlci0+ Y3VyX2Nvbm5lY3RvciA9Cj4gPiA+ICsJCQljb250YWluZXJfb2YocmVtb3RlLCBzdHJ1Y3QgdHZw NTE1MF9jb25uZWN0b3IsIHBhZCk7Cj4gPiA+ICsJCXR2cDUxNTBfc19zdGQoc2QsCj4gPiA+ICsJ CQlkZWNvZGVyLT5jdXJfY29ubmVjdG9yLT5iYXNlLmNvbm5lY3Rvci5hbmFsb2cuc3VwcG9ydGVk X3R2bm9ybXMpOwo+ID4gPiArCX0KPiA+ID4gIG91dDoKPiA+ID4gIAlyZXR1cm4gcmV0Owo+ID4g PiAgfQo+ID4gPiBAQCAtMTYwNSw2ICsxNjM0LDkgQEAgc3RhdGljIGludCB0dnA1MTUwX3JlZ2lz dGVyZWQoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCkKPiA+ID4gIAkJCX0KPiA+ID4gIAkJCXR2cDUx NTBfc2VsbXV4KHNkKTsKPiA+ID4gIAkJCWRlY29kZXItPm1vZGlmeV9zZWNvbmRfbGluayA9IGZh bHNlOwo+ID4gPiArCQkJZGVjb2Rlci0+Y3VyX2Nvbm5lY3RvciA9ICZkZWNvZGVyLT5jb25uZWN0 b3JzW2ldOwo+ID4gPiArCQkJdHZwNTE1MF9zX3N0ZChzZCwKPiA+ID4gKwkJCQlkZWNvZGVyLT5j b25uZWN0b3JzW2ldLmJhc2UuY29ubmVjdG9yLmFuYWxvZy5zdXBwb3J0ZWRfdHZub3Jtcyk7Cj4g PiA+ICAJCX0KPiA+ID4gIAl9Cj4gPiA+ICAjZW5kaWYKPiA+ID4gQEAgLTE5MjUsNiArMTk1Nywx NCBAQCBzdGF0aWMgaW50IHR2cDUxNTBfcGFyc2VfZHQoc3RydWN0IHR2cDUxNTAgKmRlY29kZXIs IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCj4gPiA+ICAJCQkJcmV0ID0gLUVJTlZBTDsKPiA+ID4g IAkJCQlnb3RvIGVycjsKPiA+ID4gIAkJCX0KPiA+ID4gKwkJCWlmICghKGMuY29ubmVjdG9yLmFu YWxvZy5zdXBwb3J0ZWRfdHZub3JtcyAmCj4gPiA+ICsJCQkgICAgVFZQNTE1MF9TVERfTUFTSykp IHsKPiA+ID4gKwkJCQlkZXZfZXJyKGRldiwKPiA+ID4gKwkJCQkJIkludmFsaWQgdHYgbm9ybShz KSBvbiBjb25uZWN0b3IgJXMuXG4iLAo+ID4gPiArCQkJCQljLmxhYmVsKTsKPiA+ID4gKwkJCQly ZXQgPSAtRUlOVkFMOwo+ID4gPiArCQkJCWdvdG8gZXJyOwo+ID4gPiArCQkJfQo+ID4gPiAgCQkJ aW4rKzsKPiA+ID4gIAkJCWJyZWFrOwo+ID4gPiAgCQljYXNlIFRWUDUxNTBfUEFEX1ZJRF9PVVQ6 ICAKPiA+IAo+ID4gCj4gPiAKPiA+IFRoYW5rcywKPiA+IE1hdXJvCj4gPiAgIAo+IAoKCgpUaGFu a3MsCk1hdXJvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA== 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=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,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 D038DC43381 for ; Wed, 20 Mar 2019 17:29:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9C99A21874 for ; Wed, 20 Mar 2019 17:29:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553102995; bh=CUl/y5i274Gbj15+07w/NG2F52wtHYkSIhR3u+uTV4s=; h=Date:From:To:Cc:Subject:In-Reply-To:References:List-ID:From; b=RqvZ5FTJCiTxHqVY7FzEyqx8+uU8EwhZK/+LvaBXhtw+L18c5PVcX473Ucf9CyiLG fC5l9XQMpbnKpWEh9/WhPfj7wKhnJ88g67PHXY3r2MISZEliAOl+tKa7bWKkG5XOYa qo0UvmxIL/5tDMVGspC327V1iT85QLSX08lL1pOY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727420AbfCTR3x (ORCPT ); Wed, 20 Mar 2019 13:29:53 -0400 Received: from casper.infradead.org ([85.118.1.10]:55156 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727404AbfCTR3r (ORCPT ); Wed, 20 Mar 2019 13:29:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=4g+k5NvUsn44pc5OZWnN5JkzRG70yZW3zjVuUFXavyg=; b=Q2LUnTQ9oHuCDg0gHr6qhnG+Vd z2e23cIOCrcjOz36+2x/joPpTZSEpeULtjE5NU5Ol6vZzQpOTUB2UVRHgpJcFmI3vWUX5Tz+L2UZF 2qPVo3okJ/gKO1B/rBSJRC4q7SizHW+0TpwJQUDzsBB01j0aYWuEDbQoa5rTwMdx0CIOZE61Mo8r6 1SVif/PyLjSoMVEJ7cjcTWHdaiYfirLKNavDEvEJIPQzdnMPQK3eR0ryUaPcU1TUZfihn0tlBHyei E/KgHioTB0iqSLQieO22Gk7qW7llCmFdF+hs+vc4rXZNSOdfIH3KCGRehtpn13hGDPKPgvwsi4X1/ p/mJ+nyw==; Received: from [179.95.24.146] (helo=coco.lan) by casper.infradead.org with esmtpsa (Exim 4.90_1 #2 (Red Hat Linux)) id 1h6f21-0001Va-TI; Wed, 20 Mar 2019 17:29:38 +0000 Date: Wed, 20 Mar 2019 14:29:31 -0300 From: Mauro Carvalho Chehab To: Marco Felsch Cc: robh+dt@kernel.org, hans.verkuil@cisco.com, sakari.ailus@linux.intel.com, airlied@linux.ie, daniel@ffwll.ch, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, kernel@pengutronix.de Subject: Re: [PATCH 5/5] media: tvp5150: add support to limit tv norms on connector Message-ID: <20190320142931.4a4b91fd@coco.lan> In-Reply-To: <20190320163650.ua6cx3jwffm36p3m@pengutronix.de> References: <20190202121004.9014-1-m.felsch@pengutronix.de> <20190202121004.9014-6-m.felsch@pengutronix.de> <20190320111851.1749c9ac@coco.lan> <20190320163650.ua6cx3jwffm36p3m@pengutronix.de> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Em Wed, 20 Mar 2019 17:36:50 +0100 Marco Felsch escreveu: > Hi Mauro, > > On 19-03-20 11:18, Mauro Carvalho Chehab wrote: > > Em Sat, 2 Feb 2019 13:10:04 +0100 > > Marco Felsch escreveu: > > > > > The tvp5150 accepts NTSC(M,J,4.43), PAL (B,D,G,H,I,M,N) and SECAM video > > > data and is able to auto-detect the input signal. > > > > Hmm... I'm afraid of this change. As far as I remember, I tested some > > weird format variants like V4L2_STD_PAL_60 a long time ago, but there's > > no way to force video to use those. The format selection logic simply > > places the device on auto-detect mode for those weirdos, and that > > works fine at the devices I know. > > Sorry I didn't get this. The format is set to autodetect during probe(). Yes, but apps will change based on G_FMT, TRY_FMT and S_FMT. See, my main concern here is with existing tvp5150 non-platform drivers, as a change there would be a regression. > If there is no format limitation this won't be changed during > media.link_setup(). You're right I forgot to check if the cur_connector > is available during tvp5150_s_std(), in case of pdata related devices. Yeah, that's what I'm talking about. > In such a case we should set supported_norms to V4L2_STD_ALL as it is > done by v4l2_fwnode_parse_connector() if no limitations are given. > > Btw, how does it look with the other patchset? I asked Hans to take a look at the patch series, as he's sub-maintaining the v4l2 stuff. I'm intending to take a deeper look at patch 2/7 v4 from the past series. > > Regards, > Marco > > > > > A change like that may break things. So I would actually have a quirk > > to optionally disable auto-detection on devices that this is not know > > to work. > > > > > The auto-detection > > > does not work if the connector does not receive an input signal and the > > > tvp5150 might not be configured correctly. This misconfiguration leads > > > into wrong decoded video streams if the tvp5150 gets powered on before > > > the video signal is present. > > > > > > Limit the supported tv norms according to the actual selected connector > > > to avoid a misconfiguration. > > > > > > Signed-off-by: Marco Felsch > > > --- > > > drivers/media/i2c/tvp5150.c | 42 ++++++++++++++++++++++++++++++++++++- > > > 1 file changed, 41 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c > > > index f3a2ad00a40d..7619793dee67 100644 > > > --- a/drivers/media/i2c/tvp5150.c > > > +++ b/drivers/media/i2c/tvp5150.c > > > @@ -32,6 +32,13 @@ > > > #define TVP5150_MBUS_FMT MEDIA_BUS_FMT_UYVY8_2X8 > > > #define TVP5150_FIELD V4L2_FIELD_ALTERNATE > > > #define TVP5150_COLORSPACE V4L2_COLORSPACE_SMPTE170M > > > +#define TVP5150_STD_MASK (V4L2_STD_NTSC | \ > > > + V4L2_STD_NTSC_443 | \ > > > + V4L2_STD_PAL | \ > > > + V4L2_STD_PAL_M | \ > > > + V4L2_STD_PAL_N | \ > > > + V4L2_STD_PAL_Nc | \ > > > + V4L2_STD_SECAM) > > > > > > MODULE_DESCRIPTION("Texas Instruments TVP5150A/TVP5150AM1/TVP5151 video decoder driver"); > > > MODULE_AUTHOR("Mauro Carvalho Chehab"); > > > @@ -74,6 +81,7 @@ struct tvp5150 { > > > struct media_pad pads[TVP5150_NUM_PADS]; > > > int pads_state[TVP5150_NUM_PADS]; > > > struct tvp5150_connector *connectors; > > > + struct tvp5150_connector *cur_connector; > > > int connectors_num; > > > bool modify_second_link; > > > #endif > > > @@ -794,17 +802,27 @@ static int tvp5150_g_std(struct v4l2_subdev *sd, v4l2_std_id *std) > > > static int tvp5150_s_std(struct v4l2_subdev *sd, v4l2_std_id std) > > > { > > > struct tvp5150 *decoder = to_tvp5150(sd); > > > + v4l2_std_id supported_norms = > > > + decoder->cur_connector->base.connector.analog.supported_tvnorms; > > > > > > if (decoder->norm == std) > > > return 0; > > > > > > + /* > > > + * check if requested std or group of std's is/are supported by the > > > + * connector > > > + */ > > > + if ((supported_norms & std) == 0) > > > + return -EINVAL; > > > + > > > /* Change cropping height limits */ > > > if (std & V4L2_STD_525_60) > > > decoder->rect.height = TVP5150_V_MAX_525_60; > > > else > > > decoder->rect.height = TVP5150_V_MAX_OTHERS; > > > > > > - decoder->norm = std; > > > + /* set only the specific supported std in case of group of std's */ > > > + decoder->norm = supported_norms & std; > > > > > > return tvp5150_set_std(sd, std); > > > } > > > @@ -1298,6 +1316,7 @@ static int tvp5150_link_setup(struct media_entity *entity, > > > int *pad_state = &decoder->pads_state[0]; > > > int i, active_pad, ret = 0; > > > bool is_svideo = false; > > > + bool update_cur_connector = false; > > > > > > /* > > > * The tvp state is determined by the enabled sink pad link. > > > @@ -1344,10 +1363,12 @@ static int tvp5150_link_setup(struct media_entity *entity, > > > decoder->modify_second_link = false; > > > tvp5150_s_routing(sd, TVP5150_SVIDEO, > > > TVP5150_NORMAL, 0); > > > + update_cur_connector = true; > > > } > > > } else { > > > tvp5150_s_routing(sd, tvp5150_pad->index, > > > TVP5150_NORMAL, 0); > > > + update_cur_connector = true; > > > } > > > } else { > > > /* > > > @@ -1376,6 +1397,14 @@ static int tvp5150_link_setup(struct media_entity *entity, > > > active_pad, TVP5150_BLACK_SCREEN, 0); > > > decoder->modify_second_link = false; > > > } > > > + > > > + if (update_cur_connector) { > > > + /* Update tvnorm according to connector */ > > > + decoder->cur_connector = > > > + container_of(remote, struct tvp5150_connector, pad); > > > + tvp5150_s_std(sd, > > > + decoder->cur_connector->base.connector.analog.supported_tvnorms); > > > + } > > > out: > > > return ret; > > > } > > > @@ -1605,6 +1634,9 @@ static int tvp5150_registered(struct v4l2_subdev *sd) > > > } > > > tvp5150_selmux(sd); > > > decoder->modify_second_link = false; > > > + decoder->cur_connector = &decoder->connectors[i]; > > > + tvp5150_s_std(sd, > > > + decoder->connectors[i].base.connector.analog.supported_tvnorms); > > > } > > > } > > > #endif > > > @@ -1925,6 +1957,14 @@ static int tvp5150_parse_dt(struct tvp5150 *decoder, struct device_node *np) > > > ret = -EINVAL; > > > goto err; > > > } > > > + if (!(c.connector.analog.supported_tvnorms & > > > + TVP5150_STD_MASK)) { > > > + dev_err(dev, > > > + "Invalid tv norm(s) on connector %s.\n", > > > + c.label); > > > + ret = -EINVAL; > > > + goto err; > > > + } > > > in++; > > > break; > > > case TVP5150_PAD_VID_OUT: > > > > > > > > Thanks, > > Mauro > > > Thanks, Mauro