From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH v3 1/6] drm/i915/skl: Add support for the SAGV, fix underrun hangs Date: Tue, 26 Jul 2016 10:50:12 -0400 Message-ID: <1469544617-20003-2-git-send-email-cpaul@redhat.com> References: <1469544617-20003-1-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1469544617-20003-1-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, Maarten Lankhorst Cc: David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Daniel Vetter List-Id: intel-gfx@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 a3lsYWtlIGhhdmUgY29tcGxldGVseSB2YW5pc2hlZCBvbiBteSBUNDYwcy4gQWRkaXRpb25hbGx5 LAp0aGUgYnNwZWMgbWVudGlvbnMgdHVybmluZyBvZmYgdGhlIFNBR1YJd2l0aCBtb3JlIHRoZW4g b25lIHBpcGUgZW5hYmxlZAphcyBhIHdvcmthcm91bmQgZm9yIGRpc3BsYXkgdW5kZXJydW5zLiBX aGlsZSB0aGlzIHBhdGNoIGRvZXNuJ3QgZW50aXJlbHkKZml4IHRoYXQsIGl0IGxvb2tzIGxpa2Ug aXQgZG9lcyBpbXByb3ZlIHRoZSBzaXR1YXRpb24gYSBsaXR0bGUgYml0IHNvCml0J3MgbGlrZWx5 IHRoaXMgaXMgZ29pbmcgdG8gYmUgcmVxdWlyZWQgdG8gbWFrZSB3YXRlcm1hcmtzIG9uIFNreWxh a2UKZnVsbHkgZnVuY3Rpb25hbC4KCkNoYW5nZXMgc2luY2UgdjM6CiAtIFVzZSB0aW1lX2JlZm9y ZSgpIHRvIGNvbXBhcmUgdGltZW91dCB0byBqaWZmaWVzCkNoYW5nZXMgc2luY2UgdjI6CiAtIFJl YWxseSBhcHBseSBtaW5vciBzdHlsZSBuaXRwaWNrcyB0byBwYXRjaCB0aGlzIHRpbWUKQ2hhbmdl cyBzaW5jZSB2MToKIC0gQWRkZWQgY29tbWVudHMgYWJvdXQgdGhpcyBwcm9iYWJseSBiZWluZyBv bmUgb2YgdGhlIHJlcXVpcmVtZW50cyB0bwogICBmaXhpbmcgU2t5bGFrZSdzIHdhdGVybWFyayBp c3N1ZXMKIC0gTWlub3Igc3R5bGUgbml0cGlja3MgZnJvbSBNYXR0IFJvcGVyCiAtIERpc2FibGUg dGhlc2UgZnVuY3Rpb25zIG9uIEJyb3h0b24sIHNpbmNlIGl0IGRvZXNuJ3QgaGF2ZSBhbiBTQUdW CgpSZXZpZXdlZC1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KU2ln bmVkLW9mZi1ieTogTHl1ZGUgPGNwYXVsQHJlZGhhdC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGZmd2xsLmNoPgpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggfCAgIDUgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgfCAxMTAg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2Vk LCAxMTcgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDlmNjU1ZTIu LjFmNmZlOGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTk2Miw2ICsxOTYyLDggQEAg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCXN0cnVjdCBpOTE1X3N1c3BlbmRfc2F2ZWRfcmVn aXN0ZXJzIHJlZ2ZpbGU7CiAJc3RydWN0IHZsdl9zMGl4X3N0YXRlIHZsdl9zMGl4X3N0YXRlOwog CisJYm9vbCBza2xfc2Fndl9lbmFibGVkOworCiAJc3RydWN0IHsKIAkJLyoKIAkJICogUmF3IHdh dGVybWFyayBsYXRlbmN5IHZhbHVlczoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IDkzOTdk ZGUuLjg5ZDE0NmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtNzE2Niw2ICs3MTY2LDEx IEBAIGVudW0gewogI2RlZmluZSAgIEhTV19QQ09ERV9ERV9XUklURV9GUkVRX1JFUQkJMHgxNwog I2RlZmluZSAgIERJU1BMQVlfSVBTX0NPTlRST0wJCQkweDE5CiAjZGVmaW5lCSAgSFNXX1BDT0RF X0RZTkFNSUNfRFVUWV9DWUNMRV9DT05UUk9MCTB4MUEKKyNkZWZpbmUgICBHRU45X1BDT0RFX1NB R1ZfQ09OVFJPTAkJMHgyMQorI2RlZmluZSAgICAgR0VOOV9TQUdWX0RJU0FCTEUJCQkweDAKKyNk ZWZpbmUgICAgIEdFTjlfU0FHVl9MT1dfRlJFUQkJCTB4MQorI2RlZmluZSAgICAgR0VOOV9TQUdW X0hJR0hfRlJFUQkJCTB4MgorI2RlZmluZSAgICAgR0VOOV9TQUdWX0RZTkFNSUNfRlJFUSAgICAg ICAgICAgICAgMHgzCiAjZGVmaW5lIEdFTjZfUENPREVfREFUQQkJCQlfTU1JTygweDEzODEyOCkK ICNkZWZpbmUgICBHRU42X1BDT0RFX0ZSRVFfSUFfUkFUSU9fU0hJRlQJOAogI2RlZmluZSAgIEdF TjZfUENPREVfRlJFUV9SSU5HX1JBVElPX1NISUZUCTE2CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpp bmRleCA2NGQ2MjhjLi4wNjZmZTZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTI4NzYs NiArMjg3NiwxMDkgQEAgc2tsX3dtX3BsYW5lX2lkKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUpCiB9CiAKIHN0YXRpYyB2b2lkCitza2xfc2Fndl9nZXRfaHdfc3RhdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXUzMiB0ZW1wOworCWludCByZXQ7CisKKwlp ZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCisJCXJldHVybjsKKworCW11dGV4X2xvY2soJmRldl9w cml2LT5ycHMuaHdfbG9jayk7CisJcmV0ID0gc2FuZHlicmlkZ2VfcGNvZGVfcmVhZChkZXZfcHJp diwgR0VOOV9QQ09ERV9TQUdWX0NPTlRST0wsICZ0ZW1wKTsKKwltdXRleF91bmxvY2soJmRldl9w cml2LT5ycHMuaHdfbG9jayk7CisKKwlpZiAoIXJldCkgeworCQlkZXZfcHJpdi0+c2tsX3NhZ3Zf ZW5hYmxlZCA9ICEhKHRlbXAgJiBHRU45X1NBR1ZfRFlOQU1JQ19GUkVRKTsKKwl9IGVsc2Ugewor CQkvKgorCQkgKiBJZiBmb3Igc29tZSByZWFzb24gd2UgY2FuJ3QgYWNjZXNzIHRoZSBTQUdWIHN0 YXRlLCBmb2xsb3cKKwkJICogdGhlIGJzcGVjIGFuZCBhc3N1bWUgaXQncyBlbmFibGVkCisJCSAq LworCQlEUk1fRVJST1IoIkZhaWxlZCB0byBnZXQgU0FHViBzdGF0ZSwgYXNzdW1pbmcgZW5hYmxl ZFxuIik7CisJCWRldl9wcml2LT5za2xfc2Fndl9lbmFibGVkID0gdHJ1ZTsKKwl9Cit9CisKKy8q CisgKiBTQUdWIGR5bmFtaWNhbGx5IGFkanVzdHMgdGhlIHN5c3RlbSBhZ2VudCB2b2x0YWdlIGFu ZCBjbG9jayBmcmVxdWVuY2llcworICogZGVwZW5kaW5nIG9uIHBvd2VyIGFuZCBwZXJmb3JtYW5j ZSByZXF1aXJlbWVudHMuIFRoZSBkaXNwbGF5IGVuZ2luZSBhY2Nlc3MKKyAqIHRvIHN5c3RlbSBt ZW1vcnkgaXMgYmxvY2tlZCBkdXJpbmcgdGhlIGFkanVzdG1lbnQgdGltZS4gSGF2aW5nIHRoaXMg ZW5hYmxlZAorICogaW4gbXVsdGktcGlwZSBjb25maWd1cmF0aW9ucyBjYW4gY2F1c2UgaXNzdWVz IChzdWNoIGFzIHVuZGVycnVucyBjYXVzaW5nCisgKiBmdWxsIHN5c3RlbSBoYW5ncyksIGFuZCB0 aGUgYnNwZWMgYWxzbyBzdWdnZXN0cyB0aGF0IHNvZnR3YXJlIGRpc2FibGUgaXQKKyAqIHdoZW4g bW9yZSB0aGVuIG9uZSBwaXBlIGlzIGVuYWJsZWQuCisgKi8KK3N0YXRpYyBpbnQKK3NrbF9lbmFi bGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJaW50IHJldDsK KworCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKKwkJcmV0dXJuIDA7CisJaWYgKGRldl9wcml2 LT5za2xfc2Fndl9lbmFibGVkKQorCQlyZXR1cm4gMDsKKworCW11dGV4X2xvY2soJmRldl9wcml2 LT5ycHMuaHdfbG9jayk7CisJRFJNX0RFQlVHX0tNUygiRW5hYmxpbmcgdGhlIFNBR1ZcbiIpOwor CisJcmV0ID0gc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsIEdFTjlfUENPREVfU0FH Vl9DT05UUk9MLAorCQkJCSAgICAgIEdFTjlfU0FHVl9EWU5BTUlDX0ZSRVEpOworCWlmICghcmV0 KQorCQlkZXZfcHJpdi0+c2tsX3NhZ3ZfZW5hYmxlZCA9IHRydWU7CisJZWxzZQorCQlEUk1fRVJS T1IoIkZhaWxlZCB0byBlbmFibGUgdGhlIFNBR1ZcbiIpOworCisJLyogV2UgZG9uJ3QgbmVlZCB0 byB3YWl0IGZvciBTQUdWIHdoZW4gZW5hYmxpbmcgKi8KKwltdXRleF91bmxvY2soJmRldl9wcml2 LT5ycHMuaHdfbG9jayk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludAorc2tsX2Rpc2Fi bGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJaW50IHJldCA9 IDA7CisJdW5zaWduZWQgbG9uZyB0aW1lb3V0OworCXUzMiB0ZW1wOworCisJaWYgKElTX0JST1hU T04oZGV2X3ByaXYpKQorCQlyZXR1cm4gMDsKKwlpZiAoIWRldl9wcml2LT5za2xfc2Fndl9lbmFi bGVkKQorCQlyZXR1cm4gMDsKKworCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7 CisJRFJNX0RFQlVHX0tNUygiRGlzYWJsaW5nIHRoZSBTQUdWXG4iKTsKKworCS8qIGJzcGVjIHNh eXMgdG8ga2VlcCByZXRyeWluZyBmb3IgYXQgbGVhc3QgMSBtcyAqLworCXRpbWVvdXQgPSBqaWZm aWVzICsgbXNlY3NfdG9famlmZmllcygxKTsKKwlkbyB7CisJCXJldCA9IHNhbmR5YnJpZGdlX3Bj b2RlX3dyaXRlKGRldl9wcml2LCBHRU45X1BDT0RFX1NBR1ZfQ09OVFJPTCwKKwkJCQkJICAgICAg R0VOOV9TQUdWX0RJU0FCTEUpOworCQlpZiAocmV0KSB7CisJCQlEUk1fRVJST1IoIkZhaWxlZCB0 byBkaXNhYmxlIHRoZSBTQUdWXG4iKTsKKwkJCWdvdG8gb3V0OworCQl9CisKKwkJcmV0ID0gc2Fu ZHlicmlkZ2VfcGNvZGVfcmVhZChkZXZfcHJpdiwgR0VOOV9QQ09ERV9TQUdWX0NPTlRST0wsCisJ CQkJCSAgICAgJnRlbXApOworCQlpZiAocmV0KSB7CisJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBj aGVjayB0aGUgc3RhdHVzIG9mIHRoZSBTQUdWXG4iKTsKKwkJCWdvdG8gb3V0OworCQl9CisJfSB3 aGlsZSAoISh0ZW1wICYgMHgxKSAmJiB0aW1lX2JlZm9yZShqaWZmaWVzLCB0aW1lb3V0KSk7CisK KwlpZiAodGVtcCAmIDB4MSkgeworCQlkZXZfcHJpdi0+c2tsX3NhZ3ZfZW5hYmxlZCA9IGZhbHNl OworCX0gZWxzZSB7CisJCXJldCA9IC0xOworCQlEUk1fRVJST1IoIlJlcXVlc3QgdG8gZGlzYWJs ZSBTQUdWIHRpbWVkIG91dFxuIik7CisJfQorCitvdXQ6CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+cnBzLmh3X2xvY2spOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkCiBza2xfZGRi X2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJ ICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKIAkJCQkgICBzdHJ1Y3Qg c2tsX2RkYl9lbnRyeSAqYWxsb2MsIC8qIG91dCAqLwpAQCAtMzY4Niw2ICszNzg5LDExIEBAIHN0 YXRpYyB2b2lkIHNrbF93cml0ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKIAlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAorCWlmIChkZXZfcHJpdi0+YWN0aXZlX2NydGNzID09IDEp CisJCXNrbF9lbmFibGVfc2FndihkZXZfcHJpdik7CisJZWxzZQorCQlza2xfZGlzYWJsZV9zYWd2 KGRldl9wcml2KTsKKwogCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBjcnRjKSB7CiAJCWludCBp LCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOwogCQllbnVtIHBpcGUg cGlwZSA9IGNydGMtPnBpcGU7CkBAIC00MjI4LDYgKzQzMzYsOCBAQCB2b2lkIHNrbF93bV9nZXRf aHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJLyogRWFzeS9jb21tb24gY2FzZTsg anVzdCBzYW5pdGl6ZSBEREIgbm93IGlmIGV2ZXJ5dGhpbmcgb2ZmICovCiAJCW1lbXNldChkZGIs IDAsIHNpemVvZigqZGRiKSk7CiAJfQorCisJc2tsX3NhZ3ZfZ2V0X2h3X3N0YXRlKGRldl9wcml2 KTsKIH0KIAogc3RhdGljIHZvaWQgaWxrX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK