ps/2 elantech: Split get_elantech_movement into 2 functions
Keep separated common code from specific v4 code leaving room for implementing other versions on another stage. Change-Id: I7e02a395a867c79fcf646125d41add77626d2cac Reviewed-on: https://review.haiku-os.org/c/haiku/+/9932 Reviewed-by: waddlesplash <[email protected]> Reviewed-by: Adrien Destugues <[email protected]> Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
committed by
Adrien Destugues
parent
5578783036
commit
82678d33d6
@@ -70,10 +70,14 @@ const char* kElantechPath[4] = {
|
||||
static touchpad_specs gHardwareSpecs;
|
||||
|
||||
|
||||
static status_t
|
||||
elantech_process_packet_v4(elantech_cookie *cookie, touchpad_movement *_event,
|
||||
uint8 packet[PS2_PACKET_ELANTECH]);
|
||||
|
||||
|
||||
static status_t
|
||||
get_elantech_movement(elantech_cookie *cookie, touchpad_movement *_event, bigtime_t timeout)
|
||||
{
|
||||
touchpad_movement event;
|
||||
uint8 packet[PS2_PACKET_ELANTECH];
|
||||
|
||||
status_t status = acquire_sem_etc(cookie->sem, 1, B_CAN_INTERRUPT | B_RELATIVE_TIMEOUT,
|
||||
@@ -92,6 +96,16 @@ get_elantech_movement(elantech_cookie *cookie, touchpad_movement *_event, bigtim
|
||||
return B_ERROR;
|
||||
}
|
||||
|
||||
return elantech_process_packet_v4(cookie, _event, packet);
|
||||
}
|
||||
|
||||
|
||||
static status_t
|
||||
elantech_process_packet_v4(elantech_cookie *cookie, touchpad_movement *_event,
|
||||
uint8 packet[PS2_PACKET_ELANTECH])
|
||||
{
|
||||
touchpad_movement event;
|
||||
|
||||
if (cookie->crcEnabled && (packet[3] & 0x08) != 0) {
|
||||
TRACE("ELANTECH: bad crc buffer\n");
|
||||
return B_ERROR;
|
||||
@@ -155,7 +169,7 @@ get_elantech_movement(elantech_cookie *cookie, touchpad_movement *_event, bigtim
|
||||
event.fingerWidth = cookie->fingers == 1 ? 4 :0;
|
||||
|
||||
*_event = event;
|
||||
return status;
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user