From mboxrd@z Thu Jan 1 00:00:00 1970 From: Damien Lespiau Subject: [PATCH 19/22] drm/i915: Use crtc_clock with the adjusted mode Date: Wed, 25 Sep 2013 16:45:37 +0100 Message-ID: <1380123940-14340-20-git-send-email-damien.lespiau@intel.com> References: <1380123940-14340-1-git-send-email-damien.lespiau@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1380123940-14340-1-git-send-email-damien.lespiau@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org c3RydWN0IGRybV9tb2RlX2Rpc3BsYXkgbm93IGhhcyBhIHNlcGFyYXRlIGNydGNfIHZlcnNpb24g b2YgdGhlIGNsb2NrIHRvCmJlIHVzZWQgd2hlbiB3ZSdyZSB0YWxraW5nIGFib3V0IHRoZSB0aW1p bmdzIGdpdmVuIHRvIHRoZSBoYXJ3YWRyZSAod2FzCmZhciBhcyB0aGUgbW9kZSBpcyBjb25jZXJu ZWQpLgoKVGhpcyBjb21taXQgaXMgcmVhbGx5IHRoZSByZXN1bHQgb2YgYSBnaXQgZ3JlcCBhZGp1 c3RlZF9tb2RlLipjbG9jayBhbmQKcmVwbGFjaW5nIHRob3NlIGJ5IGFkanVzdGVkX21vZGUuY3J0 Y19jbG9jay4gTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgp2MjogUmViYXNlZCBvbiBkcm0taW50ZWwt cXVldWVkLW5leHQKClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxl c3BpYXVAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jICAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAzNCArKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jICAgICAgfCAxMSArKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jICAgICB8 ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgfCAgNiArKystLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYyAgICB8ICAyICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYyAgICB8ICAyICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jICAgICAgfCAgMiArLQogMTAgZmlsZXMg Y2hhbmdlZCwgNTYgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9jcnQuYwppbmRleCAwMTljNGNlLi4wMjYzNjI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9jcnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j cnQuYwpAQCAtMTE3LDcgKzExNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydF9nZXRfY29uZmln KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWlmIChIQVNfUENIX1NQTElUKGRldikp CiAJCWlyb25sYWtlX2NoZWNrX2VuY29kZXJfZG90Y2xvY2socGlwZV9jb25maWcsIGRvdGNsb2Nr KTsKIAotCXBpcGVfY29uZmlnLT5hZGp1c3RlZF9tb2RlLmNsb2NrID0gZG90Y2xvY2s7CisJcGlw ZV9jb25maWctPmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IGRvdGNsb2NrOwogfQogCiBzdGF0 aWMgdm9pZCBoc3dfY3J0X2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggODhjNjQxYS4uM2M5ODJhNCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNzM5LDE0ICs3MzksMTQgQEAg Ym9vbCBpbnRlbF9jcnRjX2FjdGl2ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJLyogQmUgcGFy YW5vaWQgYXMgd2UgY2FuIGFycml2ZSBoZXJlIHdpdGggb25seSBwYXJ0aWFsCiAJICogc3RhdGUg cmV0cmlldmVkIGZyb20gdGhlIGhhcmR3YXJlIGR1cmluZyBzZXR1cC4KIAkgKgotCSAqIFdlIGNh biBkaXRjaCB0aGUgYWRqdXN0ZWRfbW9kZS5jbG9jayBjaGVjayBhcyBzb29uCisJICogV2UgY2Fu IGRpdGNoIHRoZSBhZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgY2hlY2sgYXMgc29vbgogCSAqIGFz IEhhc3dlbGwgaGFzIGdhaW5lZCBjbG9jayByZWFkb3V0L2Zhc3Rib290IHN1cHBvcnQuCiAJICoK IAkgKiBXZSBjYW4gZGl0Y2ggdGhlIGNydGMtPmZiIGNoZWNrIGFzIHNvb24gYXMgd2UgY2FuCiAJ ICogcHJvcGVybHkgcmVjb25zdHJ1Y3QgZnJhbWVidWZmZXJzLgogCSAqLwogCXJldHVybiBpbnRl bF9jcnRjLT5hY3RpdmUgJiYgY3J0Yy0+ZmIgJiYKLQkJaW50ZWxfY3J0Yy0+Y29uZmlnLmFkanVz dGVkX21vZGUuY2xvY2s7CisJCWludGVsX2NydGMtPmNvbmZpZy5hZGp1c3RlZF9tb2RlLmNydGNf Y2xvY2s7CiB9CiAKIGVudW0gdHJhbnNjb2RlciBpbnRlbF9waXBlX3RvX2NwdV90cmFuc2NvZGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTI5MTMsNyArMjkxMyw3IEBA IHN0YXRpYyB2b2lkIGxwdF9wcm9ncmFtX2ljbGtpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7 CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCBjbG9jayA9IHRvX2lu dGVsX2NydGMoY3J0YyktPmNvbmZpZy5hZGp1c3RlZF9tb2RlLmNsb2NrOworCWludCBjbG9jayA9 IHRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CiAJ dTMyIGRpdnNlbCwgcGhhc2VpbmMsIGF1eGRpdiwgcGhhc2VkaXIgPSAwOwogCXUzMiB0ZW1wOwog CkBAIC0yOTM3LDggKzI5MzcsOCBAQCBzdGF0aWMgdm9pZCBscHRfcHJvZ3JhbV9pY2xraXAoc3Ry dWN0IGRybV9jcnRjICpjcnRjKQogCQlwaGFzZWluYyA9IDB4MjA7CiAJfSBlbHNlIHsKIAkJLyog VGhlIGlDTEsgdmlydHVhbCBjbG9jayByb290IGZyZXF1ZW5jeSBpcyBpbiBNSHosCi0JCSAqIGJ1 dCB0aGUgYWRqdXN0ZWRfbW9kZS0+Y2xvY2sgaW4gaW4gS0h6LiBUbyBnZXQgdGhlIGRpdmlzb3Jz LAotCQkgKiBpdCBpcyBuZWNlc3NhcnkgdG8gZGl2aWRlIG9uZSBieSBhbm90aGVyLCBzbyB3ZQor CQkgKiBidXQgdGhlIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgaW4gaW4gS0h6LiBUbyBnZXQg dGhlCisJCSAqIGRpdmlzb3JzLCBpdCBpcyBuZWNlc3NhcnkgdG8gZGl2aWRlIG9uZSBieSBhbm90 aGVyLCBzbyB3ZQogCQkgKiBjb252ZXJ0IHRoZSB2aXJ0dWFsIGNsb2NrIHByZWNpc2lvbiB0byBL SHogaGVyZSBmb3IgaGlnaGVyCiAJCSAqIHByZWNpc2lvbi4KIAkJICovCkBAIC00MTQ4LDcgKzQx NDgsNyBAQCByZXRyeToKIAkgKi8KIAlsaW5rX2J3ID0gaW50ZWxfZmRpX2xpbmtfZnJlcShkZXYp ICogTUh6KDEwMCkvS0h6KDEpLzEwOwogCi0JZmRpX2RvdGNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+ Y2xvY2s7CisJZmRpX2RvdGNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jazsKIAogCWxh bmUgPSBpcm9ubGFrZV9nZXRfbGFuZXNfcmVxdWlyZWQoZmRpX2RvdGNsb2NrLCBsaW5rX2J3LAog CQkJCQkgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwpAQCAtNDIwNCwxMiArNDIwNCwxMiBAQCBz dGF0aWMgaW50IGludGVsX2NydGNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNy dGMsCiAJCSAqIG90aGVyd2lzZSBwaXBlIEEgb25seS4KIAkJICovCiAJCWlmICgoY3J0Yy0+cGlw ZSA9PSBQSVBFX0EgfHwgSVNfSTkxNUcoZGV2KSkgJiYKLQkJICAgIGFkanVzdGVkX21vZGUtPmNs b2NrID4gY2xvY2tfbGltaXQgKiA5IC8gMTApIHsKKwkJICAgIGFkanVzdGVkX21vZGUtPmNydGNf Y2xvY2sgPiBjbG9ja19saW1pdCAqIDkgLyAxMCkgewogCQkJY2xvY2tfbGltaXQgKj0gMjsKIAkJ CXBpcGVfY29uZmlnLT5kb3VibGVfd2lkZSA9IHRydWU7CiAJCX0KIAotCQlpZiAoYWRqdXN0ZWRf bW9kZS0+Y2xvY2sgPiBjbG9ja19saW1pdCAqIDkgLyAxMCkKKwkJaWYgKGFkanVzdGVkX21vZGUt PmNydGNfY2xvY2sgPiBjbG9ja19saW1pdCAqIDkgLyAxMCkKIAkJCXJldHVybiAtRUlOVkFMOwog CX0KIApAQCAtNDg2OSw3ICs0ODY5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19tb2RlX2Zy b21fcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAKIAljcnRjLT5t b2RlLmZsYWdzID0gcGlwZV9jb25maWctPmFkanVzdGVkX21vZGUuZmxhZ3M7CiAKLQljcnRjLT5t b2RlLmNsb2NrID0gcGlwZV9jb25maWctPmFkanVzdGVkX21vZGUuY2xvY2s7CisJY3J0Yy0+bW9k ZS5jbG9jayA9IHBpcGVfY29uZmlnLT5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CiAJY3J0Yy0+ bW9kZS5mbGFncyB8PSBwaXBlX2NvbmZpZy0+YWRqdXN0ZWRfbW9kZS5mbGFnczsKIH0KIApAQCAt NzQ0MCw3ICs3NDQwLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Nsb2NrX2dldChzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKIAogCS8qCiAJICogVGhpcyB2YWx1ZSBpbmNsdWRlcyBwaXhlbF9t dWx0aXBsaWVyLiBXZSB3aWxsIHVzZQotCSAqIHBvcnRfY2xvY2sgdG8gY29tcHV0ZSBhZGp1c3Rl ZF9tb2RlLmNsb2NrIGluIHRoZQorCSAqIHBvcnRfY2xvY2sgdG8gY29tcHV0ZSBhZGp1c3RlZF9t b2RlLmNydGNfY2xvY2sgaW4gdGhlCiAJICogZW5jb2RlcidzIGdldF9jb25maWcoKSBmdW5jdGlv bi4KIAkgKi8KIAlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGNsb2NrLmRvdDsKQEAgLTc0NzUs MTEgKzc0NzUsMTEgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfcGNoX2Nsb2NrX2dldChzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKIAogCS8qCiAJICogVGhpcyB2YWx1ZSBkb2VzIG5vdCBpbmNsdWRl IHBpeGVsX211bHRpcGxpZXIuCi0JICogV2Ugd2lsbCBjaGVjayB0aGF0IHBvcnRfY2xvY2sgYW5k IGFkanVzdGVkX21vZGUuY2xvY2sKKwkgKiBXZSB3aWxsIGNoZWNrIHRoYXQgcG9ydF9jbG9jayBh bmQgYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrCiAJICogYWdyZWUgb25jZSB3ZSBrbm93IHRoZWly IHJlbGF0aW9uc2hpcCBpbiB0aGUgZW5jb2RlcidzCiAJICogZ2V0X2NvbmZpZygpIGZ1bmN0aW9u LgogCSAqLwotCXBpcGVfY29uZmlnLT5hZGp1c3RlZF9tb2RlLmNsb2NrID0KKwlwaXBlX2NvbmZp Zy0+YWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0KIAkJaW50ZWxfZG90Y2xvY2tfY2FsY3VsYXRl KGludGVsX2ZkaV9saW5rX2ZyZXEoZGV2KSAqIDEwMDAwLAogCQkJCQkgJnBpcGVfY29uZmlnLT5m ZGlfbV9uKTsKIH0KQEAgLTg0NTYsOCArODQ1Niw4IEBAIGVuY29kZXJfcmV0cnk6CiAJLyogU2V0 IGRlZmF1bHQgcG9ydCBjbG9jayBpZiBub3Qgb3ZlcndyaXR0ZW4gYnkgdGhlIGVuY29kZXIuIE5l ZWRzIHRvIGJlCiAJICogZG9uZSBhZnRlcndhcmRzIGluIGNhc2UgdGhlIGVuY29kZXIgYWRqdXN0 cyB0aGUgbW9kZS4gKi8KIAlpZiAoIXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrKQotCQlwaXBlX2Nv bmZpZy0+cG9ydF9jbG9jayA9IHBpcGVfY29uZmlnLT5hZGp1c3RlZF9tb2RlLmNsb2NrICoKLQkJ CXBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyOworCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9j ayA9IHBpcGVfY29uZmlnLT5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sKKwkJCSogcGlwZV9jb25m aWctPnBpeGVsX211bHRpcGxpZXI7CiAKIAlyZXQgPSBpbnRlbF9jcnRjX2NvbXB1dGVfY29uZmln KHRvX2ludGVsX2NydGMoY3J0YyksIHBpcGVfY29uZmlnKTsKIAlpZiAocmV0IDwgMCkgewpAQCAt ODc4Nyw3ICs4Nzg3LDcgQEAgaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCQlQSVBFX0NPTkZfQ0hFQ0tfSShwaXBlX2JwcCk7CiAKIAlpZiAoIUlTX0hB U1dFTEwoZGV2KSkgewotCQlQSVBFX0NPTkZfQ0hFQ0tfQ0xPQ0tfRlVaWlkoYWRqdXN0ZWRfbW9k ZS5jbG9jayk7CisJCVBJUEVfQ09ORl9DSEVDS19DTE9DS19GVVpaWShhZGp1c3RlZF9tb2RlLmNy dGNfY2xvY2spOwogCQlQSVBFX0NPTkZfQ0hFQ0tfQ0xPQ0tfRlVaWlkocG9ydF9jbG9jayk7CiAJ fQogCkBAIC05MDA5LDkgKzkwMDksOSBAQCB2b2lkIGlyb25sYWtlX2NoZWNrX2VuY29kZXJfZG90 Y2xvY2soY29uc3Qgc3RydWN0IGludGVsX2NydGNfY29uZmlnICpwaXBlX2NvbmZpZwogCSAqIEZE SSBhbHJlYWR5IHByb3ZpZGVkIG9uZSBpZGVhIGZvciB0aGUgZG90Y2xvY2suCiAJICogWWVsbCBp ZiB0aGUgZW5jb2RlciBkaXNhZ3JlZXMuCiAJICovCi0JV0FSTighaW50ZWxfZnV6enlfY2xvY2tf Y2hlY2socGlwZV9jb25maWctPmFkanVzdGVkX21vZGUuY2xvY2ssIGRvdGNsb2NrKSwKKwlXQVJO KCFpbnRlbF9mdXp6eV9jbG9ja19jaGVjayhwaXBlX2NvbmZpZy0+YWRqdXN0ZWRfbW9kZS5jcnRj X2Nsb2NrLCBkb3RjbG9jayksCiAJICAgICAiRkRJIGRvdGNsb2NrIGFuZCBlbmNvZGVyIGRvdGNs b2NrIG1pc21hdGNoLCBmZGk6ICVpLCBlbmNvZGVyOiAlaVxuIiwKLQkgICAgIHBpcGVfY29uZmln LT5hZGp1c3RlZF9tb2RlLmNsb2NrLCBkb3RjbG9jayk7CisJICAgICBwaXBlX2NvbmZpZy0+YWRq dXN0ZWRfbW9kZS5jcnRjX2Nsb2NrLCBkb3RjbG9jayk7CiB9CiAKIHN0YXRpYyBpbnQgX19pbnRl bF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpp bmRleCA4NmZiZTQxLi41Mjc5OThmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKQEAgLTgwMCw3 ICs4MDAsOCBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAogCURSTV9ERUJVR19LTVMoIkRQIGxpbmsgY29tcHV0YXRpb24gd2l0aCBtYXgg bGFuZSBjb3VudCAlaSAiCiAJCSAgICAgICJtYXggYncgJTAyeCBwaXhlbCBjbG9jayAlaUtIelxu IiwKLQkJICAgICAgbWF4X2xhbmVfY291bnQsIGJ3c1ttYXhfY2xvY2tdLCBhZGp1c3RlZF9tb2Rl LT5jbG9jayk7CisJCSAgICAgIG1heF9sYW5lX2NvdW50LCBid3NbbWF4X2Nsb2NrXSwKKwkJICAg ICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayk7CiAKIAkvKiBXYWxrIHRocm91Z2ggYWxsIGJw cCB2YWx1ZXMuIEx1Y2tpbHkgdGhleSdyZSBhbGwgbmljZWx5IHNwYWNlZCB3aXRoIDIKIAkgKiBi cGMgaW4gYmV0d2Vlbi4gKi8KQEAgLTgxMiw3ICs4MTMsOCBAQCBpbnRlbF9kcF9jb21wdXRlX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAl9CiAKIAlmb3IgKDsgYnBwID49 IDYqMzsgYnBwIC09IDIqMykgewotCQltb2RlX3JhdGUgPSBpbnRlbF9kcF9saW5rX3JlcXVpcmVk KGFkanVzdGVkX21vZGUtPmNsb2NrLCBicHApOworCQltb2RlX3JhdGUgPSBpbnRlbF9kcF9saW5r X3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJCQkgICBicHApOwogCiAJ CWZvciAoY2xvY2sgPSAwOyBjbG9jayA8PSBtYXhfY2xvY2s7IGNsb2NrKyspIHsKIAkJCWZvciAo bGFuZV9jb3VudCA9IDE7IGxhbmVfY291bnQgPD0gbWF4X2xhbmVfY291bnQ7IGxhbmVfY291bnQg PDw9IDEpIHsKQEAgLTg1Nyw3ICs4NTksOCBAQCBmb3VuZDoKIAkJICAgICAgbW9kZV9yYXRlLCBs aW5rX2F2YWlsKTsKIAogCWludGVsX2xpbmtfY29tcHV0ZV9tX24oYnBwLCBsYW5lX2NvdW50LAot CQkJICAgICAgIGFkanVzdGVkX21vZGUtPmNsb2NrLCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywK KwkJCSAgICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAorCQkJICAgICAgIHBpcGVfY29u ZmlnLT5wb3J0X2Nsb2NrLAogCQkJICAgICAgICZwaXBlX2NvbmZpZy0+ZHBfbV9uKTsKIAogCWlu dGVsX2RwX3NldF9jbG9jayhlbmNvZGVyLCBwaXBlX2NvbmZpZywgaW50ZWxfZHAtPmxpbmtfYncp OwpAQCAtMTQ3Miw3ICsxNDc1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfZ2V0X2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJp di0+ZGV2KSAmJiBwb3J0ICE9IFBPUlRfQSkKIAkJaXJvbmxha2VfY2hlY2tfZW5jb2Rlcl9kb3Rj bG9jayhwaXBlX2NvbmZpZywgZG90Y2xvY2spOwogCi0JcGlwZV9jb25maWctPmFkanVzdGVkX21v ZGUuY2xvY2sgPSBkb3RjbG9jazsKKwlwaXBlX2NvbmZpZy0+YWRqdXN0ZWRfbW9kZS5jcnRjX2Ns b2NrID0gZG90Y2xvY2s7CiB9CiAKIHN0YXRpYyBib29sIGlzX2VkcF9wc3Ioc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggOGMzY2IzZS4uYTE3 YTg2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTIxNyw3ICsyMTcsNyBAQCBzdHJ1 Y3QgaW50ZWxfY3J0Y19jb25maWcgewogCSAqIHByZWZlcnJlZCBpbnB1dCB0aW1pbmdzLiAqLwog CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHJlcXVlc3RlZF9tb2RlOwogCS8qIEFjdHVhbCBwaXBl IHRpbWluZ3MgaWUuIHdoYXQgd2UgcHJvZ3JhbSBpbnRvIHRoZSBwaXBlIHRpbWluZwotCSAqIHJl Z2lzdGVycy4gYWRqdXN0ZWRfbW9kZS5jbG9jayBpcyB0aGUgcGlwZSBwaXhlbCBjbG9jay4gKi8K KwkgKiByZWdpc3RlcnMuIGFkanVzdGVkX21vZGUuY3J0Y19jbG9jayBpcyB0aGUgcGlwZSBwaXhl bCBjbG9jay4gKi8KIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBhZGp1c3RlZF9tb2RlOwogCiAJ LyogUGlwZSBzb3VyY2Ugc2l6ZSAoaWUuIHBhbmVsIGZpdHRlciBpbnB1dCBzaXplKQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kdm8uYwppbmRleCA2MzA1NDMzLi45MTI4N2QxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kdm8uYwpAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2R2b19nZXRf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiAJcGlwZV9jb25maWctPmFk anVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CiAKLQlwaXBlX2NvbmZpZy0+YWRqdXN0ZWRfbW9k ZS5jbG9jayA9IHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrOworCXBpcGVfY29uZmlnLT5hZGp1c3Rl ZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jazsKIH0KIAogc3RhdGlj IHZvaWQgaW50ZWxfZGlzYWJsZV9kdm8oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggYTYzMTBjYS4uMWE1Nzc1OCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkbWkuYwpAQCAtNzM3LDcgKzczNyw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2hkbWlfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlpZiAoSEFT X1BDSF9TUExJVChkZXZfcHJpdi0+ZGV2KSkKIAkJaXJvbmxha2VfY2hlY2tfZW5jb2Rlcl9kb3Rj bG9jayhwaXBlX2NvbmZpZywgZG90Y2xvY2spOwogCi0JcGlwZV9jb25maWctPmFkanVzdGVkX21v ZGUuY2xvY2sgPSBkb3RjbG9jazsKKwlwaXBlX2NvbmZpZy0+YWRqdXN0ZWRfbW9kZS5jcnRjX2Ns b2NrID0gZG90Y2xvY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9oZG1pKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQpAQCAtODczLDcgKzg3Myw3IEBAIGJvb2wgaW50ZWxf aGRtaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1 Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5i YXNlKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CiAJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmFkanVz dGVkX21vZGU7Ci0JaW50IGNsb2NrXzEyYnBjID0gcGlwZV9jb25maWctPmFkanVzdGVkX21vZGUu Y2xvY2sgKiAzIC8gMjsKKwlpbnQgY2xvY2tfMTJicGMgPSBwaXBlX2NvbmZpZy0+YWRqdXN0ZWRf bW9kZS5jcnRjX2Nsb2NrICogMyAvIDI7CiAJaW50IHBvcnRjbG9ja19saW1pdCA9IGhkbWlfcG9y dGNsb2NrX2xpbWl0KGludGVsX2hkbWkpOwogCWludCBkZXNpcmVkX2JwcDsKIApAQCAtOTE1LDcg KzkxNSw3IEBAIGJvb2wgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAkJcGlwZV9jb25maWctPnBpcGVfYnBwID0gZGVzaXJlZF9icHA7CiAJ fQogCi0JaWYgKGFkanVzdGVkX21vZGUtPmNsb2NrID4gcG9ydGNsb2NrX2xpbWl0KSB7CisJaWYg KGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgPiBwb3J0Y2xvY2tfbGltaXQpIHsKIAkJRFJNX0RF QlVHX0tNUygidG9vIGhpZ2ggSERNSSBjbG9jaywgcmVqZWN0aW5nIG1vZGVcbiIpOwogCQlyZXR1 cm4gZmFsc2U7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZk cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCmluZGV4IDY3YTRhOGYuLmZi M2Y4ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKQEAgLTEyMyw3ICsxMjMsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9sdmRzX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYtPmRldikpCiAJCWlyb25sYWtlX2No ZWNrX2VuY29kZXJfZG90Y2xvY2socGlwZV9jb25maWcsIGRvdGNsb2NrKTsKIAotCXBpcGVfY29u ZmlnLT5hZGp1c3RlZF9tb2RlLmNsb2NrID0gZG90Y2xvY2s7CisJcGlwZV9jb25maWctPmFkanVz dGVkX21vZGUuY3J0Y19jbG9jayA9IGRvdGNsb2NrOwogfQogCiAvKiBUaGUgTFZEUyBwaW4gcGFp ciBuZWVkcyB0byBiZSBvbiBiZWZvcmUgdGhlIERQTExzIGFyZSBlbmFibGVkLgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMKaW5kZXggZDI3ZWRhNi4uMmFjMWMyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCkBAIC0xMTAwLDggKzExMDAsMTIgQEAgc3RhdGljIHZvaWQgcGluZXZpZXdfdXBkYXRlX3dt KHN0cnVjdCBkcm1fY3J0YyAqdW51c2VkX2NydGMpCiAKIAljcnRjID0gc2luZ2xlX2VuYWJsZWRf Y3J0YyhkZXYpOwogCWlmIChjcnRjKSB7Ci0JCWludCBjbG9jayA9IHRvX2ludGVsX2NydGMoY3J0 YyktPmNvbmZpZy5hZGp1c3RlZF9tb2RlLmNsb2NrOworCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZTsKIAkJaW50IHBpeGVsX3NpemUgPSBjcnRjLT5mYi0+Yml0 c19wZXJfcGl4ZWwgLyA4OworCQlpbnQgY2xvY2s7CisKKwkJYWRqdXN0ZWRfbW9kZSA9ICZ0b19p bnRlbF9jcnRjKGNydGMpLT5jb25maWcuYWRqdXN0ZWRfbW9kZTsKKwkJY2xvY2sgPSBhZGp1c3Rl ZF9tb2RlLT5jcnRjX2Nsb2NrOwogCiAJCS8qIERpc3BsYXkgU1IgKi8KIAkJd20gPSBpbnRlbF9j YWxjdWxhdGVfd20oY2xvY2ssICZwaW5ldmlld19kaXNwbGF5X3dtLApAQCAtMTE3NCw3ICsxMTc4 LDcgQEAgc3RhdGljIGJvb2wgZzR4X2NvbXB1dGVfd20wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJfQogCiAJYWRqdXN0ZWRfbW9kZSA9ICZ0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWcuYWRq dXN0ZWRfbW9kZTsKLQljbG9jayA9IGFkanVzdGVkX21vZGUtPmNsb2NrOworCWNsb2NrID0gYWRq dXN0ZWRfbW9kZS0+Y3J0Y19jbG9jazsKIAlodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5odG90YWw7 CiAJaGRpc3BsYXkgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWcucGlwZV9zcmNfdzsKIAlw aXhlbF9zaXplID0gY3J0Yy0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKQEAgLTEyNjEsNyArMTI2 NSw3IEBAIHN0YXRpYyBib29sIGc0eF9jb21wdXRlX3Nyd20oc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAogCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUoZGV2LCBwbGFuZSk7CiAJYWRq dXN0ZWRfbW9kZSA9ICZ0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWcuYWRqdXN0ZWRfbW9kZTsK LQljbG9jayA9IGFkanVzdGVkX21vZGUtPmNsb2NrOworCWNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+ Y3J0Y19jbG9jazsKIAlodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5odG90YWw7CiAJaGRpc3BsYXkg PSB0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWcucGlwZV9zcmNfdzsKIAlwaXhlbF9zaXplID0g Y3J0Yy0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKQEAgLTEzMDIsNyArMTMwNiw3IEBAIHN0YXRp YyBib29sIHZsdl9jb21wdXRlX2RyYWluX2xhdGVuY3koc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAlpZiAoIWludGVsX2NydGNfYWN0aXZlKGNydGMpKQogCQlyZXR1cm4gZmFsc2U7CiAKLQljbG9j ayA9IHRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy5hZGp1c3RlZF9tb2RlLmNsb2NrOworCWNs b2NrID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLmFkanVzdGVkX21vZGUuY3J0Y19jbG9j azsKIAlwaXhlbF9zaXplID0gY3J0Yy0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsJLyogQlBQICov CiAKIAllbnRyaWVzID0gKGNsb2NrIC8gMTAwMCkgKiBwaXhlbF9zaXplOwpAQCAtMTQ5Miw3ICsx NDk2LDcgQEAgc3RhdGljIHZvaWQgaTk2NV91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICp1bnVz ZWRfY3J0YykKIAkJc3RhdGljIGNvbnN0IGludCBzcl9sYXRlbmN5X25zID0gMTIwMDA7CiAJCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KIAkJCSZ0b19pbnRl bF9jcnRjKGNydGMpLT5jb25maWcuYWRqdXN0ZWRfbW9kZTsKLQkJaW50IGNsb2NrID0gYWRqdXN0 ZWRfbW9kZS0+Y2xvY2s7CisJCWludCBjbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7 CiAJCWludCBodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5odG90YWw7CiAJCWludCBoZGlzcGxheSA9 IHRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy5waXBlX3NyY193OwogCQlpbnQgcGl4ZWxfc2l6 ZSA9IGNydGMtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7CkBAIC0xNTY3LDExICsxNTcxLDEzIEBA IHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqdW51c2VkX2NydGMp CiAJZmlmb19zaXplID0gZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2ZpZm9fc2l6ZShkZXYsIDApOwog CWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUoZGV2LCAwKTsKIAlpZiAoaW50ZWxfY3J0 Y19hY3RpdmUoY3J0YykpIHsKKwkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGU7CiAJCWludCBjcHAgPSBjcnRjLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4OwogCQlp ZiAoSVNfR0VOMihkZXYpKQogCQkJY3BwID0gNDsKIAotCQlwbGFuZWFfd20gPSBpbnRlbF9jYWxj dWxhdGVfd20odG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLmFkanVzdGVkX21vZGUuY2xvY2ss CisJCWFkanVzdGVkX21vZGUgPSAmdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLmFkanVzdGVk X21vZGU7CisJCXBsYW5lYV93bSA9IGludGVsX2NhbGN1bGF0ZV93bShhZGp1c3RlZF9tb2RlLT5j cnRjX2Nsb2NrLAogCQkJCQkgICAgICAgd21faW5mbywgZmlmb19zaXplLCBjcHAsCiAJCQkJCSAg ICAgICBsYXRlbmN5X25zKTsKIAkJZW5hYmxlZCA9IGNydGM7CkBAIC0xNTgxLDExICsxNTg3LDEz IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqdW51c2VkX2Ny dGMpCiAJZmlmb19zaXplID0gZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2ZpZm9fc2l6ZShkZXYsIDEp OwogCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUoZGV2LCAxKTsKIAlpZiAoaW50ZWxf Y3J0Y19hY3RpdmUoY3J0YykpIHsKKwkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGU7CiAJCWludCBjcHAgPSBjcnRjLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owog CQlpZiAoSVNfR0VOMihkZXYpKQogCQkJY3BwID0gNDsKIAotCQlwbGFuZWJfd20gPSBpbnRlbF9j YWxjdWxhdGVfd20odG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLmFkanVzdGVkX21vZGUuY2xv Y2ssCisJCWFkanVzdGVkX21vZGUgPSAmdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLmFkanVz dGVkX21vZGU7CisJCXBsYW5lYl93bSA9IGludGVsX2NhbGN1bGF0ZV93bShhZGp1c3RlZF9tb2Rl LT5jcnRjX2Nsb2NrLAogCQkJCQkgICAgICAgd21faW5mbywgZmlmb19zaXplLCBjcHAsCiAJCQkJ CSAgICAgICBsYXRlbmN5X25zKTsKIAkJaWYgKGVuYWJsZWQgPT0gTlVMTCkKQEAgLTE2MTQsNyAr MTYyMiw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqdW51 c2VkX2NydGMpCiAJCXN0YXRpYyBjb25zdCBpbnQgc3JfbGF0ZW5jeV9ucyA9IDYwMDA7CiAJCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KIAkJCSZ0b19pbnRl bF9jcnRjKGVuYWJsZWQpLT5jb25maWcuYWRqdXN0ZWRfbW9kZTsKLQkJaW50IGNsb2NrID0gYWRq dXN0ZWRfbW9kZS0+Y2xvY2s7CisJCWludCBjbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xv Y2s7CiAJCWludCBodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5odG90YWw7CiAJCWludCBoZGlzcGxh eSA9IHRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy5waXBlX3NyY193OwogCQlpbnQgcGl4ZWxf c2l6ZSA9IGVuYWJsZWQtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7CkBAIC0xNjcwLDYgKzE2Nzgs NyBAQCBzdGF0aWMgdm9pZCBpODMwX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVudXNlZF9j cnRjKQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSB1bnVzZWRfY3J0Yy0+ZGV2OwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0 IGRybV9jcnRjICpjcnRjOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlOwogCXVpbnQzMl90IGZ3YXRlcl9sbzsKIAlpbnQgcGxhbmVhX3dtOwogCkBAIC0xNjc3 LDcgKzE2ODYsOCBAQCBzdGF0aWMgdm9pZCBpODMwX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMg KnVudXNlZF9jcnRjKQogCWlmIChjcnRjID09IE5VTEwpCiAJCXJldHVybjsKIAotCXBsYW5lYV93 bSA9IGludGVsX2NhbGN1bGF0ZV93bSh0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWcuYWRqdXN0 ZWRfbW9kZS5jbG9jaywKKwlhZGp1c3RlZF9tb2RlID0gJnRvX2ludGVsX2NydGMoY3J0YyktPmNv bmZpZy5hZGp1c3RlZF9tb2RlOworCXBsYW5lYV93bSA9IGludGVsX2NhbGN1bGF0ZV93bShhZGp1 c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAogCQkJCSAgICAgICAmaTgzMF93bV9pbmZvLAogCQkJCSAg ICAgICBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZmlmb19zaXplKGRldiwgMCksCiAJCQkJICAgICAg IDQsIGxhdGVuY3lfbnMpOwpAQCAtMTc2NCw3ICsxNzc0LDcgQEAgc3RhdGljIGJvb2wgaXJvbmxh a2VfY29tcHV0ZV9zcndtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBsZXZlbCwgaW50IHBs YW5lLAogCiAJY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9wbGFuZShkZXYsIHBsYW5lKTsKIAlh ZGp1c3RlZF9tb2RlID0gJnRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy5hZGp1c3RlZF9tb2Rl OwotCWNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y2xvY2s7CisJY2xvY2sgPSBhZGp1c3RlZF9tb2Rl LT5jcnRjX2Nsb2NrOwogCWh0b3RhbCA9IGFkanVzdGVkX21vZGUtPmh0b3RhbDsKIAloZGlzcGxh eSA9IHRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy5waXBlX3NyY193OwogCXBpeGVsX3NpemUg PSBjcnRjLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4OwpAQCAtMjExMiw3ICsyMTIyLDcgQEAgc3Rh dGljIHVpbnQzMl90IGlsa19waXBlX3BpeGVsX3JhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJ dWludDMyX3QgcGl4ZWxfcmF0ZTsKIAotCXBpeGVsX3JhdGUgPSBpbnRlbF9jcnRjLT5jb25maWcu YWRqdXN0ZWRfbW9kZS5jbG9jazsKKwlwaXhlbF9yYXRlID0gaW50ZWxfY3J0Yy0+Y29uZmlnLmFk anVzdGVkX21vZGUuY3J0Y19jbG9jazsKIAogCS8qIFdlIG9ubHkgdXNlIElGLUlEIGludGVybGFj aW5nLiBJZiB3ZSBldmVyIHVzZSBQRi1JRCB3ZSdsbCBuZWVkIHRvCiAJICogYWRqdXN0IHRoZSBw aXhlbF9yYXRlIGhlcmUuICovCkBAIC0yOTEzLDcgKzI5MjMsNyBAQCBzYW5keWJyaWRnZV9jb21w dXRlX3Nwcml0ZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGxhbmUsCiAJCXJldHVy biBmYWxzZTsKIAl9CiAKLQljbG9jayA9IHRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy5hZGp1 c3RlZF9tb2RlLmNsb2NrOworCWNsb2NrID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLmFk anVzdGVkX21vZGUuY3J0Y19jbG9jazsKIAogCS8qIFVzZSB0aGUgc21hbGwgYnVmZmVyIG1ldGhv ZCB0byBjYWxjdWxhdGUgdGhlIHNwcml0ZSB3YXRlcm1hcmsgKi8KIAllbnRyaWVzID0gKChjbG9j ayAqIHBpeGVsX3NpemUgLyAxMDAwKSAqIGRpc3BsYXlfbGF0ZW5jeV9ucykgLyAxMDAwOwpAQCAt Mjk0OCw3ICsyOTU4LDcgQEAgc2FuZHlicmlkZ2VfY29tcHV0ZV9zcHJpdGVfc3J3bShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBpbnQgcGxhbmUsCiAJfQogCiAJY3J0YyA9IGludGVsX2dldF9jcnRj X2Zvcl9wbGFuZShkZXYsIHBsYW5lKTsKLQljbG9jayA9IHRvX2ludGVsX2NydGMoY3J0YyktPmNv bmZpZy5hZGp1c3RlZF9tb2RlLmNsb2NrOworCWNsb2NrID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+ Y29uZmlnLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKIAlpZiAoIWNsb2NrKSB7CiAJCSpzcHJp dGVfd20gPSAwOwogCQlyZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMKaW5k ZXggNjA2ZTAzMi4uNWU1OWQ2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwpAQCAtMTM2 OSw3ICsxMzY5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2R2b19nZXRfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWlmIChIQVNfUENIX1NQTElUKGRldikpCiAJCWlyb25s YWtlX2NoZWNrX2VuY29kZXJfZG90Y2xvY2socGlwZV9jb25maWcsIGRvdGNsb2NrKTsKIAotCXBp cGVfY29uZmlnLT5hZGp1c3RlZF9tb2RlLmNsb2NrID0gZG90Y2xvY2s7CisJcGlwZV9jb25maWct PmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IGRvdGNsb2NrOwogCiAJLyogQ3Jvc3MgY2hlY2sg dGhlIHBvcnQgcGl4ZWwgbXVsdGlwbGllciB3aXRoIHRoZSBzZHZvIGVuY29kZXIgc3RhdGUuICov CiAJaWYgKGludGVsX3Nkdm9fZ2V0X3ZhbHVlKGludGVsX3Nkdm8sIFNEVk9fQ01EX0dFVF9DTE9D S19SQVRFX01VTFQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwppbmRleCBlNmMwMjgxLi5jNjU4MDcw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMKQEAgLTkxMiw3ICs5MTIsNyBAQCBpbnRlbF90dl9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlpZiAoIXR2X21v ZGUpCiAJCXJldHVybiBmYWxzZTsKIAotCXBpcGVfY29uZmlnLT5hZGp1c3RlZF9tb2RlLmNsb2Nr ID0gdHZfbW9kZS0+Y2xvY2s7CisJcGlwZV9jb25maWctPmFkanVzdGVkX21vZGUuY3J0Y19jbG9j ayA9IHR2X21vZGUtPmNsb2NrOwogCURSTV9ERUJVR19LTVMoImZvcmNpbmcgYnBjIHRvIDggZm9y IFRWXG4iKTsKIAlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSA4KjM7CiAKLS0gCjEuOC4zLjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==