Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Dec 2014 23:14:10 +0100
From:      Zbigniew Bodek <zbb@semihalf.com>
To:        "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>
Subject:   Minor fixes to PL011 UART
Message-ID:  <CAG7dG%2BzAwmysuygugEh1mB767KPw5n1UB1YnotPSCdozcFC_yQ@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--001a1137be46a44c4f0509e3fadd
Content-Type: text/plain; charset=UTF-8

Hello,

We have few minor fixes to ARM PL011 driver. The patch is attached to
this e-mail.
One change that might be considered controversial is adding
uart_barrier() to each __uart_write().
In other UART drivers uart_barrier() is used after every uart_write()
unless the write is related to the same register (but the other half).
In our case it would be necessary to add barrier after each write
anyway (if we like to follow this barrier convention)...

Nevertheless, please test and let me know what do you think.
I would like to push this by Monday.

Thanks and best regards
zbb

--001a1137be46a44c4f0509e3fadd
Content-Type: text/x-patch; charset=US-ASCII; 
	name="0001-Fix-some-obvious-mistakes-in-ARM-PL011-UART.patch"
Content-Disposition: attachment; 
	filename="0001-Fix-some-obvious-mistakes-in-ARM-PL011-UART.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_i3j94iuw0

RnJvbSAwYTRhZGQ4M2QzNGVjMDUzZWUyYWU5MTg0NzkzY2UzMmEyZTI2NDg3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaYmlnbmlldyBCb2RlayA8emJiQHNlbWloYWxmLmNvbT4KRGF0
ZTogVHVlLCA5IERlYyAyMDE0IDE3OjM2OjEzICswMTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IHNv
bWUgb2J2aW91cyBtaXN0YWtlcyBpbiBBUk0gUEwwMTEgVUFSVAoKLSBEb24ndCBmb3JnZXQgdWFy
dF9iYXJyaWVyKCkgb24gd3JpdGUuCi0gQWZ0ZXIgZGlzYWJsaW5nIFVBUlQsIHdhaXQgZm9yIHRy
YW5zbWlzc2lvbiB0byBmaW5pc2ggYmVmb3JlCiAgY2hhbmdpbmcgY29udHJvbCBhbmQgbGluZS4g
VGltZW91dCBhbmQgZmFpbCBpZiBzb21ldGhpbmcncyB3cm9uZwogIHdpdGggdGhlIGhhcmR3YXJl
LgotIENoZWNrIGZvciBicmVhayBhbmQgb3ZlcnJ1biBvbmx5IG9uIFJYLgotIENoYW5nZSBtYXNr
aW5nIG9mIFRYRU1QVFkgaW50ZXJydXB0IHRvIGNsZWFyaW5nIGl0IGFzIHRoaXMgd2FzCiAgdGhl
IG9yaWdpbmFsIGludGVudGlvbi4KLS0tCiBzeXMvZGV2L3VhcnQvdWFydF9kZXZfcGwwMTEuYyB8
IDUyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj
aGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z
eXMvZGV2L3VhcnQvdWFydF9kZXZfcGwwMTEuYyBiL3N5cy9kZXYvdWFydC91YXJ0X2Rldl9wbDAx
MS5jCmluZGV4IGQ5NTEwNzAuLmJiMWRmZGYgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvdWFydC91YXJ0
X2Rldl9wbDAxMS5jCisrKyBiL3N5cy9kZXYvdWFydC91YXJ0X2Rldl9wbDAxMS5jCkBAIC01MCw2
ICs1MCw3IEBAIF9fRkJTRElEKCIkRnJlZUJTRCQiKTsKICNkZWZpbmUJRFJfT0UJCSgxIDw8IDEx
KQkvKiBPdmVycnVuIGVycm9yICovCiAKICNkZWZpbmUJVUFSVF9GUgkJMHgwNgkJLyogRmxhZyBy
ZWdpc3RlciAqLworI2RlZmluZQlGUl9CVVNZCQkoMSA8PCAzKQkvKiBVQVJUIGlzIGJ1c3kgKi8K
ICNkZWZpbmUJRlJfVFhGRgkJKDEgPDwgNSkJLyogVHJhbnNtaXQgRklGTy9yZWcgZnVsbCAqLwog
I2RlZmluZQlGUl9SWEZGCQkoMSA8PCA2KQkvKiBSZWNlaXZlIEZJRk8vcmVnIGZ1bGwgKi8KICNk
ZWZpbmUJRlJfVFhGRQkJKDEgPDwgNykJLyogVHJhbnNtaXQgRklGTy9yZWcgZW1wdHkgKi8KQEAg
LTkzLDggKzk0LDEyIEBAIF9fRkJTRElEKCIkRnJlZUJTRCQiKTsKICAqLwogI2RlZmluZQlfX3Vh
cnRfZ2V0cmVnKGJhcywgcmVnKQkJXAogCWJ1c19zcGFjZV9yZWFkXzQoKGJhcyktPmJzdCwgKGJh
cyktPmJzaCwgdWFydF9yZWdvZnMoYmFzLCByZWcpKQotI2RlZmluZQlfX3VhcnRfc2V0cmVnKGJh
cywgcmVnLCB2YWx1ZSkJXAotCWJ1c19zcGFjZV93cml0ZV80KChiYXMpLT5ic3QsIChiYXMpLT5i
c2gsIHVhcnRfcmVnb2ZzKGJhcywgcmVnKSwgdmFsdWUpCisjZGVmaW5lCV9fdWFydF9zZXRyZWco
YmFzLCByZWcsIHZhbHVlKQkJCVwKK2RvIHsJCQkJCQkJXAorCWJ1c19zcGFjZV93cml0ZV80KChi
YXMpLT5ic3QsCQkJXAorCSAgICAoYmFzKS0+YnNoLCB1YXJ0X3JlZ29mcyhiYXMsIHJlZyksIHZh
bHVlKTsJXAorCXVhcnRfYmFycmllcihiYXMpOwkJCQlcCit9IHdoaWxlICgwKQogCiAvKgogICog
TG93LWxldmVsIFVBUlQgaW50ZXJmYWNlLgpAQCAtMTQ4LDEyICsxNTMsMTMgQEAgdWFydF9wbDAx
MV9wcm9iZShzdHJ1Y3QgdWFydF9iYXMgKmJhcykKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMg
dm9pZAorc3RhdGljIGludAogdWFydF9wbDAxMV9wYXJhbShzdHJ1Y3QgdWFydF9iYXMgKmJhcywg
aW50IGJhdWRyYXRlLCBpbnQgZGF0YWJpdHMsIGludCBzdG9wYml0cywKICAgICBpbnQgcGFyaXR5
KQogewogCXVpbnQzMl90IGN0cmwsIGxpbmU7CiAJdWludDMyX3QgYmF1ZDsKKwlzaXplX3QgdGlt
ZW91dDsKIAogCS8qCiAJICogWmVybyBhbGwgc2V0dGluZ3MgdG8gbWFrZSBzdXJlCkBAIC0xNjEs
NiArMTY3LDE5IEBAIHVhcnRfcGwwMTFfcGFyYW0oc3RydWN0IHVhcnRfYmFzICpiYXMsIGludCBi
YXVkcmF0ZSwgaW50IGRhdGFiaXRzLCBpbnQgc3RvcGJpdHMsCiAJICovCiAJY3RybCA9IGxpbmUg
PSAweDA7CiAJX191YXJ0X3NldHJlZyhiYXMsIFVBUlRfQ1IsIGN0cmwpOworCQorCS8qCisJICog
VUFSVCB3aWxsIGZpbmlzaCBwZW5kaW5nIHRyYW5zbWlzc2lvbnMgYmVmb3JlIGl0J3MgZGlzYWJs
ZWQuCisJICogV2FpdCB1bnRpbCBidXN5IGJpdCBpcyBjbGVhcmVkIGZvciBhIGxpbWl0ZWQgKGJ1
dCByZWxhdGl2ZWx5CisJICogc2lnbmlmaWNhbnQpIGFtb3VudCBvZiB0aW1lIHRvIGF2b2lkIGJl
aW5nIHRyYXBwZWQgaW4gYW4gaW5maW5pdGUKKwkgKiBsb29wLgorCSAqLworCXRpbWVvdXQgPSAx
MCAqIDEwMjQ7CisJd2hpbGUgKChfX3VhcnRfZ2V0cmVnKGJhcywgVUFSVF9GUikgJiBGUl9CVVNZ
KSAmJiAtLXRpbWVvdXQpCisJCURFTEFZKDQpOworCisJaWYgKHRpbWVvdXQgPT0gMCkKKwkJcmV0
dXJuIChFTlhJTyk7CiAKIAkvKiBBcyB3ZSBrbm93IFVBUlQgaXMgZGlzYWJsZWQgd2UgbWF5IHNl
dHVwIHRoZSBsaW5lICovCiAJc3dpdGNoIChkYXRhYml0cykgewpAQCAtMjAxLDYgKzIyMCw4IEBA
IHVhcnRfcGwwMTFfcGFyYW0oc3RydWN0IHVhcnRfYmFzICpiYXMsIGludCBiYXVkcmF0ZSwgaW50
IGRhdGFiaXRzLCBpbnQgc3RvcGJpdHMsCiAJICAgIH4weGZmKSB8IGxpbmUpOwogCiAJX191YXJ0
X3NldHJlZyhiYXMsIFVBUlRfQ1IsIGN0cmwpOworCisJcmV0dXJuICgwKTsKIH0KIAogc3RhdGlj
IHZvaWQKQEAgLTIxMSw3ICsyMzIsNyBAQCB1YXJ0X3BsMDExX2luaXQoc3RydWN0IHVhcnRfYmFz
ICpiYXMsIGludCBiYXVkcmF0ZSwgaW50IGRhdGFiaXRzLCBpbnQgc3RvcGJpdHMsCiAJX191YXJ0
X3NldHJlZyhiYXMsIFVBUlRfSU1TQywgX191YXJ0X2dldHJlZyhiYXMsIFVBUlRfSU1TQykgJgog
CSAgICB+SU1TQ19NQVNLX0FMTCk7CiAJCi0JdWFydF9wbDAxMV9wYXJhbShiYXMsIGJhdWRyYXRl
LCBkYXRhYml0cywgc3RvcGJpdHMsIHBhcml0eSk7CisJKHZvaWQpdWFydF9wbDAxMV9wYXJhbShi
YXMsIGJhdWRyYXRlLCBkYXRhYml0cywgc3RvcGJpdHMsIHBhcml0eSk7CiB9CiAKIHN0YXRpYyB2
b2lkCkBAIC0zNzMsMTcgKzM5NCwxOCBAQCB1YXJ0X3BsMDExX2J1c19pcGVuZChzdHJ1Y3QgdWFy
dF9zb2Z0YyAqc2MpCiAJaW50cyA9IF9fdWFydF9nZXRyZWcoYmFzLCBVQVJUX01JUyk7CiAJaXBl
bmQgPSAwOwogCi0JaWYgKGludHMgJiBVQVJUX1JYUkVBRFkpCisJaWYgKGludHMgJiBVQVJUX1JY
UkVBRFkpIHsKIAkJaXBlbmQgfD0gU0VSX0lOVF9SWFJFQURZOwotCWlmIChpbnRzICYgUklTX0JF
KQotCQlpcGVuZCB8PSBTRVJfSU5UX0JSRUFLOwotCWlmIChpbnRzICYgUklTX09FKQotCQlpcGVu
ZCB8PSBTRVJfSU5UX09WRVJSVU47CisJCWlmIChpbnRzICYgUklTX0JFKQorCQkJaXBlbmQgfD0g
U0VSX0lOVF9CUkVBSzsKKwkJaWYgKGludHMgJiBSSVNfT0UpCisJCQlpcGVuZCB8PSBTRVJfSU5U
X09WRVJSVU47CisJfQogCWlmIChpbnRzICYgVUFSVF9UWEVNUFRZKSB7CiAJCWlmIChzYy0+c2Nf
dHhidXN5KQogCQkJaXBlbmQgfD0gU0VSX0lOVF9UWElETEU7CiAKLQkJX191YXJ0X3NldHJlZyhi
YXMsIFVBUlRfSU1TQywgVUFSVF9SWFJFQURZKTsKKwkJX191YXJ0X3NldHJlZyhiYXMsIFVBUlRf
SUNSLCBVQVJUX1RYRU1QVFkpOwogCX0KIAogCXVhcnRfdW5sb2NrKHNjLT5zY19od210eCk7CkBA
IC0zOTUsMTIgKzQxNywxMyBAQCBzdGF0aWMgaW50CiB1YXJ0X3BsMDExX2J1c19wYXJhbShzdHJ1
Y3QgdWFydF9zb2Z0YyAqc2MsIGludCBiYXVkcmF0ZSwgaW50IGRhdGFiaXRzLAogICAgIGludCBz
dG9wYml0cywgaW50IHBhcml0eSkKIHsKKwlpbnQgZXJyb3I7CiAKIAl1YXJ0X2xvY2soc2MtPnNj
X2h3bXR4KTsKLQl1YXJ0X3BsMDExX3BhcmFtKCZzYy0+c2NfYmFzLCBiYXVkcmF0ZSwgZGF0YWJp
dHMsIHN0b3BiaXRzLCBwYXJpdHkpOworCWVycm9yID0gdWFydF9wbDAxMV9wYXJhbSgmc2MtPnNj
X2JhcywgYmF1ZHJhdGUsIGRhdGFiaXRzLCBzdG9wYml0cywgcGFyaXR5KTsKIAl1YXJ0X3VubG9j
ayhzYy0+c2NfaHdtdHgpOwogCi0JcmV0dXJuICgwKTsKKwlyZXR1cm4gKGVycm9yKTsKIH0KIAog
c3RhdGljIGludApAQCAtNDY2LDEwICs0ODksOSBAQCB1YXJ0X3BsMDExX2J1c190cmFuc21pdChz
dHJ1Y3QgdWFydF9zb2Z0YyAqc2MpCiAJYmFzID0gJnNjLT5zY19iYXM7CiAJdWFydF9sb2NrKHNj
LT5zY19od210eCk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgc2MtPnNjX3R4ZGF0YXN6OyBpKyspIHsK
Kwlmb3IgKGkgPSAwOyBpIDwgc2MtPnNjX3R4ZGF0YXN6OyBpKyspCiAJCV9fdWFydF9zZXRyZWco
YmFzLCBVQVJUX0RSLCBzYy0+c2NfdHhidWZbaV0pOwotCQl1YXJ0X2JhcnJpZXIoYmFzKTsKLQl9
CisKIAlzYy0+c2NfdHhidXN5ID0gMTsKIAlfX3VhcnRfc2V0cmVnKGJhcywgVUFSVF9JTVNDLCAo
VUFSVF9SWFJFQURZIHwgVUFSVF9UWEVNUFRZKSk7CiAJdWFydF91bmxvY2soc2MtPnNjX2h3bXR4
KTsKLS0gCjIuMS4yCgo=
--001a1137be46a44c4f0509e3fadd--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG7dG%2BzAwmysuygugEh1mB767KPw5n1UB1YnotPSCdozcFC_yQ>