From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 74DE6C433F5 for ; Sat, 19 Feb 2022 15:30:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=E5J9VRLCRXL0c2PJQKpbu1UkE1ocY7e9V7W+dekd7Mw=; b=LO6ptSaLKdO6rO 7BsRfZmAd5UtvnjTELccjoe3Fzpb/CM11Q1bDZYaGvACIFZrVdFJhEIpdalW2Coaua5WGY+86xe0p l0nMQNUY/1thLnEoAQFkYBdGI8UcVACL2cSmLgtVKX26Fm3EIcLKG5tO5GLZaareOc6I0X6ejGmz7 p7+Kces7vjX2YCbC2Gd4MbA/p/ol74Et+PsJU7hM0A/xRPT2j/XFpJjNLJmB4VgwXvD7as6hnjmtM EceTeJev8bUOilSRLIsxwWmO49InIffTDveP3FYJB+20Hg1c1LLMMTJPJRr5fyXQoC5lf05m/7SqR 7OmiS1gKBlD4eVITqCOA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nLRg2-00HAVb-D5; Sat, 19 Feb 2022 15:29:38 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nLRf2-00HA7G-8U for linux-arm-kernel@lists.infradead.org; Sat, 19 Feb 2022 15:28:39 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9F6B160B58; Sat, 19 Feb 2022 15:28:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C8C7C340EF; Sat, 19 Feb 2022 15:28:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1645284515; bh=r3iqPCoANxpwhUGnTd+JNF0yIf5d3A5itF0q+px7HIs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cAS4vy5466az6eQ1Pqk0VeqKGk92+l2nyMfxbqgJjHRIoJScndcXCnCIySMhua7e+ nBcbZDPwTh5C2ELBQod8QIoa77a5qRx53K+6GV5Hw14hgDbJuYAqjCzELSqt/C0Vr+ ezTay4Z2icQUb+e8FfgPJPSZ1SJBQ5Pzq/haeOg4W4baApysYinOvgME0KLTLMAvl2 /d5UEGMqpm4IsqjOppJXhq6BEJ1gHV1HdZZ+wi9/E+2a/Ktuqbl5i2gbIl19KIxhAe RHmMzHCYWIvXpIqxOf/J6VjUNWYOgFgHm4mMshjTJGhN0U3LHzaOGbM/7J8LXR8wS2 NYnELHWMaHVmA== From: =?UTF-8?q?Marek=20Beh=C3=BAn?= To: Greg Kroah-Hartman , Stephen Boyd Cc: Gregory Clement , =?UTF-8?q?Pali=20Roh=C3=A1r?= , linux-clk@vger.kernel.org, linux-serial@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, =?UTF-8?q?Marek=20Beh=C3=BAn?= Subject: [PATCH v9 5/6] serial: mvebu-uart: implement support for baudrates higher than 230400 Bd Date: Sat, 19 Feb 2022 16:28:17 +0100 Message-Id: <20220219152818.4319-6-kabel@kernel.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220219152818.4319-1-kabel@kernel.org> References: <20220219152818.4319-1-kabel@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220219_072836_422111_31BE7A6F X-CRM114-Status: GOOD ( 26.12 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4KCkltcGxlbWVudCBzaW1wbGUgdXNh Z2Ugb2YgZnJhY3Rpb25hbCBkaXZpc29yLiBXaGVuIG1haW4gZGl2aXNvciBEIGlzIHRvbwpsYXJn ZSB0byByZXByZXNlbnQgcmVxdWVzdGVkIGJhdWRyYXRlIHRoZW4gdXNlIGRpdmlzb3IgTSBmcm9t IHRoZQpmcmFjdGlvbmFsIGRpdmlzb3IgZmVhdHVyZS4gQWxsIHRoZSBNIHByZXNjYWxlcnMgYXJl IHNldCB0byB0aGUgc2FtZSBhbmQKbWF4aW1hbCB2YWx1ZSA2Mywgc28gdGhlIGZyYWN0aW9uYWwg cGFydCBvZiB0aGUgZnJhY3Rpb25hbCBkaXZpc29yIGlzIG5vdAp1c2VkIGF0IGFsbC4gV2UgYWxz byBkZXRlcm1pbmUgdXBwZXIgbGltaXQgZm9yIHBvc3NpYmxlIGJhdWRyYXRlcy4KCkV4cGVyaW1l bnRzIHNob3cgdGhhdCBVQVJUIGF0IGJhdWRyYXRlIDE1MDAwMDAgQmQgd2l0aCB0aGlzIGNvbmZp Z3VyYXRpb24KaXMgc3RhYmxlLiBTbyB0aGVyZSBpcyBubyBuZWVkIHRvIGltcGxlbWVudCBjb21w bGljYXRlZCBjYWxjdWxhdGlvbiBvZgpmcmFjdGlvbmFsIGNvZWZmaWNpZW50cyB5ZXQuCgpUbyB1 c2UgdGhpcyBmZWF0dXJlIHdpdGggaGlnaGVyIGJhdWRyYXRlcywgaXQgaXMgcmVxdWlyZWQgdG8g dXNlIFVBUlQgY2xvY2sKcHJvdmlkZWQgYnkgVUFSVCBjbG9jayBkcml2ZXIuIERlZmF1bHQgYm9v dCB4dGFsIGNsb2NrIGlzIG5vdCBjYXBhYmxlIG9mCmhpZ2hlciBiYXVkcmF0ZXMuCgpTaWduZWQt b2ZmLWJ5OiBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPgpSZXZpZXdlZC1ieTogTWFyZWsg QmVow7puIDxrYWJlbEBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBNYXJlayBCZWjDum4gPGth YmVsQGtlcm5lbC5vcmc+Ci0tLQogZHJpdmVycy90dHkvc2VyaWFsL212ZWJ1LXVhcnQuYyB8IDgz ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY1IGlu c2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3Nl cmlhbC9tdmVidS11YXJ0LmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvbXZlYnUtdWFydC5jCmluZGV4 IDU2Mjc4YjI5ZjVmNS4uMmU5MjYzODg4ZGRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3R0eS9zZXJp YWwvbXZlYnUtdWFydC5jCisrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC9tdmVidS11YXJ0LmMKQEAg LTk5LDYgKzk5LDcgQEAKICNkZWZpbmUgVUFSVF9PU0FNUAkJMHgxNAogI2RlZmluZSAgT1NBTVBf REVGQVVMVF9ESVZJU09SCTE2CiAjZGVmaW5lICBPU0FNUF9ESVZJU09SU19NQVNLCTB4M0YzRjNG M0YKKyNkZWZpbmUgIE9TQU1QX01BWF9ESVZJU09SCTYzCiAKICNkZWZpbmUgTVZFQlVfTlJfVUFS VFMJCTIKIApAQCAtNDc5LDE4ICs0ODAsNjAgQEAgc3RhdGljIGludCBtdmVidV91YXJ0X2JhdWRf cmF0ZV9zZXQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgdW5zaWduZWQgaW50IGJhdWQpCiAJCXJl dHVybiAtRU9QTk9UU1VQUDsKIAogCS8qCi0JICogVGhlIGJhdWRyYXRlIGlzIGRlcml2ZWQgZnJv bSB0aGUgVUFSVCBjbG9jayB0aGFua3MgdG8gdHdvIGRpdmlzb3JzOgotCSAqICAgPiBEICgiYmF1 ZCBnZW5lcmF0b3IiKTogY2FuIGRpdmlkZSB0aGUgY2xvY2sgZnJvbSAyIHRvIDJeMTAgLSAxLgot CSAqICAgPiBNICgiZnJhY3Rpb25hbCBkaXZpc29yIik6IGFsbG93cyBhIGJldHRlciBhY2N1cmFj eSBmb3IKLQkgKiAgICAgYmF1ZHJhdGVzIGhpZ2hlciB0aGFuIDIzMDQwMC4KKwkgKiBUaGUgYmF1 ZHJhdGUgaXMgZGVyaXZlZCBmcm9tIHRoZSBVQVJUIGNsb2NrIHRoYW5rcyB0byBkaXZpc29yczoK KwkgKiAgID4gZDEgKiBkMiAoIlRCRyBkaXZpc29ycyIpOiBjYW4gZGl2aWRlIG9ubHkgVEJHIGNs b2NrIGZyb20gMSB0byA2CisJICogICA+IEQgKCJiYXVkIGdlbmVyYXRvciIpOiBjYW4gZGl2aWRl IHRoZSBjbG9jayBmcm9tIDEgdG8gMTAyMworCSAqICAgPiBNICgiZnJhY3Rpb25hbCBkaXZpc29y Iik6IGFsbG93cyBhIGJldHRlciBhY2N1cmFjeSAoZnJvbSAxIHRvIDYzKQogCSAqCi0JICogQXMg dGhlIGRlcml2YXRpb24gb2YgTSBpcyByYXRoZXIgY29tcGxpY2F0ZWQsIHRoZSBjb2RlIHN0aWNr cyB0byBpdHMKLQkgKiBkZWZhdWx0IHZhbHVlICh4MTYpIHdoZW4gYWxsIHRoZSBwcmVzY2FsZXJz IGFyZSB6ZXJvZWQsIGFuZCBvbmx5Ci0JICogbWFrZXMgdXNlIG9mIEQgdG8gY29uZmlndXJlIHRo ZSBkZXNpcmVkIGJhdWRyYXRlLgorCSAqIEV4YWN0IGZvcm11bGFzIGZvciBjYWxjdWxhdGluZyBi YXVkcmF0ZToKKwkgKgorCSAqIHdpdGggZGVmYXVsdCB4MTYgc2NoZW1lOgorCSAqICAgYmF1ZHJh dGUgPSB4dGFsIC8gKGQgKiAxNikKKwkgKiAgIGJhdWRyYXRlID0gdGJnIC8gKGQxICogZDIgKiBk ICogMTYpCisJICoKKwkgKiB3aXRoIGZyYWN0aW9uYWwgZGl2aXNvcjoKKwkgKiAgIGJhdWRyYXRl ID0gMTAgKiB4dGFsIC8gKGQgKiAoMyAqIChtMSArIG0yKSArIDIgKiAobTMgKyBtNCkpKQorCSAq ICAgYmF1ZHJhdGUgPSAxMCAqIHRiZyAvIChkMSpkMiAqIGQgKiAoMyAqIChtMSArIG0yKSArIDIg KiAobTMgKyBtNCkpKQorCSAqCisJICogT3ZlcnNhbXBsaW5nIHZhbHVlOgorCSAqICAgb3NhbXAg PSAobTEgPDwgMCkgfCAobTIgPDwgOCkgfCAobTMgPDwgMTYpIHwgKG00IDw8IDI0KTsKKwkgKgor CSAqIFdoZXJlIG0xIGNvbnRyb2xzIG51bWJlciBvZiBjbG9jayBjeWNsZXMgcGVyIGJpdCBmb3Ig Yml0cyAxLDIsMzsKKwkgKiBtMiBmb3IgYml0cyA0LDUsNjsgbTMgZm9yIGJpdHMgNyw4IGFuZCBt NCBmb3IgYml0cyA5LDEwLgorCSAqCisJICogVG8gc2ltcGxpZnkgYmF1ZHJhdGUgc2V0dXAgc2V0 IGFsbCB0aGUgTSBwcmVzY2FsZXJzIHRvIHRoZSBzYW1lCisJICogdmFsdWUuIEZvciBiYXVkcmF0 ZXMgOTYwMCBCZCBhbmQgaGlnaGVyLCBpdCBpcyBlbm91Z2ggdG8gdXNlIHRoZQorCSAqIGRlZmF1 bHQgKHgxNikgZGl2aXNvciBvciBmcmFjdGlvbmFsIGRpdmlzb3Igd2l0aCBNID0gNjMsIHNvIHRo ZXJlCisJICogaXMgbm8gbmVlZCB0byB1c2UgcmVhbCBmcmFjdGlvbmFsIHN1cHBvcnQgKHdoZXJl IHRoZSBNIHByZXNjYWxlcnMKKwkgKiBhcmUgbm90IGVxdWFsKS4KKwkgKgorCSAqIFdoZW4gYWxs IHRoZSBNIHByZXNjYWxlcnMgYXJlIHplcm9lZCB0aGVuIGRlZmF1bHQgKHgxNikgZGl2aXNvciBp cworCSAqIHVzZWQuIERlZmF1bHQgeDE2IHNjaGVtZSBpcyBtb3JlIHN0YWJsZSB0aGFuIE0gKGZy YWN0aW9uYWwgZGl2aXNvciksCisJICogc28gdXNlIE0gb25seSB3aGVuIEQgZGl2aXNvciBpcyBu b3QgZW5vdWdoIHRvIGRlcml2ZSBiYXVkcmF0ZS4KKwkgKgorCSAqIE1lbWJlciBwb3J0LT51YXJ0 Y2xrIGlzIGVpdGhlciB4dGFsIGNsb2NrIHJhdGUgb3IgVEJHIGNsb2NrIHJhdGUKKwkgKiBkaXZp ZGVkIGJ5IChkMSAqIGQyKS4gU28gZDEgYW5kIGQyIGFyZSBhbHJlYWR5IHNldCBieSB0aGUgVUFS VCBjbG9jaworCSAqIGRyaXZlciAoYW5kIFVBUlQgZHJpdmVyIGl0c2VsZiBjYW5ub3QgY2hhbmdl IHRoZW0pLiBNb3Jlb3ZlciB0aGV5IGFyZQorCSAqIHNoYXJlZCBiZXR3ZWVuIGJvdGggVUFSVHMu CiAJICovCisKIAltX2Rpdmlzb3IgPSBPU0FNUF9ERUZBVUxUX0RJVklTT1I7CiAJZF9kaXZpc29y ID0gRElWX1JPVU5EX0NMT1NFU1QocG9ydC0+dWFydGNsaywgYmF1ZCAqIG1fZGl2aXNvcik7CiAK KwlpZiAoZF9kaXZpc29yID4gQlJEVl9CQVVEX01BWCkgeworCQkvKgorCQkgKiBFeHBlcmltZW50 cyBzaG93IHRoYXQgc21hbGwgTSBkaXZpc29ycyBhcmUgdW5zdGFibGUuCisJCSAqIFVzZSBtYXhp bWFsIHBvc3NpYmxlIE0gPSA2MyBhbmQgY2FsY3VsYXRlIEQgZGl2aXNvci4KKwkJICovCisJCW1f ZGl2aXNvciA9IE9TQU1QX01BWF9ESVZJU09SOworCQlkX2Rpdmlzb3IgPSBESVZfUk9VTkRfQ0xP U0VTVChwb3J0LT51YXJ0Y2xrLCBiYXVkICogbV9kaXZpc29yKTsKKwl9CisKKwlpZiAoZF9kaXZp c29yIDwgMSkKKwkJZF9kaXZpc29yID0gMTsKKwllbHNlIGlmIChkX2Rpdmlzb3IgPiBCUkRWX0JB VURfTUFYKQorCQlkX2Rpdmlzb3IgPSBCUkRWX0JBVURfTUFYOworCiAJc3Bpbl9sb2NrX2lycXNh dmUoJm12ZWJ1X3VhcnRfbG9jaywgZmxhZ3MpOwogCWJyZHYgPSByZWFkbChwb3J0LT5tZW1iYXNl ICsgVUFSVF9CUkRWKTsKIAlicmR2ICY9IH5CUkRWX0JBVURfTUFTSzsKQEAgLTUwMCw2ICs1NDMs OSBAQCBzdGF0aWMgaW50IG12ZWJ1X3VhcnRfYmF1ZF9yYXRlX3NldChzdHJ1Y3QgdWFydF9wb3J0 ICpwb3J0LCB1bnNpZ25lZCBpbnQgYmF1ZCkKIAogCW9zYW1wID0gcmVhZGwocG9ydC0+bWVtYmFz ZSArIFVBUlRfT1NBTVApOwogCW9zYW1wICY9IH5PU0FNUF9ESVZJU09SU19NQVNLOworCWlmICht X2Rpdmlzb3IgIT0gT1NBTVBfREVGQVVMVF9ESVZJU09SKQorCQlvc2FtcCB8PSAobV9kaXZpc29y IDw8IDApIHwgKG1fZGl2aXNvciA8PCA4KSB8CisJCQkobV9kaXZpc29yIDw8IDE2KSB8IChtX2Rp dmlzb3IgPDwgMjQpOwogCXdyaXRlbChvc2FtcCwgcG9ydC0+bWVtYmFzZSArIFVBUlRfT1NBTVAp OwogCiAJcmV0dXJuIDA7CkBAIC01MjksMTQgKzU3NSwxNiBAQCBzdGF0aWMgdm9pZCBtdmVidV91 YXJ0X3NldF90ZXJtaW9zKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCiAJCXBvcnQtPmlnbm9yZV9z dGF0dXNfbWFzayB8PSBTVEFUX1JYX1JEWShwb3J0KSB8IFNUQVRfQlJLX0VSUjsKIAogCS8qCi0J ICogTWF4aW1hbCBkaXZpc29yIGlzIDEwMjMgKiAxNiB3aGVuIHVzaW5nIGRlZmF1bHQgKHgxNikg c2NoZW1lLgotCSAqIE1heGltdW0gYWNoaWV2YWJsZSBmcmVxdWVuY3kgd2l0aCBzaW1wbGUgYmF1 ZHJhdGUgZGl2aXNvciBpcyAyMzA0MDAuCi0JICogU2luY2UgdGhlIGVycm9yIHBlciBiaXQgZnJh bWUgd291bGQgYmUgb2YgbW9yZSB0aGFuIDE1JSwgYWNoaWV2aW5nCi0JICogaGlnaGVyIGZyZXF1 ZW5jaWVzIHdvdWxkIHJlcXVpcmUgdG8gaW1wbGVtZW50IHRoZSBmcmFjdGlvbmFsIGRpdmlzb3IK LQkgKiBmZWF0dXJlLgorCSAqIE1heGltYWwgZGl2aXNvciBpcyAxMDIzIGFuZCBtYXhpbWFsIGZy YWN0aW9uYWwgZGl2aXNvciBpcyA2My4gQW5kCisJICogZXhwZXJpbWVudHMgc2hvdyB0aGF0IGJh dWRyYXRlcyBhYm92ZSAxLzgwIG9mIHBhcmVudCBjbG9jayByYXRlIGFyZQorCSAqIG5vdCBzdGFi bGUuIFNvIGRpc2FsbG93IGJhdWRyYXRlcyBhYm92ZSAxLzgwIG9mIHRoZSBwYXJlbnQgY2xvY2sK KwkgKiByYXRlLiBJZiBwb3J0LT51YXJ0Y2xrIGlzIG5vdCBhdmFpbGFibGUsIHRoZW4KKwkgKiBt dmVidV91YXJ0X2JhdWRfcmF0ZV9zZXQoKSBmYWlscywgc28gdmFsdWVzIG1pbl9iYXVkIGFuZCBt YXhfYmF1ZAorCSAqIGluIHRoaXMgY2FzZSBkbyBub3QgbWF0dGVyLgogCSAqLwotCW1pbl9iYXVk ID0gRElWX1JPVU5EX1VQKHBvcnQtPnVhcnRjbGssIDEwMjMgKiAxNik7Ci0JbWF4X2JhdWQgPSAy MzA0MDA7CisJbWluX2JhdWQgPSBESVZfUk9VTkRfVVAocG9ydC0+dWFydGNsaywgQlJEVl9CQVVE X01BWCAqCisJCQkJT1NBTVBfTUFYX0RJVklTT1IpOworCW1heF9iYXVkID0gcG9ydC0+dWFydGNs ayAvIDgwOwogCiAJYmF1ZCA9IHVhcnRfZ2V0X2JhdWRfcmF0ZShwb3J0LCB0ZXJtaW9zLCBvbGQs IG1pbl9iYXVkLCBtYXhfYmF1ZCk7CiAJaWYgKG12ZWJ1X3VhcnRfYmF1ZF9yYXRlX3NldChwb3J0 LCBiYXVkKSkgewpAQCAtMTM5NSwxNCArMTQ0MywxNCBAQCBzdGF0aWMgaW50IG12ZWJ1X3VhcnRf Y2xvY2tfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJCSAqIENhbGN1bGF0 ZSB0aGUgc21hbGxlc3QgVEJHIGQxIGFuZCBkMiBkaXZpc29ycyB0aGF0CiAJCQkgKiBzdGlsbCBj YW4gcHJvdmlkZSA5NjAwIGJhdWRyYXRlLgogCQkJICovCi0JCQlkMSA9IERJVl9ST1VORF9VUChy YXRlLCA5NjAwICogT1NBTVBfREVGQVVMVF9ESVZJU09SICoKKwkJCWQxID0gRElWX1JPVU5EX1VQ KHJhdGUsIDk2MDAgKiBPU0FNUF9NQVhfRElWSVNPUiAqCiAJCQkJCSAgQlJEVl9CQVVEX01BWCk7 CiAJCQlpZiAoZDEgPCAxKQogCQkJCWQxID0gMTsKIAkJCWVsc2UgaWYgKGQxID4gQ0xLX1RCR19E SVYxX01BWCkKIAkJCQlkMSA9IENMS19UQkdfRElWMV9NQVg7CiAKLQkJCWQyID0gRElWX1JPVU5E X1VQKHJhdGUsIDk2MDAgKiBPU0FNUF9ERUZBVUxUX0RJVklTT1IgKgorCQkJZDIgPSBESVZfUk9V TkRfVVAocmF0ZSwgOTYwMCAqIE9TQU1QX01BWF9ESVZJU09SICoKIAkJCQkJICBCUkRWX0JBVURf TUFYICogZDEpOwogCQkJaWYgKGQyIDwgMSkKIAkJCQlkMiA9IDE7CkBAIC0xNDE3LDggKzE0NjUs NyBAQCBzdGF0aWMgaW50IG12ZWJ1X3VhcnRfY2xvY2tfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKIAkJfQogCiAJCS8qIFNraXAgY2xvY2sgc291cmNlIHdoaWNoIGNhbm5vdCBw cm92aWRlIDk2MDAgYmF1ZHJhdGUgKi8KLQkJaWYgKHJhdGUgPiA5NjAwICogT1NBTVBfREVGQVVM VF9ESVZJU09SICogQlJEVl9CQVVEX01BWCAqIGQxICoKLQkJCSAgIGQyKQorCQlpZiAocmF0ZSA+ IDk2MDAgKiBPU0FNUF9NQVhfRElWSVNPUiAqIEJSRFZfQkFVRF9NQVggKiBkMSAqIGQyKQogCQkJ Y29udGludWU7CiAKIAkJLyoKLS0gCjIuMzQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK