diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-25 13:20:22 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-25 13:20:22 -0800 |
commit | edccb59429657b09806146339e2b27594c1d1da0 (patch) | |
tree | a60bb02ba21cb6f84c4f601b19a26516ce7d21d2 /drivers/video/fbdev/omap | |
parent | 6e5c8381d1db4c1cdd4b4e49d5f0d1255c2246fd (diff) | |
parent | 42f82367df2cb2b71ceead6164e4415851c51fa4 (diff) | |
download | op-kernel-dev-edccb59429657b09806146339e2b27594c1d1da0.zip op-kernel-dev-edccb59429657b09806146339e2b27594c1d1da0.tar.gz |
Merge tag 'fbdev-v4.11' of git://github.com/bzolnier/linux
Pull fbdev updates from Bartlomiej Zolnierkiewicz:
- fix for font color when console is switched to another fb driver
- deferred probing fixes for simplefb driver
- preparations to add support of an optional GPIO to enable panel for
ARM CLCD driver
- some improvements for ssd1307fb driver
- cleanups for OMAP fbdev LCD drivers
- misc fixes/cleanups for various fb drivers
* tag 'fbdev-v4.11' of git://github.com/bzolnier/linux: (30 commits)
video: fbdev: fsl-diu-fb: fix spelling mistake "palette"
fbdev: ssd1307fb: include linux/gpio/consumer.h
video: fbdev: fsl-diu-fb: remove impossible condition
video: fbdev: amifb: remove impossible condition
fbdev/ssd1307fb: clear screen in probe
fbdev/ssd1307fb: add support to enable VBAT
fbdev: ssd1307fb: Make reset gpio devicetree property optional
fbdev: ssd1307fb: Remove reset-active-low from the DT binding document
fbdev: ssd1307fb: Start to use gpiod API for reset gpio
video: fbdev: sh_mobile_lcdcfb: fix error return code in sh_mobile_lcdc_probe()
video: fbdev: offb: switch to using for_each_node_by_type
video/console: use setup_timer and mod_timer instead of init_timer
fbdev: omap/lcd: Make callbacks optional
fbdev: omap/lcd: Staticize non-exported lcd_panel structs
fbdev: omap/lcd: Remove no-op driver callbacks
video/mbx: use simple_open()
video: fbdev: stifb: handle NULL return value from ioremap_nocache
video: fbdev: pmagb-b-fb: Remove bad `__init' annotation
video: fbdev: pmag-ba-fb: Remove bad `__init' annotation
video: ARM CLCD: use panel device node for getting backlight and mode
...
Diffstat (limited to 'drivers/video/fbdev/omap')
-rw-r--r-- | drivers/video/fbdev/omap/lcd_ams_delta.c | 25 | ||||
-rw-r--r-- | drivers/video/fbdev/omap/lcd_h3.c | 37 | ||||
-rw-r--r-- | drivers/video/fbdev/omap/lcd_htcherald.c | 51 | ||||
-rw-r--r-- | drivers/video/fbdev/omap/lcd_inn1510.c | 39 | ||||
-rw-r--r-- | drivers/video/fbdev/omap/lcd_inn1610.c | 27 | ||||
-rw-r--r-- | drivers/video/fbdev/omap/lcd_osk.c | 38 | ||||
-rw-r--r-- | drivers/video/fbdev/omap/lcd_palmte.c | 50 | ||||
-rw-r--r-- | drivers/video/fbdev/omap/lcd_palmtt.c | 43 | ||||
-rw-r--r-- | drivers/video/fbdev/omap/lcd_palmz71.c | 45 | ||||
-rw-r--r-- | drivers/video/fbdev/omap/omapfb_main.c | 31 |
10 files changed, 28 insertions, 358 deletions
diff --git a/drivers/video/fbdev/omap/lcd_ams_delta.c b/drivers/video/fbdev/omap/lcd_ams_delta.c index f912a20..a4ee947 100644 --- a/drivers/video/fbdev/omap/lcd_ams_delta.c +++ b/drivers/video/fbdev/omap/lcd_ams_delta.c @@ -136,11 +136,6 @@ static void ams_delta_panel_disable(struct lcd_panel *panel) gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_NDISP, 0); } -static unsigned long ams_delta_panel_get_caps(struct lcd_panel *panel) -{ - return 0; -} - static struct lcd_panel ams_delta_panel = { .name = "ams-delta", .config = 0, @@ -163,7 +158,6 @@ static struct lcd_panel ams_delta_panel = { .cleanup = ams_delta_panel_cleanup, .enable = ams_delta_panel_enable, .disable = ams_delta_panel_disable, - .get_caps = ams_delta_panel_get_caps, }; @@ -195,27 +189,8 @@ static int ams_delta_panel_probe(struct platform_device *pdev) return 0; } -static int ams_delta_panel_remove(struct platform_device *pdev) -{ - return 0; -} - -static int ams_delta_panel_suspend(struct platform_device *pdev, - pm_message_t mesg) -{ - return 0; -} - -static int ams_delta_panel_resume(struct platform_device *pdev) -{ - return 0; -} - static struct platform_driver ams_delta_panel_driver = { .probe = ams_delta_panel_probe, - .remove = ams_delta_panel_remove, - .suspend = ams_delta_panel_suspend, - .resume = ams_delta_panel_resume, .driver = { .name = "lcd_ams_delta", }, diff --git a/drivers/video/fbdev/omap/lcd_h3.c b/drivers/video/fbdev/omap/lcd_h3.c index 21512b0..9d2da14 100644 --- a/drivers/video/fbdev/omap/lcd_h3.c +++ b/drivers/video/fbdev/omap/lcd_h3.c @@ -28,15 +28,6 @@ #define MODULE_NAME "omapfb-lcd_h3" -static int h3_panel_init(struct lcd_panel *panel, struct omapfb_device *fbdev) -{ - return 0; -} - -static void h3_panel_cleanup(struct lcd_panel *panel) -{ -} - static int h3_panel_enable(struct lcd_panel *panel) { int r = 0; @@ -63,12 +54,7 @@ static void h3_panel_disable(struct lcd_panel *panel) pr_err(MODULE_NAME ": Unable to turn off LCD panel\n"); } -static unsigned long h3_panel_get_caps(struct lcd_panel *panel) -{ - return 0; -} - -struct lcd_panel h3_panel = { +static struct lcd_panel h3_panel = { .name = "h3", .config = OMAP_LCDC_PANEL_TFT, @@ -85,11 +71,8 @@ struct lcd_panel h3_panel = { .vbp = 0, .pcd = 0, - .init = h3_panel_init, - .cleanup = h3_panel_cleanup, .enable = h3_panel_enable, .disable = h3_panel_disable, - .get_caps = h3_panel_get_caps, }; static int h3_panel_probe(struct platform_device *pdev) @@ -98,26 +81,8 @@ static int h3_panel_probe(struct platform_device *pdev) return 0; } -static int h3_panel_remove(struct platform_device *pdev) -{ - return 0; -} - -static int h3_panel_suspend(struct platform_device *pdev, pm_message_t mesg) -{ - return 0; -} - -static int h3_panel_resume(struct platform_device *pdev) -{ - return 0; -} - static struct platform_driver h3_panel_driver = { .probe = h3_panel_probe, - .remove = h3_panel_remove, - .suspend = h3_panel_suspend, - .resume = h3_panel_resume, .driver = { .name = "lcd_h3", }, diff --git a/drivers/video/fbdev/omap/lcd_htcherald.c b/drivers/video/fbdev/omap/lcd_htcherald.c index 8b4dfa0..9d692f5b 100644 --- a/drivers/video/fbdev/omap/lcd_htcherald.c +++ b/drivers/video/fbdev/omap/lcd_htcherald.c @@ -31,32 +31,8 @@ #include "omapfb.h" -static int htcherald_panel_init(struct lcd_panel *panel, - struct omapfb_device *fbdev) -{ - return 0; -} - -static void htcherald_panel_cleanup(struct lcd_panel *panel) -{ -} - -static int htcherald_panel_enable(struct lcd_panel *panel) -{ - return 0; -} - -static void htcherald_panel_disable(struct lcd_panel *panel) -{ -} - -static unsigned long htcherald_panel_get_caps(struct lcd_panel *panel) -{ - return 0; -} - /* Found on WIZ200 (miknix) and some HERA110 models (darkstar62) */ -struct lcd_panel htcherald_panel_1 = { +static struct lcd_panel htcherald_panel_1 = { .name = "lcd_herald", .config = OMAP_LCDC_PANEL_TFT | OMAP_LCDC_INV_HSYNC | @@ -74,12 +50,6 @@ struct lcd_panel htcherald_panel_1 = { .vsw = 3, .vfp = 2, .vbp = 2, - - .init = htcherald_panel_init, - .cleanup = htcherald_panel_cleanup, - .enable = htcherald_panel_enable, - .disable = htcherald_panel_disable, - .get_caps = htcherald_panel_get_caps, }; static int htcherald_panel_probe(struct platform_device *pdev) @@ -88,27 +58,8 @@ static int htcherald_panel_probe(struct platform_device *pdev) return 0; } -static int htcherald_panel_remove(struct platform_device *pdev) -{ - return 0; -} - -static int htcherald_panel_suspend(struct platform_device *pdev, - pm_message_t mesg) -{ - return 0; -} - -static int htcherald_panel_resume(struct platform_device *pdev) -{ - return 0; -} - static struct platform_driver htcherald_panel_driver = { .probe = htcherald_panel_probe, - .remove = htcherald_panel_remove, - .suspend = htcherald_panel_suspend, - .resume = htcherald_panel_resume, .driver = { .name = "lcd_htcherald", }, diff --git a/drivers/video/fbdev/omap/lcd_inn1510.c b/drivers/video/fbdev/omap/lcd_inn1510.c index 49907fa..b284050 100644 --- a/drivers/video/fbdev/omap/lcd_inn1510.c +++ b/drivers/video/fbdev/omap/lcd_inn1510.c @@ -27,16 +27,6 @@ #include "omapfb.h" -static int innovator1510_panel_init(struct lcd_panel *panel, - struct omapfb_device *fbdev) -{ - return 0; -} - -static void innovator1510_panel_cleanup(struct lcd_panel *panel) -{ -} - static int innovator1510_panel_enable(struct lcd_panel *panel) { __raw_writeb(0x7, OMAP1510_FPGA_LCD_PANEL_CONTROL); @@ -48,12 +38,7 @@ static void innovator1510_panel_disable(struct lcd_panel *panel) __raw_writeb(0x0, OMAP1510_FPGA_LCD_PANEL_CONTROL); } -static unsigned long innovator1510_panel_get_caps(struct lcd_panel *panel) -{ - return 0; -} - -struct lcd_panel innovator1510_panel = { +static struct lcd_panel innovator1510_panel = { .name = "inn1510", .config = OMAP_LCDC_PANEL_TFT, @@ -70,11 +55,8 @@ struct lcd_panel innovator1510_panel = { .vbp = 0, .pcd = 12, - .init = innovator1510_panel_init, - .cleanup = innovator1510_panel_cleanup, .enable = innovator1510_panel_enable, .disable = innovator1510_panel_disable, - .get_caps = innovator1510_panel_get_caps, }; static int innovator1510_panel_probe(struct platform_device *pdev) @@ -83,27 +65,8 @@ static int innovator1510_panel_probe(struct platform_device *pdev) return 0; } -static int innovator1510_panel_remove(struct platform_device *pdev) -{ - return 0; -} - -static int innovator1510_panel_suspend(struct platform_device *pdev, - pm_message_t mesg) -{ - return 0; -} - -static int innovator1510_panel_resume(struct platform_device *pdev) -{ - return 0; -} - static struct platform_driver innovator1510_panel_driver = { .probe = innovator1510_panel_probe, - .remove = innovator1510_panel_remove, - .suspend = innovator1510_panel_suspend, - .resume = innovator1510_panel_resume, .driver = { .name = "lcd_inn1510", }, diff --git a/drivers/video/fbdev/omap/lcd_inn1610.c b/drivers/video/fbdev/omap/lcd_inn1610.c index 8b42894..1841710 100644 --- a/drivers/video/fbdev/omap/lcd_inn1610.c +++ b/drivers/video/fbdev/omap/lcd_inn1610.c @@ -69,12 +69,7 @@ static void innovator1610_panel_disable(struct lcd_panel *panel) gpio_set_value(15, 0); } -static unsigned long innovator1610_panel_get_caps(struct lcd_panel *panel) -{ - return 0; -} - -struct lcd_panel innovator1610_panel = { +static struct lcd_panel innovator1610_panel = { .name = "inn1610", .config = OMAP_LCDC_PANEL_TFT, @@ -95,7 +90,6 @@ struct lcd_panel innovator1610_panel = { .cleanup = innovator1610_panel_cleanup, .enable = innovator1610_panel_enable, .disable = innovator1610_panel_disable, - .get_caps = innovator1610_panel_get_caps, }; static int innovator1610_panel_probe(struct platform_device *pdev) @@ -104,27 +98,8 @@ static int innovator1610_panel_probe(struct platform_device *pdev) return 0; } -static int innovator1610_panel_remove(struct platform_device *pdev) -{ - return 0; -} - -static int innovator1610_panel_suspend(struct platform_device *pdev, - pm_message_t mesg) -{ - return 0; -} - -static int innovator1610_panel_resume(struct platform_device *pdev) -{ - return 0; -} - static struct platform_driver innovator1610_panel_driver = { .probe = innovator1610_panel_probe, - .remove = innovator1610_panel_remove, - .suspend = innovator1610_panel_suspend, - .resume = innovator1610_panel_resume, .driver = { .name = "lcd_inn1610", }, diff --git a/drivers/video/fbdev/omap/lcd_osk.c b/drivers/video/fbdev/omap/lcd_osk.c index b56886c..b0be577 100644 --- a/drivers/video/fbdev/omap/lcd_osk.c +++ b/drivers/video/fbdev/omap/lcd_osk.c @@ -29,16 +29,6 @@ #include "omapfb.h" -static int osk_panel_init(struct lcd_panel *panel, struct omapfb_device *fbdev) -{ - /* gpio2 was allocated in board init */ - return 0; -} - -static void osk_panel_cleanup(struct lcd_panel *panel) -{ -} - static int osk_panel_enable(struct lcd_panel *panel) { /* configure PWL pin */ @@ -68,12 +58,7 @@ static void osk_panel_disable(struct lcd_panel *panel) gpio_set_value(2, 0); } -static unsigned long osk_panel_get_caps(struct lcd_panel *panel) -{ - return 0; -} - -struct lcd_panel osk_panel = { +static struct lcd_panel osk_panel = { .name = "osk", .config = OMAP_LCDC_PANEL_TFT, @@ -90,11 +75,8 @@ struct lcd_panel osk_panel = { .vbp = 0, .pcd = 12, - .init = osk_panel_init, - .cleanup = osk_panel_cleanup, .enable = osk_panel_enable, .disable = osk_panel_disable, - .get_caps = osk_panel_get_caps, }; static int osk_panel_probe(struct platform_device *pdev) @@ -103,26 +85,8 @@ static int osk_panel_probe(struct platform_device *pdev) return 0; } -static int osk_panel_remove(struct platform_device *pdev) -{ - return 0; -} - -static int osk_panel_suspend(struct platform_device *pdev, pm_message_t mesg) -{ - return 0; -} - -static int osk_panel_resume(struct platform_device *pdev) -{ - return 0; -} - static struct platform_driver osk_panel_driver = { .probe = osk_panel_probe, - .remove = osk_panel_remove, - .suspend = osk_panel_suspend, - .resume = osk_panel_resume, .driver = { .name = "lcd_osk", }, diff --git a/drivers/video/fbdev/omap/lcd_palmte.c b/drivers/video/fbdev/omap/lcd_palmte.c index 2713fed..cef9638 100644 --- a/drivers/video/fbdev/omap/lcd_palmte.c +++ b/drivers/video/fbdev/omap/lcd_palmte.c @@ -25,31 +25,7 @@ #include "omapfb.h" -static int palmte_panel_init(struct lcd_panel *panel, - struct omapfb_device *fbdev) -{ - return 0; -} - -static void palmte_panel_cleanup(struct lcd_panel *panel) -{ -} - -static int palmte_panel_enable(struct lcd_panel *panel) -{ - return 0; -} - -static void palmte_panel_disable(struct lcd_panel *panel) -{ -} - -static unsigned long palmte_panel_get_caps(struct lcd_panel *panel) -{ - return 0; -} - -struct lcd_panel palmte_panel = { +static struct lcd_panel palmte_panel = { .name = "palmte", .config = OMAP_LCDC_PANEL_TFT | OMAP_LCDC_INV_VSYNC | OMAP_LCDC_INV_HSYNC | OMAP_LCDC_HSVS_RISING_EDGE | @@ -67,12 +43,6 @@ struct lcd_panel palmte_panel = { .vfp = 8, .vbp = 7, .pcd = 0, - - .init = palmte_panel_init, - .cleanup = palmte_panel_cleanup, - .enable = palmte_panel_enable, - .disable = palmte_panel_disable, - .get_caps = palmte_panel_get_caps, }; static int palmte_panel_probe(struct platform_device *pdev) @@ -81,26 +51,8 @@ static int palmte_panel_probe(struct platform_device *pdev) return 0; } -static int palmte_panel_remove(struct platform_device *pdev) -{ - return 0; -} - -static int palmte_panel_suspend(struct platform_device *pdev, pm_message_t mesg) -{ - return 0; -} - -static int palmte_panel_resume(struct platform_device *pdev) -{ - return 0; -} - static struct platform_driver palmte_panel_driver = { .probe = palmte_panel_probe, - .remove = palmte_panel_remove, - .suspend = palmte_panel_suspend, - .resume = palmte_panel_resume, .driver = { .name = "lcd_palmte", }, diff --git a/drivers/video/fbdev/omap/lcd_palmtt.c b/drivers/video/fbdev/omap/lcd_palmtt.c index 1a936d5..627f13d 100644 --- a/drivers/video/fbdev/omap/lcd_palmtt.c +++ b/drivers/video/fbdev/omap/lcd_palmtt.c @@ -32,31 +32,12 @@ GPIO13 - screen blanking #include "omapfb.h" -static int palmtt_panel_init(struct lcd_panel *panel, - struct omapfb_device *fbdev) -{ - return 0; -} - -static void palmtt_panel_cleanup(struct lcd_panel *panel) -{ -} - -static int palmtt_panel_enable(struct lcd_panel *panel) -{ - return 0; -} - -static void palmtt_panel_disable(struct lcd_panel *panel) -{ -} - static unsigned long palmtt_panel_get_caps(struct lcd_panel *panel) { return OMAPFB_CAPS_SET_BACKLIGHT; } -struct lcd_panel palmtt_panel = { +static struct lcd_panel palmtt_panel = { .name = "palmtt", .config = OMAP_LCDC_PANEL_TFT | OMAP_LCDC_INV_VSYNC | OMAP_LCDC_INV_HSYNC | OMAP_LCDC_HSVS_RISING_EDGE | @@ -74,10 +55,6 @@ struct lcd_panel palmtt_panel = { .vbp = 7, .pcd = 0, - .init = palmtt_panel_init, - .cleanup = palmtt_panel_cleanup, - .enable = palmtt_panel_enable, - .disable = palmtt_panel_disable, .get_caps = palmtt_panel_get_caps, }; @@ -87,26 +64,8 @@ static int palmtt_panel_probe(struct platform_device *pdev) return 0; } -static int palmtt_panel_remove(struct platform_device *pdev) -{ - return 0; -} - -static int palmtt_panel_suspend(struct platform_device *pdev, pm_message_t mesg) -{ - return 0; -} - -static int palmtt_panel_resume(struct platform_device *pdev) -{ - return 0; -} - static struct platform_driver palmtt_panel_driver = { .probe = palmtt_panel_probe, - .remove = palmtt_panel_remove, - .suspend = palmtt_panel_suspend, - .resume = palmtt_panel_resume, .driver = { .name = "lcd_palmtt", }, diff --git a/drivers/video/fbdev/omap/lcd_palmz71.c b/drivers/video/fbdev/omap/lcd_palmz71.c index a20db4f..c46d4db 100644 --- a/drivers/video/fbdev/omap/lcd_palmz71.c +++ b/drivers/video/fbdev/omap/lcd_palmz71.c @@ -26,32 +26,12 @@ #include "omapfb.h" -static int palmz71_panel_init(struct lcd_panel *panel, - struct omapfb_device *fbdev) -{ - return 0; -} - -static void palmz71_panel_cleanup(struct lcd_panel *panel) -{ - -} - -static int palmz71_panel_enable(struct lcd_panel *panel) -{ - return 0; -} - -static void palmz71_panel_disable(struct lcd_panel *panel) -{ -} - static unsigned long palmz71_panel_get_caps(struct lcd_panel *panel) { return OMAPFB_CAPS_SET_BACKLIGHT; } -struct lcd_panel palmz71_panel = { +static struct lcd_panel palmz71_panel = { .name = "palmz71", .config = OMAP_LCDC_PANEL_TFT | OMAP_LCDC_INV_VSYNC | OMAP_LCDC_INV_HSYNC | OMAP_LCDC_HSVS_RISING_EDGE | @@ -69,10 +49,6 @@ struct lcd_panel palmz71_panel = { .vbp = 7, .pcd = 0, - .init = palmz71_panel_init, - .cleanup = palmz71_panel_cleanup, - .enable = palmz71_panel_enable, - .disable = palmz71_panel_disable, .get_caps = palmz71_panel_get_caps, }; @@ -82,27 +58,8 @@ static int palmz71_panel_probe(struct platform_device *pdev) return 0; } -static int palmz71_panel_remove(struct platform_device *pdev) -{ - return 0; -} - -static int palmz71_panel_suspend(struct platform_device *pdev, - pm_message_t mesg) -{ - return 0; -} - -static int palmz71_panel_resume(struct platform_device *pdev) -{ - return 0; -} - static struct platform_driver palmz71_panel_driver = { .probe = palmz71_panel_probe, - .remove = palmz71_panel_remove, - .suspend = palmz71_panel_suspend, - .resume = palmz71_panel_resume, .driver = { .name = "lcd_palmz71", }, diff --git a/drivers/video/fbdev/omap/omapfb_main.c b/drivers/video/fbdev/omap/omapfb_main.c index 6429f33..1abba07 100644 --- a/drivers/video/fbdev/omap/omapfb_main.c +++ b/drivers/video/fbdev/omap/omapfb_main.c @@ -337,7 +337,8 @@ static int omapfb_blank(int blank, struct fb_info *fbi) if (fbdev->state == OMAPFB_SUSPENDED) { if (fbdev->ctrl->resume) fbdev->ctrl->resume(); - fbdev->panel->enable(fbdev->panel); + if (fbdev->panel->enable) + fbdev->panel->enable(fbdev->panel); fbdev->state = OMAPFB_ACTIVE; if (fbdev->ctrl->get_update_mode() == OMAPFB_MANUAL_UPDATE) @@ -346,7 +347,8 @@ static int omapfb_blank(int blank, struct fb_info *fbi) break; case FB_BLANK_POWERDOWN: if (fbdev->state == OMAPFB_ACTIVE) { - fbdev->panel->disable(fbdev->panel); + if (fbdev->panel->disable) + fbdev->panel->disable(fbdev->panel); if (fbdev->ctrl->suspend) fbdev->ctrl->suspend(); fbdev->state = OMAPFB_SUSPENDED; @@ -1030,7 +1032,8 @@ static void omapfb_get_caps(struct omapfb_device *fbdev, int plane, { memset(caps, 0, sizeof(*caps)); fbdev->ctrl->get_caps(plane, caps); - caps->ctrl |= fbdev->panel->get_caps(fbdev->panel); + if (fbdev->panel->get_caps) + caps->ctrl |= fbdev->panel->get_caps(fbdev->panel); } /* For lcd testing */ @@ -1549,7 +1552,8 @@ static void omapfb_free_resources(struct omapfb_device *fbdev, int state) case 7: omapfb_unregister_sysfs(fbdev); case 6: - fbdev->panel->disable(fbdev->panel); + if (fbdev->panel->disable) + fbdev->panel->disable(fbdev->panel); case 5: omapfb_set_update_mode(fbdev, OMAPFB_UPDATE_DISABLED); case 4: @@ -1557,7 +1561,8 @@ static void omapfb_free_resources(struct omapfb_device *fbdev, int state) case 3: ctrl_cleanup(fbdev); case 2: - fbdev->panel->cleanup(fbdev->panel); + if (fbdev->panel->cleanup) + fbdev->panel->cleanup(fbdev->panel); case 1: dev_set_drvdata(fbdev->dev, NULL); kfree(fbdev); @@ -1680,9 +1685,11 @@ static int omapfb_do_probe(struct platform_device *pdev, goto cleanup; } - r = fbdev->panel->init(fbdev->panel, fbdev); - if (r) - goto cleanup; + if (fbdev->panel->init) { + r = fbdev->panel->init(fbdev->panel, fbdev); + if (r) + goto cleanup; + } pr_info("omapfb: configured for panel %s\n", fbdev->panel->name); @@ -1725,9 +1732,11 @@ static int omapfb_do_probe(struct platform_device *pdev, OMAPFB_MANUAL_UPDATE : OMAPFB_AUTO_UPDATE); init_state++; - r = fbdev->panel->enable(fbdev->panel); - if (r) - goto cleanup; + if (fbdev->panel->enable) { + r = fbdev->panel->enable(fbdev->panel); + if (r) + goto cleanup; + } init_state++; r = omapfb_register_sysfs(fbdev); |