Re: [PATCH] m68k: Fix atarimouse init

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Geert,

I still get no mouse events in either /dev/input/mice or .../mouse0, though. I 
suspect the mouse open hook never gets called. Same bug might affect amimouse 
(though the open function does do the full hardware setup there).

Thanks, we're making progress :-)

Sort of ... 
 
I get events from /dev/input/mouse0 and /dev/input/mice (atari_defconfig).

The kernel says (ARAnyM, windowed mode):
| input: Atari mouse as /devices/virtual/input/input1
| Reseting weird mouse packet: 942, 379, 0
| Reseting weird mouse packet: 943, 379, 0
| Reseting weird mouse packet: 945, 378, 0
| Reseting weird mouse packet: 948, 378, 0
| Reseting weird mouse packet: 956, 376, 0

That's the broken packets - the real ones shoule be fine (small x and y 
increments in byte 1 and 2, 0x8 in byte 0 unless button pressed).


When running X under ARAnyM (depth 16), some shortcomings show up:
  - up and down are interchanged (works fine when rolling the mouse over the
    bottom surface of the table --- old arabic map style ;-)

Weird - the inversion of the y direction increment is taken from the old 
busmouse driver code where it used to work OK. The point of reference is set to 
be at the top of the 'screen' so moving the mouse down ought to generate 
positive increments. I'll test that. If the point of reference changed between 
busmouse and generic input mouse, just drop the sign inversion on buf[2].

  - the left and right mouse button are interchanged

The busmouse driver had no annotation as to the semantics of the buttons so O 
guessed bit 0 was for the left button. Guessed wrong, it seems.

  - the middle mouse button is dead

As is expexcted - the original code was for a two-button mouse only. If Petr 
knows what the ikbd format for the third button is (on real hardware) it's easy 
to add that in. WAG: bit three of the first byte, so make 

buttons = (buf[0] & 1) | ((buf[0] & 2) << 1);

into

buttons = ((buf[0] & 1) << 2) | ((buf[0] & 2) >> 1) | ((buf[0] & 4) >> 1) ;

and give it a whirl!


Please put a `---' here, so `git am' will strip the signature and the diffstat.

OK, noted.
 
Signed-off-by: Michael Schmitz <schmitz@xxxxxxxxxx>

Please put the SoB just below the changelog, else `git am' will strip it off.

OK; I'll stick that into my commit message and try to get that into the diff. 

Cheers,

	Michael
 
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux