[meego-commits] 14842: Changes to Trunk/kernel-adaptation-mrst

Prajwal Mohan no_reply at build.meego.com
Tue Mar 15 18:58:28 UTC 2011


Hi,
I have made the following changes to kernel-adaptation-mrst in project Trunk. Please review and accept ASAP.

Thank You,
Prajwal Mohan

[This message was auto-generated]

---

Request #14842:

  submit:   Trunk:Testing/kernel-adaptation-mrst(r12) -> Trunk/kernel-adaptation-mrst


Message:
    Promoting to trunk

State:   new          2011-03-15T11:57:59 praj
Comment: None



changes files:
--------------
--- kernel.changes
+++ kernel.changes
@@ -0,0 +1,13 @@
+* Tue Mar 15 2011 - Arjan van de Ven <arjan at linux.intel.com> - 2.6.37
+- enable slab debugging to catch some memory corruption symptoms
+- remove the keypad gpio patch; obsoleted by new firmware
+
+* Mon Mar 14 2011 - Arjan van de Ven <arjan at linux.intel.com> - 2.6.37
+- disable MID_I2S and ALSA_SSP config options (Medfield only)
+- go to graphics driver 0039
+- rebase to a current AC tree
+  - updated audio driver with jack detection fixes
+  - add back the PMU driver, now reworked to be sensible
+  - I2C controller power management fix
+
+

new:
----
  linux-2.6.37-20110314-ac.patch
  linux-2.6.37-gma600-version-0039.patch

spec files:
-----------
--- kernel-adaptation-mrst.spec
+++ kernel-adaptation-mrst.spec
@@ -193,7 +193,7 @@
 # The main consolidated MRST tree from
 # git//git.kernel.org/pub/scm/linux/kernel/git/alan/linux-2.6-mid-ref
 #
-Patch200: linux-2.6.37-20110224-ac.patch
+Patch200: linux-2.6.37-20110314-ac.patch
 
 Patch201: linux-2.6.37-drm-forwardport.patch
 Patch202: linux-2.6.37-drm-forward-1.patch
@@ -209,6 +209,7 @@
 Patch212: linux-2.6.37-gma600-version-0035-to-0036.patch
 Patch213: linux-2.6.37-gma600-version-0037.patch
 Patch214: linux-2.6.37-gma600-version-0038.patch
+Patch215: linux-2.6.37-gma600-version-0039.patch
 
 #
 ### Graphics
@@ -228,14 +229,11 @@
 #
 
 # Add SFI pstate code
-Patch215: linux-2.6.37-sfi-p-states.patch
+Patch216: linux-2.6.37-sfi-p-states.patch
 
 
 ### Workarounds
 
-# Work around some firmware versions misprogramming GPIO's
-Patch216: linux-2.6.37-keypad-gpio.patch
-
 # work around an upstream 2.6.37 evdev bug
 Patch217: linux-2.6.37-evdev.patch
 
@@ -276,9 +274,9 @@
 Patch232: linux-2.6.37-camera-driver.patch
 Patch233: linux-2.6.37-camera-driver-adjust.patch
 Patch234: linux-2.6.37-camera-fix-subdev-call.patch
-Patch235: linux-2.6.37-camera-ov9740.patch
-Patch236: linux-2.6.37-camera-ov5640.patch
-Patch237: linux-2.6.37-ISP-support-two-soc.patch
+#linux-2.6.37-camera-ov9740.patch
+#linux-2.6.37-camera-ov5640.patch
+#linux-2.6.37-ISP-support-two-soc.patch
 
 
 
@@ -467,7 +465,7 @@
 # The main consolidated MRST tree from
 # git//git.kernel.org/pub/scm/linux/kernel/git/alan/linux-2.6-mid-ref
 #
-# linux-2.6.37-20110224-ac.patch
+# linux-2.6.37-20110314-ac.patch
 %patch200 -p1
 
 # linux-2.6.37-drm-forwardport.patch
@@ -498,6 +496,8 @@
 %patch213 -p1
 # linux-2.6.37-gma600-version-0038.patch
 %patch214 -p1
+# linux-2.6.37-gma600-version-0039.patch
+%patch215 -p1
 
 #
 ### Graphics
