From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: Improve the accuracy of the baud rate generator by using round-to-closest instead of truncating when calculating baud rate divisors. From: Nikolaj Fogh Message-Id: <20181031200913.GA6372@nfogh-Ryzen> Date: Wed, 31 Oct 2018 21:16:48 +0100 To: nfogh@vectory.com Cc: linux-usb@vger.kernel.org List-ID: SSBoYXZlIGV4cGVyaWVuY2VkIHRoYXQgdGhlIGZ0ZGlfc2lvIGRyaXZlciBnaXZlcyBsZXNzLXRo YW4tb3B0aW1hbCBiYXVkIHJhdGVzIGFzIHRoZSBkcml2ZXIgdHJ1bmNhdGVzIGluc3RlYWQgb2Yg cm91bmRzIHRvIG5lYXJlc3QgZHVyaW5nIGJhdWQgcmF0ZSBkaXZpc29yIGNhbGN1bGF0aW9uLgoK VGhpcyBwYXRjaCBpbXByb3ZlcyBvbiB0aGUgYmF1ZCByYXRlIGdlbmVyYXRpb24uIFRoZSBnZW5l cmF0ZWQgYmF1ZCByYXRlIGNvcnJlc3BvbmRzIHRvIHRoZSBvcHRpbWFsIGJhdWQgcmF0ZSBhY2hp ZXZhYmxlIHdpdGggdGhlIGNoaXAuIFRoaXMgaXMgd2hhdCB0aGUgd2luZG93cyBkcml2ZXIgZ2l2 ZXMgYXMgd2VsbC4KClNpZ25lZC1vZmYtYnk6IE5pa29sYWogRm9naCA8bmlrb2xhamZvZ2hAZ21h aWwuY29tPgotLS0KIGRyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jIHwgNiArKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRk aV9zaW8uYwppbmRleCA2MDkxOThkOTU5NGMuLjBlZGJkMzQyNzU0OCAxMDA2NDQKLS0tIGEvZHJp dmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlf c2lvLmMKQEAgLTExMzAsNyArMTEzMCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBpbnQgZnRk aV8yMzJhbV9iYXVkX2Jhc2VfdG9fZGl2aXNvcihpbnQgYmF1ZCwgaW50IGJhc2UpCiB7CiAJdW5z aWduZWQgc2hvcnQgaW50IGRpdmlzb3I7CiAJLyogZGl2aXNvciBzaGlmdGVkIDMgYml0cyB0byB0 aGUgbGVmdCAqLwotCWludCBkaXZpc29yMyA9IGJhc2UgLyAyIC8gYmF1ZDsKKwlpbnQgZGl2aXNv cjMgPSBESVZfUk9VTkRfQ0xPU0VTVChiYXNlLCAyICogYmF1ZCk7CiAJaWYgKChkaXZpc29yMyAm IDB4NykgPT0gNykKIAkJZGl2aXNvcjMrKzsgLyogcm91bmQgeC43LzggdXAgdG8geCsxICovCiAJ ZGl2aXNvciA9IGRpdmlzb3IzID4+IDM7CkBAIC0xMTU2LDcgKzExNTYsNyBAQCBzdGF0aWMgdTMy IGZ0ZGlfMjMyYm1fYmF1ZF9iYXNlX3RvX2Rpdmlzb3IoaW50IGJhdWQsIGludCBiYXNlKQogCXN0 YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRpdmZyYWNbOF0gPSB7IDAsIDMsIDIsIDQsIDEsIDUs IDYsIDcgfTsKIAl1MzIgZGl2aXNvcjsKIAkvKiBkaXZpc29yIHNoaWZ0ZWQgMyBiaXRzIHRvIHRo ZSBsZWZ0ICovCi0JaW50IGRpdmlzb3IzID0gYmFzZSAvIDIgLyBiYXVkOworCWludCBkaXZpc29y MyA9IERJVl9ST1VORF9DTE9TRVNUKGJhc2UsIDIgKiBiYXVkKTsKIAlkaXZpc29yID0gZGl2aXNv cjMgPj4gMzsKIAlkaXZpc29yIHw9ICh1MzIpZGl2ZnJhY1tkaXZpc29yMyAmIDB4N10gPDwgMTQ7 CiAJLyogRGVhbCB3aXRoIHNwZWNpYWwgY2FzZXMgZm9yIGhpZ2hlc3QgYmF1ZCByYXRlcy4gKi8K QEAgLTExNzksNyArMTE3OSw3IEBAIHN0YXRpYyB1MzIgZnRkaV8yMjMyaF9iYXVkX2Jhc2VfdG9f ZGl2aXNvcihpbnQgYmF1ZCwgaW50IGJhc2UpCiAJaW50IGRpdmlzb3IzOwogCiAJLyogaGktc3Bl ZWQgYmF1ZCByYXRlIGlzIDEwLWJpdCBzYW1wbGluZyBpbnN0ZWFkIG9mIDE2LWJpdCAqLwotCWRp dmlzb3IzID0gYmFzZSAqIDggLyAoYmF1ZCAqIDEwKTsKKwlkaXZpc29yMyA9IERJVl9ST1VORF9D TE9TRVNUKGJhc2UgKiA4LCBiYXVkICogMTApOwogCiAJZGl2aXNvciA9IGRpdmlzb3IzID4+IDM7 CiAJZGl2aXNvciB8PSAodTMyKWRpdmZyYWNbZGl2aXNvcjMgJiAweDddIDw8IDE0Owo=