NxWM: Increase default priority of mouse and keyboard listener threads. Does not seem to make any difference but still seems like a good idea

This commit is contained in:
Gregory Nutt 2014-07-17 15:06:05 -06:00
parent 087ab16b6d
commit 689797562f
4 changed files with 25 additions and 14 deletions

13
Kconfig
View File

@ -814,9 +814,11 @@ config NXWM_TOUCHSCREEN_SIGNO
config NXWM_TOUCHSCREEN_LISTENERPRIO
int "Touchscreen Listener Task Priority"
default 100
default 120
---help---
Priority of the touchscreen listener thread. Default: 100
Priority of the touchscreen listener thread. This listener should
have a higher priority than most display-related tsks otherwise it
may miss touchscreen events. Default: 120
config NXWM_TOUCHSCREEN_LISTENERSTACK
int "Touchscreen Listener Task Stack Size"
@ -870,9 +872,12 @@ config NXWM_KEYBOARD_BUFSIZE
config NXWM_KEYBOARD_LISTENERPRIO
int "Keyboard Listener Task Priority"
default 100
default 120
---help---
Priority of the touchscreen listener thread. Default: 100
Priority of the touchscreen listener thread.This listener should
have a higher priority than most display-related tsks otherwise it
may miss touchscreen events (not really very likely because keyboard
input is relatively slow). Default: 120
config NXWM_KEYBOARD_LISTENERSTACK
int "Keyboard Listener Task Stack Size"

View File

@ -68,7 +68,7 @@
* CONFIG_NXWIDGETS_VPLANE - Only a single video plane is supported. Default: 0
* CONFIG_NXWIDGETS_SERVERPRIO - Priority of the NX server. This applies
* only if NX is configured in multi-user mode (CONFIG_NX_MULTIUSER=y).
* Default: SCHED_PRIORITY_DEFAULT+1. NOTE: Of the three priority
* Default: (SCHED_PRIORITY_DEFAULT+10). NOTE: Of the three priority
* definitions here, CONFIG_NXWIDGETS_SERVERPRIO should have the highest
* priority to avoid data overrun race conditions. Such errors would most
* likely appear as duplicated rows of data on the display.
@ -214,7 +214,7 @@
*/
#ifndef CONFIG_NXWIDGETS_SERVERPRIO
# define CONFIG_NXWIDGETS_SERVERPRIO (SCHED_PRIORITY_DEFAULT+1)
# define CONFIG_NXWIDGETS_SERVERPRIO (SCHED_PRIORITY_DEFAULT+10)
#endif
#ifndef CONFIG_NXWIDGETS_CLIENTPRIO

View File

@ -429,7 +429,7 @@
* CONFIG_NXWM_TOUCHSCREEN_SIGNO - The realtime signal used to wake up the
* touchscreen listener thread. Default: 5
* CONFIG_NXWM_TOUCHSCREEN_LISTENERPRIO - Priority of the touchscreen listener
* thread. Default: SCHED_PRIORITY_DEFAULT
* thread. Default: (SCHED_PRIORITY_DEFAULT + 20)
* CONFIG_NXWM_TOUCHSCREEN_LISTENERSTACK - Touchscreen listener thread stack
* size. Default 1024
*/
@ -447,7 +447,11 @@
#endif
#ifndef CONFIG_NXWM_TOUCHSCREEN_LISTENERPRIO
# define CONFIG_NXWM_TOUCHSCREEN_LISTENERPRIO SCHED_PRIORITY_DEFAULT
# define CONFIG_NXWM_TOUCHSCREEN_LISTENERPRIO (SCHED_PRIORITY_DEFAULT + 20)
#endif
#if CONFIG_NXWM_TOUCHSCREEN_LISTENERPRIO <= CONFIG_NXWM_CALIBRATION_LISTENERPRIO
# warning You should have CONFIG_NXWM_TOUCHSCREEN_LISTENERPRIO > CONFIG_NXWM_CALIBRATION_LISTENERPRIO
#endif
#ifndef CONFIG_NXWM_TOUCHSCREEN_LISTENERSTACK
@ -465,7 +469,7 @@
* CONFIG_NXWM_KEYBOARD_BUFSIZE - The size of the keyboard read data buffer.
* Default: 16
* CONFIG_NXWM_KEYBOARD_LISTENERPRIO - Priority of the touchscreen listener
* thread. Default: SCHED_PRIORITY_DEFAULT
* thread. Default: (SCHED_PRIORITY_DEFAULT + 20)
* CONFIG_NXWM_KEYBOARD_LISTENERSTACK - Keyboard listener thread stack
* size. Default 1024
*/
@ -483,7 +487,7 @@
#endif
#ifndef CONFIG_NXWM_KEYBOARD_LISTENERPRIO
# define CONFIG_NXWM_KEYBOARD_LISTENERPRIO SCHED_PRIORITY_DEFAULT
# define CONFIG_NXWM_KEYBOARD_LISTENERPRIO (SCHED_PRIORITY_DEFAULT + 20)
#endif
#ifndef CONFIG_NXWM_KEYBOARD_LISTENERSTACK

View File

@ -363,10 +363,12 @@ FAR void *CTouchscreen::listener(FAR void *arg)
#endif
}
// On a truly success read, the size of the returned data will
// be exactly the size of one touchscreen sample
// On a truly successful read, the size of the returned data will
// be greater than or equal to size of one touchscreen sample. It
// be greater only in the case of a multi-touch touchscreen device
// when multi-touches are reported.
else if (nbytes == sizeof(struct touch_sample_s))
else if (nbytes >= (ssize_t)sizeof(struct touch_sample_s))
{
// Looks like good touchscreen input... process it
@ -375,7 +377,7 @@ FAR void *CTouchscreen::listener(FAR void *arg)
else
{
dbg("ERROR Unexpected read size=%d, expected=%d\n",
nbytes, sizeof(struct touch_sample_s));
nbytes, sizeof(struct touch_sample_s));
}
}