2022-11-01 21:10:32

by Osama Muhammad

[permalink] [raw]
Subject: [PATCH] Accessiblity: speakup_dtlk: specifying the default driver parameters among the module params

This is an enhancement which allows to specify the default driver
parameters among the module parameters.

Adding default variables to the speakup_dtlk module
allows to easily set that at boot, rather than
setting the sys variables after boot.
More details can be found here:
https://github.com/linux-speakup/speakup/issues/7

Signed-off-by: Osama Muhammad <[email protected]>

Reviewed-by: Samuel Thibault <[email protected]>


---
drivers/accessibility/speakup/speakup_dtlk.c | 50 +++++++++++++++-----
1 file changed, 39 insertions(+), 11 deletions(-)

diff --git a/drivers/accessibility/speakup/speakup_dtlk.c b/drivers/accessibility/speakup/speakup_dtlk.c
index 6f01e010aaf4..657cd04de4e4 100644
--- a/drivers/accessibility/speakup/speakup_dtlk.c
+++ b/drivers/accessibility/speakup/speakup_dtlk.c
@@ -37,17 +37,27 @@ static unsigned int synth_portlist[] = {

static u_char synth_status;

-static struct var_t vars[] = {
- { CAPS_START, .u.s = {"\x01+35p" } },
- { CAPS_STOP, .u.s = {"\x01-35p" } },
- { RATE, .u.n = {"\x01%ds", 8, 0, 9, 0, 0, NULL } },
- { PITCH, .u.n = {"\x01%dp", 50, 0, 99, 0, 0, NULL } },
- { VOL, .u.n = {"\x01%dv", 5, 0, 9, 0, 0, NULL } },
- { TONE, .u.n = {"\x01%dx", 1, 0, 2, 0, 0, NULL } },
- { PUNCT, .u.n = {"\x01%db", 7, 0, 15, 0, 0, NULL } },
- { VOICE, .u.n = {"\x01%do", 0, 0, 7, 0, 0, NULL } },
- { FREQUENCY, .u.n = {"\x01%df", 5, 0, 9, 0, 0, NULL } },
- { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
+enum default_vars_id {
+ CAPS_START_ID = 0, CAPS_STOP_ID,
+ RATE_ID, PITCH_ID,
+ VOL_ID, TONE_ID, PUNCT_ID,
+ VOICE_ID, FREQUENCY_ID,
+ DIRECT_ID, V_LAST_VAR_ID,
+ NB_ID,
+};
+
+
+static struct var_t vars[NB_ID] = {
+ [CAPS_START] = { CAPS_START, .u.s = {"\x01+35p" } },
+ [CAPS_STOP] = { CAPS_STOP, .u.s = {"\x01-35p" } },
+ [RATE] = { RATE, .u.n = {"\x01%ds", 8, 0, 9, 0, 0, NULL } },
+ [PITCH] = { PITCH, .u.n = {"\x01%dp", 50, 0, 99, 0, 0, NULL } },
+ [VOL] = { VOL, .u.n = {"\x01%dv", 5, 0, 9, 0, 0, NULL } },
+ [TONE] = { TONE, .u.n = {"\x01%dx", 1, 0, 2, 0, 0, NULL } },
+ [PUNCT] = { PUNCT, .u.n = {"\x01%db", 7, 0, 15, 0, 0, NULL } },
+ [VOICE] = { VOICE, .u.n = {"\x01%do", 0, 0, 7, 0, 0, NULL } },
+ [FREQUENCY] = { FREQUENCY, .u.n = {"\x01%df", 5, 0, 9, 0, 0, NULL } },
+ [DIRECT] = { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
V_LAST_VAR
};

@@ -376,9 +386,27 @@ static void dtlk_release(struct spk_synth *synth)

module_param_hw_named(port, port_forced, int, ioport, 0444);
module_param_named(start, synth_dtlk.startup, short, 0444);
+module_param_named(rate, vars[RATE_ID].u.n.default_val, int, 0444);
+module_param_named(pitch, vars[PITCH_ID].u.n.default_val, int, 0444);
+module_param_named(vol, vars[VOL_ID].u.n.default_val, int, 0444);
+module_param_named(tone, vars[TONE_ID].u.n.default_val, int, 0444);
+module_param_named(punct, vars[PUNCT_ID].u.n.default_val, int, 0444);
+module_param_named(voice, vars[VOICE_ID].u.n.default_val, int, 0444);
+module_param_named(frequency, vars[FREQUENCY_ID].u.n.default_val, int, 0444);
+module_param_named(direct, vars[DIRECT_ID].u.n.default_val, int, 0444);
+

MODULE_PARM_DESC(port, "Set the port for the synthesizer (override probing).");
MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
+MODULE_PARM_DESC(rate, "Set the rate variable on load.");
+MODULE_PARM_DESC(pitch, "Set the pitch variable on load.");
+MODULE_PARM_DESC(vol, "Set the vol variable on load.");
+MODULE_PARM_DESC(tone, "Set the tone variable on load.");
+MODULE_PARM_DESC(punct, "Set the punct variable on load.");
+MODULE_PARM_DESC(voice, "Set the voice variable on load.");
+MODULE_PARM_DESC(frequency, "Set the frequency variable on load.");
+MODULE_PARM_DESC(direct, "Set the direct variable on load.");
+

module_spk_synth(synth_dtlk);

--
2.25.1



2022-11-02 03:41:32

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] Accessiblity: speakup_dtlk: specifying the default driver parameters among the module params

Hi Osama,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v6.1-rc3 next-20221101]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Osama-Muhammad/Accessiblity-speakup_dtlk-specifying-the-default-driver-parameters-among-the-module-params/20221102-050055
patch link: https://lore.kernel.org/r/20221101205912.10139-1-osmtendev%40gmail.com
patch subject: [PATCH] Accessiblity: speakup_dtlk: specifying the default driver parameters among the module params
config: parisc-randconfig-r022-20221101
compiler: hppa-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/faea81a453174d64d377b24736315f81c2137565
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Osama-Muhammad/Accessiblity-speakup_dtlk-specifying-the-default-driver-parameters-among-the-module-params/20221102-050055
git checkout faea81a453174d64d377b24736315f81c2137565
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=parisc SHELL=/bin/bash drivers/accessibility/speakup/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

>> drivers/accessibility/speakup/speakup_dtlk.c:51:10: error: array index in initializer exceeds array bounds
51 | [CAPS_START] = { CAPS_START, .u.s = {"\x01+35p" } },
| ^~~~~~~~~~
drivers/accessibility/speakup/speakup_dtlk.c:51:10: note: (near initialization for 'vars')
drivers/accessibility/speakup/speakup_dtlk.c:52:10: error: array index in initializer exceeds array bounds
52 | [CAPS_STOP] = { CAPS_STOP, .u.s = {"\x01-35p" } },
| ^~~~~~~~~
drivers/accessibility/speakup/speakup_dtlk.c:52:10: note: (near initialization for 'vars')
drivers/accessibility/speakup/speakup_dtlk.c:53:10: error: array index in initializer exceeds array bounds
53 | [RATE] = { RATE, .u.n = {"\x01%ds", 8, 0, 9, 0, 0, NULL } },
| ^~~~
drivers/accessibility/speakup/speakup_dtlk.c:53:10: note: (near initialization for 'vars')
drivers/accessibility/speakup/speakup_dtlk.c:54:10: error: array index in initializer exceeds array bounds
54 | [PITCH] = { PITCH, .u.n = {"\x01%dp", 50, 0, 99, 0, 0, NULL } },
| ^~~~~
drivers/accessibility/speakup/speakup_dtlk.c:54:10: note: (near initialization for 'vars')
drivers/accessibility/speakup/speakup_dtlk.c:55:10: error: array index in initializer exceeds array bounds
55 | [VOL] = { VOL, .u.n = {"\x01%dv", 5, 0, 9, 0, 0, NULL } },
| ^~~
drivers/accessibility/speakup/speakup_dtlk.c:55:10: note: (near initialization for 'vars')
drivers/accessibility/speakup/speakup_dtlk.c:56:10: error: array index in initializer exceeds array bounds
56 | [TONE] = { TONE, .u.n = {"\x01%dx", 1, 0, 2, 0, 0, NULL } },
| ^~~~
drivers/accessibility/speakup/speakup_dtlk.c:56:10: note: (near initialization for 'vars')
drivers/accessibility/speakup/speakup_dtlk.c:57:10: error: array index in initializer exceeds array bounds
57 | [PUNCT] = { PUNCT, .u.n = {"\x01%db", 7, 0, 15, 0, 0, NULL } },
| ^~~~~
drivers/accessibility/speakup/speakup_dtlk.c:57:10: note: (near initialization for 'vars')
drivers/accessibility/speakup/speakup_dtlk.c:58:10: error: array index in initializer exceeds array bounds
58 | [VOICE] = { VOICE, .u.n = {"\x01%do", 0, 0, 7, 0, 0, NULL } },
| ^~~~~
drivers/accessibility/speakup/speakup_dtlk.c:58:10: note: (near initialization for 'vars')
drivers/accessibility/speakup/speakup_dtlk.c:59:10: error: array index in initializer exceeds array bounds
59 | [FREQUENCY] = { FREQUENCY, .u.n = {"\x01%df", 5, 0, 9, 0, 0, NULL } },
| ^~~~~~~~~
drivers/accessibility/speakup/speakup_dtlk.c:59:10: note: (near initialization for 'vars')
drivers/accessibility/speakup/speakup_dtlk.c:60:10: error: array index in initializer exceeds array bounds
60 | [DIRECT] = { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
| ^~~~~~
drivers/accessibility/speakup/speakup_dtlk.c:60:10: note: (near initialization for 'vars')


vim +51 drivers/accessibility/speakup/speakup_dtlk.c

48
49
50 static struct var_t vars[NB_ID] = {
> 51 [CAPS_START] = { CAPS_START, .u.s = {"\x01+35p" } },
52 [CAPS_STOP] = { CAPS_STOP, .u.s = {"\x01-35p" } },
53 [RATE] = { RATE, .u.n = {"\x01%ds", 8, 0, 9, 0, 0, NULL } },
54 [PITCH] = { PITCH, .u.n = {"\x01%dp", 50, 0, 99, 0, 0, NULL } },
55 [VOL] = { VOL, .u.n = {"\x01%dv", 5, 0, 9, 0, 0, NULL } },
56 [TONE] = { TONE, .u.n = {"\x01%dx", 1, 0, 2, 0, 0, NULL } },
57 [PUNCT] = { PUNCT, .u.n = {"\x01%db", 7, 0, 15, 0, 0, NULL } },
58 [VOICE] = { VOICE, .u.n = {"\x01%do", 0, 0, 7, 0, 0, NULL } },
59 [FREQUENCY] = { FREQUENCY, .u.n = {"\x01%df", 5, 0, 9, 0, 0, NULL } },
60 [DIRECT] = { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
61 V_LAST_VAR
62 };
63

--
0-DAY CI Kernel Test Service
https://01.org/lkp


Attachments:
(No filename) (5.74 kB)
config (147.78 kB)
Download all attachments