This is part 2 of 5 of a patchset implementing the following in MeeGo kernel:
- Add OMAP DSS2 patches for supporting upgraded SGX driver: linux-2.6.35-OMAP-DSS2-in_use-flag-for-dss_cache.patch linux-2.6.35-OMAP-DSS2-Keep-track-whether-overlay-managers-are-en.patch linux-2.6.35-OMAP-DSS2-Add-GO-notifiers.patch - Upgrade N900 SGX drivers to 201003002 in order to not have a non-production snapshot of the drivers. Fixes BMC#5711 - Add SGX platform device to N900 board file. These patches apply in order: linux-2.6.35-OMAP-DSS2-in_use-flag-for-dss_cache.patch linux-2.6.35-OMAP-DSS2-Keep-track-whether-overlay-managers-are-en.patch linux-2.6.35-OMAP-DSS2-Add-GO-notifiers.patch linux-2.6-N900-add-sgx-platform-device.patch linux-2.6-SGX-N900-upgrade-201003002.patch
From 0fc65b1fa3e5d564b989c88d9f5eaaebc63093d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <[email protected]> Date: Mon, 24 May 2010 19:11:33 +0300 Subject: [PATCH] OMAP: DSS2: Keep track whether overlay managers are enabled MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The upcoming GO notifiers need to know whether the display is enabled or disabled. It can be done in a race free way by hooking into the mgr enable/disabled functions. Signed-off-by: Ville Syrjälä <[email protected]> Signed-off-by: Carsten Valdemar Munk <[email protected]> --- Index: linux-2.6.34-master/drivers/video/omap2/dss/manager.c =================================================================== --- linux-2.6.34-master.orig/drivers/video/omap2/dss/manager.c 2010-08-04 09:16:55.000000000 +0000 +++ linux-2.6.34-master/drivers/video/omap2/dss/manager.c 2010-08-04 09:17:04.000000000 +0000 @@ -426,6 +426,8 @@ * VSYNC/EVSYNC */ bool shadow_dirty; + bool enabled; + u32 default_color; enum omap_dss_trans_key_type trans_key_type; @@ -1430,13 +1432,28 @@ static int dss_mgr_enable(struct omap_overlay_manager *mgr) { + struct manager_cache_data *mc = &dss_cache.manager_cache[mgr->id]; + unsigned long flags; + + spin_lock_irqsave(&dss_cache.lock, flags); + mc->enabled = true; + spin_unlock_irqrestore(&dss_cache.lock, flags); + dispc_enable_channel(mgr->id, 1); return 0; } static int dss_mgr_disable(struct omap_overlay_manager *mgr) { + struct manager_cache_data *mc = &dss_cache.manager_cache[mgr->id]; + unsigned long flags; + dispc_enable_channel(mgr->id, 0); + + spin_lock_irqsave(&dss_cache.lock, flags); + mc->enabled = false; + spin_unlock_irqrestore(&dss_cache.lock, flags); + return 0; }
_______________________________________________ MeeGo-dev mailing list [email protected] http://lists.meego.com/listinfo/meego-dev
