Merge tag 'fbdev-updates-for-3.7' of git://github.com/schandinat/linux-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 12 Oct 2012 01:21:02 +0000 (10:21 +0900)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 12 Oct 2012 01:21:02 +0000 (10:21 +0900)
Pull fbdev updates from Florian Tobias Schandinat:
 "This includes:
   - large updates for OMAP
     - basic OMAP5 DSS support for DPI and DSI outputs
     - large cleanups and restructuring
   - some update to Exynos and da8xx-fb
   - removal of the pnx4008 driver (arch removed)
   - various other small patches"

Fix up some trivial conflicts (mostly just include line changes, but
also some due to the renaming of the deferred work functions by Tejun).

* tag 'fbdev-updates-for-3.7' of git://github.com/schandinat/linux-2.6: (193 commits)
  gbefb: fix compile error
  video: mark nuc900fb_map_video_memory as __devinit
  video/mx3fb: set .owner to prevent module unloading while being used
  video: exynos_dp: use clk_prepare_enable and clk_disable_unprepare
  drivers/video/exynos/exynos_mipi_dsi.c: fix error return code
  drivers/video/savage/savagefb_driver.c: fix error return code
  video: s3c-fb: use clk_prepare_enable and clk_disable_unprepare
  da8xx-fb: save and restore LCDC context across suspend/resume cycle
  da8xx-fb: add pm_runtime support
  video/udlfb: fix line counting in fb_write
  OMAPDSS: add missing include for string.h
  OMAPDSS: DISPC: Configure color conversion coefficients for writeback
  OMAPDSS: DISPC: Add manager like functions for writeback
  OMAPDSS: DISPC: Configure writeback FIFOs
  OMAPDSS: DISPC: Configure writeback specific parameters in dispc_wb_setup()
  OMAPDSS: DISPC: Configure overlay-like parameters in dispc_wb_setup
  OMAPDSS: DISPC: Add function to set channel in for writeback
  OMAPDSS: DISPC: Don't set chroma resampling bit for writeback
  OMAPDSS: DISPC: Downscale chroma if plane is writeback
  OMAPDSS: DISPC: Configure input and output sizes for writeback
  ...

46 files changed:
1  2 
arch/arm/mach-exynos/mach-nuri.c
arch/arm/mach-exynos/mach-origen.c
arch/arm/mach-exynos/mach-smdk4x12.c
arch/arm/mach-exynos/mach-smdkv310.c
arch/arm/mach-exynos/mach-universal_c210.c
arch/arm/mach-omap2/board-4430sdp.c
arch/arm/mach-omap2/board-omap4panda.c
arch/arm/mach-omap2/display.c
arch/arm/mach-omap2/twl-common.c
arch/arm/mach-s3c24xx/mach-smdk2416.c
arch/arm/mach-s3c64xx/mach-anw6410.c
arch/arm/mach-s3c64xx/mach-crag6410.c
arch/arm/mach-s3c64xx/mach-hmt.c
arch/arm/mach-s3c64xx/mach-mini6410.c
arch/arm/mach-s3c64xx/mach-ncp.c
arch/arm/mach-s3c64xx/mach-real6410.c
arch/arm/mach-s3c64xx/mach-smdk6410.c
arch/arm/mach-s5p64x0/mach-smdk6440.c
arch/arm/mach-s5p64x0/mach-smdk6450.c
arch/arm/mach-s5pc100/mach-smdkc100.c
arch/arm/mach-s5pv210/mach-goni.c
arch/arm/mach-s5pv210/mach-smdkv210.c
drivers/gpu/drm/exynos/exynos_drm_fimd.c
drivers/media/platform/omap/omap_vout.c
drivers/staging/omapdrm/omap_drv.c
drivers/video/Kconfig
drivers/video/Makefile
drivers/video/da8xx-fb.c
drivers/video/ep93xx-fb.c
drivers/video/exynos/exynos_mipi_dsi.c
drivers/video/gbefb.c
drivers/video/imxfb.c
drivers/video/jz4740_fb.c
drivers/video/msm/mddi.c
drivers/video/msm/mddi_client_nt35399.c
drivers/video/msm/mdp.c
drivers/video/msm/mdp_hw.h
drivers/video/mx3fb.c
drivers/video/nuc900fb.c
drivers/video/omap2/displays/panel-taal.c
drivers/video/omap2/dss/dispc.c
drivers/video/omap2/dss/dsi.c
drivers/video/omap2/omapfb/omapfb-main.c
drivers/video/ps3fb.c
drivers/video/udlfb.c
drivers/video/vermilion/vermilion.c

Simple merge
Simple merge
  #include <plat/devs.h>
  #include <plat/fb.h>
  #include <plat/gpio-cfg.h>
 -#include <plat/iic.h>
 +#include <linux/platform_data/i2c-s3c2410.h>
  #include <plat/keypad.h>
  #include <plat/mfc.h>
- #include <plat/regs-fb.h>
  #include <plat/regs-serial.h>
  #include <plat/sdhci.h>
  
