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

Reply via email to