Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Dec 2004 17:32:57 -0800
From:      Julian Elischer <julian@elischer.org>
To:        Ian Dowse <iedowse@maths.tcd.ie>
Cc:        Julian Elischer <julian@FreeBSD.org>
Subject:   Re: cvs commit: src/sys/sys mouse.h src/sys/dev/usb ums.c usbhid.h
Message-ID:  <41BCF149.3090801@elischer.org>
In-Reply-To: <41BCDE4D.3020902@elischer.org>
References:  <200412121411.aa89799@salmon.maths.tcd.ie> <41BCDE4D.3020902@elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Julian Elischer wrote:
> Ian Dowse wrote:

>>
>> As pointed out in the PR though, it doesn't seem necessary to change
>> struct mousestatus and the MOUSE_GETSTATUS ioctl API just to make
>> the device work. All other mouse drivers in the tree will need to
>> be updated to initialise the new `dt' field. 

ok that is changed back.


>> There's also one part
>> of the patch that looks as if it could easily break other devices:
>>
>>      ibuf = sc->sc_ibuf;
>>      if (sc->sc_iid) {
>> -        if (*ibuf++ != sc->sc_iid)
>> -            return;
>> +        ibuf++;
>>      }
>>  
>> +    /* The M$ Wireless Intellimouse 2.0 sends 1 extra leading byte of
>> +     * data compared to most USB mice. This byte frequently switches
>> +     * from 0x01 (usual state) to 0x02. I assume it is to allow
>> +     * extra, non-standard, reporting (say battery-life). However
>> +     * at the same time it generates a left-click message on the button
>> +     * byte which causes spurious left-click's where there shouldn't be.
>> +     * This should sort that. */
>> +    if ((sc->sc_ibuf != ibuf) && (sc->sc_ibuf[0] == 0x02)) +        
>> return;
>> +
>>      dx =  hid_get_data(ibuf, &sc->sc_loc_x);
>>      dy = -hid_get_data(ibuf, &sc->sc_loc_y);
>>      dz = -hid_get_data(ibuf, &sc->sc_loc_z);

I'm looking at this.. will treat it separatly from the ABI question.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41BCF149.3090801>