Simple merge
Simple merge
Simple merge
@@@ -237,8 -251,17 +237,12 @@@ void __init omap3_pmic_get_config(struc
  
  #if defined(CONFIG_ARCH_OMAP4)
  static struct twl4030_usb_data omap4_usb_pdata = {
 -      .phy_init       = omap4430_phy_init,
 -      .phy_exit       = omap4430_phy_exit,
 -      .phy_power      = omap4430_phy_power,
 -      .phy_set_clock  = omap4430_phy_set_clk,
 -      .phy_suspend    = omap4430_phy_suspend,
  };
  
+ static struct regulator_consumer_supply omap4_vdda_hdmi_dac_supplies[] = {
+       REGULATOR_SUPPLY("vdda_hdmi_dac", "omapdss_hdmi"),
+ };
  static struct regulator_init_data omap4_vdac_idata = {
        .constraints = {
                .min_uV                 = 1800000,
  #include <plat/clock.h>
  #include <plat/devs.h>
  #include <plat/cpu.h>
 -#include <plat/nand.h>
 +#include <linux/platform_data/mtd-nand-s3c2410.h>
  #include <plat/sdhci.h>
 -#include <plat/udc.h>
 +#include <linux/platform_data/usb-s3c2410_udc.h>
  #include <linux/platform_data/s3c-hsudc.h>
  
- #include <plat/regs-fb-v4.h>
  #include <plat/fb.h>
  
  #include <plat/common-smdk.h>
@@@ -42,9 -43,8 +43,8 @@@
  #include <asm/mach-types.h>
  
  #include <plat/regs-serial.h>
 -#include <plat/iic.h>
 +#include <linux/platform_data/i2c-s3c2410.h>
  #include <plat/fb.h>
- #include <plat/regs-fb-v4.h>
  
  #include <plat/clock.h>
  #include <plat/devs.h>
Simple merge
Simple merge
  #include <plat/cpu.h>
  #include <plat/devs.h>
  #include <plat/fb.h>
 -#include <plat/nand.h>
 +#include <linux/platform_data/mtd-nand-s3c2410.h>
  #include <plat/regs-serial.h>
 -#include <plat/ts.h>
 +#include <linux/platform_data/touchscreen-s3c2410.h>
- #include <plat/regs-fb-v4.h>
  
  #include <video/platform_lcd.h>
+ #include <video/samsung_fimd.h>
  
  #include "common.h"
  
Simple merge
  #include <plat/cpu.h>
  #include <plat/devs.h>
  #include <plat/fb.h>
 -#include <plat/nand.h>
 +#include <linux/platform_data/mtd-nand-s3c2410.h>
  #include <plat/regs-serial.h>
 -#include <plat/ts.h>
 +#include <linux/platform_data/touchscreen-s3c2410.h>
- #include <plat/regs-fb-v4.h>
  
  #include <video/platform_lcd.h>
+ #include <video/samsung_fimd.h>
  
  #include "common.h"
  
  #include <plat/devs.h>
  #include <plat/cpu.h>
  #include <plat/adc.h>
 -#include <plat/ts.h>
 +#include <linux/platform_data/touchscreen-s3c2410.h>
  #include <plat/keypad.h>
  #include <plat/backlight.h>
- #include <plat/regs-fb-v4.h>
  
  #include "common.h"
  
Simple merge
Simple merge
  #include <plat/devs.h>
  #include <plat/cpu.h>
  #include <plat/fb.h>
 -#include <plat/iic.h>
 -#include <plat/ata.h>
 +#include <linux/platform_data/i2c-s3c2410.h>
 +#include <linux/platform_data/ata-samsung_cf.h>
  #include <plat/adc.h>
  #include <plat/keypad.h>
 -#include <plat/ts.h>
 -#include <plat/audio.h>
 +#include <linux/platform_data/touchscreen-s3c2410.h>
 +#include <linux/platform_data/asoc-s3c.h>
  #include <plat/backlight.h>
- #include <plat/regs-fb-v4.h>
  
  #include "common.h"
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -948,10 -1038,10 +1038,10 @@@ static int __devexit fb_remove(struct p
                dma_free_coherent(NULL, par->vram_size, par->vram_virt,
                                  par->vram_phys);
                free_irq(par->irq, par);
-               clk_disable(par->lcdc_clk);
-               clk_put(par->lcdc_clk);
+               pm_runtime_put_sync(&dev->dev);
+               pm_runtime_disable(&dev->dev);
                framebuffer_release(info);
 -              iounmap((void __iomem *)da8xx_fb_reg_base);
 +              iounmap(da8xx_fb_reg_base);
                release_mem_region(lcdc_regs->start, resource_size(lcdc_regs));
  
        }
@@@ -1385,14 -1477,12 +1477,12 @@@ err_release_fb_mem
  err_release_fb:
        framebuffer_release(da8xx_fb_info);
  
- err_clk_disable:
-       clk_disable(fb_clk);
- err_clk_put:
-       clk_put(fb_clk);
+ err_pm_runtime_disable:
+       pm_runtime_put_sync(&device->dev);
+       pm_runtime_disable(&device->dev);
  
  err_ioremap:
 -      iounmap((void __iomem *)da8xx_fb_reg_base);
 +      iounmap(da8xx_fb_reg_base);
  
  err_request_mem:
        release_mem_region(lcdc_regs->start, len);
Simple merge
Simple merge
Simple merge
Simple merge
  #include <linux/clk.h>
  #include <linux/io.h>
  #include <linux/sched.h>
- #include <mach/msm_iomap.h>
- #include <mach/irqs.h>
- #include <mach/board.h>
 -#include <mach/msm_fb.h>
 +#include <linux/platform_data/video-msm_fb.h>
  #include "mddi_hw.h"
  
  #define FLAG_DISABLE_HIBERNATION 0x0001
@@@ -25,8 -25,7 +25,7 @@@
  #include <linux/major.h>
  #include <linux/slab.h>
  
- #include <mach/msm_iomap.h>
 -#include <mach/msm_fb.h>
 +#include <linux/platform_data/video-msm_fb.h>
  #include <linux/platform_device.h>
  #include <linux/export.h>
  
@@@ -15,8 -15,7 +15,7 @@@
  #ifndef _MDP_HW_H_
  #define _MDP_HW_H_
  
- #include <mach/msm_iomap.h>
 -#include <mach/msm_fb.h>
 +#include <linux/platform_data/video-msm_fb.h>
  
  struct mdp_info {
        struct mdp_device mdp_dev;
Simple merge
Simple merge
@@@ -900,29 -925,50 +925,50 @@@ static int taal_probe(struct omap_dss_d
  
        atomic_set(&td->do_update, 0);
  
-       td->workqueue = create_singlethread_workqueue("taal_esd");
-       if (td->workqueue == NULL) {
-               dev_err(&dssdev->dev, "can't create ESD workqueue\n");
-               r = -ENOMEM;
-               goto err_wq;
+       if (gpio_is_valid(td->reset_gpio)) {
+               r = devm_gpio_request_one(&dssdev->dev, td->reset_gpio,
+                               GPIOF_OUT_INIT_LOW, "taal rst");
+               if (r) {
+                       dev_err(&dssdev->dev, "failed to request reset gpio\n");
+                       return r;
+               }
        }
-       INIT_DEFERRABLE_WORK(&td->esd_work, taal_esd_work);
-       INIT_DELAYED_WORK(&td->ulps_work, taal_ulps_work);
  
-       dev_set_drvdata(&dssdev->dev, td);
+       if (gpio_is_valid(td->ext_te_gpio)) {
+               r = devm_gpio_request_one(&dssdev->dev, td->ext_te_gpio,
+                               GPIOF_IN, "taal irq");
+               if (r) {
+                       dev_err(&dssdev->dev, "GPIO request failed\n");
+                       return r;
+               }
+               r = devm_request_irq(&dssdev->dev, gpio_to_irq(td->ext_te_gpio),
+                               taal_te_isr,
+                               IRQF_TRIGGER_RISING,
+                               "taal vsync", dssdev);
  
-       if (gpio_is_valid(panel_data->reset_gpio)) {
-               r = gpio_request_one(panel_data->reset_gpio, GPIOF_OUT_INIT_LOW,
-                               "taal rst");
                if (r) {
-                       dev_err(&dssdev->dev, "failed to request reset gpio\n");
-                       goto err_rst_gpio;
+                       dev_err(&dssdev->dev, "IRQ request failed\n");
+                       return r;
                }
 -              INIT_DELAYED_WORK_DEFERRABLE(&td->te_timeout_work,
++              INIT_DEFERRABLE_WORK(&td->te_timeout_work,
+                                       taal_te_timeout_work_callback);
+               dev_dbg(&dssdev->dev, "Using GPIO TE\n");
        }
  
 -      INIT_DELAYED_WORK_DEFERRABLE(&td->esd_work, taal_esd_work);
+       td->workqueue = create_singlethread_workqueue("taal_esd");
+       if (td->workqueue == NULL) {
+               dev_err(&dssdev->dev, "can't create ESD workqueue\n");
+               return -ENOMEM;
+       }
++      INIT_DEFERRABLE_WORK(&td->esd_work, taal_esd_work);
+       INIT_DELAYED_WORK(&td->ulps_work, taal_ulps_work);
        taal_hw_reset(dssdev);
  
-       if (panel_data->use_dsi_backlight) {
+       if (td->use_dsi_backlight) {
                memset(&props, 0, sizeof(struct backlight_properties));
                props.max_brightness = 255;
  
@@@ -37,9 -37,6 +37,8 @@@
  #include <linux/platform_device.h>
  #include <linux/pm_runtime.h>
  
- #include <plat/clock.h>
 +#include <plat/cpu.h>
 +
  #include <video/omapdss.h>
  
  #include "dss.h"
Simple merge
Simple merge
Simple merge
Simple merge