From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Dmitry Torokhov" Subject: Re: [PATCH 4/4] xpad.c - fixed report for dpad and inverted Y and RY axes Date: Mon, 11 Jun 2007 10:36:43 -0400 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_60640_21041676.1181572603557" Return-path: In-Reply-To: Sender: owner-linux-input@atrey.karlin.mff.cuni.cz List-Help: List-Owner: List-Post: List-Unsubscribe: To: Jan Kratochvil Cc: linux-input@atrey.karlin.mff.cuni.cz, Brian Magnuson List-Id: linux-input@vger.kernel.org ------=_Part_60640_21041676.1181572603557 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, Sorry for disappearmign on you guys... On 6/3/07, Jan Kratochvil wrote: > Fixed input report handling for xbox 360 controller. > Y/RY up is now positive and down negative. > DPAD report fixed. I have some concerns over this patch - when mapping dpad to buttons your new mapping follows mapping for classic xbox; however it is still different when mapping dpad to axes so this is suspicious. Could you please try the attached patch and tell me if it works for you? Also, please avoid constructs like this: > + input_report_abs(dev, ABS_HAT0Y, !!((data[2] & 0x08) >> 3) - !!((data[2] & 0x04) >> 2)); Doing shift is meaningles if you convert result to 0/1. I.e. it is exactly the same as !!(data[2] & 0x08) - !!(data[2] &0x04). Thank you. -- Dmitry ------=_Part_60640_21041676.1181572603557 Content-Type: text/plain; name=xpad-fix-mapping-for-360.patch; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f2t1t1ni Content-Disposition: attachment; filename="xpad-fix-mapping-for-360.patch" LS0tCiBkcml2ZXJzL2lucHV0L2pveXN0aWNrL3hwYWQuYyB8ICAgNDAgKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMo KyksIDIwIGRlbGV0aW9ucygtKQoKSW5kZXg6IGxpbnV4L2RyaXZlcnMvaW5wdXQvam95c3RpY2sv eHBhZC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGxpbnV4Lm9yaWcvZHJpdmVycy9pbnB1dC9qb3lzdGljay94 cGFkLmMKKysrIGxpbnV4L2RyaXZlcnMvaW5wdXQvam95c3RpY2sveHBhZC5jCkBAIC0yMzYsOCAr MjM2LDggQEAgc3RhdGljIHZvaWQgeHBhZF9wcm9jZXNzX3BhY2tldChzdHJ1Y3QgdQogCX0gZWxz ZSAvKiB4cGFkLT5kcGFkX21hcHBpbmcgPT0gTUFQX0RQQURfVE9fQlVUVE9OUyAqLyB7CiAJCWlu cHV0X3JlcG9ydF9rZXkoZGV2LCBCVE5fTEVGVCwgIGRhdGFbMl0gJiAweDA0KTsKIAkJaW5wdXRf cmVwb3J0X2tleShkZXYsIEJUTl9SSUdIVCwgZGF0YVsyXSAmIDB4MDgpOwotCQlpbnB1dF9yZXBv cnRfa2V5KGRldiwgQlROXzAsICAgICBkYXRhWzJdICYgMHgwMSk7IC8vIHVwCi0JCWlucHV0X3Jl cG9ydF9rZXkoZGV2LCBCVE5fMSwgICAgIGRhdGFbMl0gJiAweDAyKTsgLy8gZG93bgorCQlpbnB1 dF9yZXBvcnRfa2V5KGRldiwgQlROXzAsICAgICBkYXRhWzJdICYgMHgwMSk7IC8qIHVwICovCisJ CWlucHV0X3JlcG9ydF9rZXkoZGV2LCBCVE5fMSwgICAgIGRhdGFbMl0gJiAweDAyKTsgLyogZG93 biAqLwogCX0KIAogCS8qIHN0YXJ0L2JhY2sgYnV0dG9ucyBhbmQgc3RpY2sgcHJlc3MgbGVmdC9y aWdodCAqLwpAQCAtMjc1LDQwICsyNzUsNDAgQEAgc3RhdGljIHZvaWQgeHBhZDM2MF9wcm9jZXNz X3BhY2tldChzdHJ1YwogCiAJLyogZGlnaXRhbCBwYWQgKi8KIAlpZiAoeHBhZC0+ZHBhZF9tYXBw aW5nID09IE1BUF9EUEFEX1RPX0FYRVMpIHsKLQkJaW5wdXRfcmVwb3J0X2FicyhkZXYsIEFCU19I QVQwWCwgISEoZGF0YVsyXSAmIDB4MDEpIC0gISEoKGRhdGFbMl0gJiAweDA4KSA+PiAzKSk7Ci0J CWlucHV0X3JlcG9ydF9hYnMoZGV2LCBBQlNfSEFUMFksICEhKChkYXRhWzJdICYgMHgwMikgPj4g MSkgLSAhISgoZGF0YVsyXSAmIDB4MDQpID4+IDIpKTsKLQl9IGVsc2UgaWYgKCB4cGFkLT5kcGFk X21hcHBpbmcgPT0gTUFQX0RQQURfVE9fQlVUVE9OUyApIHsKKwkJaW5wdXRfcmVwb3J0X2Ficyhk ZXYsIEFCU19IQVQwWCwgISEoZGF0YVsyXSAmIDB4MDgpIC0gISEoZGF0YVsyXSAmIDB4MDQpKTsK KwkJaW5wdXRfcmVwb3J0X2FicyhkZXYsIEFCU19IQVQwWSwgISEoZGF0YVsyXSAmIDB4MDIpIC0g ISEoZGF0YVsyXSAmIDB4MDEpKTsKKwl9IGVsc2UgaWYgKHhwYWQtPmRwYWRfbWFwcGluZyA9PSBN QVBfRFBBRF9UT19CVVRUT05TKSB7CiAJCS8qIGRwYWQgYXMgYnV0dG9ucyAocmlnaHQsIGxlZnQs IGRvd24sIHVwKSAqLwotCQlpbnB1dF9yZXBvcnRfa2V5KGRldiwgQlROX1JJR0hULCAoZGF0YVsy XSAmIDB4MDEpKTsKLQkJaW5wdXRfcmVwb3J0X2tleShkZXYsIEJUTl9MRUZULCAoZGF0YVsyXSAm IDB4MDgpID4+IDMpOwotCQlpbnB1dF9yZXBvcnRfa2V5KGRldiwgQlROXzAsIChkYXRhWzJdICYg MHgwMikgPj4gMSk7Ci0JCWlucHV0X3JlcG9ydF9rZXkoZGV2LCBCVE5fMSwgKGRhdGFbMl0gJiAw eDA0KSA+PiAyKTsKKwkJaW5wdXRfcmVwb3J0X2tleShkZXYsIEJUTl9MRUZULCBkYXRhWzJdICYg MHgwNCk7CisJCWlucHV0X3JlcG9ydF9rZXkoZGV2LCBCVE5fUklHSFQsIGRhdGFbMl0gJiAweDA4 KTsKKwkJaW5wdXRfcmVwb3J0X2tleShkZXYsIEJUTl8wLCBkYXRhWzJdICYgMHgwMSk7CS8qIHVw ICovCisJCWlucHV0X3JlcG9ydF9rZXkoZGV2LCBCVE5fMSwgZGF0YVsyXSAmIDB4MDIpOwkvKiBk b3duICovCiAJfQogCiAJLyogc3RhcnQvYmFjayBidXR0b25zICovCi0JaW5wdXRfcmVwb3J0X2tl eShkZXYsIEJUTl9TVEFSVCwgIChkYXRhWzJdICYgMHgxMCkgPj4gNCk7Ci0JaW5wdXRfcmVwb3J0 X2tleShkZXYsIEJUTl9CQUNLLCAgIChkYXRhWzJdICYgMHgyMCkgPj4gNSk7CisJaW5wdXRfcmVw b3J0X2tleShkZXYsIEJUTl9TVEFSVCwgIGRhdGFbMl0gJiAweDEwKTsKKwlpbnB1dF9yZXBvcnRf a2V5KGRldiwgQlROX0JBQ0ssICAgZGF0YVsyXSAmIDB4MjApOwogCiAJLyogc3RpY2sgcHJlc3Mg bGVmdC9yaWdodCAqLwogCWlucHV0X3JlcG9ydF9rZXkoZGV2LCBCVE5fVEhVTUJMLCBkYXRhWzJd ICYgMHg0MCk7CiAJaW5wdXRfcmVwb3J0X2tleShkZXYsIEJUTl9USFVNQlIsIGRhdGFbMl0gJiAw eDgwKTsKIAogCS8qIGJ1dHRvbnMgQSxCLFgsWSxUTCxUUiBhbmQgTU9ERSAqLwotCWlucHV0X3Jl cG9ydF9rZXkoZGV2LCBCVE5fQSwgKGRhdGFbM10gJiAweDEwKSA+PiA0KTsKLQlpbnB1dF9yZXBv cnRfa2V5KGRldiwgQlROX0IsIChkYXRhWzNdICYgMHgyMCkgPj4gNSk7Ci0JaW5wdXRfcmVwb3J0 X2tleShkZXYsIEJUTl9YLCAoZGF0YVszXSAmIDB4NDApID4+IDYpOwotCWlucHV0X3JlcG9ydF9r ZXkoZGV2LCBCVE5fWSwgKGRhdGFbM10gJiAweDgwKSA+PiA3KTsKLQlpbnB1dF9yZXBvcnRfa2V5 KGRldiwgQlROX1RMLCBkYXRhWzNdICYgMHgwMSApOwotCWlucHV0X3JlcG9ydF9rZXkoZGV2LCBC VE5fVFIsIChkYXRhWzNdICYgMHgwMikgPj4gMSk7Ci0JaW5wdXRfcmVwb3J0X2tleShkZXYsIEJU Tl9NT0RFLCAoZGF0YVszXSAmIDB4MDQpID4+IDIpOworCWlucHV0X3JlcG9ydF9rZXkoZGV2LCBC VE5fQSwJZGF0YVszXSAmIDB4MTApOworCWlucHV0X3JlcG9ydF9rZXkoZGV2LCBCVE5fQiwJZGF0 YVszXSAmIDB4MjApOworCWlucHV0X3JlcG9ydF9rZXkoZGV2LCBCVE5fWCwJZGF0YVszXSAmIDB4 NDApOworCWlucHV0X3JlcG9ydF9rZXkoZGV2LCBCVE5fWSwJZGF0YVszXSAmIDB4ODApOworCWlu cHV0X3JlcG9ydF9rZXkoZGV2LCBCVE5fVEwsCWRhdGFbM10gJiAweDAxKTsKKwlpbnB1dF9yZXBv cnRfa2V5KGRldiwgQlROX1RSLAlkYXRhWzNdICYgMHgwMik7CisJaW5wdXRfcmVwb3J0X2tleShk ZXYsIEJUTl9NT0RFLAlkYXRhWzNdICYgMHgwNCk7CiAKIAkvKiBsZWZ0IHN0aWNrICovCiAJaW5w dXRfcmVwb3J0X2FicyhkZXYsIEFCU19YLCAoX19zMTYpICgoKF9fczE2KWRhdGFbN10gPDwgOCkg fCAoX19zMTYpZGF0YVs2XSkpOwotCWlucHV0X3JlcG9ydF9hYnMoZGV2LCBBQlNfWSwgfihfX3Mx NikgKCgoX19zMTYpZGF0YVs5XSA8PCA4KSB8IChfX3MxNilkYXRhWzhdKSk7CisJaW5wdXRfcmVw b3J0X2FicyhkZXYsIEFCU19ZLCAoX19zMTYpICgoKF9fczE2KWRhdGFbOV0gPDwgOCkgfCAoX19z MTYpZGF0YVs4XSkpOwogCiAJLyogcmlnaHQgc3RpY2sgKi8KLQlpbnB1dF9yZXBvcnRfYWJzKGRl diwgQUJTX1JZLCB+KF9fczE2KSAoKChfX3MxNilkYXRhWzEzXSA8PCA4KSB8IChfX3MxNilkYXRh WzEyXSkpOwogCWlucHV0X3JlcG9ydF9hYnMoZGV2LCBBQlNfUlgsIChfX3MxNikgKCgoX19zMTYp ZGF0YVsxMV0gPDwgOCkgfCAoX19zMTYpZGF0YVsxMF0pKTsKKwlpbnB1dF9yZXBvcnRfYWJzKGRl diwgQUJTX1JZLCAoX19zMTYpICgoKF9fczE2KWRhdGFbMTNdIDw8IDgpIHwgKF9fczE2KWRhdGFb MTJdKSk7CiAKIAkvKiB0cmlnZ2VycyBsZWZ0L3JpZ2h0ICovCiAJaW5wdXRfcmVwb3J0X2Ficyhk ZXYsIEFCU19aLCBkYXRhWzRdKTsK ------=_Part_60640_21041676.1181572603557--