Ticket #3678: touchpad_reset_r29384.diff
File touchpad_reset_r29384.diff, 1.5 KB (added by , 15 years ago) |
---|
-
ps2_synaptics.c
630 630 status_t 631 631 synaptics_close(void *_cookie) 632 632 { 633 status_t status; 633 634 synaptics_cookie *cookie = _cookie; 634 635 635 636 ps2_dev_command_timeout(cookie->dev, PS2_CMD_DISABLE, NULL, 0, NULL, 0, … … 641 642 atomic_and(&cookie->dev->flags, ~PS2_FLAG_OPEN); 642 643 atomic_and(&cookie->dev->flags, ~PS2_FLAG_ENABLED); 643 644 645 // Reset the touchpad so it generate standard ps2 packets instead of 646 // extended ones. If not, BeOS is confused with such packets when rebooting 647 // without a complete shutdown. 648 status = ps2_reset_mouse(cookie->dev); 649 if (status != B_OK) { 650 INFO("ps2: reset failed\n"); 651 return B_ERROR; 652 } 653 644 654 if (gTouchpadInfo.capPassThrough) 645 655 ps2_service_notify_device_removed(gPassthroughDevice); 646 656 -
ps2_dev.c
66 66 }; 67 67 68 68 69 stat ic status_t69 status_t 70 70 ps2_reset_mouse(ps2_dev *dev) 71 71 { 72 72 uint8 data[2]; -
ps2_dev.h
74 74 status_t ps2_dev_command_timeout(ps2_dev *dev, uint8 cmd, const uint8 *out, 75 75 int out_count, uint8 *in, int in_count, bigtime_t timeout); 76 76 77 status_t ps2_reset_mouse(ps2_dev *dev); 78 77 79 void ps2_dev_publish(ps2_dev *dev); 78 80 void ps2_dev_unpublish(ps2_dev *dev); 79 81