From owner-freebsd-usb@FreeBSD.ORG Fri Jan 31 01:46:27 2014 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6540556C; Fri, 31 Jan 2014 01:46:27 +0000 (UTC) Received: from mail-bk0-x234.google.com (mail-bk0-x234.google.com [IPv6:2a00:1450:4008:c01::234]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 627AE1B7D; Fri, 31 Jan 2014 01:46:26 +0000 (UTC) Received: by mail-bk0-f52.google.com with SMTP id e11so1970370bkh.11 for ; Thu, 30 Jan 2014 17:46:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=ZR73kcjTzayDvveO3zysag5A00nwuX9Nj2Gcz01z+/c=; b=vsi/YGH1rI6vLu+EIV6R4m/HU0p3mkBV2cZQjw1nQz0HeHoCJd+tDfk+G9pGgqfuEY 7QIGRnDclyTrbdzthMR4ScKkZc+cO+689uMQbYkpJNPjTrJLLOojxJDCO+y0Hf9C9Y3s 7uDJ9VY2v6F6Wh3I60zauSgeVK0CzDE+Q0rS65vXLbYZx8AKCQcS9FArifelT9adF+6P he3pcNMI9yYm/xgkBmgkRUJsw72WdDId1Ogpk88N0BW5Qes85Y4XSryqnHnyWM/H7FuK HV3BYAkAxTkUpS2/rP5Cy9BbiDimKWIlubZyINTyBUgBVHBLq6DxjPPRaaf2v8djaZ2F x89Q== MIME-Version: 1.0 X-Received: by 10.112.56.237 with SMTP id d13mr11229181lbq.2.1391132784517; Thu, 30 Jan 2014 17:46:24 -0800 (PST) Received: by 10.112.89.168 with HTTP; Thu, 30 Jan 2014 17:46:24 -0800 (PST) In-Reply-To: <52E9F546.9090005@bitfrost.no> References: <52E8DDA3.3070301@bitfrost.no> <52E9F546.9090005@bitfrost.no> Date: Fri, 31 Jan 2014 09:46:24 +0800 Message-ID: Subject: Re: Apple Trackpad driver From: Huang Wen Hui To: Hans Petter Selasky Content-Type: multipart/mixed; boundary=001a1133a92274fe5a04f13a57f8 X-Content-Filtered-By: Mailman/MimeDel 2.1.17 Cc: "kwm@freebsd.org" , freebsd-current , "freebsd-usb@freebsd.org" X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list Reply-To: huanghwh@gmail.com List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jan 2014 01:46:27 -0000 --001a1133a92274fe5a04f13a57f8 Content-Type: text/plain; charset=UTF-8 Hi Hans, pos_x[] is not non-inialized, it may be previous pos_x, it is still ok for getting dx. "n" var is trying to reduce "untouch" sensor data for post proccessing. I attach a new patch may be more clear, also fixed unexpected movement when button status or ntouch changing. Cheers, Huang Wen Hui 2014-01-30 Hans Petter Selasky : > Hi Huang, > > > On 01/30/14 06:56, Huang Wen Hui wrote: > >> Hans, >> >> Thanks for you take care of it and commit it! I found two problems: >> >> 1. The selection is not expected when selection with 2 fingers sometimes. >> 2. Unexpected scrolling when Click with 2 fingers. >> >> This patch can fix that. The var "n" modify to "ntouch" seems to be >> necessary. >> >> > Right, but aren't we then accessing non-initialised sc->pos_x[] data ? > > Because if ntouch == 2, n can be less than or equal to 2, due to continue > in for-loop above. What is the purpose of the "n" variable? > > Can you explain? > > - if (n == 2) { > + if (ntouch == 2) { > sc->distance = max(sc->distance, max( > abs(sc->pos_x[0] - sc->pos_x[1]), > abs(sc->pos_y[0] - sc->pos_y[1]))); > > --HPS > > >> Cheers, >> Huang Wen Hui >> >> >> 2014-01-29 Hans Petter Selasky >> >> On 01/29/14 09:49, Lundberg, Johannes wrote: >>> >>> Hi >>>> >>>> I tested the driver on a 2012 Macbook Air 11" and it works great! Good >>>> job! >>>> >>>> Is there a way to disable click-by-touch? I always preferred clicking >>>> with >>>> the physical button that is built in to the pad. >>>> >>>> >>>> Hi, >>> >>> I've added an "#if 0" around the 1 finger tap code until further. Maybe >>> this feature can be tunable? >>> >>> I fixed the code style, added some range checks and cleared some buffer >>> issues. >>> >>> When you assign a signed value to an unsigned variable, you should range >>> check it, because the sign might cause an overflow when you use it later >>> on. >>> >>> int8_t x = -1; >>> >>> uint32_t t = x; >>> >>> "t" is now "0xffffffffU" and not "255". >>> >>> Tested the code on my MacBookPro. Hope I didn't break anything. If so, >>> send a patch to freebsd-usb. >>> >>> http://svnweb.freebsd.org/changeset/base/261260 >>> >>> To get the touchpad working with Xorg, I needed to re-compile HALD with >>> the attached patch. >>> >>> kwm: Can you get the attached patch into ports? >>> >>> Auto-loading of wsp via devd will be done later. Simply need to >>> re-generate usb.conf in /etc ... >>> >>> --HPS >>> >>> >>> >>> >>> _______________________________________________ >>> freebsd-current@freebsd.org mailing list >>> http://lists.freebsd.org/mailman/listinfo/freebsd-current >>> To unsubscribe, send any mail to "freebsd-current-unsubscribe@ >>> freebsd.org" >>> >> > --001a1133a92274fe5a04f13a57f8 Content-Type: text/plain; charset=US-ASCII; name="wsp.diff" Content-Disposition: attachment; filename="wsp.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hr2sjazj0 LS0tIHdzcC5jLm9yaWcJMjAxNC0wMS0zMCAwODoxNDoyNi4wMDAwMDAwMDAgKzA4MDAKKysrIHdz cC5jCTIwMTQtMDEtMzEgMDk6NDQ6MDIuMDAwMDAwMDAwICswODAwCkBAIC02MDUsNyArNjA1LDgg QEAKIAlpbnQJZHpfY291bnQ7CiAjZGVmaW5lCVdTUF9EWl9NQVhfQ09VTlQJMzIKIAlpbnQJZHRf c3VtOwkJCS8qIFQtYXhpcyBjdW11bGF0aXZlIG1vdmVtZW50ICovCi0KKwkKKwl1aW50OF90IG9f bnRvdWNoOwkJLyogb2xkIHRvdWNoIGZpbmdlciBzdGF0dXMgKi8KIAl1aW50OF90CWZpbmdlcjsJ CQkvKiAwIG9yIDEgKiwgY2hlY2sgd2hpY2ggZmluZ2VyIG1vdmluZyAqLwogCXVpbnQxNl90IGlu dHJfY291bnQ7CiAjZGVmaW5lCVdTUF9UQVBfVEhSRVNIT0xECTMKQEAgLTg3MSw3ICs4NzIsNiBA QAogCWludCBkeCA9IDA7CiAJaW50IGR5ID0gMDsKIAlpbnQgZHogPSAwOwotCWludCBuID0gMDsK IAlpbnQgbGVuOwogCWludCBpOwogCkBAIC05MzYsMTMgKzkzNiw5IEBACiAJCQkgICAgZltpXS50 b29sX21ham9yLCBmW2ldLnRvb2xfbWlub3IsIGZbaV0ub3JpZW50YXRpb24sCiAJCQkgICAgZltp XS50b3VjaF9tYWpvciwgZltpXS50b3VjaF9taW5vciwgZltpXS5tdWx0aSk7CiAKLQkJCWlmIChm W2ldLnRvdWNoX21ham9yIDwgdHVuLnByZXNzdXJlX3VudG91Y2hfdGhyZXNob2xkKQotCQkJCWNv bnRpbnVlOwotCi0JCQlzYy0+cG9zX3hbbl0gPSBmW2ldLmFic194OwotCQkJc2MtPnBvc195W25d ID0gcGFyYW1zLT55Lm1pbiArIHBhcmFtcy0+eS5tYXggLSBmW2ldLmFic195OwotCQkJc2MtPmlu ZGV4W25dID0gJmZbaV07Ci0JCQluKys7CisJCQlzYy0+cG9zX3hbaV0gPSBmW2ldLmFic194Owor CQkJc2MtPnBvc195W2ldID0gcGFyYW1zLT55Lm1pbiArIHBhcmFtcy0+eS5tYXggLSBmW2ldLmFi c195OworCQkJc2MtPmluZGV4W2ldID0gJmZbaV07CiAJCX0KIAogCQlzYy0+c2Nfc3RhdHVzLmZs YWdzICY9IH5NT1VTRV9QT1NDSEFOR0VEOwpAQCAtOTU3LDggKzk1Myw4IEBACiAJCWlmIChoLT5x MiA9PSA0KQogCQkJc2MtPmludHJfY291bnQrKzsKIAotCQlpZiAoc2MtPm50YXBzIDwgbikgewot CQkJc3dpdGNoIChuKSB7CisJCWlmIChzYy0+bnRhcHMgPCBudG91Y2gpIHsKKwkJCXN3aXRjaCAo bnRvdWNoKSB7CiAJCQljYXNlIDE6CiAJCQkJaWYgKGZbMF0udG91Y2hfbWFqb3IgPiB0dW4ucHJl c3N1cmVfdGFwX3RocmVzaG9sZCkKIAkJCQkJc2MtPm50YXBzID0gMTsKQEAgLTk3OCw3ICs5NzQs NyBAQAogCQkJCWJyZWFrOwogCQkJfQogCQl9Ci0JCWlmIChuID09IDIpIHsKKwkJaWYgKG50b3Vj aCA9PSAyKSB7CiAJCQlzYy0+ZGlzdGFuY2UgPSBtYXgoc2MtPmRpc3RhbmNlLCBtYXgoCiAJCQkg ICAgYWJzKHNjLT5wb3NfeFswXSAtIHNjLT5wb3NfeFsxXSksCiAJCQkgICAgYWJzKHNjLT5wb3Nf eVswXSAtIHNjLT5wb3NfeVsxXSkpKTsKQEAgLTEwNTAsMTUgKzEwNDYsMzMgQEAKIAkJCWlmIChz Yy0+c2NfdG91Y2ggPT0gV1NQX1NFQ09ORF9UT1VDSCkKIAkJCQlzYy0+c2NfdG91Y2ggPSBXU1Bf VE9VQ0hJTkc7CiAKLQkJCWlmIChuICE9IDAgJiYKKwkJCWlmIChudG91Y2ggIT0gMCAmJgogCQkJ ICAgIGgtPnEyID09IDQgJiYKIAkJCSAgICBmWzBdLnRvdWNoX21ham9yID49IHR1bi5wcmVzc3Vy ZV90b3VjaF90aHJlc2hvbGQpIHsKIAkJCQlkeCA9IHNjLT5wb3NfeFswXSAtIHNjLT5wcmVfcG9z X3g7CiAJCQkJZHkgPSBzYy0+cG9zX3lbMF0gLSBzYy0+cHJlX3Bvc195OwotCQkJCWlmIChuID09 IDIgJiYgc2MtPnNjX3N0YXR1cy5idXR0b24gIT0gMCkgeworCisJCQkJLyogSWdub3JlIG1vdmVt ZW50IGZyb20gaWJ0PTEgdG8gaWJ0PTAgKi8KKwkJCQlpZiAoc2MtPnNjX3N0YXR1cy5vYnV0dG9u ICE9IDAgJiYgCisJCQkJICAgIHNjLT5zY19zdGF0dXMuYnV0dG9uID09IDApIHsKKwkJCQkJZHgg PSAwOworCQkJCQlkeSA9IDA7CisJCQkJfQorCQkJCS8qIElnbm9yZSBtb3ZlbWVudCBpZiBudG91 Y2ggY2hhbmdlZCAqLworCQkJCWlmIChzYy0+b19udG91Y2ggIT0gbnRvdWNoKSB7CisJCQkJCWR4 ID0gMDsKKwkJCQkJZHkgPSAwOworCQkJCX0KKworCQkJCWlmIChudG91Y2ggPT0gMiAmJiBzYy0+ c2Nfc3RhdHVzLmJ1dHRvbiAhPSAwKSB7CiAJCQkJCWR4ID0gc2MtPnBvc194W3NjLT5maW5nZXJd IC0gc2MtPnByZV9wb3NfeDsKIAkJCQkJZHkgPSBzYy0+cG9zX3lbc2MtPmZpbmdlcl0gLSBzYy0+ cHJlX3Bvc195OwotCQkJCQlpZiAoZlswXS5vcmlnaW4gPT0gMCB8fCBmWzFdLm9yaWdpbiA9PSAw KSB7CisJCQkJCQorCQkJCQkvKiBJZ25vcmUgbW92ZW1lbnQgb2Ygc3dpdGNoIGZpbmdlciBvcgor CQkJCQkgKiBtb3ZlbWVudCBmcm9tIGlidD0wIHRvIGlidD0xCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICovCisJCQkJCWlmIChmWzBdLm9yaWdpbiA9PSAwIHx8IGZb MV0ub3JpZ2luID09IDAgfHwKKwkJCQkJICAgIHNjLT5zY19zdGF0dXMub2J1dHRvbiAhPSBzYy0+ c2Nfc3RhdHVzLmJ1dHRvbikgewogCQkJCQkJZHggPSAwOwogCQkJCQkJZHkgPSAwOwogCQkJCQkJ c2MtPmZpbmdlciA9IDA7CkBAIC0xMDkyLDcgKzExMDYsNyBAQAogCQkJc2MtPmR4X3N1bSArPSBk eDsKIAkJCXNjLT5keV9zdW0gKz0gZHk7CiAKLQkJCWlmIChuID09IDIgJiYgc2MtPnNjX3N0YXR1 cy5idXR0b24gPT0gMCkgeworCQkJaWYgKG50b3VjaCA9PSAyICYmIHNjLT5zY19zdGF0dXMuYnV0 dG9uID09IDApIHsKIAkJCQlpZiAoc2MtPnNjcl9tb2RlID09IFdTUF9TQ1JfTk9ORSAmJgogCQkJ CSAgICBhYnMoc2MtPmR4X3N1bSkgKyBhYnMoc2MtPmR5X3N1bSkgPiA1MCkKIAkJCQkJc2MtPnNj cl9tb2RlID0gYWJzKHNjLT5keF9zdW0pID4KQEAgLTExMzQsMTAgKzExNDgsMTIgQEAKIAkJc2Mt PnByZV9wb3NfeCA9IHNjLT5wb3NfeFswXTsKIAkJc2MtPnByZV9wb3NfeSA9IHNjLT5wb3NfeVsw XTsKIAotCQlpZiAobiA9PSAyICYmIHNjLT5zY19zdGF0dXMuYnV0dG9uICE9IDApIHsKKwkJaWYg KG50b3VjaCA9PSAyICYmIHNjLT5zY19zdGF0dXMuYnV0dG9uICE9IDApIHsKIAkJCXNjLT5wcmVf cG9zX3ggPSBzYy0+cG9zX3hbc2MtPmZpbmdlcl07CiAJCQlzYy0+cHJlX3Bvc195ID0gc2MtPnBv c195W3NjLT5maW5nZXJdOwogCQl9CisJCXNjLT5vX250b3VjaCA9IG50b3VjaDsKKwogCWNhc2Ug VVNCX1NUX1NFVFVQOgogdHJfc2V0dXA6CiAJCS8qIGNoZWNrIGlmIHdlIGNhbiBwdXQgbW9yZSBk YXRhIGludG8gdGhlIEZJRk8gKi8K --001a1133a92274fe5a04f13a57f8--