From owner-freebsd-arm@FreeBSD.ORG Wed Dec 10 22:14:12 2014 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 259C6EBB for ; Wed, 10 Dec 2014 22:14:12 +0000 (UTC) Received: from mail-yk0-f173.google.com (mail-yk0-f173.google.com [209.85.160.173]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DE0A4C4D for ; Wed, 10 Dec 2014 22:14:11 +0000 (UTC) Received: by mail-yk0-f173.google.com with SMTP id 19so1664277ykq.32 for ; Wed, 10 Dec 2014 14:14:10 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=JrVRX65yFEhKlagi1325xICrBeSwG682QyffPwpwk9E=; b=mPstssJKiCoQYzxlrVP3kO0QVKeuY1WqBLw/6Rgls5S3ebYI43Gc2Qtzsx8BisnREs Jwgz6nCyCQU6GWIdhqSBvLff3cdS00pg2tmIxIK4EhlsSLPRN8gL3MfVaHqihb5zL7tO +WT+A1vv5ajTxjQThjMhnMVLadV+2owK7PaHqeq2eoXWmp98cahRBsvP53lem9gkn85s +DI977sh7Plx6odR5EJ4v+XEy/Ualwi83wo4+3ThSsgyvORsUITAgLczJw+ZATuIitQA xeX8xD1UwCoIMWQCUKUvlLBLPvc2RnuwDZ/L2g/VFe+JYkMpzlhD5bDDKUbnjr2+ItGT C8bw== X-Gm-Message-State: ALoCoQm9drBcxEPhL3Ka+viusHgYq6RK2TD7GXdY/v+3NqBr0AJn+YZxlWadK8Gd69KDJIE6oEfY MIME-Version: 1.0 X-Received: by 10.170.116.21 with SMTP id i21mr5561502ykb.105.1418249650834; Wed, 10 Dec 2014 14:14:10 -0800 (PST) Received: by 10.170.35.20 with HTTP; Wed, 10 Dec 2014 14:14:10 -0800 (PST) Date: Wed, 10 Dec 2014 23:14:10 +0100 Message-ID: Subject: Minor fixes to PL011 UART From: Zbigniew Bodek To: "freebsd-arm@freebsd.org" Content-Type: multipart/mixed; boundary=001a1137be46a44c4f0509e3fadd X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Dec 2014 22:14:12 -0000 --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--