Commit 36722179 authored by Thomas Zimmermann's avatar Thomas Zimmermann

fbdev: Move option-string lookup into helper

Move the lookup of the option string into an internal helper. No
functional changes.
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230209135509.7786-8-tzimmermann@suse.de
parent 6d8ad340
...@@ -21,6 +21,36 @@ static char *video_options[FB_MAX] __read_mostly; ...@@ -21,6 +21,36 @@ static char *video_options[FB_MAX] __read_mostly;
static const char *fb_mode_option __read_mostly; static const char *fb_mode_option __read_mostly;
static int ofonly __read_mostly; static int ofonly __read_mostly;
static const char *__fb_get_options(const char *name)
{
const char *options = NULL;
size_t name_len = 0;
if (name)
name_len = strlen(name);
if (name_len) {
unsigned int i;
const char *opt;
for (i = 0; i < ARRAY_SIZE(video_options); ++i) {
if (!video_options[i])
continue;
if (video_options[i][0] == '\0')
continue;
opt = video_options[i];
if (!strncmp(opt, name, name_len) && opt[name_len] == ':')
options = opt + name_len + 1;
}
}
/* No match, return global options */
if (!options)
options = fb_mode_option;
return options;
}
/** /**
* fb_get_options - get kernel boot parameters * fb_get_options - get kernel boot parameters
* @name: framebuffer name as it would appear in * @name: framebuffer name as it would appear in
...@@ -35,36 +65,18 @@ static int ofonly __read_mostly; ...@@ -35,36 +65,18 @@ static int ofonly __read_mostly;
*/ */
int fb_get_options(const char *name, char **option) int fb_get_options(const char *name, char **option)
{ {
const char *options = NULL;
int retval = 0; int retval = 0;
size_t name_len; const char *options;
char *opt;
if (name)
name_len = strlen(name);
if (name_len && ofonly && strncmp(name, "offb", 4)) if (name && ofonly && strncmp(name, "offb", 4))
retval = 1; retval = 1;
if (name_len && !retval) { options = __fb_get_options(name);
unsigned int i;
for (i = 0; i < FB_MAX; i++) { if (options) {
if (video_options[i] == NULL) if (!strncmp(options, "off", 3))
continue;
if (!video_options[i][0])
continue;
opt = video_options[i];
if (!strncmp(name, opt, name_len) &&
opt[name_len] == ':')
options = opt + name_len + 1;
}
}
/* No match, pass global option */
if (!options && option && fb_mode_option)
options = fb_mode_option;
if (options && !strncmp(options, "off", 3))
retval = 1; retval = 1;
}
if (option) { if (option) {
if (options) if (options)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment