From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 2/2] drm/i915/dsi: fix dphy param field widths and range checks for chv+ Date: Thu, 19 Apr 2018 16:55:00 +0300 Message-ID: <87vacne1xn.fsf@intel.com> References: <20180419085940.21505-1-jani.nikula@intel.com> <20180419085940.21505-2-jani.nikula@intel.com> <20180419110944.GA17795@intel.com> <874lk7fknp.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id E98F16E0D2 for ; Thu, 19 Apr 2018 13:52:16 +0000 (UTC) In-Reply-To: <874lk7fknp.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org, stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxOSBBcHIgMjAxOCwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4g d3JvdGU6Cj4gT24gVGh1LCAxOSBBcHIgMjAxOCwgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4+IE9uIFRodSwgQXByIDE5LCAyMDE4IGF0IDEx OjU5OjQwQU0gKzAzMDAsIEphbmkgTmlrdWxhIHdyb3RlOgo+Pj4gQ3VycmVudCBDSFYgYW5kIEJY VCBic3BlYyBzYXlzIHRoZSBkcGh5IHBhcmFtIHJlZ2lzdGVyIGhhcyBmb3VyIDgtYml0Cj4+PiBm aWVsZHMgaW5zdGVhZCBvZiB0aGUgc21hbGxlciBWTFYgZmllbGQgd2lkdGhzLiBDSFYgYnNwZWMg bWVudGlvbnMgdGhlCj4+PiByZWdpc3RlciBoYXMgY2hhbmdlZCBzaW5jZSBLMCwgYnV0IHRoZXJl J3Mgbm8gaW5kaWNhdGlvbiBvZiB3aGF0IGV4YWN0bHkKPj4+IGNoYW5nZWQuIExhY2tpbmcgZnVy dGhlciBkZXRhaWxzLCBjaGFuZ2UgdGhlIGZpZWxkIHdpZHRocyBmb3IgYWxsIENIVgo+Pj4gYW5k IGxhdGVyLgo+Pgo+PiBLMCBkaWRuJ3QgaGFwcGVuLCBhbmQgbG9va3MgbGlrZSB0aGUgbGlua2Vk IEhTRCBzcGVjaWZpY2FsbHkgc2F5cyB0aGF0Cj4+IHRoaXMgY2hhbmdlIHdhcyBtZWFudCBmb3Ig SzAuIFNvIEkgc3VzcGVjdCB0aGlzIHBhdGNoIGlzIHdyb25nLgo+Cj4gT2ggd2VsbC4gVGhlIHJl ZmVyZW5jZWQgYnVnIGluZGljYXRlZCBvdmVyZmxvdyBpbiB0aGUgbG9ncywgc28gSSBmaWd1cmVk Cj4gdGhpcyBtaWdodCBiZSBpdC4KPgo+IEkgcHVzaGVkIHBhdGNoIDEgZm9yIG5vdy4KPgo+PiBU aGUgQlhUIEhTRCBzYXlzIHBsYW5uZWQgZm9yIEIwLCBidXQgbm90IHN1cmUgaWYgdGhhdCBhY3R1 YWxseSBoYXBwZW5lZAo+PiBlaXRoZXIuCj4+Cj4+IE9uIG15IFZMViB0aGUgcmVzZXJ2ZWQgYml0 cyBjYW4ndCBiZSBzZXQ6Cj4+IGludGVsX3JlZyB3cml0ZSAweDE4MDAwMDoweGIwODAgMHhmZmZm ZmZmZgo+PiBpbnRlbF9yZWcgd3JpdGUgMHgxODAwMDA6MHhiODgwIDB4ZmZmZmZmZmYKPj4gaW50 ZWxfcmVnIHJlYWQgMHgxODAwMDA6MHhiMDgwIDB4MTgwMDAwOjB4Yjg4MAo+PiAgKDB4MDAxODAw MDA6MHgwMDAwYjA4MCk6IDB4M2YxZmZmM2YKPj4gICgweDAwMTgwMDAwOjB4MDAwMGI4ODApOiAw eDNmMWZmZjNmCj4+Cj4+IFNvIHByZXN1bWFibHkgdGhlIHNhbWUgcm13IHRyaWNrIGNvdWxkIGJl IHVzZWQgdG8gY2hlY2sgd2hhdAo+PiBob3cgbWFueSBiaXRzIHdlIGhhdmUgb24gQ0hWL0JYVC4K Pgo+IEFza2VkIG9uIHRoZSBidWcsIGxldCdzIHNlZSBpZiB3ZSBnZXQgYSByZXNwb25zZS4KCkNv bmZpcm1zIHdoYXQgeW91IHNhaWQ6CgooMHgwMDE4MDAwMDoweDAwMDBiMDgwKTogMHgzZjFmZmYz ZgooMHgwMDE4MDAwMDoweDAwMDBiODgwKTogMHgzZjFmZmYzZgoKQlIsCkphbmkuCgo+Cj4gQlIs Cj4gSmFuaS4KPgo+Pgo+PiBBbHNvIGxvb2tzIGxpa2UgdGhlIENIViBzcGVjIHdhcyBmb3JrZWQg ZnJvbSBWTFYgYmVmb3JlIHNvbWVvbmUgZml4ZWQKPj4gdGhlIHByZXBhcmUgY291bnQgdG8gYmUg NiBiaXRzLCB3aGljaCBzZWVtcyB0byBiZSB3aGF0IG15IFZMViBhY3R1YWxseQo+PiBoYXMgYXMg d2VsbC4gTm90IHRoZSBmaXJzdCB0aW1lIHRoZSBWTFYgZG9jcyBhcmUgbW9yZSB1cCB0byBkYXRl IHRoYW4KPj4gdGhlIENIViBvbmVzIHVuZm9ydHVuYXRlbHkuCj4+Cj4+PiAKPj4+IERlZmluZSB0 aGUgbWF4IHZhbHVlcyBiYXNlZCBvbiB0aGUgcGxhdGZvcm0uIEFsc28gZGVmaW5lIHRoZW0gYmFz ZWQgb24KPj4+IHRoZSByZWdpc3RlciBkZWZpbml0aW9ucyBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5n IGluZm9ybWF0aW9uLgo+Pj4gCj4+PiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9w Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2MTMwCj4+PiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9y Zwo+Pj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Cj4+PiBTaWduZWQtb2ZmLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ Pj4gLS0tCj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgMTEgKysr KysrKy0tLS0KPj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfdmJ0LmMgfCAzMSAr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCAyNiBp bnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKPj4+IAo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCj4+PiBpbmRleCBmYjEwNjAyNmExZjQuLmY0NDM1YTEzYjc1NyAxMDA2NDQKPj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmgKPj4+IEBAIC05NTQ3LDE0ICs5NTQ3LDE3IEBAIGVudW0gc2tsX3Bv d2VyX2dhdGUgewo+Pj4gICNkZWZpbmUgX01JUElBX0RQSFlfUEFSQU0JCShkZXZfcHJpdi0+bWlw aV9tbWlvX2Jhc2UgKyAweGIwODApCj4+PiAgI2RlZmluZSBfTUlQSUNfRFBIWV9QQVJBTQkJKGRl dl9wcml2LT5taXBpX21taW9fYmFzZSArIDB4Yjg4MCkKPj4+ICAjZGVmaW5lIE1JUElfRFBIWV9Q QVJBTShwb3J0KQkJX01NSU9fTUlQSShwb3J0LCBfTUlQSUFfRFBIWV9QQVJBTSwgX01JUElDX0RQ SFlfUEFSQU0pCj4+PiAtI2RlZmluZSAgRVhJVF9aRVJPX0NPVU5UX1NISUZUCQkJCTI0Cj4+PiAg I2RlZmluZSAgRVhJVF9aRVJPX0NPVU5UX01BU0sJCQkJKDB4M2YgPDwgMjQpCj4+PiAtI2RlZmlu ZSAgVFJBSUxfQ09VTlRfU0hJRlQJCQkJMTYKPj4+ICsjZGVmaW5lICBFWElUX1pFUk9fQ09VTlRf TUFTS19DSFYJCQkoMHhmZiA8PCAyNCkKPj4+ICsjZGVmaW5lICBFWElUX1pFUk9fQ09VTlRfU0hJ RlQJCQkJMjQKPj4+ICAjZGVmaW5lICBUUkFJTF9DT1VOVF9NQVNLCQkJCSgweDFmIDw8IDE2KQo+ Pj4gLSNkZWZpbmUgIENMS19aRVJPX0NPVU5UX1NISUZUCQkJCTgKPj4+ICsjZGVmaW5lICBUUkFJ TF9DT1VOVF9NQVNLX0NIVgkJCQkoMHhmZiA8PCAxNikKPj4+ICsjZGVmaW5lICBUUkFJTF9DT1VO VF9TSElGVAkJCQkxNgo+Pj4gICNkZWZpbmUgIENMS19aRVJPX0NPVU5UX01BU0sJCQkJKDB4ZmYg PDwgOCkKPj4+IC0jZGVmaW5lICBQUkVQQVJFX0NPVU5UX1NISUZUCQkJCTAKPj4+ICsjZGVmaW5l ICBDTEtfWkVST19DT1VOVF9TSElGVAkJCQk4Cj4+PiAgI2RlZmluZSAgUFJFUEFSRV9DT1VOVF9N QVNLCQkJCSgweDNmIDw8IDApCj4+PiArI2RlZmluZSAgUFJFUEFSRV9DT1VOVF9NQVNLX0NIVgkJ CQkoMHhmZiA8PCAwKQo+Pj4gKyNkZWZpbmUgIFBSRVBBUkVfQ09VTlRfU0hJRlQJCQkJMAo+Pj4g IAo+Pj4gIC8qIGJpdHMgMzE6MCAqLwo+Pj4gICNkZWZpbmUgX01JUElBX0RCSV9CV19DVFJMCQko ZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiMDg0KQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV92YnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaV92YnQuYwo+Pj4gaW5kZXggNGQ2ZmZhN2IzZTdiLi44ZDNkZWE2OTM4NDAgMTAwNjQ0 Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfdmJ0LmMKPj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV92YnQuYwo+Pj4gQEAgLTQxLDEwICs0MSwx NyBAQAo+Pj4gICNkZWZpbmUgTUlQSV9WSVJUVUFMX0NIQU5ORUxfU0hJRlQJMQo+Pj4gICNkZWZp bmUgTUlQSV9QT1JUX1NISUZUCQkJMwo+Pj4gIAo+Pj4gLSNkZWZpbmUgUFJFUEFSRV9DTlRfTUFY CQkweDNGCj4+PiAtI2RlZmluZSBFWElUX1pFUk9fQ05UX01BWAkweDNGCj4+PiAtI2RlZmluZSBD TEtfWkVST19DTlRfTUFYCTB4RkYKPj4+IC0jZGVmaW5lIFRSQUlMX0NOVF9NQVgJCTB4MUYKPj4+ ICsjZGVmaW5lIEVYSVRfWkVST19DTlRfTUFYKGRldl9wcml2KSBcCj4+PiArCSgoSVNfVkFMTEVZ VklFVyhkZXZfcHJpdikgPyBFWElUX1pFUk9fQ09VTlRfTUFTSyA6IEVYSVRfWkVST19DT1VOVF9N QVNLX0NIVikgPj4gRVhJVF9aRVJPX0NPVU5UX1NISUZUKQo+Pj4gKwo+Pj4gKyNkZWZpbmUgVFJB SUxfQ05UX01BWChkZXZfcHJpdikgXAo+Pj4gKwkoKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpID8g VFJBSUxfQ09VTlRfTUFTSyA6IFRSQUlMX0NPVU5UX01BU0tfQ0hWKSA+PiBUUkFJTF9DT1VOVF9T SElGVCkKPj4+ICsKPj4+ICsjZGVmaW5lIENMS19aRVJPX0NOVF9NQVgoZGV2X3ByaXYpIFwKPj4+ ICsJKENMS19aRVJPX0NPVU5UX01BU0sgPj4gQ0xLX1pFUk9fQ09VTlRfU0hJRlQpCj4+PiArCj4+ PiArI2RlZmluZSBQUkVQQVJFX0NOVF9NQVgoZGV2X3ByaXYpCQkJCQlcCj4+PiArCSgoSVNfVkFM TEVZVklFVyhkZXZfcHJpdikgPyBQUkVQQVJFX0NPVU5UX01BU0sgOiBQUkVQQVJFX0NPVU5UX01B U0tfQ0hWKSA+PiBQUkVQQVJFX0NPVU5UX1NISUZUKQo+Pj4gIAo+Pj4gICNkZWZpbmUgTlNfS0ha X1JBVElPIDEwMDAwMDAKPj4+ICAKPj4+IEBAIC02NDcsOSArNjU0LDkgQEAgYm9vbCBpbnRlbF9k c2lfdmJ0X2luaXQoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCB1MTYgcGFuZWxfaWQpCj4+ PiAgCS8qIHByZXBhcmUgY291bnQgKi8KPj4+ICAJcHJlcGFyZV9jbnQgPSBESVZfUk9VTkRfVVAo dGhzX3ByZXBhcmVfbnMgKiB1aV9kZW4sIHVpX251bSAqIG11bCk7Cj4+PiAgCj4+PiAtCWlmIChw cmVwYXJlX2NudCA+IFBSRVBBUkVfQ05UX01BWCkgewo+Pj4gKwlpZiAocHJlcGFyZV9jbnQgPiBQ UkVQQVJFX0NOVF9NQVgoZGV2X3ByaXYpKSB7Cj4+PiAgCQlEUk1fREVCVUdfS01TKCJwcmVwYXJl IGNvdW50IHRvbyBoaWdoICV1XG4iLCBwcmVwYXJlX2NudCk7Cj4+PiAtCQlwcmVwYXJlX2NudCA9 IFBSRVBBUkVfQ05UX01BWDsKPj4+ICsJCXByZXBhcmVfY250ID0gUFJFUEFSRV9DTlRfTUFYKGRl dl9wcml2KTsKPj4+ICAJfQo+Pj4gIAo+Pj4gIAkvKiBleGl0IHplcm8gY291bnQgKi8KPj4+IEBA IC02NjcsOSArNjc0LDkgQEAgYm9vbCBpbnRlbF9kc2lfdmJ0X2luaXQoc3RydWN0IGludGVsX2Rz aSAqaW50ZWxfZHNpLCB1MTYgcGFuZWxfaWQpCj4+PiAgCWlmIChleGl0X3plcm9fY250IDwgKDU1 ICogdWlfZGVuIC8gdWlfbnVtKSAmJiAoNTUgKiB1aV9kZW4pICUgdWlfbnVtKQo+Pj4gIAkJZXhp dF96ZXJvX2NudCArPSAxOwo+Pj4gIAo+Pj4gLQlpZiAoZXhpdF96ZXJvX2NudCA+IEVYSVRfWkVS T19DTlRfTUFYKSB7Cj4+PiArCWlmIChleGl0X3plcm9fY250ID4gRVhJVF9aRVJPX0NOVF9NQVgo ZGV2X3ByaXYpKSB7Cj4+PiAgCQlEUk1fREVCVUdfS01TKCJleGl0IHplcm8gY291bnQgdG9vIGhp Z2ggJXVcbiIsIGV4aXRfemVyb19jbnQpOwo+Pj4gLQkJZXhpdF96ZXJvX2NudCA9IEVYSVRfWkVS T19DTlRfTUFYOwo+Pj4gKwkJZXhpdF96ZXJvX2NudCA9IEVYSVRfWkVST19DTlRfTUFYKGRldl9w cml2KTsKPj4+ICAJfQo+Pj4gIAo+Pj4gIAkvKiBjbGsgemVybyBjb3VudCAqLwo+Pj4gQEAgLTY3 NywxOCArNjg0LDE4IEBAIGJvb2wgaW50ZWxfZHNpX3ZidF9pbml0KHN0cnVjdCBpbnRlbF9kc2kg KmludGVsX2RzaSwgdTE2IHBhbmVsX2lkKQo+Pj4gIAkJCQkodGNsa19wcmVwYXJlX2Nsa3plcm8g LQl0aHNfcHJlcGFyZV9ucykKPj4+ICAJCQkJKiB1aV9kZW4sIHVpX251bSAqIG11bCk7Cj4+PiAg Cj4+PiAtCWlmIChjbGtfemVyb19jbnQgPiBDTEtfWkVST19DTlRfTUFYKSB7Cj4+PiArCWlmIChj bGtfemVyb19jbnQgPiBDTEtfWkVST19DTlRfTUFYKGRldl9wcml2KSkgewo+Pj4gIAkJRFJNX0RF QlVHX0tNUygiY2xvY2sgemVybyBjb3VudCB0b28gaGlnaCAldVxuIiwgY2xrX3plcm9fY250KTsK Pj4+IC0JCWNsa196ZXJvX2NudCA9IENMS19aRVJPX0NOVF9NQVg7Cj4+PiArCQljbGtfemVyb19j bnQgPSBDTEtfWkVST19DTlRfTUFYKGRldl9wcml2KTsKPj4+ICAJfQo+Pj4gIAo+Pj4gIAkvKiB0 cmFpbCBjb3VudCAqLwo+Pj4gIAl0Y2xrX3RyYWlsX25zID0gbWF4KG1pcGlfY29uZmlnLT50Y2xr X3RyYWlsLCBtaXBpX2NvbmZpZy0+dGhzX3RyYWlsKTsKPj4+ICAJdHJhaWxfY250ID0gRElWX1JP VU5EX1VQKHRjbGtfdHJhaWxfbnMgKiB1aV9kZW4sIHVpX251bSAqIG11bCk7Cj4+PiAgCj4+PiAt CWlmICh0cmFpbF9jbnQgPiBUUkFJTF9DTlRfTUFYKSB7Cj4+PiArCWlmICh0cmFpbF9jbnQgPiBU UkFJTF9DTlRfTUFYKGRldl9wcml2KSkgewo+Pj4gIAkJRFJNX0RFQlVHX0tNUygidHJhaWwgY291 bnQgdG9vIGhpZ2ggJXVcbiIsIHRyYWlsX2NudCk7Cj4+PiAtCQl0cmFpbF9jbnQgPSBUUkFJTF9D TlRfTUFYOwo+Pj4gKwkJdHJhaWxfY250ID0gVFJBSUxfQ05UX01BWChkZXZfcHJpdik7Cj4+PiAg CX0KPj4+ICAKPj4+ICAJLyogQjA4MCAqLwo+Pj4gLS0gCj4+PiAyLjExLjAKCi0tIApKYW5pIE5p a3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com ([192.55.52.136]:28985 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750858AbeDSNwQ (ORCPT ); Thu, 19 Apr 2018 09:52:16 -0400 From: Jani Nikula To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org, stable@vger.kernel.org Subject: Re: [PATCH 2/2] drm/i915/dsi: fix dphy param field widths and range checks for chv+ In-Reply-To: <874lk7fknp.fsf@intel.com> References: <20180419085940.21505-1-jani.nikula@intel.com> <20180419085940.21505-2-jani.nikula@intel.com> <20180419110944.GA17795@intel.com> <874lk7fknp.fsf@intel.com> Date: Thu, 19 Apr 2018 16:55:00 +0300 Message-ID: <87vacne1xn.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: stable-owner@vger.kernel.org List-ID: On Thu, 19 Apr 2018, Jani Nikula wrote: > On Thu, 19 Apr 2018, Ville Syrjälä wrote: >> On Thu, Apr 19, 2018 at 11:59:40AM +0300, Jani Nikula wrote: >>> Current CHV and BXT bspec says the dphy param register has four 8-bit >>> fields instead of the smaller VLV field widths. CHV bspec mentions the >>> register has changed since K0, but there's no indication of what exactly >>> changed. Lacking further details, change the field widths for all CHV >>> and later. >> >> K0 didn't happen, and looks like the linked HSD specifically says that >> this change was meant for K0. So I suspect this patch is wrong. > > Oh well. The referenced bug indicated overflow in the logs, so I figured > this might be it. > > I pushed patch 1 for now. > >> The BXT HSD says planned for B0, but not sure if that actually happened >> either. >> >> On my VLV the reserved bits can't be set: >> intel_reg write 0x180000:0xb080 0xffffffff >> intel_reg write 0x180000:0xb880 0xffffffff >> intel_reg read 0x180000:0xb080 0x180000:0xb880 >> (0x00180000:0x0000b080): 0x3f1fff3f >> (0x00180000:0x0000b880): 0x3f1fff3f >> >> So presumably the same rmw trick could be used to check what >> how many bits we have on CHV/BXT. > > Asked on the bug, let's see if we get a response. Confirms what you said: (0x00180000:0x0000b080): 0x3f1fff3f (0x00180000:0x0000b880): 0x3f1fff3f BR, Jani. > > BR, > Jani. > >> >> Also looks like the CHV spec was forked from VLV before someone fixed >> the prepare count to be 6 bits, which seems to be what my VLV actually >> has as well. Not the first time the VLV docs are more up to date than >> the CHV ones unfortunately. >> >>> >>> Define the max values based on the platform. Also define them based on >>> the register definitions instead of duplicating information. >>> >>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106130 >>> Cc: stable@vger.kernel.org >>> Cc: Ville Syrjälä >>> Signed-off-by: Jani Nikula >>> --- >>> drivers/gpu/drm/i915/i915_reg.h | 11 +++++++---- >>> drivers/gpu/drm/i915/intel_dsi_vbt.c | 31 +++++++++++++++++++------------ >>> 2 files changed, 26 insertions(+), 16 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h >>> index fb106026a1f4..f4435a13b757 100644 >>> --- a/drivers/gpu/drm/i915/i915_reg.h >>> +++ b/drivers/gpu/drm/i915/i915_reg.h >>> @@ -9547,14 +9547,17 @@ enum skl_power_gate { >>> #define _MIPIA_DPHY_PARAM (dev_priv->mipi_mmio_base + 0xb080) >>> #define _MIPIC_DPHY_PARAM (dev_priv->mipi_mmio_base + 0xb880) >>> #define MIPI_DPHY_PARAM(port) _MMIO_MIPI(port, _MIPIA_DPHY_PARAM, _MIPIC_DPHY_PARAM) >>> -#define EXIT_ZERO_COUNT_SHIFT 24 >>> #define EXIT_ZERO_COUNT_MASK (0x3f << 24) >>> -#define TRAIL_COUNT_SHIFT 16 >>> +#define EXIT_ZERO_COUNT_MASK_CHV (0xff << 24) >>> +#define EXIT_ZERO_COUNT_SHIFT 24 >>> #define TRAIL_COUNT_MASK (0x1f << 16) >>> -#define CLK_ZERO_COUNT_SHIFT 8 >>> +#define TRAIL_COUNT_MASK_CHV (0xff << 16) >>> +#define TRAIL_COUNT_SHIFT 16 >>> #define CLK_ZERO_COUNT_MASK (0xff << 8) >>> -#define PREPARE_COUNT_SHIFT 0 >>> +#define CLK_ZERO_COUNT_SHIFT 8 >>> #define PREPARE_COUNT_MASK (0x3f << 0) >>> +#define PREPARE_COUNT_MASK_CHV (0xff << 0) >>> +#define PREPARE_COUNT_SHIFT 0 >>> >>> /* bits 31:0 */ >>> #define _MIPIA_DBI_BW_CTRL (dev_priv->mipi_mmio_base + 0xb084) >>> diff --git a/drivers/gpu/drm/i915/intel_dsi_vbt.c b/drivers/gpu/drm/i915/intel_dsi_vbt.c >>> index 4d6ffa7b3e7b..8d3dea693840 100644 >>> --- a/drivers/gpu/drm/i915/intel_dsi_vbt.c >>> +++ b/drivers/gpu/drm/i915/intel_dsi_vbt.c >>> @@ -41,10 +41,17 @@ >>> #define MIPI_VIRTUAL_CHANNEL_SHIFT 1 >>> #define MIPI_PORT_SHIFT 3 >>> >>> -#define PREPARE_CNT_MAX 0x3F >>> -#define EXIT_ZERO_CNT_MAX 0x3F >>> -#define CLK_ZERO_CNT_MAX 0xFF >>> -#define TRAIL_CNT_MAX 0x1F >>> +#define EXIT_ZERO_CNT_MAX(dev_priv) \ >>> + ((IS_VALLEYVIEW(dev_priv) ? EXIT_ZERO_COUNT_MASK : EXIT_ZERO_COUNT_MASK_CHV) >> EXIT_ZERO_COUNT_SHIFT) >>> + >>> +#define TRAIL_CNT_MAX(dev_priv) \ >>> + ((IS_VALLEYVIEW(dev_priv) ? TRAIL_COUNT_MASK : TRAIL_COUNT_MASK_CHV) >> TRAIL_COUNT_SHIFT) >>> + >>> +#define CLK_ZERO_CNT_MAX(dev_priv) \ >>> + (CLK_ZERO_COUNT_MASK >> CLK_ZERO_COUNT_SHIFT) >>> + >>> +#define PREPARE_CNT_MAX(dev_priv) \ >>> + ((IS_VALLEYVIEW(dev_priv) ? PREPARE_COUNT_MASK : PREPARE_COUNT_MASK_CHV) >> PREPARE_COUNT_SHIFT) >>> >>> #define NS_KHZ_RATIO 1000000 >>> >>> @@ -647,9 +654,9 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id) >>> /* prepare count */ >>> prepare_cnt = DIV_ROUND_UP(ths_prepare_ns * ui_den, ui_num * mul); >>> >>> - if (prepare_cnt > PREPARE_CNT_MAX) { >>> + if (prepare_cnt > PREPARE_CNT_MAX(dev_priv)) { >>> DRM_DEBUG_KMS("prepare count too high %u\n", prepare_cnt); >>> - prepare_cnt = PREPARE_CNT_MAX; >>> + prepare_cnt = PREPARE_CNT_MAX(dev_priv); >>> } >>> >>> /* exit zero count */ >>> @@ -667,9 +674,9 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id) >>> if (exit_zero_cnt < (55 * ui_den / ui_num) && (55 * ui_den) % ui_num) >>> exit_zero_cnt += 1; >>> >>> - if (exit_zero_cnt > EXIT_ZERO_CNT_MAX) { >>> + if (exit_zero_cnt > EXIT_ZERO_CNT_MAX(dev_priv)) { >>> DRM_DEBUG_KMS("exit zero count too high %u\n", exit_zero_cnt); >>> - exit_zero_cnt = EXIT_ZERO_CNT_MAX; >>> + exit_zero_cnt = EXIT_ZERO_CNT_MAX(dev_priv); >>> } >>> >>> /* clk zero count */ >>> @@ -677,18 +684,18 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id) >>> (tclk_prepare_clkzero - ths_prepare_ns) >>> * ui_den, ui_num * mul); >>> >>> - if (clk_zero_cnt > CLK_ZERO_CNT_MAX) { >>> + if (clk_zero_cnt > CLK_ZERO_CNT_MAX(dev_priv)) { >>> DRM_DEBUG_KMS("clock zero count too high %u\n", clk_zero_cnt); >>> - clk_zero_cnt = CLK_ZERO_CNT_MAX; >>> + clk_zero_cnt = CLK_ZERO_CNT_MAX(dev_priv); >>> } >>> >>> /* trail count */ >>> tclk_trail_ns = max(mipi_config->tclk_trail, mipi_config->ths_trail); >>> trail_cnt = DIV_ROUND_UP(tclk_trail_ns * ui_den, ui_num * mul); >>> >>> - if (trail_cnt > TRAIL_CNT_MAX) { >>> + if (trail_cnt > TRAIL_CNT_MAX(dev_priv)) { >>> DRM_DEBUG_KMS("trail count too high %u\n", trail_cnt); >>> - trail_cnt = TRAIL_CNT_MAX; >>> + trail_cnt = TRAIL_CNT_MAX(dev_priv); >>> } >>> >>> /* B080 */ >>> -- >>> 2.11.0 -- Jani Nikula, Intel Open Source Technology Center