Date: | 2012-03-06 14:17:59 (11 years 6 months ago) |
---|---|
Author: | Paul Cercueil |
Commit: | 1a7fb60f9e73f5947bee848b1c2e170c0d25c4cb |
Message: | MIPS: JZ4740: use standard module_param() macro for the 'panel'
parameter. |
Files: |
drivers/video/jz4740_slcd_panels.c (2 diffs) |
Change Details
drivers/video/jz4740_slcd_panels.c | ||
---|---|---|
23 | 23 | |
24 | 24 | #include "jz4740_slcd.h" |
25 | 25 | |
26 | static unsigned int jz_slcd_panel = 0; | |
26 | static char *default_slcd_panel; | |
27 | 27 | |
28 | 28 | /* Send a command without data. */ |
29 | 29 | static void send_panel_command(struct jzfb *jzfb, u32 cmd) { |
... | ... | |
477 | 477 | #endif |
478 | 478 | }; |
479 | 479 | |
480 | static int __init jz_slcd_panels_setup(char *this_opt) | |
481 | { | |
482 | char *options; | |
483 | ||
484 | while ((options = strsep(&this_opt, ",")) != NULL) { | |
485 | if (!strncmp(options, "panel:", 6)) { | |
486 | unsigned int i; | |
487 | ||
488 | options += 6; | |
489 | for (i = 0; i < ARRAY_SIZE(jz_slcd_panels); i++) { | |
490 | if (!strcmp(options, jz_slcd_panels[i].name)) { | |
491 | jz_slcd_panel = i; | |
492 | break; | |
493 | } | |
494 | } | |
480 | module_param_named(panel, default_slcd_panel, charp, 0); | |
481 | MODULE_PARM_DESC(panel, "SLCD panel used on the device"); | |
495 | 482 | |
496 | continue; | |
497 | } | |
483 | static const struct jz_slcd_panel *jz_slcd_panel_from_name(const char *name) | |
484 | { | |
485 | unsigned int i; | |
486 | for (i = 0; i < ARRAY_SIZE(jz_slcd_panels); i++) { | |
487 | if (sysfs_streq(name, jz_slcd_panels[i].name)) | |
488 | return &jz_slcd_panels[i]; | |
498 | 489 | } |
499 | ||
500 | return 0; | |
490 | return NULL; | |
501 | 491 | } |
502 | 492 | |
503 | __setup("jz_slcd=", jz_slcd_panels_setup); | |
504 | ||
505 | 493 | const struct jz_slcd_panel *jz_slcd_panels_probe(struct jzfb *jzfb) |
506 | 494 | { |
507 | switch (ARRAY_SIZE(jz_slcd_panels)) { | |
508 | case 0: | |
495 | const struct jz_slcd_panel *panel; | |
496 | if (ARRAY_SIZE(jz_slcd_panels) == 0) | |
509 | 497 | return NULL; |
510 | case 1: | |
511 | return &jz_slcd_panels[0]; | |
512 | default: | |
513 | return &jz_slcd_panels[jz_slcd_panel]; | |
498 | ||
499 | panel = &jz_slcd_panels[0]; | |
500 | ||
501 | if (default_slcd_panel) { | |
502 | panel = jz_slcd_panel_from_name(default_slcd_panel); | |
503 | if (!panel) { | |
504 | struct device *dev = &jzfb->pdev->dev; | |
505 | dev_err(dev, "Unknown SLCD panel: %s\n", | |
506 | default_slcd_panel); | |
507 | } | |
514 | 508 | } |
509 | return panel; | |
515 | 510 | } |
Branches:
ben-wpan
ben-wpan-stefan
5396a9238205f20f811ea57898980d3ca82df0b6
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9