From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Wentland Subject: [PATCH 22/43] drm/amd/display: Implement work around for optc underflow. Date: Thu, 23 Nov 2017 14:52:55 -0500 Message-ID: <20171123195316.8366-23-harry.wentland@amd.com> References: <20171123195316.8366-1-harry.wentland@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171123195316.8366-1-harry.wentland-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Yongqiang Sun RnJvbTogWW9uZ3FpYW5nIFN1biA8eW9uZ3FpYW5nLnN1bkBhbWQuY29tPgoKV29yayBhcm91bmQg Zm9yIGEgaHcgYnVnIGNhdXNpbmcgb3B0YyB1bmRlcmZsb3cgaWYgYmxhbmsgZGF0YQpkb3VibGUg YnVmZmVyIGRpc2FibGUgYW5kIHJlbW92ZSBtcGNjLgpDaGVja2luZyBvcHRjIHN0YXR1cyBhZnRl ciBvdGcgdW5sb2NrLCBhZnRlciB3YWl0IG1wY2MgaWRsZQpjaGVjayBzdGF0dXMgYWdhaW4sIGlm IG9wdGMgdW5kZXJmbG93IGp1c3QgaGFwcGVucyBhZnRlciB3YWl0Cm1wY2MgaWRsZSwgY2xlYXIg dW5kZXJmbG93IHN0YXR1cyBhbmQgZW5hYmxlIGJsYW5rIGRhdGEgZG91YmxlCmJ1ZmZlci4KClNp Z25lZC1vZmYtYnk6IFlvbmdxaWFuZyBTdW4gPHlvbmdxaWFuZy5zdW5AYW1kLmNvbT4KUmV2aWV3 ZWQtYnk6IFRvbnkgQ2hlbmcgPFRvbnkuQ2hlbmdAYW1kLmNvbT4KQWNrZWQtYnk6IEhhcnJ5IFdl bnRsYW5kIDxoYXJyeS53ZW50bGFuZEBhbWQuY29tPgotLS0KIC4uLi9kcm0vYW1kL2Rpc3BsYXkv ZGMvZGNuMTAvZGNuMTBfaHdfc2VxdWVuY2VyLmMgIHwgMzggKysrKysrKysrKysrKysrKysrKyst LQogLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfcmVzb3VyY2UuYyAgfCAg MSArCiAuLi4vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfdGltaW5nX2dlbmVyYXRvci5jICB8 IDMxICsrKysrKysrKysrKystLS0tLQogLi4uL2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHcvdGlt aW5nX2dlbmVyYXRvci5oICAgfCAgMiArKwogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L2luYy9od19zZXF1ZW5jZXIuaCAgfCAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlv bnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1ZW5jZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1ZW5jZXIuYwppbmRleCBlMDg4MDhiN2Uy ZDYuLjhlMjUyMGJhNmJlZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2RjL2RjbjEwL2RjbjEwX2h3X3NlcXVlbmNlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1ZW5jZXIuYwpAQCAtNDI1LDYgKzQyNSwzNCBA QCBzdGF0aWMgdm9pZCBiaW9zX2dvbGRlbl9pbml0KHN0cnVjdCBkYyAqZGMpCiAJfQogfQogCitz dGF0aWMgdm9pZCBmYWxzZV9vcHRjX3VuZGVyZmxvd193YSgKKwkJc3RydWN0IGRjICpkYywKKwkJ Y29uc3Qgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAorCQlzdHJ1Y3QgdGltaW5nX2dl bmVyYXRvciAqdGcpCit7CisJaW50IGk7CisJYm9vbCB1bmRlcmZsb3c7CisKKwlpZiAoIWRjLT5o d3NlcS0+d2EuZmFsc2Vfb3B0Y191bmRlcmZsb3cpCisJCXJldHVybjsKKworCXVuZGVyZmxvdyA9 IHRnLT5mdW5jcy0+aXNfb3B0Y191bmRlcmZsb3dfb2NjdXJyZWQodGcpOworCisJZm9yIChpID0g MDsgaSA8IGRjLT5yZXNfcG9vbC0+cGlwZV9jb3VudDsgaSsrKSB7CisJCXN0cnVjdCBwaXBlX2N0 eCAqb2xkX3BpcGVfY3R4ID0gJmRjLT5jdXJyZW50X3N0YXRlLT5yZXNfY3R4LnBpcGVfY3R4W2ld OworCisJCWlmIChvbGRfcGlwZV9jdHgtPnN0cmVhbSAhPSBzdHJlYW0pCisJCQljb250aW51ZTsK KworCQlkYy0+aHdzcy53YWl0X2Zvcl9tcGNjX2Rpc2Nvbm5lY3QoZGMsIGRjLT5yZXNfcG9vbCwg b2xkX3BpcGVfY3R4KTsKKwl9CisKKwl0Zy0+ZnVuY3MtPnNldF9ibGFua19kYXRhX2RvdWJsZV9i dWZmZXIodGcsIHRydWUpOworCisJaWYgKHRnLT5mdW5jcy0+aXNfb3B0Y191bmRlcmZsb3dfb2Nj dXJyZWQodGcpICYmICF1bmRlcmZsb3cpCisJCXRnLT5mdW5jcy0+Y2xlYXJfb3B0Y191bmRlcmZs b3codGcpOworfQorCiBzdGF0aWMgZW51bSBkY19zdGF0dXMgZGNuMTBfcHJvZ19waXhjbGtfY3J0 Y19vdGcoCiAJCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAJCXN0cnVjdCBkY19zdGF0ZSAq Y29udGV4dCwKQEAgLTQ5Myw4ICs1MjEsMTEgQEAgc3RhdGljIGVudW0gZGNfc3RhdHVzIGRjbjEw X3Byb2dfcGl4Y2xrX2NydGNfb3RnKAogCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGcsCiAJCQkm YmxhY2tfY29sb3IpOwogCi0JcGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmZ1bmNzLT5zZXRfYmxh bmsocGlwZV9jdHgtPnN0cmVhbV9yZXMudGcsIHRydWUpOwotCWh3c3Nfd2FpdF9mb3JfYmxhbmtf Y29tcGxldGUocGlwZV9jdHgtPnN0cmVhbV9yZXMudGcpOworCWlmICghcGlwZV9jdHgtPnN0cmVh bV9yZXMudGctPmZ1bmNzLT5pc19ibGFua2VkKHBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnKSkgewor CQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy50Zy0+ZnVuY3MtPnNldF9ibGFuayhwaXBlX2N0eC0+c3Ry ZWFtX3Jlcy50ZywgdHJ1ZSk7CisJCWh3c3Nfd2FpdF9mb3JfYmxhbmtfY29tcGxldGUocGlwZV9j dHgtPnN0cmVhbV9yZXMudGcpOworCQlmYWxzZV9vcHRjX3VuZGVyZmxvd193YShkYywgcGlwZV9j dHgtPnN0cmVhbSwgcGlwZV9jdHgtPnN0cmVhbV9yZXMudGcpOworCX0KIAogCS8qIFZURyBpcyAg d2l0aGluIERDSFVCIGNvbW1hbmQgYmxvY2suIERDRkNMSyBpcyBhbHdheXMgb24gKi8KIAlpZiAo ZmFsc2UgPT0gcGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmZ1bmNzLT5lbmFibGVfY3J0YyhwaXBl X2N0eC0+c3RyZWFtX3Jlcy50ZykpIHsKQEAgLTIyNTIsNiArMjI4Myw5IEBAIHN0YXRpYyB2b2lk IGRjbjEwX2FwcGx5X2N0eF9mb3Jfc3VyZmFjZSgKIAogCXRnLT5mdW5jcy0+dW5sb2NrKHRnKTsK IAorCWlmIChudW1fcGxhbmVzID09IDApCisJCWZhbHNlX29wdGNfdW5kZXJmbG93X3dhKGRjLCBz dHJlYW0sIHRnKTsKKwogCWZvciAoaSA9IDA7IGkgPCBkYy0+cmVzX3Bvb2wtPnBpcGVfY291bnQ7 IGkrKykgewogCQlzdHJ1Y3QgcGlwZV9jdHggKm9sZF9waXBlX2N0eCA9CiAJCQkJJmRjLT5jdXJy ZW50X3N0YXRlLT5yZXNfY3R4LnBpcGVfY3R4W2ldOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfcmVzb3VyY2UuYwppbmRleCA5ZWExMDAyMjMw MjAuLjhjNTE1Yjc5MWE5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2RjL2RjbjEwL2RjbjEwX3Jlc291cmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2RjbjEwL2RjbjEwX3Jlc291cmNlLmMKQEAgLTY3OCw2ICs2NzgsNyBAQCBzdGF0aWMg c3RydWN0IGRjZV9od3NlcSAqZGNuMTBfaHdzZXFfY3JlYXRlKAogCQlod3MtPnNoaWZ0cyA9ICZo d3NlcV9zaGlmdDsKIAkJaHdzLT5tYXNrcyA9ICZod3NlcV9tYXNrOwogCQlod3MtPndhLkRFR1ZJ RENOMTBfMjUzID0gdHJ1ZTsKKwkJaHdzLT53YS5mYWxzZV9vcHRjX3VuZGVyZmxvdyA9IHRydWU7 CiAJfQogCXJldHVybiBod3M7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvZGNuMTAvZGNuMTBfdGltaW5nX2dlbmVyYXRvci5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX3RpbWluZ19nZW5lcmF0b3IuYwppbmRleCA3M2Zm NzhmOWNhZTEuLjQ5NDBmZGJjNmU4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2RjbjEwL2RjbjEwX3RpbWluZ19nZW5lcmF0b3IuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfdGltaW5nX2dlbmVyYXRvci5jCkBAIC0z MzYsMTMgKzMzNiw2IEBAIHN0YXRpYyB2b2lkIHRnbjEwX2JsYW5rX2NydGMoc3RydWN0IHRpbWlu Z19nZW5lcmF0b3IgKnRnKQogCQkJT1RHX0JMQU5LX0RBVEFfRU4sIDEsCiAJCQlPVEdfQkxBTktf REVfTU9ERSwgMCk7CiAKLQkvKiB0b2RvOiB3aHkgYXJlIHdlIHdhaXRpbmcgZm9yIEJMQU5LX0RB VEFfRU4/ICBzaG91bGRuJ3Qgd2UgYmUgd2FpdGluZwotCSAqIGZvciBzdGF0dXM/Ci0JICovCi0J UkVHX1dBSVQoT1RHX0JMQU5LX0NPTlRST0wsCi0JCQlPVEdfQkxBTktfREFUQV9FTiwgMSwKLQkJ CTEsIDEwMDAwMCk7Ci0KIAl0Z24xMF9zZXRfYmxhbmtfZGF0YV9kb3VibGVfYnVmZmVyKHRnLCBm YWxzZSk7CiB9CiAKQEAgLTExOTksMTQgKzExOTIsMTkgQEAgdm9pZCB0Z24xMF9yZWFkX290Z19z dGF0ZShzdHJ1Y3QgZGNuMTBfdGltaW5nX2dlbmVyYXRvciAqdGduMTAsCiAJCQlPUFRDX1VOREVS RkxPV19PQ0NVUlJFRF9TVEFUVVMsICZzLT51bmRlcmZsb3dfb2NjdXJyZWRfc3RhdHVzKTsKIH0K IAotc3RhdGljIHZvaWQgdGduMTBfdGdfaW5pdChzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcp CitzdGF0aWMgdm9pZCB0Z24xMF9jbGVhcl9vcHRjX3VuZGVyZmxvdyhzdHJ1Y3QgdGltaW5nX2dl bmVyYXRvciAqdGcpCiB7CiAJc3RydWN0IGRjbjEwX3RpbWluZ19nZW5lcmF0b3IgKnRnbjEwID0g RENOMTBUR19GUk9NX1RHKHRnKTsKIAotCXRnbjEwX3NldF9ibGFua19kYXRhX2RvdWJsZV9idWZm ZXIodGcsIHRydWUpOwogCVJFR19VUERBVEUoT1BUQ19JTlBVVF9HTE9CQUxfQ09OVFJPTCwgT1BU Q19VTkRFUkZMT1dfQ0xFQVIsIDEpOwogfQogCitzdGF0aWMgdm9pZCB0Z24xMF90Z19pbml0KHN0 cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZykKK3sKKwl0Z24xMF9zZXRfYmxhbmtfZGF0YV9kb3Vi bGVfYnVmZmVyKHRnLCB0cnVlKTsKKwl0Z24xMF9jbGVhcl9vcHRjX3VuZGVyZmxvdyh0Zyk7Cit9 CisKIHN0YXRpYyBib29sIHRnbjEwX2lzX3RnX2VuYWJsZWQoc3RydWN0IHRpbWluZ19nZW5lcmF0 b3IgKnRnKQogewogCXN0cnVjdCBkY24xMF90aW1pbmdfZ2VuZXJhdG9yICp0Z24xMCA9IERDTjEw VEdfRlJPTV9URyh0Zyk7CkBAIC0xMjE3LDYgKzEyMTUsMTkgQEAgc3RhdGljIGJvb2wgdGduMTBf aXNfdGdfZW5hYmxlZChzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpCiAJcmV0dXJuIChvdGdf ZW5hYmxlZCAhPSAwKTsKIAogfQorCitzdGF0aWMgYm9vbCB0Z24xMF9pc19vcHRjX3VuZGVyZmxv d19vY2N1cnJlZChzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpCit7CisJc3RydWN0IGRjbjEw X3RpbWluZ19nZW5lcmF0b3IgKnRnbjEwID0gRENOMTBUR19GUk9NX1RHKHRnKTsKKwl1aW50MzJf dCB1bmRlcmZsb3dfb2NjdXJyZWQgPSAwOworCisJUkVHX0dFVChPUFRDX0lOUFVUX0dMT0JBTF9D T05UUk9MLAorCQkJT1BUQ19VTkRFUkZMT1dfT0NDVVJSRURfU1RBVFVTLAorCQkJJnVuZGVyZmxv d19vY2N1cnJlZCk7CisKKwlyZXR1cm4gKHVuZGVyZmxvd19vY2N1cnJlZCA9PSAxKTsKK30KKwog c3RhdGljIGNvbnN0IHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yX2Z1bmNzIGRjbjEwX3RnX2Z1bmNz ID0gewogCQkudmFsaWRhdGVfdGltaW5nID0gdGduMTBfdmFsaWRhdGVfdGltaW5nLAogCQkucHJv Z3JhbV90aW1pbmcgPSB0Z24xMF9wcm9ncmFtX3RpbWluZywKQEAgLTEyNDksNiArMTI2MCw4IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvcl9mdW5jcyBkY24xMF90Z19mdW5j cyA9IHsKIAkJLnNldF9ibGFua19kYXRhX2RvdWJsZV9idWZmZXIgPSB0Z24xMF9zZXRfYmxhbmtf ZGF0YV9kb3VibGVfYnVmZmVyLAogCQkudGdfaW5pdCA9IHRnbjEwX3RnX2luaXQsCiAJCS5pc190 Z19lbmFibGVkID0gdGduMTBfaXNfdGdfZW5hYmxlZCwKKwkJLmlzX29wdGNfdW5kZXJmbG93X29j Y3VycmVkID0gdGduMTBfaXNfb3B0Y191bmRlcmZsb3dfb2NjdXJyZWQsCisJCS5jbGVhcl9vcHRj X3VuZGVyZmxvdyA9IHRnbjEwX2NsZWFyX29wdGNfdW5kZXJmbG93LAogfTsKIAogdm9pZCBkY24x MF90aW1pbmdfZ2VuZXJhdG9yX2luaXQoc3RydWN0IGRjbjEwX3RpbWluZ19nZW5lcmF0b3IgKnRn bjEwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody90 aW1pbmdfZ2VuZXJhdG9yLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3 L3RpbWluZ19nZW5lcmF0b3IuaAppbmRleCA4NjAyNTk5MTNkNzguLmU1YzdlMGUxZGIxNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody90aW1pbmdfZ2Vu ZXJhdG9yLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9ody90aW1p bmdfZ2VuZXJhdG9yLmgKQEAgLTE4Nyw2ICsxODcsOCBAQCBzdHJ1Y3QgdGltaW5nX2dlbmVyYXRv cl9mdW5jcyB7CiAKIAl2b2lkICgqdGdfaW5pdCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRn KTsKIAlib29sICgqaXNfdGdfZW5hYmxlZCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsK Kwlib29sICgqaXNfb3B0Y191bmRlcmZsb3dfb2NjdXJyZWQpKHN0cnVjdCB0aW1pbmdfZ2VuZXJh dG9yICp0Zyk7CisJdm9pZCAoKmNsZWFyX29wdGNfdW5kZXJmbG93KShzdHJ1Y3QgdGltaW5nX2dl bmVyYXRvciAqdGcpOwogfTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvZGMvaW5jL2h3X3NlcXVlbmNlci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2luYy9od19zZXF1ZW5jZXIuaAppbmRleCA1ZGM0ZWNmNjE4ZmYuLjAzNDMxMTM0 YzA4OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2luYy9od19z ZXF1ZW5jZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3X3Nl cXVlbmNlci5oCkBAIC00MCw2ICs0MCw3IEBAIGVudW0gcGlwZV9nYXRpbmdfY29udHJvbCB7CiBz dHJ1Y3QgZGNlX2h3c2VxX3dhIHsKIAlib29sIGJsbmRfY3J0Y190cmlnZ2VyOwogCWJvb2wgREVH VklEQ04xMF8yNTM7CisJYm9vbCBmYWxzZV9vcHRjX3VuZGVyZmxvdzsKIH07CiAKIHN0cnVjdCBo d3NlcV93YV9zdGF0ZSB7Ci0tIAoyLjE0LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vYW1kLWdmeAo=