From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH] drm/i915/skl: Add support for the SAGV, fix underrun hangs Date: Mon, 11 Jul 2016 18:00:46 -0400 Message-ID: <1468274446-29900-1-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , "open list:INTEL DRM DRIVERS excluding Poulsbo, Moorestow..., linux-kernel@vger.kernel.org open list" , Daniel Vetter , Lyude List-Id: dri-devel@lists.freedesktop.org U2luY2UgdGhlIHdhdGVybWFyayBjYWxjdWxhdGlvbnMgZm9yIFNreWxha2UgYXJlIHN0aWxsIGJy b2tlbiwgd2UncmUgYXB0CnRvIGhpdHRpbmcgdW5kZXJydW5zIHZlcnkgZWFzaWx5IHVuZGVyIG11 bHRpLW1vbml0b3IgY29uZmlndXJhdGlvbnMuCldoaWxlIGl0IHdvdWxkIGJlIGxvdmVseSBpZiB0 aGlzIHdhcyBmaXhlZCwgaXQncyBub3QuIEFub3RoZXIgcHJvYmxlbQp0aGF0J3MgYmVlbiBjb21p bmcgZnJvbSB0aGlzIGhvd2V2ZXIsIGlzIHRoZSBteXN0ZXJpb3VzIGlzc3VlIG9mCnVuZGVycnVu cyBjYXVzaW5nIGZ1bGwgc3lzdGVtIGhhbmdzLiBBbiBlYXN5IHdheSB0byByZXByb2R1Y2UgdGhp cyB3aXRoCmEgc2t5bGFrZSBzeXN0ZW06CgotIEdldCBhIGxhcHRvcCB3aXRoIGEgc2t5bGFrZSBH UFUsIGFuZCBob29rIHVwIHR3byBleHRlcm5hbCBtb25pdG9ycyB0bwogIGl0Ci0gTW92ZSB0aGUg Y3Vyc29yIGZyb20gdGhlIGJ1aWx0LWluIExDRCB0byBvbmUgb2YgdGhlIGV4dGVybmFsIGRpc3Bs YXlzCiAgYXMgcXVpY2tseSBhcyB5b3UgY2FuCi0gWW91J2xsIGdldCBhIGZldyBwaXBlIHVuZGVy cnVucywgYW5kIGV2ZW50dWFsbHkgdGhlIGVudGlyZSBzeXN0ZW0gd2lsbAogIGp1c3QgZnJlZXpl LgoKQWZ0ZXIgZG9pbmcgYSBsb3Qgb2YgaW52ZXN0aWdhdGlvbiBhbmQgcmVhZGluZyB0aHJvdWdo IHRoZSBic3BlYywgSQpmb3VuZCB0aGUgZXhpc3RlbmNlIG9mIHRoZSBTQUdWLCB3aGljaCBpcyBy ZXNwb25zaWJsZSBmb3IgYWRqdXN0aW5nIHRoZQpzeXN0ZW0gYWdlbnQgdm9sdGFnZSBhbmQgY2xv Y2sgZnJlcXVlbmNpZXMgZGVwZW5kaW5nIG9uIGhvdyBtdWNoIHBvd2VyCndlIG5lZWQuIEFjY29y ZGluZyB0byB0aGUgYnNwZWM6CgoiVGhlIGRpc3BsYXkgZW5naW5lIGFjY2VzcyB0byBzeXN0ZW0g bWVtb3J5IGlzIGJsb2NrZWQgZHVyaW5nIHRoZQogYWRqdXN0bWVudCB0aW1lLiBTQUdWIGRlZmF1 bHRzIHRvIGVuYWJsZWQuIFNvZnR3YXJlIG11c3QgdXNlIHRoZQogR1QtZHJpdmVyIHBjb2RlIG1h aWxib3ggdG8gZGlzYWJsZSBTQUdWIHdoZW4gdGhlIGRpc3BsYXkgZW5naW5lIGlzIG5vdAogYWJs ZSB0byB0b2xlcmF0ZSB0aGUgYmxvY2tpbmcgdGltZS4iCgpUaGUgcmVzdCBvZiB0aGUgYnNwZWMg Z29lcyBvbiB0byBleHBsYWluIHRoYXQgc29mdHdhcmUgY2FuIHNpbXBseSBsZWF2ZQp0aGUgU0FH ViBlbmFibGVkLCBhbmQgZGlzYWJsZSBpdCB3aGVuIHdlIHVzZSBpbnRlcmxhY2VkIHBpcGVzL2hh dmUgbW9yZQp0aGVuIG9uZSBwaXBlIGFjdGl2ZS4KClN1cmUgZW5vdWdoLCB3aXRoIHRoaXMgcGF0 Y2hzZXQgdGhlIHN5c3RlbSBoYW5ncyByZXN1bHRpbmcgZnJvbSBwaXBlCnVuZGVycnVucyBvbiBT a3lsYWtlIGhhdmUgY29tcGxldGVseSB2YW5pc2hlZCBvbiBteSBUNDYwcy4KCkNjOiBEYW5pZWwg VmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTHl1ZGUgPGNwYXVsQHJl ZGhhdC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCB8ICAgMiArCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIHwgICA1ICsrCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jIHwgMTAzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTEwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAppbmRleCAwM2UxYmZhLi42NjBkMGE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK QEAgLTE5NTksNiArMTk1OSw4IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAlzdHJ1Y3Qg aTkxNV9zdXNwZW5kX3NhdmVkX3JlZ2lzdGVycyByZWdmaWxlOwogCXN0cnVjdCB2bHZfczBpeF9z dGF0ZSB2bHZfczBpeF9zdGF0ZTsKIAorCWJvb2wgc2tsX3NhZ3ZfZW5hYmxlZDsKKwogCXN0cnVj dCB7CiAJCS8qCiAJCSAqIFJhdyB3YXRlcm1hcmsgbGF0ZW5jeSB2YWx1ZXM6CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAppbmRleCA4YmZkZTc1Li45YjJlYjBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmgKQEAgLTcxNjIsNiArNzE2MiwxMSBAQCBlbnVtIHsKICNkZWZpbmUgICBIU1dfUENPREVfREVf V1JJVEVfRlJFUV9SRVEJCTB4MTcKICNkZWZpbmUgICBESVNQTEFZX0lQU19DT05UUk9MCQkJMHgx OQogI2RlZmluZQkgIEhTV19QQ09ERV9EWU5BTUlDX0RVVFlfQ1lDTEVfQ09OVFJPTAkweDFBCisj ZGVmaW5lICAgR0VOOV9QQ09ERV9TQUdWX0NPTlRST0wJCTB4MjEKKyNkZWZpbmUgICAgIEdFTjlf U0FHVl9ESVNBQkxFCQkJMHgwCisjZGVmaW5lICAgICBHRU45X1NBR1ZfTE9XX0ZSRVEJCQkweDEK KyNkZWZpbmUgICAgIEdFTjlfU0FHVl9ISUdIX0ZSRVEJCQkweDIKKyNkZWZpbmUgICAgIEdFTjlf U0FHVl9EWU5BTUlDX0ZSRVEgICAgICAgICAgICAgIDB4MwogI2RlZmluZSBHRU42X1BDT0RFX0RB VEEJCQkJX01NSU8oMHgxMzgxMjgpCiAjZGVmaW5lICAgR0VONl9QQ09ERV9GUkVRX0lBX1JBVElP X1NISUZUCTgKICNkZWZpbmUgICBHRU42X1BDT0RFX0ZSRVFfUklOR19SQVRJT19TSElGVAkxNgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggNWE4ZWUwYy4uMDc4MDdhYSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jCkBAIC0yODc2LDYgKzI4NzYsMTAyIEBAIHNrbF93bV9wbGFuZV9pZChjb25z dCBzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQogfQogCiBzdGF0aWMgdm9pZAorc2tsX3NhZ3Zf Z2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwl1MzIg dGVtcDsKKwlpbnQgcmV0OworCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsK KwlyZXQgPSBzYW5keWJyaWRnZV9wY29kZV9yZWFkKGRldl9wcml2LCBHRU45X1BDT0RFX1NBR1Zf Q09OVFJPTCwgJnRlbXApOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsK KworCWlmICghcmV0KSB7CisJCWRldl9wcml2LT5za2xfc2Fndl9lbmFibGVkID0gISEodGVtcCAm IEdFTjlfU0FHVl9EWU5BTUlDX0ZSRVEpOworCX0gZWxzZSB7CisJCS8qCisJCSAqIElmIGZvciBz b21lIHJlYXNvbiB3ZSBjYW4ndCBhY2Nlc3MgdGhlIFNBR1Ygc3RhdGUsIGZvbGxvdworCQkgKiB0 aGUgYnNwZWMgYW5kIGFzc3VtZSBpdCdzIGVuYWJsZWQKKwkJICovCisJCURSTV9FUlJPUigiRmFp bGVkIHRvIGdldCBTQUdWIHN0YXRlLCBhc3N1bWluZyBlbmFibGVkXG4iKTsKKwkJZGV2X3ByaXYt PnNrbF9zYWd2X2VuYWJsZWQgPSB0cnVlOworCX0KK30KKworLyoKKyAqIFNBR1YgZHluYW1pY2Fs bHkgYWRqdXN0cyB0aGUgc3lzdGVtIGFnZW50IHZvbHRhZ2UgYW5kIGNsb2NrIGZyZXF1ZW5jaWVz CisgKiBkZXBlbmRpbmcgb24gcG93ZXIgYW5kIHBlcmZvcm1hbmNlIHJlcXVpcmVtZW50cy4gVGhl IGRpc3BsYXkgZW5naW5lIGFjY2VzcworICogdG8gc3lzdGVtIG1lbW9yeSBpcyBibG9ja2VkIGR1 cmluZyB0aGUgYWRqdXN0bWVudCB0aW1lLiBIYXZpbmcgdGhpcyBlbmFibGVkCisgKiBpbiBtdWx0 aS1waXBlIGNvbmZpZ3VyYXRpb25zIGNhbiBjYXVzZSBpc3N1ZXMgKHN1Y2ggYXMgdW5kZXJydW5z IGNhdXNpbmcKKyAqIGZ1bGwgc3lzdGVtIGhhbmdzKSwgYW5kIHRoZSBic3BlYyBhbHNvIHN1Z2dl c3RzIHRoYXQgc29mdHdhcmUgZGlzYWJsZSBpdAorICogd2hlbiBtb3JlIHRoZW4gb25lIHBpcGUg aXMgZW5hYmxlZC4KKyAqLworc3RhdGljIGludAorc2tsX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlpbnQgcmV0OworCisJaWYgKGRldl9wcml2LT5z a2xfc2Fndl9lbmFibGVkKQorCQlyZXR1cm4gMDsKKworCW11dGV4X2xvY2soJmRldl9wcml2LT5y cHMuaHdfbG9jayk7CisJRFJNX0RFQlVHX0tNUygiRW5hYmxpbmcgdGhlIFNBR1ZcbiIpOworCisJ cmV0ID0gc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsIEdFTjlfUENPREVfU0FHVl9D T05UUk9MLAorCQkJCSAgICAgIEdFTjlfU0FHVl9EWU5BTUlDX0ZSRVEpOworCWlmICghcmV0KQor CQlkZXZfcHJpdi0+c2tsX3NhZ3ZfZW5hYmxlZCA9IHRydWU7CisJZWxzZQorCQlEUk1fRVJST1Io IkZhaWxlZCB0byBlbmFibGUgdGhlIFNBR1ZcbiIpOworCisJLyogV2UgZG9uJ3QgbmVlZCB0byB3 YWl0IGZvciBTQUdWIHdoZW4gZW5hYmxpbmcgKi8KKwltdXRleF91bmxvY2soJmRldl9wcml2LT5y cHMuaHdfbG9jayk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludAorc2tsX2Rpc2FibGVf c2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJaW50IHJldCA9IDA7 CisJdW5zaWduZWQgbG9uZyB0aW1lb3V0OworCXUzMiB0ZW1wOworCisJaWYgKCFkZXZfcHJpdi0+ c2tsX3NhZ3ZfZW5hYmxlZCkKKwkJcmV0dXJuIDA7CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ cnBzLmh3X2xvY2spOworCURSTV9ERUJVR19LTVMoIkRpc2FibGluZyB0aGUgU0FHVlxuIik7CisK KwkvKiBic3BlYyBzYXlzIHRvIGtlZXAgcmV0cnlpbmcgZm9yIGF0IGxlYXN0IDEgbXMgKi8KKwl0 aW1lb3V0ID0gamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMSk7CisJZG8geworCQlyZXQgPSBz YW5keWJyaWRnZV9wY29kZV93cml0ZShkZXZfcHJpdiwgR0VOOV9QQ09ERV9TQUdWX0NPTlRST0ws CisJCQkJCSAgICAgIEdFTjlfU0FHVl9ESVNBQkxFKTsKKwkJaWYgKHJldCkgeworCQkJRFJNX0VS Uk9SKCJGYWlsZWQgdG8gZGlzYWJsZSB0aGUgU0FHVlxuIik7CisJCQlnb3RvIG91dDsKKwkJfQor CisJCXJldCA9IHNhbmR5YnJpZGdlX3Bjb2RlX3JlYWQoZGV2X3ByaXYsIEdFTjlfUENPREVfU0FH Vl9DT05UUk9MLAorCQkJCQkgICAgICZ0ZW1wKTsKKwkJaWYgKHJldCkgeworCQkJRFJNX0VSUk9S KCJGYWlsZWQgdG8gY2hlY2sgdGhlIHN0YXR1cyBvZiB0aGUgU0FHVlxuIik7CisJCQlnb3RvIG91 dDsKKwkJfQorCX0gd2hpbGUgKCEodGVtcCAmIDB4MSkgJiYgamlmZmllcyA8IHRpbWVvdXQpOwor CisJaWYgKHRlbXAgJiAweDEpCisJCWRldl9wcml2LT5za2xfc2Fndl9lbmFibGVkID0gZmFsc2U7 CisJZWxzZSB7CisJCXJldCA9IC0xOworCQlEUk1fRVJST1IoIlJlcXVlc3QgdG8gZGlzYWJsZSBT QUdWIHRpbWVkIG91dFxuIik7CisJfQorCitvdXQ6CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ cnBzLmh3X2xvY2spOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkCiBza2xfZGRiX2dl dF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAg Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKIAkJCQkgICBzdHJ1Y3Qgc2ts X2RkYl9lbnRyeSAqYWxsb2MsIC8qIG91dCAqLwpAQCAtMzY4Niw2ICszNzgyLDExIEBAIHN0YXRp YyB2b2lkIHNrbF93cml0ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YzsKIAorCWlmIChkZXZfcHJpdi0+YWN0aXZlX2NydGNzID09IDEpCisJ CXNrbF9lbmFibGVfc2FndihkZXZfcHJpdik7CisJZWxzZQorCQlza2xfZGlzYWJsZV9zYWd2KGRl dl9wcml2KTsKKwogCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBjcnRjKSB7CiAJCWludCBpLCBs ZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOwogCQllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7CkBAIC00MjI4LDYgKzQzMjksOCBAQCB2b2lkIHNrbF93bV9nZXRfaHdf c3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJLyogRWFzeS9jb21tb24gY2FzZTsganVz dCBzYW5pdGl6ZSBEREIgbm93IGlmIGV2ZXJ5dGhpbmcgb2ZmICovCiAJCW1lbXNldChkZGIsIDAs IHNpemVvZigqZGRiKSk7CiAJfQorCisJc2tsX3NhZ3ZfZ2V0X2h3X3N0YXRlKGRldl9wcml2KTsK IH0KIAogc3RhdGljIHZvaWQgaWxrX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK