diff options
| -rw-r--r-- | drivers/media/video/omap/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/media/video/omap/omap_vout.c | 35 |
2 files changed, 20 insertions, 17 deletions
diff --git a/drivers/media/video/omap/Kconfig b/drivers/media/video/omap/Kconfig index 97c53949ca89..c1d19335891a 100644 --- a/drivers/media/video/omap/Kconfig +++ b/drivers/media/video/omap/Kconfig | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | config VIDEO_OMAP2_VOUT | 1 | config VIDEO_OMAP2_VOUT |
| 2 | tristate "OMAP2/OMAP3 V4L2-Display driver" | 2 | tristate "OMAP2/OMAP3 V4L2-Display driver" |
| 3 | depends on ARCH_OMAP24XX || ARCH_OMAP34XX | 3 | depends on ARCH_OMAP2 || ARCH_OMAP3 |
| 4 | select VIDEOBUF_GEN | 4 | select VIDEOBUF_GEN |
| 5 | select VIDEOBUF_DMA_SG | 5 | select VIDEOBUF_DMA_SG |
| 6 | select OMAP2_DSS | 6 | select OMAP2_DSS |
diff --git a/drivers/media/video/omap/omap_vout.c b/drivers/media/video/omap/omap_vout.c index e7db0554949a..dfa68268a73b 100644 --- a/drivers/media/video/omap/omap_vout.c +++ b/drivers/media/video/omap/omap_vout.c | |||
| @@ -38,6 +38,7 @@ | |||
| 38 | #include <linux/dma-mapping.h> | 38 | #include <linux/dma-mapping.h> |
| 39 | #include <linux/irq.h> | 39 | #include <linux/irq.h> |
| 40 | #include <linux/videodev2.h> | 40 | #include <linux/videodev2.h> |
| 41 | #include <linux/slab.h> | ||
| 41 | 42 | ||
| 42 | #include <media/videobuf-dma-sg.h> | 43 | #include <media/videobuf-dma-sg.h> |
| 43 | #include <media/v4l2-device.h> | 44 | #include <media/v4l2-device.h> |
| @@ -2488,7 +2489,7 @@ static int omap_vout_remove(struct platform_device *pdev) | |||
| 2488 | 2489 | ||
| 2489 | for (k = 0; k < vid_dev->num_displays; k++) { | 2490 | for (k = 0; k < vid_dev->num_displays; k++) { |
| 2490 | if (vid_dev->displays[k]->state != OMAP_DSS_DISPLAY_DISABLED) | 2491 | if (vid_dev->displays[k]->state != OMAP_DSS_DISPLAY_DISABLED) |
| 2491 | vid_dev->displays[k]->disable(vid_dev->displays[k]); | 2492 | vid_dev->displays[k]->driver->disable(vid_dev->displays[k]); |
| 2492 | 2493 | ||
| 2493 | omap_dss_put_device(vid_dev->displays[k]); | 2494 | omap_dss_put_device(vid_dev->displays[k]); |
| 2494 | } | 2495 | } |
| @@ -2545,7 +2546,9 @@ static int __init omap_vout_probe(struct platform_device *pdev) | |||
| 2545 | def_display = NULL; | 2546 | def_display = NULL; |
| 2546 | } | 2547 | } |
| 2547 | if (def_display) { | 2548 | if (def_display) { |
| 2548 | ret = def_display->enable(def_display); | 2549 | struct omap_dss_driver *dssdrv = def_display->driver; |
| 2550 | |||
| 2551 | ret = dssdrv->enable(def_display); | ||
| 2549 | if (ret) { | 2552 | if (ret) { |
| 2550 | /* Here we are not considering a error | 2553 | /* Here we are not considering a error |
| 2551 | * as display may be enabled by frame | 2554 | * as display may be enabled by frame |
| @@ -2559,21 +2562,21 @@ static int __init omap_vout_probe(struct platform_device *pdev) | |||
| 2559 | if (def_display->caps & | 2562 | if (def_display->caps & |
| 2560 | OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) { | 2563 | OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) { |
| 2561 | #ifdef CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE | 2564 | #ifdef CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE |
| 2562 | if (def_display->enable_te) | 2565 | if (dssdrv->enable_te) |
| 2563 | def_display->enable_te(def_display, 1); | 2566 | dssdrv->enable_te(def_display, 1); |
| 2564 | if (def_display->set_update_mode) | 2567 | if (dssdrv->set_update_mode) |
| 2565 | def_display->set_update_mode(def_display, | 2568 | dssdrv->set_update_mode(def_display, |
| 2566 | OMAP_DSS_UPDATE_AUTO); | 2569 | OMAP_DSS_UPDATE_AUTO); |
| 2567 | #else /* MANUAL_UPDATE */ | 2570 | #else /* MANUAL_UPDATE */ |
| 2568 | if (def_display->enable_te) | 2571 | if (dssdrv->enable_te) |
| 2569 | def_display->enable_te(def_display, 0); | 2572 | dssdrv->enable_te(def_display, 0); |
| 2570 | if (def_display->set_update_mode) | 2573 | if (dssdrv->set_update_mode) |
| 2571 | def_display->set_update_mode(def_display, | 2574 | dssdrv->set_update_mode(def_display, |
| 2572 | OMAP_DSS_UPDATE_MANUAL); | 2575 | OMAP_DSS_UPDATE_MANUAL); |
| 2573 | #endif | 2576 | #endif |
| 2574 | } else { | 2577 | } else { |
| 2575 | if (def_display->set_update_mode) | 2578 | if (dssdrv->set_update_mode) |
| 2576 | def_display->set_update_mode(def_display, | 2579 | dssdrv->set_update_mode(def_display, |
| 2577 | OMAP_DSS_UPDATE_AUTO); | 2580 | OMAP_DSS_UPDATE_AUTO); |
| 2578 | } | 2581 | } |
| 2579 | } | 2582 | } |
| @@ -2592,8 +2595,8 @@ static int __init omap_vout_probe(struct platform_device *pdev) | |||
| 2592 | for (i = 0; i < vid_dev->num_displays; i++) { | 2595 | for (i = 0; i < vid_dev->num_displays; i++) { |
| 2593 | struct omap_dss_device *display = vid_dev->displays[i]; | 2596 | struct omap_dss_device *display = vid_dev->displays[i]; |
| 2594 | 2597 | ||
| 2595 | if (display->update) | 2598 | if (display->driver->update) |
| 2596 | display->update(display, 0, 0, | 2599 | display->driver->update(display, 0, 0, |
| 2597 | display->panel.timings.x_res, | 2600 | display->panel.timings.x_res, |
| 2598 | display->panel.timings.y_res); | 2601 | display->panel.timings.y_res); |
| 2599 | } | 2602 | } |
| @@ -2608,8 +2611,8 @@ probe_err1: | |||
| 2608 | if (ovl->manager && ovl->manager->device) | 2611 | if (ovl->manager && ovl->manager->device) |
| 2609 | def_display = ovl->manager->device; | 2612 | def_display = ovl->manager->device; |
| 2610 | 2613 | ||
| 2611 | if (def_display) | 2614 | if (def_display && def_display->driver) |
| 2612 | def_display->disable(def_display); | 2615 | def_display->driver->disable(def_display); |
| 2613 | } | 2616 | } |
| 2614 | probe_err0: | 2617 | probe_err0: |
| 2615 | kfree(vid_dev); | 2618 | kfree(vid_dev); |
