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 config NXWM_TOUCHSCREEN_LISTENERPRIO
int "Touchscreen Listener Task Priority" int "Touchscreen Listener Task Priority"
default 100 default 120
---help--- ---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 config NXWM_TOUCHSCREEN_LISTENERSTACK
int "Touchscreen Listener Task Stack Size" int "Touchscreen Listener Task Stack Size"
@ -870,9 +872,12 @@ config NXWM_KEYBOARD_BUFSIZE
config NXWM_KEYBOARD_LISTENERPRIO config NXWM_KEYBOARD_LISTENERPRIO
int "Keyboard Listener Task Priority" int "Keyboard Listener Task Priority"
default 100 default 120
---help--- ---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 config NXWM_KEYBOARD_LISTENERSTACK
int "Keyboard Listener Task Stack Size" 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_VPLANE - Only a single video plane is supported. Default: 0
* CONFIG_NXWIDGETS_SERVERPRIO - Priority of the NX server. This applies * CONFIG_NXWIDGETS_SERVERPRIO - Priority of the NX server. This applies
* only if NX is configured in multi-user mode (CONFIG_NX_MULTIUSER=y). * 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 * definitions here, CONFIG_NXWIDGETS_SERVERPRIO should have the highest
* priority to avoid data overrun race conditions. Such errors would most * priority to avoid data overrun race conditions. Such errors would most
* likely appear as duplicated rows of data on the display. * likely appear as duplicated rows of data on the display.
@ -214,7 +214,7 @@
*/ */
#ifndef CONFIG_NXWIDGETS_SERVERPRIO #ifndef CONFIG_NXWIDGETS_SERVERPRIO
# define CONFIG_NXWIDGETS_SERVERPRIO (SCHED_PRIORITY_DEFAULT+1) # define CONFIG_NXWIDGETS_SERVERPRIO (SCHED_PRIORITY_DEFAULT+10)
#endif #endif
#ifndef CONFIG_NXWIDGETS_CLIENTPRIO #ifndef CONFIG_NXWIDGETS_CLIENTPRIO

View File

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

View File

@ -363,10 +363,12 @@ FAR void *CTouchscreen::listener(FAR void *arg)
#endif #endif
} }
// On a truly success read, the size of the returned data will // On a truly successful read, the size of the returned data will
// be exactly the size of one touchscreen sample // 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 // Looks like good touchscreen input... process it
@ -375,7 +377,7 @@ FAR void *CTouchscreen::listener(FAR void *arg)
else else
{ {
dbg("ERROR Unexpected read size=%d, expected=%d\n", dbg("ERROR Unexpected read size=%d, expected=%d\n",
nbytes, sizeof(struct touch_sample_s)); nbytes, sizeof(struct touch_sample_s));
} }
} }