@@ -518,15 +518,11 @@
 
 # Add SFI pstate code
 # linux-2.6.37-sfi-p-states.patch
-%patch215 -p1
+%patch216 -p1
 
 
 ### Workarounds
 
-# Work around some firmware versions misprogramming GPIO's
-# linux-2.6.37-keypad-gpio.patch
-%patch216 -p1
-
 # work around an upstream 2.6.37 evdev bug
 # linux-2.6.37-evdev.patch
 %patch217 -p1
@@ -585,12 +581,9 @@
 %patch233 -p1
 # linux-2.6.37-camera-fix-subdev-call.patch
 %patch234 -p1
-# linux-2.6.37-camera-ov9740.patch
-%patch235 -p1
-# linux-2.6.37-camera-ov5640.patch
-%patch236 -p1
-# linux-2.6.37-ISP-support-two-soc.patch
-%patch237 -p1
+#linux-2.6.37-camera-ov9740.patch
+#linux-2.6.37-camera-ov5640.patch
+#linux-2.6.37-ISP-support-two-soc.patch
 
 
 

other changes:
--------------

++++++ config-adaptation-mrst
--- config-adaptation-mrst
+++ config-adaptation-mrst
@@ -192,9 +192,9 @@
 CONFIG_SERIAL_MFD_HSU_CONSOLE=y 
 CONFIG_TRACE_ROUTER=y
 CONFIG_BATTERY_INTEL_MDF=y
-CONFIG_SND_INTEL_MID_I2S=y
+# CONFIG_SND_INTEL_MID_I2S is not set
 CONFIG_SND_CMT_SPEECH=y
-CONFIG_SND_INTEL_ALSA_SSP=y
+# CONFIG_SND_INTEL_ALSA_SSP is not set
 CONFIG_TRACE_SINK=y
 CONFIG_MDFLD_DSI_DSR=y
 CONFIG_USB_GADGETFS=y

++++++ config-generic
--- config-generic
+++ config-generic
@@ -2650,7 +2650,7 @@
 CONFIG_SCHEDSTATS=y
 CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_SLAB=y
 # CONFIG_DEBUG_RT_MUTEXES is not set
 # CONFIG_RT_MUTEX_TESTER is not set
 CONFIG_DEBUG_SPINLOCK=y
@@ -2704,7 +2704,7 @@
 # CONFIG_TRACE_BRANCH_PROFILING is not set
 # CONFIG_STACK_TRACER is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
+CONFIG_DYNAMIC_PRINTK_DEBUG=y
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
@@ -3045,7 +3045,7 @@
 # CONFIG_FTRACE_SYSCALLS is not set
 # CONFIG_KMEMTRACE is not set
 # CONFIG_WORKQUEUE_TRACER is not set
-# CONFIG_DYNAMIC_DEBUG is not set
+CONFIG_DYNAMIC_DEBUG=y
 # CONFIG_DMA_API_DEBUG is not set
 # CONFIG_IMA is not set
 CONFIG_CRYPTO_ZLIB=y

