Skip to content

Commit

Permalink
Merge tag 'fbdev-fixes-for-3.3-2' of git://github.com/schandinat/linu…
Browse files Browse the repository at this point in the history
…x-2.6

fbdev fixes for 3.3 from Florian Tobias Schandinat

It includes:
 - two fixes for OMAP HDMI
 - one fix to make new OMAP functions behave as they are supposed to
 - one Kconfig dependency fix
 - two fixes for viafb for modesetting on VX900 hardware

* tag 'fbdev-fixes-for-3.3-2' of git://github.com/schandinat/linux-2.6:
  OMAPDSS: APPLY: make ovl_enable/disable synchronous
  OMAPDSS: panel-dvi: Add Kconfig dependency on I2C
  viafb: fix IGA1 modesetting on VX900
  viafb: select HW scaling on VX900 for IGA2
  OMAPDSS: HDMI: hot plug detect fix
  OMAPDSS: HACK: Ensure DSS clock domain gets out of idle when HDMI is enabled
  • Loading branch information
Linus Torvalds committed Mar 2, 2012
2 parents 5e8063d + a3d0e4a commit d085a09
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 10 deletions.
2 changes: 1 addition & 1 deletion drivers/video/omap2/displays/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ config PANEL_GENERIC_DPI

config PANEL_DVI
tristate "DVI output"
depends on OMAP2_DSS_DPI
depends on OMAP2_DSS_DPI && I2C
help
Driver for external monitors, connected via DVI. The driver uses i2c
to read EDID information from the monitor.
Expand Down
6 changes: 6 additions & 0 deletions drivers/video/omap2/dss/apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -1276,6 +1276,9 @@ int dss_ovl_enable(struct omap_overlay *ovl)

spin_unlock_irqrestore(&data_lock, flags);

/* wait for overlay to be enabled */
wait_pending_extra_info_updates();

mutex_unlock(&apply_lock);

return 0;
Expand Down Expand Up @@ -1313,6 +1316,9 @@ int dss_ovl_disable(struct omap_overlay *ovl)

spin_unlock_irqrestore(&data_lock, flags);

/* wait for the overlay to be disabled */
wait_pending_extra_info_updates();

mutex_unlock(&apply_lock);

return 0;
Expand Down
24 changes: 23 additions & 1 deletion drivers/video/omap2/dss/hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,9 +165,25 @@ static int hdmi_runtime_get(void)

DSSDBG("hdmi_runtime_get\n");

/*
* HACK: Add dss_runtime_get() to ensure DSS clock domain is enabled.
* This should be removed later.
*/
r = dss_runtime_get();
if (r < 0)
goto err_get_dss;

r = pm_runtime_get_sync(&hdmi.pdev->dev);
WARN_ON(r < 0);
return r < 0 ? r : 0;
if (r < 0)
goto err_get_hdmi;

return 0;

err_get_hdmi:
dss_runtime_put();
err_get_dss:
return r;
}

static void hdmi_runtime_put(void)
Expand All @@ -178,6 +194,12 @@ static void hdmi_runtime_put(void)

r = pm_runtime_put_sync(&hdmi.pdev->dev);
WARN_ON(r < 0);

/*
* HACK: This is added to complement the dss_runtime_get() call in
* hdmi_runtime_get(). This should be removed later.
*/
dss_runtime_put();
}

int hdmi_init_display(struct omap_dss_device *dssdev)
Expand Down
9 changes: 1 addition & 8 deletions drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
Original file line number Diff line number Diff line change
Expand Up @@ -479,14 +479,7 @@ int ti_hdmi_4xxx_read_edid(struct hdmi_ip_data *ip_data,

bool ti_hdmi_4xxx_detect(struct hdmi_ip_data *ip_data)
{
int r;

void __iomem *base = hdmi_core_sys_base(ip_data);

/* HPD */
r = REG_GET(base, HDMI_CORE_SYS_SYS_STAT, 1, 1);

return r == 1;
return gpio_get_value(ip_data->hpd_gpio);
}

static void hdmi_core_init(struct hdmi_core_video_config *video_cfg,
Expand Down
4 changes: 4 additions & 0 deletions drivers/video/via/hw.c
Original file line number Diff line number Diff line change
Expand Up @@ -1810,7 +1810,11 @@ static void hw_init(void)
break;
}

/* magic required on VX900 for correct modesetting on IGA1 */
via_write_reg_mask(VIACR, 0x45, 0x00, 0x01);

/* probably this should go to the scaling code one day */
via_write_reg_mask(VIACR, 0xFD, 0, 0x80); /* VX900 hw scale on IGA2 */
viafb_write_regx(scaling_parameters, ARRAY_SIZE(scaling_parameters));

/* Fill VPIT Parameters */
Expand Down

0 comments on commit d085a09

Please sign in to comment.