From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Jowdx-0008My-R9 for qemu-devel@nongnu.org; Thu, 24 Apr 2008 04:17:25 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Jowdw-0008Lm-4S for qemu-devel@nongnu.org; Thu, 24 Apr 2008 04:17:24 -0400 Received: from [199.232.76.173] (port=54070 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Jowdv-0008LM-PT for qemu-devel@nongnu.org; Thu, 24 Apr 2008 04:17:23 -0400 Received: from mx20.gnu.org ([199.232.41.8]) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Jowdv-0000Dj-6S for qemu-devel@nongnu.org; Thu, 24 Apr 2008 04:17:23 -0400 Received: from smtp3-g19.free.fr ([212.27.42.29]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Jow8U-0006Af-Kj for qemu-devel@nongnu.org; Thu, 24 Apr 2008 03:44:55 -0400 Received: from smtp3-g19.free.fr (localhost.localdomain [127.0.0.1]) by smtp3-g19.free.fr (Postfix) with ESMTP id 3925017B56A for ; Thu, 24 Apr 2008 09:44:50 +0200 (CEST) Received: from [127.0.0.1] (rob92-10-88-171-126-33.fbx.proxad.net [88.171.126.33]) by smtp3-g19.free.fr (Postfix) with ESMTP id E5F5A17B537 for ; Thu, 24 Apr 2008 09:44:49 +0200 (CEST) Message-ID: <48103A72.3030007@reactos.org> Date: Thu, 24 Apr 2008 09:44:50 +0200 From: =?ISO-8859-1?Q?Herv=E9_Poussineau?= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030100050801050704060600" Subject: [Qemu-devel] [PATCH] ESP: fix irq handling Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------030100050801050704060600 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Hi, In ESP SCSI adapter, IRQ line state should always be in sync with the=20 STAT_INT bit. This patch enforces this, by creating functions to raise=20 or lower the irq level. This fixes bugs in do_cmd(), write_response(), esp_mem_readb(),=20 esp_mem_writeb(), where it was not handled properly. Also adds IRQ line deassertion at reset. Finally, rename STAT_IN to STAT_INT, according to datasheet. Herv=E9 --------------030100050801050704060600 Content-Type: text/plain; name="esp_interrupt.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="esp_interrupt.diff" SW5kZXg6IGh3L2VzcC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHcvZXNwLmMJKHJldmlzaW9u IDQyNDQpDQorKysgaHcvZXNwLmMJKHdvcmtpbmcgY29weSkNCkBAIC0xMjcsNyArMTI3LDcg QEANCiAjZGVmaW5lIFNUQVRfVEMgMHgxMAogI2RlZmluZSBTVEFUX1BFIDB4MjAKICNkZWZp bmUgU1RBVF9HRSAweDQwCi0jZGVmaW5lIFNUQVRfSU4gMHg4MAorI2RlZmluZSBTVEFUX0lO VCAweDgwCiAKICNkZWZpbmUgSU5UUl9GQyAweDA4CiAjZGVmaW5lIElOVFJfQlMgMHgxMApA QCAtMTQzLDYgKzE0MywyMiBAQA0KIAogI2RlZmluZSBUQ0hJX0ZBUzEwMEEgMHg0CiAKK3N0 YXRpYyB2b2lkIGVzcF9yYWlzZV9pcnEoRVNQU3RhdGUgKnMpCit7CisgICAgaWYgKCEocy0+ cnJlZ3NbRVNQX1JTVEFUXSAmIFNUQVRfSU5UKSkgeworICAgICAgICBzLT5ycmVnc1tFU1Bf UlNUQVRdIHw9IFNUQVRfSU5UOworICAgICAgICBxZW11X2lycV9yYWlzZShzLT5pcnEpOwor ICAgIH0KK30KKworc3RhdGljIHZvaWQgZXNwX2xvd2VyX2lycShFU1BTdGF0ZSAqcykKK3sK KyAgICBpZiAocy0+cnJlZ3NbRVNQX1JTVEFUXSAmIFNUQVRfSU5UKSB7CisgICAgICAgIHMt PnJyZWdzW0VTUF9SU1RBVF0gJj0gflNUQVRfSU5UOworICAgICAgICBxZW11X2lycV9sb3dl cihzLT5pcnEpOworICAgIH0KK30KKwogc3RhdGljIGludCBnZXRfY21kKEVTUFN0YXRlICpz LCB1aW50OF90ICpidWYpCiB7CiAgICAgdWludDMyX3QgZG1hbGVuOwpAQCAtMTcxLDEwICsx ODcsMTAgQEANCiAKICAgICBpZiAodGFyZ2V0ID49IEVTUF9NQVhfREVWUyB8fCAhcy0+c2Nz aV9kZXZbdGFyZ2V0XSkgewogICAgICAgICAvLyBObyBzdWNoIGRyaXZlCi0gICAgICAgIHMt PnJyZWdzW0VTUF9SU1RBVF0gPSBTVEFUX0lOOworICAgICAgICBzLT5ycmVnc1tFU1BfUlNU QVRdID0gMDsKICAgICAgICAgcy0+cnJlZ3NbRVNQX1JJTlRSXSA9IElOVFJfREM7CiAgICAg ICAgIHMtPnJyZWdzW0VTUF9SU0VRXSA9IFNFUV8wOwotICAgICAgICBxZW11X2lycV9yYWlz ZShzLT5pcnEpOworICAgICAgICBlc3BfcmFpc2VfaXJxKHMpOwogICAgICAgICByZXR1cm4g MDsKICAgICB9CiAgICAgcy0+Y3VycmVudF9kZXYgPSBzLT5zY3NpX2Rldlt0YXJnZXRdOwpA QCAtMTkxLDcgKzIwNyw3IEBADQogICAgIGRhdGFsZW4gPSBzLT5jdXJyZW50X2Rldi0+c2Vu ZF9jb21tYW5kKHMtPmN1cnJlbnRfZGV2LCAwLCAmYnVmWzFdLCBsdW4pOwogICAgIHMtPnRp X3NpemUgPSBkYXRhbGVuOwogICAgIGlmIChkYXRhbGVuICE9IDApIHsKLSAgICAgICAgcy0+ cnJlZ3NbRVNQX1JTVEFUXSA9IFNUQVRfSU4gfCBTVEFUX1RDOworICAgICAgICBzLT5ycmVn c1tFU1BfUlNUQVRdID0gU1RBVF9UQzsKICAgICAgICAgcy0+ZG1hX2xlZnQgPSAwOwogICAg ICAgICBzLT5kbWFfY291bnRlciA9IDA7CiAgICAgICAgIGlmIChkYXRhbGVuID4gMCkgewpA QCAtMjA0LDcgKzIyMCw3IEBADQogICAgIH0KICAgICBzLT5ycmVnc1tFU1BfUklOVFJdID0g SU5UUl9CUyB8IElOVFJfRkM7CiAgICAgcy0+cnJlZ3NbRVNQX1JTRVFdID0gU0VRX0NEOwot ICAgIHFlbXVfaXJxX3JhaXNlKHMtPmlycSk7CisgICAgZXNwX3JhaXNlX2lycShzKTsKIH0K IAogc3RhdGljIHZvaWQgaGFuZGxlX3NhdG4oRVNQU3RhdGUgKnMpCkBAIC0yMjMsMTAgKzIz OSwxMCBAQA0KICAgICBpZiAocy0+Y21kbGVuKSB7CiAgICAgICAgIERQUklOVEYoIlNldCBB VE4gJiBTdG9wOiBjbWRsZW4gJWRcbiIsIHMtPmNtZGxlbik7CiAgICAgICAgIHMtPmRvX2Nt ZCA9IDE7Ci0gICAgICAgIHMtPnJyZWdzW0VTUF9SU1RBVF0gPSBTVEFUX0lOIHwgU1RBVF9U QyB8IFNUQVRfQ0Q7CisgICAgICAgIHMtPnJyZWdzW0VTUF9SU1RBVF0gPSBTVEFUX1RDIHwg U1RBVF9DRDsKICAgICAgICAgcy0+cnJlZ3NbRVNQX1JJTlRSXSA9IElOVFJfQlMgfCBJTlRS X0ZDOwogICAgICAgICBzLT5ycmVnc1tFU1BfUlNFUV0gPSBTRVFfQ0Q7Ci0gICAgICAgIHFl bXVfaXJxX3JhaXNlKHMtPmlycSk7CisgICAgICAgIGVzcF9yYWlzZV9pcnEocyk7CiAgICAg fQogfQogCkBAIC0yMzcsNyArMjUzLDcgQEANCiAgICAgcy0+dGlfYnVmWzFdID0gMDsKICAg ICBpZiAocy0+ZG1hKSB7CiAgICAgICAgIHMtPmRtYV9tZW1vcnlfd3JpdGUocy0+ZG1hX29w YXF1ZSwgcy0+dGlfYnVmLCAyKTsKLSAgICAgICAgcy0+cnJlZ3NbRVNQX1JTVEFUXSA9IFNU QVRfSU4gfCBTVEFUX1RDIHwgU1RBVF9TVDsKKyAgICAgICAgcy0+cnJlZ3NbRVNQX1JTVEFU XSA9IFNUQVRfVEMgfCBTVEFUX1NUOwogICAgICAgICBzLT5ycmVnc1tFU1BfUklOVFJdID0g SU5UUl9CUyB8IElOVFJfRkM7CiAgICAgICAgIHMtPnJyZWdzW0VTUF9SU0VRXSA9IFNFUV9D RDsKICAgICB9IGVsc2UgewpAQCAtMjQ2LDE4ICsyNjIsMTggQEANCiAgICAgICAgIHMtPnRp X3dwdHIgPSAwOwogICAgICAgICBzLT5ycmVnc1tFU1BfUkZMQUdTXSA9IDI7CiAgICAgfQot ICAgIHFlbXVfaXJxX3JhaXNlKHMtPmlycSk7CisgICAgZXNwX3JhaXNlX2lycShzKTsKIH0K IAogc3RhdGljIHZvaWQgZXNwX2RtYV9kb25lKEVTUFN0YXRlICpzKQogewotICAgIHMtPnJy ZWdzW0VTUF9SU1RBVF0gfD0gU1RBVF9JTiB8IFNUQVRfVEM7CisgICAgcy0+cnJlZ3NbRVNQ X1JTVEFUXSB8PSBTVEFUX1RDOwogICAgIHMtPnJyZWdzW0VTUF9SSU5UUl0gPSBJTlRSX0JT OwogICAgIHMtPnJyZWdzW0VTUF9SU0VRXSA9IDA7CiAgICAgcy0+cnJlZ3NbRVNQX1JGTEFH U10gPSAwOwogICAgIHMtPnJyZWdzW0VTUF9UQ0xPXSA9IDA7CiAgICAgcy0+cnJlZ3NbRVNQ X1RDTUlEXSA9IDA7Ci0gICAgcWVtdV9pcnFfcmFpc2Uocy0+aXJxKTsKKyAgICBlc3BfcmFp c2VfaXJxKHMpOwogfQogCiBzdGF0aWMgdm9pZCBlc3BfZG9fZG1hKEVTUFN0YXRlICpzKQpA QCAtMzgxLDYgKzM5Nyw4IEBADQogewogICAgIEVTUFN0YXRlICpzID0gb3BhcXVlOwogCisg ICAgZXNwX2xvd2VyX2lycShzKTsKKwogICAgIG1lbXNldChzLT5ycmVncywgMCwgRVNQX1JF R1MpOwogICAgIG1lbXNldChzLT53cmVncywgMCwgRVNQX1JFR1MpOwogICAgIHMtPnJyZWdz W0VTUF9UQ0hJXSA9IFRDSElfRkFTMTAwQTsgLy8gSW5kaWNhdGUgZmFzMTAwYQpAQCAtNDE1 LDcgKzQzMyw3IEBADQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBz LT5ycmVnc1tFU1BfRklGT10gPSBzLT50aV9idWZbcy0+dGlfcnB0cisrXTsKICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgIHFlbXVfaXJxX3JhaXNlKHMtPmlycSk7CisgICAgICAgICAg ICBlc3BfcmFpc2VfaXJxKHMpOwogICAgICAgICB9CiAgICAgICAgIGlmIChzLT50aV9zaXpl ID09IDApIHsKICAgICAgICAgICAgIHMtPnRpX3JwdHIgPSAwOwpAQCAtNDI0LDggKzQ0Miw4 IEBADQogICAgICAgICBicmVhazsKICAgICBjYXNlIEVTUF9SSU5UUjoKICAgICAgICAgLy8g Q2xlYXIgaW50ZXJydXB0L2Vycm9yIHN0YXR1cyBiaXRzCi0gICAgICAgIHMtPnJyZWdzW0VT UF9SU1RBVF0gJj0gfihTVEFUX0lOIHwgU1RBVF9HRSB8IFNUQVRfUEUpOwotICAgICAgICBx ZW11X2lycV9sb3dlcihzLT5pcnEpOworICAgICAgICBzLT5ycmVnc1tFU1BfUlNUQVRdICY9 IH4oU1RBVF9HRSB8IFNUQVRfUEUpOworICAgICAgICBlc3BfbG93ZXJfaXJxKHMpOwogICAg ICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTQ4Nyw3ICs1 MDUsNyBAQA0KICAgICAgICAgICAgIERQUklOVEYoIkJ1cyByZXNldCAoJTIuMngpXG4iLCB2 YWwpOwogICAgICAgICAgICAgcy0+cnJlZ3NbRVNQX1JJTlRSXSA9IElOVFJfUlNUOwogICAg ICAgICAgICAgaWYgKCEocy0+d3JlZ3NbRVNQX0NGRzFdICYgQ0ZHMV9SRVNSRVBUKSkgewot ICAgICAgICAgICAgICAgIHFlbXVfaXJxX3JhaXNlKHMtPmlycSk7CisgICAgICAgICAgICAg ICAgZXNwX3JhaXNlX2lycShzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICBjYXNlIENNRF9USToK --------------030100050801050704060600--