++++++ linux-2.6.37-20110314-ac.patch (new)
--- linux-2.6.37-20110314-ac.patch
+++ linux-2.6.37-20110314-ac.patch
+diff --git a/Documentation/hwmon/intel_over_current_detector b/Documentation/hwmon/intel_over_current_detector
+new file mode 100644
+index 0000000..d9483b0
+--- /dev/null
++++ b/Documentation/hwmon/intel_over_current_detector
+@@ -0,0 +1,86 @@
++Kernel driver over current detection driver
++===========================================
++
++Supported systems:
++  * Intel Medfield Platform
++
++Author: Durgadoss R
++
++Description
++-----------
++
++This driver monitors the current drawn by the platform, and detects the
++peak current conditions. When the current drawn is more than the
++configured limit for a period of time (which is specified by a timer), an
++interrupt is generated. The current limit and the timer value can be
++configured at run time.
++
++The current thresholds aka BATTCURRENTLIMITS(BC) are of two types:
++	1.warning threshold(BC1)
++		at which the system should take actions to bring the
++		current consumption down.
++	2.shutdown threshold(BC2)
++		at which the hardware does a COLDOFF.
++
++The timer thresholds are of three types:
++	1.warning threshold(T1)
++		This corresponds to the first flag for time that the battery
++		current has been above BC1. An interrupt is generated to allow
++		software to correct the situation based on use-case.
++	2.hardware action threshold(T2)
++		This corresponds to the second flag for time that the battery
++		current has been above BC1. It signifies that the system
++		should control high current subsystems through hardware.
++		Besides a general interrupt, audio_volume_crush, vibra_disable
++		signals are sent.
++	3.shutdown threshold(T3)
++		This final flag signifies that when the system current exceeds
++		the threshold for more than T3, system should shutdown.
++
++Following table summarizes the exported sysfs files:
++
++bcu_status(RW)	     -  To enable/disable burst control unit.
++			0 - enables bcu, 1 - disables bcu.
++accumulation_time(RW)-  Time since last clearing/overflow of warning_count
++			in milli seconds. Writing 0 resets the acc_time and
++			also clears both the warning counters.
++warning_count(RO)    -  Two space seperated values that indicate the number
++			of times the current thresholds have been crossed.
++action_mask(RW)	     -  A hex value to enable/disable specific
++			actions taken when current violation happens.
++			bits [b4 b3 b2 b1 b0] control [a4 a3 a2 a1 a0] actions
++			respectively. a4 - camera output, a3 - sys burst,
++			a2 - SOC burst enable, a1 - vibra, a0 - audio output.
++			bits [b7 b6 b5] - Reserved.
++			Default value:08 (sys burst output is enabled).
++action_status(RO)    -  A hex value showing the status of actions taken
++			since the __last__ interrupt.
++			b7 - T3 violation
++			b6 - T2 violation
++			b5 - T1 violation
++			b4 - camera action taken status
++			b3 - sys burst disable action taken status
++			b2 - SOC burst disable action taken status
++			b1 - vibra disable
++			b0 - audio volume crush
++			A '1' in a bit position indicates that particular
++			action has been taken.
++current_warning(RW)  -  This gives the current(in mA) at which a warning is
++			generated. Range: 1400 to 4800. Default:3000
++current_shutdown(RW) -  This gives the current(in mA) at which system shutdown
++			is initiated. Range:1800 to 5800. Default:3800
++timer_warning(RW)    -  Time above current_warning limit at which interrupts
++			are trigerred(so that software can bring the current
++			consumption down). Values are in micro seconds.
++			Range:200 to 7700 in steps of 500
++timer_hw_action(RW)  -  Time above current_warning limit at which the system
++			is trigerred into hardware control to bring down the
++			current consumption. Values are in micro seconds.
++			Range:200 to 7700 in steps of 500
++timer_shutdown(RW)   -  Time above current_warning limit at which a hardware
++			shutdown event is trigerred. The timer values are in
++			micro seconds.
++			Range:1000 to 15000 in steps of 1000
++For all timer interfaces, tolerance shall be 5% maximum.
++All timers start running concurrently once current_warning/current_shutdown
++is crossed.
+diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
+index 01ece1b..312dd63 100644
+--- a/Documentation/kernel-parameters.txt
++++ b/Documentation/kernel-parameters.txt
+@@ -43,11 +43,12 @@ parameter is applicable:
+ 	AVR32	AVR32 architecture is enabled.
+ 	AX25	Appropriate AX.25 support is enabled.
+ 	BLACKFIN Blackfin architecture is enabled.
++	DMI	Desktop Management Interface is enabled
++	DRM	Direct Rendering Management support is enabled.
++	DYNAMIC_DEBUG Build in debug messages and enable them at runtime
+ 	EDD	BIOS Enhanced Disk Drive Services (EDD) is enabled
+ 	EFI	EFI Partitioning (GPT) is enabled
+ 	EIDE	EIDE/ATAPI support is enabled.
+-	DRM	Direct Rendering Management support is enabled.
+-	DYNAMIC_DEBUG Build in debug messages and enable them at runtime
+ 	FB	The frame buffer device is enabled.
+ 	GCOV	GCOV profiling is enabled.
+ 	HW	Appropriate hardware is enabled.
+@@ -390,6 +391,21 @@ and is between 256 and 4096 characters. It is defined in the file
+ 			Format: <io>,<irq>,<mode>
+ 			See header of drivers/net/hamradio/baycom_ser_hdx.c.
+ 
++	board_name=	[DMI]
++			Override reported name in firmware DMI data. Used
++			for testing and for checking board specific
++			workarounds
++
++	board_vendor=	[DMI]
++			Override reported vendor in firmware DMI data. Used
++			for testing and for checking board specific
++			workarounds
++
++	board_version=	[DMI]
++			Override reported version in firmware DMI data. Used
++			for testing and for checking board specific
++			workarounds
++
+ 	boot_delay=	Milliseconds to delay each printk during boot.
+ 			Values larger than 10 seconds (10000) are changed to
+ 			no delay (0).
+diff --git a/Documentation/pti/pti_intel_mid.txt b/Documentation/pti/pti_intel_mid.txt
+new file mode 100644
+index 0000000..651fcf5
+--- /dev/null
++++ b/Documentation/pti/pti_intel_mid.txt
+@@ -0,0 +1,89 @@
++The Intel MID PTI project is HW implemented in Intel Atom
++system-on-a-chip designs based on the Parallel Trace 
++Interface for MIPI P1149.7 cJTAG standard.  The kernel solution
++for this platform involves the following files:
++
++./include/linux/pti.h
++./include/linux/n_tracesink.h
++./drivers/.../n_tracerouter.c
++./drivers/.../n_tracesink.c
++./drivers/.../pti.c
++
++pti.c is the driver that enables various debugging features
++popular on certain mobile manufacturers.  n_tracerouter.c
++and n_tracesink.c allow extra system information to be
++collected and routed to the pti driver, such as trace
++debugging data from a modem.  Altough n_tracerouter
++and n_tracesink are a part of the complete PTI solution,
++these two line disciplines can work separate from
++pti.c and route any data stream from one /dev/tty node
++to another /dev/tty node via kernel-space.  This provides
++a stable, reliable connection that will not break unless
++the user-space application shuts down (plus avoids
++kernel->user->kernel context switch overheads of routing
++data).
++
++An example debugging usage for this driver system:
++   *Hook /dev/ttyPTI0 to syslogd.  Opening this port will also start
++    a console device to further capture debugging messages to PTI.
++   *Hook /dev/ttyPTI1 to modem debugging data to write to PTI HW.
++    This is where n_tracerouter and n_tracesink are used.
++   *Hook /dev/pti to a user-level debugging application for writing
++    to PTI HW.
++   *Use mipi_* Kernel Driver API in other device drivers for
++    debugging to PTI by first requesting a PTI write address via
++    mipi_request_masterchannel(1).
++
++Example 'privileged' (normal user privileges are not enough)
++user-space code on how to setup the n_tracerouter and n_tracesink
++ldisc drivers (note: n_tracerouter depends on n_tracesink):
++
++/////////// To hook up n_tracerouter and n_tracesink /////////
++
++#include <errno.h>
++#define ONE_TTY "/dev/ttyOne"  
++#define TWO_TTY "/dev/ttyTwo"
++
++// needed global to hand onto ldisc connection
++static int g_fd_source = -1;
++static int g_fd_sink  = -1;
++
++// grab LDISC values from loaded ldisc drivers from /proc/tty/ldiscs 
++int source_ldisc_num, sink_ldisc_num = -1;
++int retval;
++
++g_fd_source = open(ONE_TTY, O_RDWR); // must be R/W
++g_fd_sink   = open(TWO_TTY, O_RDWR); // must be R/W
++
++if (g_fd_source <= 0) || (g_fd_sink <= 0) {
++   // doubt you'll want to use these exact error lines of code
(96761 more lines skipped)

++++++ linux-2.6.37-gma600-version-0039.patch (new)
--- linux-2.6.37-gma600-version-0039.patch
+++ linux-2.6.37-gma600-version-0039.patch
+From 2553f820878314854e5ac281cfd4e6158e3bf3ee Mon Sep 17 00:00:00 2001
+From: Hitesh K. Patel <hitesh.k.patel at intel.com>
+Date: Wed, 9 Mar 2011 15:59:34 -0800
+Subject: [PATCH] GFX: Graphics Driver build release 5.3.0.0039
+
+Weekly Graphics driver release.
+Please use usermode package 0039 with this build.
+
+Signed-off-by: Hitesh K. Patel <hitesh.k.patel at intel.com>
+---
+ drivers/staging/mrst/drv/mdfld_dsi_dbi.c           |  109 +++++++++++++-------
+ drivers/staging/mrst/drv/mdfld_dsi_pkg_sender.c    |   36 ++++++-
+ drivers/staging/mrst/drv/psb_drm.h                 |    2 +-
+ drivers/staging/mrst/drv/psb_drv.c                 |    5 +-
+ drivers/staging/mrst/drv/psb_drv.h                 |    7 +-
+ drivers/staging/mrst/drv/psb_intel_hdmi.c          |   15 ---
+ drivers/staging/mrst/drv/psb_irq.c                 |   50 +++++++--
+ drivers/staging/mrst/drv/tpo_cmd.c                 |   30 ++----
+ .../pvr/services4/srvkm/devices/sgx/sgxconfig.h    |    6 +-
+ 9 files changed, 161 insertions(+), 99 deletions(-)
+
+diff --git a/drivers/staging/mrst/drv/mdfld_dsi_dbi.c b/drivers/staging/mrst/drv/mdfld_dsi_dbi.c
+index 2b8d108..6d3e81c 100644
+--- a/drivers/staging/mrst/drv/mdfld_dsi_dbi.c
++++ b/drivers/staging/mrst/drv/mdfld_dsi_dbi.c
+@@ -364,6 +364,7 @@ void mdfld_dsi_dbi_enter_dsr (struct mdfld_dsi_dbi_output * dbi_output, int pipe
+ static void mdfld_dbi_output_exit_dsr (struct mdfld_dsi_dbi_output * dbi_output, int pipe)
+ {
+ 	struct drm_device * dev = dbi_output->dev;
++	struct drm_psb_private *dev_priv = dev->dev_private;
+ 	struct drm_crtc * crtc = dbi_output->base.base.crtc;
+ 	struct psb_intel_crtc * psb_crtc = (crtc) ? to_psb_intel_crtc(crtc) : NULL; 
+ 	u32 reg_val;
+@@ -433,6 +434,10 @@ static void mdfld_dbi_output_exit_dsr (struct mdfld_dsi_dbi_output * dbi_output,
+ 	
+ 	ospm_power_using_hw_end(OSPM_DISPLAY_ISLAND);
+ 	
++	/*enable TE interrupt on this pipe*/
++	if (dev_priv->platform_rev_id != MDFLD_PNW_A0)
++		mdfld_enable_te(dev, pipe);
++
+ 	/*clean IN_DSR flag*/
+ 	dbi_output->mode_flags &= ~MODE_SETTING_IN_DSR;
+ }
+@@ -440,12 +445,13 @@ static void mdfld_dbi_output_exit_dsr (struct mdfld_dsi_dbi_output * dbi_output,
+ /**
+  * Exit from DSR 
+  */
+-void mdfld_dsi_dbi_exit_dsr (struct drm_device *dev, u32 update_src)
++void mdfld_dsi_dbi_exit_dsr(struct drm_device *dev, u32 update_src)
+ {
+-	struct drm_psb_private * dev_priv = dev->dev_private;
++	struct drm_psb_private *dev_priv = dev->dev_private;
+ 	struct mdfld_dbi_dsr_info * dsr_info = dev_priv->dbi_dsr_info;
+ 	struct mdfld_dsi_dbi_output ** dbi_output;
+ 	int i;
++	int pipe;
+ 	
+ 	PSB_DEBUG_ENTRY("\n");
+ 
+@@ -463,21 +469,16 @@ void mdfld_dsi_dbi_exit_dsr (struct drm_device *dev, u32 update_src)
+ 		/*if panel has been turned off, skip*/
+ 		if (!dbi_output[i]->dbi_panel_on)
+ 			continue;
+-		if(dbi_output[i]->mode_flags & MODE_SETTING_IN_DSR) {
+-			mdfld_dbi_output_exit_dsr(dbi_output[i], dbi_output[i]->channel_num ? 2 : 0);
+-		}
++
++		pipe = dbi_output[i]->channel_num ? 2 : 0;
++		enter_dsr = 0;
++		mdfld_dbi_output_exit_dsr(dbi_output[i], pipe);
+ 	}
+ 	
+ 	dev_priv->dsr_fb_update |= update_src;
+ 	
+-	if (dev_priv->platform_rev_id != MDFLD_PNW_A0) {
+-
+-		if (dev_priv->dbi_panel_on)
+-			mdfld_enable_te(dev, 0);
+-		else if (dev_priv->dbi_panel_on2)
+-			mdfld_enable_te(dev, 2);
+-	} else
+-		/*start timer*/
++	/*start timer if A0 board*/
++	if (dev_priv->platform_rev_id == MDFLD_PNW_A0)
+ 		mdfld_dbi_dsr_timer_start(dsr_info);
+ }
+ 
+@@ -498,40 +499,69 @@ static bool mdfld_dbi_is_in_dsr(struct drm_device * dev)
+ /* Perodically update dbi panel */
+ void mdfld_dbi_update_panel (struct drm_device *dev, int pipe)
+ {
+-	struct drm_psb_private * dev_priv = dev->dev_private;
+-	struct mdfld_dbi_dsr_info * dsr_info = dev_priv->dbi_dsr_info;
+-	struct mdfld_dsi_dbi_output ** dbi_output;
++	struct drm_psb_private *dev_priv = dev->dev_private;
++	struct mdfld_dbi_dsr_info *dsr_info = dev_priv->dbi_dsr_info;
++	struct mdfld_dsi_dbi_output **dbi_outputs;
++	struct mdfld_dsi_dbi_output *dbi_output;
+ 	int i;
++	int can_enter_dsr = 0;
++	int enter_dsr = 0;
++	u32 damage_mask = 0;
+ 
+-	dbi_output = dsr_info->dbi_outputs;
+-	
+-	if (dev_priv->dsr_fb_update)
+-	{
+-		for(i=0; i<dsr_info->dbi_output_num; i++) {
+-			if ((dbi_output[i]->dbi_panel_on)) {
+-				dbi_output[i]->dsr_fb_update_done = false;
+-				if(dbi_output[i]->p_funcs->update_fb)
+-					dbi_output[i]->p_funcs->update_fb(dbi_output[i], 
+-								dbi_output[i]->channel_num ? 2 : 0);
+-				if (dev_priv->b_dsr_enable && dbi_output[i]->dsr_fb_update_done)
+-					dev_priv->dsr_fb_update &= ~(dev_priv->dsr_fb_update);
+-			}
+-			
+-			/*clean IN_DSR flag*/
+-			dbi_output[i]->mode_flags &= ~MODE_SETTING_IN_DSR;
+-		}
+-		
+-		dsr_info->dsr_idle_count = 0;
++	dbi_outputs = dsr_info->dbi_outputs;
++	dbi_output = pipe ? dbi_outputs[1] : dbi_outputs[0];
++
++	if (!dbi_output)
++		return;
++
++	if (pipe == 0)
++		damage_mask = dev_priv->dsr_fb_update & MDFLD_DSR_DAMAGE_MASK_0;
++	else if (pipe == 2)
++		damage_mask = dev_priv->dsr_fb_update & MDFLD_DSR_DAMAGE_MASK_2;
++	else
++		return;
++
++	/*if FB is damaged and panel is on update on-panel FB*/
++	if (damage_mask && dbi_output->dbi_panel_on) {
++		dbi_output->dsr_fb_update_done = false;
++
++		if (dbi_output->p_funcs->update_fb)
++			dbi_output->p_funcs->update_fb(dbi_output, pipe);
++
++		if (dev_priv->b_dsr_enable && dbi_output->dsr_fb_update_done)
++			dev_priv->dsr_fb_update &= ~damage_mask;
++
++		/*clean IN_DSR flag*/
++		dbi_output->mode_flags &= ~MODE_SETTING_IN_DSR;
++ 
++		dbi_output->dsr_idle_count = 0;
+ 
+ 	} else {
+-		dsr_info->dsr_idle_count++;
++		dbi_output->dsr_idle_count++;
++	}
++
++	switch (dsr_info->dbi_output_num) {
++	case 1:
++		if (dbi_output->dsr_idle_count > 1)
++			can_enter_dsr = 1;
++		break;
++	case 2:
++		if (dbi_outputs[0]->dsr_idle_count > 1
++			&& dbi_outputs[1]->dsr_idle_count > 1)
++			can_enter_dsr = 1;
++		break;
++	default:
++		DRM_ERROR("Wrong DBI output number\n");
++		can_enter_dsr = 0;
+ 	}
+ 
+-	if (dsr_info->dsr_idle_count > 1) {
++	/*try to enter DSR*/
++	if (can_enter_dsr) {
+ 		for(i=0; i<dsr_info->dbi_output_num; i++) {
+ 			if(!mdfld_dbi_is_in_dsr(dev) &&
+-			   !(dbi_output[i]->mode_flags & MODE_SETTING_ON_GOING)) {
+-				mdfld_dsi_dbi_enter_dsr(dbi_output[i], dbi_output[i]->channel_num ? 2 : 0);
++			   !(dbi_outputs[i]->mode_flags & MODE_SETTING_ON_GOING)) {
++				mdfld_dsi_dbi_enter_dsr(dbi_outputs[i],
++					dbi_outputs[i]->channel_num ? 2 : 0);
+ #if 0
+ 				enter_dsr = 1;
+ 				printk(KERN_ALERT "%s: enter_dsr = 1 \n", __func__);
+@@ -671,6 +701,7 @@ void mdfld_dsi_controller_dbi_init(struct mdfld_dsi_config * dsi_config, int pip
+ 	REG_WRITE((MIPIA_DPHY_PARAM_REG + reg_offset), 0x150c3408);
+ 	REG_WRITE((MIPIA_CLK_LANE_SWITCH_TIME_CNT_REG + reg_offset), 0x000a0014);
+ 	REG_WRITE((MIPIA_DBI_BW_CTRL_REG + reg_offset), 0x00000400);
++	REG_WRITE((MIPIA_DBI_FIFO_THROTTLE_REG + reg_offset), 0x00000001);
+ 	REG_WRITE((MIPIA_HS_LS_DBI_ENABLE_REG + reg_offset), 0x00000000);
+ 	
+ 	/*enable all interrupts*/
+diff --git a/drivers/staging/mrst/drv/mdfld_dsi_pkg_sender.c b/drivers/staging/mrst/drv/mdfld_dsi_pkg_sender.c
+index 77a2e7d..f26b204 100644
+--- a/drivers/staging/mrst/drv/mdfld_dsi_pkg_sender.c
++++ b/drivers/staging/mrst/drv/mdfld_dsi_pkg_sender.c
+@@ -30,6 +30,8 @@
+ #include "mdfld_dsi_pkg_sender.h"
(373 more lines skipped)

++++++ series
--- series
+++ series
@@ -43,7 +43,7 @@
 # The main consolidated MRST tree from
 # git//git.kernel.org/pub/scm/linux/kernel/git/alan/linux-2.6-mid-ref
 #
-linux-2.6.37-20110224-ac.patch
+linux-2.6.37-20110314-ac.patch
 
 linux-2.6.37-drm-forwardport.patch
 linux-2.6.37-drm-forward-1.patch
@@ -59,6 +59,7 @@
 linux-2.6.37-gma600-version-0035-to-0036.patch
 linux-2.6.37-gma600-version-0037.patch
 linux-2.6.37-gma600-version-0038.patch
+linux-2.6.37-gma600-version-0039.patch
 
 #
 ### Graphics
@@ -83,9 +84,6 @@
 
 ### Workarounds
 
-# Work around some firmware versions misprogramming GPIO's
-linux-2.6.37-keypad-gpio.patch
-
 # work around an upstream 2.6.37 evdev bug
 linux-2.6.37-evdev.patch
 
@@ -126,9 +124,9 @@
 linux-2.6.37-camera-driver.patch
 linux-2.6.37-camera-driver-adjust.patch
 linux-2.6.37-camera-fix-subdev-call.patch
-linux-2.6.37-camera-ov9740.patch
-linux-2.6.37-camera-ov5640.patch
-linux-2.6.37-ISP-support-two-soc.patch
+#linux-2.6.37-camera-ov9740.patch
+#linux-2.6.37-camera-ov5640.patch
+#linux-2.6.37-ISP-support-two-soc.patch
 
 
 




More information about the MeeGo-commits mailing list