kernel/kernel-mfld-blackbay.git
12 years agoconfig-tizen: disable HDMI audio
Markus Lehtonen [Tue, 3 Apr 2012 08:03:49 +0000 (11:03 +0300)]
config-tizen: disable HDMI audio

Run make oldconfig and disable Intel HDMI audio.

12 years agoconfig-tizen: base from MCG WW26 release
Markus Lehtonen [Wed, 4 Apr 2012 06:17:51 +0000 (09:17 +0300)]
config-tizen: base from MCG WW26 release

Add kernel.configs from weekly release as tizen_bb_defconfig and
tizen_rr_defconfig.

12 years agoBackport SMACK changes from 3.3 to 3.0
Elena Reshetova [Fri, 4 May 2012 06:09:19 +0000 (09:09 +0300)]
Backport SMACK changes from 3.3 to 3.0

Signed-off-by: Elena Reshetova <elena.reshetova@intel.com>
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoTizen: Revert "[PORT FROM R2] remove depmod from build"
Markus Lehtonen [Thu, 26 Apr 2012 08:37:55 +0000 (11:37 +0300)]
Tizen: Revert "[PORT FROM R2] remove depmod from build"

This reverts commit 76ad204623a7790c8ba66d28f317726d0705c41d.

Tizen needs depmod.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agostaging: msvdx: hdmi support
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:30 +0000 (17:24 +0300)]
staging: msvdx: hdmi support

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: add query for active hw video entry
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:29 +0000 (17:24 +0300)]
staging: msvdx: add query for active hw video entry

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: support for non-DO firmware
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:28 +0000 (17:24 +0300)]
staging: msvdx: support for non-DO firmware

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: topaz: add support for bias table
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:27 +0000 (17:24 +0300)]
staging: topaz: add support for bias table

Part of hw video driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: remove otc hdmi support
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:26 +0000 (17:24 +0300)]
staging: msvdx: remove otc hdmi support

In preparation for supporting UMG hw video driver update which
has different HDMI support.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: remove explicit delay after data submission
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:25 +0000 (17:24 +0300)]
staging: msvdx: remove explicit delay after data submission

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: check context type before resetting
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:24 +0000 (17:24 +0300)]
staging: msvdx: check context type before resetting

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: rewrite hw reset logic
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:23 +0000 (17:24 +0300)]
staging: msvdx: rewrite hw reset logic

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: upload firmware using dma as part of fw setup
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:21 +0000 (17:24 +0300)]
staging: msvdx: upload firmware using dma as part of fw setup

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: use ospm to determine pm state
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:22 +0000 (17:24 +0300)]
staging: msvdx: use ospm to determine pm state

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: reduce polling frequency in register read
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:20 +0000 (17:24 +0300)]
staging: msvdx: reduce polling frequency in register read

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: topaz: rewrite hw reset logic
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:19 +0000 (17:24 +0300)]
staging: topaz: rewrite hw reset logic

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: imgv: ttm: replace buffer creation with latest UMG logic
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:18 +0000 (17:24 +0300)]
staging: imgv: ttm: replace buffer creation with latest UMG logic

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: imgv: ttm: remove local proto for buffer class destructor
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:17 +0000 (17:24 +0300)]
staging: imgv: ttm: remove local proto for buffer class destructor

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: imgv: ttm: remove restricted access region support
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:16 +0000 (17:24 +0300)]
staging: imgv: ttm: remove restricted access region support

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: topaz: do not mark mtx saved if driver is not present
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:15 +0000 (17:24 +0300)]
staging: topaz: do not mark mtx saved if driver is not present

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: topaz: check if hw is stuck
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:14 +0000 (17:24 +0300)]
staging: topaz: check if hw is stuck

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: topaz: dbg: logging for timeout
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:13 +0000 (17:24 +0300)]
staging: topaz: dbg: logging for timeout

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: topaz: schedule hw suspension on timeout
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:12 +0000 (17:24 +0300)]
staging: topaz: schedule hw suspension on timeout

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: topaz: check if hw is idle based on command fifo
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:11 +0000 (17:24 +0300)]
staging: topaz: check if hw is idle based on command fifo

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: imgv: delay fence timeout
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:10 +0000 (17:24 +0300)]
staging: imgv: delay fence timeout

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: support for D0 and non-DO reset sequence
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:09 +0000 (17:24 +0300)]
staging: msvdx: support for D0 and non-DO reset sequence

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: topaz: fix mtx data size calculation
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:08 +0000 (17:24 +0300)]
staging: topaz: fix mtx data size calculation

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: topaz: reduce polling frequency in register read
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:07 +0000 (17:24 +0300)]
staging: topaz: reduce polling frequency in register read

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: topaz: remove unused shadow registers
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:06 +0000 (17:24 +0300)]
staging: topaz: remove unused shadow registers

Part of UMG video driver updates needed to support UMG psb-video
userland driver.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: imgv: mmu: reduce scope for implementation details
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:05 +0000 (17:24 +0300)]
staging: imgv: mmu: reduce scope for implementation details

Part of video hw driver update from UMG - no functional
changes.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: remove unused header inclusion
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:04 +0000 (17:24 +0300)]
staging: msvdx: remove unused header inclusion

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: remove unused support for rar offset
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:03 +0000 (17:24 +0300)]
staging: msvdx: remove unused support for rar offset

Restricted access region is not supported in general. This is
part of latest UMG video hw driver update.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: bc_video: remove unused mem alloc and camera interface
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:02 +0000 (17:24 +0300)]
staging: bc_video: remove unused mem alloc and camera interface

No functional changes.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: gfx: introduce new driver private drm frame parameters
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:01 +0000 (17:24 +0300)]
staging: gfx: introduce new driver private drm frame parameters

In preparation to supporting hw video (msvdx, topaz) driver.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: gfx: support for checking for tablet platform
Topi Pohjolainen [Fri, 27 Apr 2012 14:24:00 +0000 (17:24 +0300)]
staging: gfx: support for checking for tablet platform

In preparation for supporting UMG hw video driver.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: imgv: remove support for binding gfx buffers
Topi Pohjolainen [Fri, 27 Apr 2012 14:23:59 +0000 (17:23 +0300)]
staging: imgv: remove support for binding gfx buffers

In preparation for switching to UMG hw video driver which does
not need this feature.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: imgv: remove user buffer ttm wrapping support
Topi Pohjolainen [Fri, 27 Apr 2012 14:23:58 +0000 (17:23 +0300)]
staging: imgv: remove user buffer ttm wrapping support

Part of video hw driver update from UMG.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: imgv: remove dead code
Topi Pohjolainen [Fri, 27 Apr 2012 14:23:56 +0000 (17:23 +0300)]
staging: imgv: remove dead code

Both callers of 'pl_create_buf()' leave the triggering page list
empty.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agostaging: msvdx: remove unused mb concealment support
Topi Pohjolainen [Fri, 27 Apr 2012 14:23:54 +0000 (17:23 +0300)]
staging: msvdx: remove unused mb concealment support

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
12 years agoTMD 6x10: merge more crtc functions into otc pvr gfx driver
Li Peng [Tue, 1 May 2012 03:46:14 +0000 (11:46 +0800)]
TMD 6x10: merge more crtc functions into otc pvr gfx driver

including mdfld_crtc_dpms and mdfld_crtc_mode_set

Signed-off-by: Li Peng <peng.li@intel.com>
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoTMD 6x10: fixes to MCG side of the MCG display panel code merge
Li Peng [Sat, 28 Apr 2012 15:50:29 +0000 (23:50 +0800)]
TMD 6x10: fixes to MCG side of the MCG display panel code merge

Fixes to MCG PVR code to get the MCG's TMD 6x10 display panel driver
compiling and running in the hybrid kernel.

Signed-off-by: Li Peng <peng.li@intel.com>
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoTMD 6x10: fixes to OTC side of the MCG display panel code merge
Li Peng [Sat, 28 Apr 2012 15:50:29 +0000 (23:50 +0800)]
TMD 6x10: fixes to OTC side of the MCG display panel code merge

Fixes to OTC PVR code to get the MCG's TMD 6x10 display panel driver
compiling and running in the hybrid kernel.

Signed-off-by: Li Peng <peng.li@intel.com>
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoTMD 6x10: merge MCG display panel code onto OTC pvr driver
Li Peng [Sat, 28 Apr 2012 15:50:29 +0000 (23:50 +0800)]
TMD 6x10: merge MCG display panel code onto OTC pvr driver

The purpose is to pull latest MCG display panel code into OTC pvr
driver. This commit creates symbol link to MCG source files including
mdfld_dsi_dbi{dpi}, mdfld_output and mdfld_dsi_pkg_sender, etc.

Signed-off-by: Li Peng <peng.li@intel.com>
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoPVR hybrid: build fixes
Markus Lehtonen [Tue, 10 Apr 2012 12:00:19 +0000 (15:00 +0300)]
PVR hybrid: build fixes

12 years agoPVR hybrid: atomisp build fixes
Markus Lehtonen [Fri, 30 Mar 2012 12:19:51 +0000 (15:19 +0300)]
PVR hybrid: atomisp build fixes

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agoPVR hybrid: atomisp Makefile fixes
Markus Lehtonen [Fri, 30 Mar 2012 11:40:04 +0000 (14:40 +0300)]
PVR hybrid: atomisp Makefile fixes

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
12 years agogfx: drv: Clear all pending flips when a pipe is being disabled
Ville Syrjälä [Thu, 29 Mar 2012 18:14:16 +0000 (21:14 +0300)]
gfx: drv: Clear all pending flips when a pipe is being disabled

When a pipe is disabled, no vblank interrupt will be generated, and thus
any pending flip will not complete on its own. Complete all pending
flips when the associated pipe is being disabled.

The drm_flip_driver initialization must be performed earlier since the
DPMS hooks get called during modeset init. Also fix the crtc/plane vs.
drm_flip_helper vs. drm_flip_driver cleanup order.

Issue: ANDROID-2302
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agogfx: drv: Fix swap interval 0 page flipping
Ville Syrjälä [Thu, 29 Mar 2012 18:14:15 +0000 (21:14 +0300)]
gfx: drv: Fix swap interval 0 page flipping

When issuing flips faster than the screen refresh rate, swap the
previous mem infos around for the current and previous flip. This
causes the completion of the previous flip to incement the completed
read ops counter of the previous flip's front buffer instead
of the current scanout buffer. Any new rendering targeting the
scanout buffer will thus be blocked until the next vblank occurs.

Issue: ANDROID-2373
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agogfx: CABC: Setting changes
Yong-Joon.Park [Fri, 30 Mar 2012 06:52:31 +0000 (23:52 -0700)]
gfx: CABC: Setting changes

This patch changes PWM frequency to 5KHz for better VR efficiency
and other CABC settings for better power savings.

Issue: ANDROID-1551
Signed-off-by: Yong-Joon.Park <yong-joon.park@intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agogfx: change HDMI modes from Android application
Ying Gao [Fri, 30 Mar 2012 02:43:26 +0000 (19:43 -0700)]
gfx: change HDMI modes from Android application

Enable standalone Android application to change HDMI modes. This is
used for compliance testing, towards ANDROID-167.

Signed-off-by: Mohan Kandra <mohan.b.kandra@intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agogfx: fix local screen blank out with rapid hotplug/unplugs
Arun Kannan [Fri, 30 Mar 2012 02:43:25 +0000 (19:43 -0700)]
gfx: fix local screen blank out with rapid hotplug/unplugs

Local display blanks out with too many rapid hot-plug/unplugs. This is
due to the call to drm_disable_unused_functions from the bottom-half irq
handler. This ends up as a race condition for this function which is called
once from drm and once from the bottom-half causing local display to get
into bad state.

Issue: HSD 207129
Signed-off-by: Amit Bhanagay <amit.bhanagay@intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agogfx: Support for HDMI repeater operations.
Amit Bhanagay [Fri, 30 Mar 2012 02:43:24 +0000 (19:43 -0700)]
gfx: Support for HDMI repeater operations.

Phase 2 authentication protocol is required (in addition to phase
1 and 3) if the HDMI receiver is an HDMI repeater. The protocol
assembles the list of all downstream KSVs attached to the
receiver and verifies its integrity.

Issue: ANDROID-238
Signed-off-by: Amit Bhanagay <amit.bhanagay@intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agogfx: Fix for HDMI i2c operation not detected by some monitors.
Amit Bhanagay [Fri, 30 Mar 2012 02:43:23 +0000 (19:43 -0700)]
gfx: Fix for HDMI i2c operation not detected by some monitors.

HDMI i2c operations are streamlined by adding appropriate sleeps
between the operations to complete properly and avoid subsequent
failures. HDMI i2c write operation to write 2 messages
(message and payload) is changed to writing 1 message instead
(message and payload combined). Some monitors don't handle 2
messages properly.

Issue: ANDROID-238
Signed-off-by: Amit Bhanagay <amit.bhanagay@intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agogfx: drv: DPST 3.0 kernel side support
Antti Koskipaa [Wed, 28 Mar 2012 11:25:53 +0000 (14:25 +0300)]
gfx: drv: DPST 3.0 kernel side support

This patch removes the dead UMG workqueue implementation and adds support
for sending signals to userspace on DPST interrupts. The DRM fasync
infrastructure is used for this.

SIGIO/POLL_IN is sent on histogram interrupts and SIGIO/POLL_OUT on
phase-in interrupts.

Issue: ANDROID-2333
Signed-off-by: Antti Koskipaa <antti.koskipaa@linux.intel.com>
Signed-off-by: Yong-Joon.Park <yong-joon.park@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
(with a claim he does not know DPST)
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agogfx: display: tc35876x: disable flopped high-speed transmitting path
Jani Nikula [Mon, 26 Mar 2012 11:03:12 +0000 (14:03 +0300)]
gfx: display: tc35876x: disable flopped high-speed transmitting path

The flopped high-speed transmitting path was (for reasons unknown) enabled
in the MIPIA_PORT_CTRL register for tc35876x. This caused visible noise on
screen in certain RGB values, typically at ~90% of the full color
intensity, on some devices. Disable the feature.

Issue: ANDROID-1865
Issue: GRA-6
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agogfx: display: remove redundant pipe register writes in tc35876x mode set
Jani Nikula [Fri, 23 Mar 2012 13:47:52 +0000 (15:47 +0200)]
gfx: display: remove redundant pipe register writes in tc35876x mode set

Most significantly, don't set DSPALINOFF (aka DSPBASE in code) or DSPASURF
to 0, which restores old framebuffer content on screen.

Issue: ANDROID-754
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agogfx: drv: Avoid freeing the sync counter before completing it
Pauli Nieminen [Thu, 22 Mar 2012 17:34:15 +0000 (19:34 +0200)]
gfx: drv: Avoid freeing the sync counter before completing it

If memory reference is freed before read complete count is increment
sync completion access already free memory.

[  428.488124] BUG: unable to handle kernel paging request at 6b6b6b77
[  428.494583] IP: [<c1384af5>] PVRSRVCheckPendingSyncs+0x45/0xc6
[  428.500581] *pdpt = 000000002d34c001 *pde = 0000000000000000
[  428.506418] Oops: 0000 [#1] PREEMPT SMP
[  428.510541] Modules linked in: wl12xx_compat_sdio(C) btwilink
wl12xx_compat(C) mac80211_compat(C) cfg80211_compat(C) compat(C) fm_drv
st_drv fuse atomisp snd_soc_mfld_machine snd_soc_sn95031
snd_soc_sst_platform lm3554 mt9m114 mt9e013 videobuf_vmalloc
videobuf_core atmel_mxt_ts pn544_nxp
[  428.536909]
[  428.538432] Pid: 5, comm: kworker/u:0 Tainted: G        WC 3.0.22-mid15 #1
[  428.545753] EIP: 0060:[<c1384af5>] EFLAGS: 00010002 CPU: 0
[  428.551279] EIP is at PVRSRVCheckPendingSyncs+0x45/0xc6
[  428.556628] EAX: eb2eda10 EBX: e8e1698c ECX: 00000001 EDX: 00000003
[  428.562933] ESI: ed6172dc EDI: 6b6b6b6b EBP: ee04ff28 ESP: ee04ff0c
[  428.569328]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[  428.574767] Process kworker/u:0 (pid: 5, ti=ee04e000 task=ee0428c0 task.ti=ee04e000)
[  428.582631] Stack:
[  428.584668]  00000000 00000246 ee04ff14 ee04ff14 c1e6b880 ed696e00 ed22bb05 ee04ff34
[  428.592662]  c138efb8 ed6cd55c ee04ff3c c1383f1a ee04ff78 c104b6cb 0000009a c1383f0f
[  428.600683]  00000000 ed22bb00 c1847800 ee028120 c1e6a5f4 00000000 00000000 c16c36d7
[  428.608794] Call Trace:
[  428.611282]  [<c138efb8>] PVRSRVMISR+0x80/0x85
[  428.615853]  [<c1383f1a>] MISRWrapper+0xb/0xd
[  428.620250]  [<c104b6cb>] process_one_work+0x1ef/0x357
[  428.625523]  [<c1383f0f>] ? OSMemHandleToCpuPAddr+0x29/0x29
[  428.631145]  [<c104d782>] worker_thread+0xfd/0x20f
[  428.636069]  [<c104d685>] ? manage_workers+0x2ba/0x2ba
[  428.641253]  [<c1050311>] kthread+0x63/0x68
[  428.645480]  [<c10502ae>] ? __init_kthread_worker+0x42/0x42
[  428.651185]  [<c14ee602>] kernel_thread_helper+0x6/0xd

Issue: ANDROID-2144
Issue: ANDROID-2168
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agogfx: overlay: Clip the overlay correctly
Ville Syrjälä [Thu, 22 Mar 2012 13:25:44 +0000 (15:25 +0200)]
gfx: overlay: Clip the overlay correctly

When the panel fitter is used the overlay output is scaled by the panel
fitter as well. So to correctly clip the overlay to the screen edges
user the information in crtc->mode instead of crtc->hwmode.

Issue: ANDROID-1462
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agoHACK: gfx: Adjust HDMI hdisplay/vdisplay values
Ville Syrjälä [Thu, 22 Mar 2012 13:25:43 +0000 (15:25 +0200)]
HACK: gfx: Adjust HDMI hdisplay/vdisplay values

The HDMI code doesn't follow the KMS desing correctly, hence the values
stored in the mode structure are incorrect. Adjust the "user" mode
hdisplay/vdisplay and their crtc counterparts to match the framebuffer
size. This "fixes" vblank counter comparisons for HDMI, thus fixing page
flip completion detection, and this also allows the overlay to be
clipped "correctly".

This makes assumptions on how the panel fitter willl be programmed.
Based on a cursory examination of the HDMI code, it will only work
as long as the IPIL_TIMING_SCALE_ASPECT scaling mode is selected.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agogfx: pvr: fw_version should compare 4 integers instead of 4 bytes
Olev Kartau [Fri, 16 Mar 2012 07:05:20 +0000 (09:05 +0200)]
gfx: pvr: fw_version should compare 4 integers instead of 4 bytes

sizeof() was misused in fw_version_supported;
If array is given as argument, the size of it is size of pointer,
so comparison used only first 4 bytes instead of 4 integers,
which made all entries to match.

Signed-off-by: Olev Kartau <olev.kartau@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: pvr: fix list of supported FW version
Kirill A. Shutemov [Wed, 21 Mar 2012 11:13:50 +0000 (13:13 +0200)]
gfx: pvr: fix list of supported FW version

The only supported FW version is 1.7.17.296760.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
12 years agogfx: drv: Move stolen vram iounmap() into gtt code
Ville Syrjälä [Tue, 20 Mar 2012 14:46:22 +0000 (16:46 +0200)]
gfx: drv: Move stolen vram iounmap() into gtt code

The stolen memory is ioremap()ed in gtt init. Move the iounmap to the
gtt takedown function instead of doing it from the fbdev compatibility
code.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Don't tell fbdev about mmio regions
Ville Syrjälä [Tue, 20 Mar 2012 14:46:21 +0000 (16:46 +0200)]
gfx: drv: Don't tell fbdev about mmio regions

The fbdev mmio information is not used by the kernel for anything,
it's simply passed directly out to user space. User space should not
be allowed to touch the mmio registers directly, so it clearly doesn't
need to know where the mmio region is located physically.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Correctly set info->par
Ville Syrjälä [Tue, 20 Mar 2012 14:46:20 +0000 (16:46 +0200)]
gfx: drv: Correctly set info->par

When using drm_fb_helper, fbdev par is supposed to point to the
drm_fb_helper instance.

This "bug" didn't cause problems as the helper is emedded as the
first member inside the psb_fbdev strcture. But let's make the code
correct nonetheless.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Check the kernel fb size against the stolen vram size
Ville Syrjälä [Tue, 20 Mar 2012 14:46:19 +0000 (16:46 +0200)]
gfx: drv: Check the kernel fb size against the stolen vram size

Make sure we have anough stolen vram to house the kernel framebuffer.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Check framebuffer depth with HDMI
Ville Syrjälä [Tue, 20 Mar 2012 14:46:18 +0000 (16:46 +0200)]
gfx: drv: Check framebuffer depth with HDMI

The HDMI code takes an entirely separate code path for mode setting.
Mode the framebuffer depth check earlier, so that the HDMI case is
checked as well.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Improve warning messages
Ville Syrjälä [Tue, 20 Mar 2012 14:46:17 +0000 (16:46 +0200)]
gfx: drv: Improve warning messages

Use dev_warn() instead of WARN_ON() to provide better information what
went wrong. The message is the important part, the backtrace isn't
really useful.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Unify and fix idr error handling
Ville Syrjälä [Tue, 20 Mar 2012 14:46:16 +0000 (16:46 +0200)]
drm: Unify and fix idr error handling

The error handling code w.r.t. idr usage looks inconsistent.

In the case of drm_mode_object_get() and drm_ctxbitmap_next() the error
handling is also incomplete.

Unify the code to follow the same pattern always.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Add drm_mode_copy()
Ville Syrjälä [Tue, 20 Mar 2012 14:46:15 +0000 (16:46 +0200)]
drm: Add drm_mode_copy()

Add a helper function to copy a display mode. Use it in
drm_mode_duplicate() and nouveau mode_fixup hooks.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Use a flexible array member for blob property data
Ville Syrjälä [Tue, 20 Mar 2012 14:46:14 +0000 (16:46 +0200)]
drm: Use a flexible array member for blob property data

The blob property data is always allocated immediately after the object
header. No need for the extra indirection when accessing it, just use
a flexible array member.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Handle drm_object_get() failures
Ville Syrjälä [Tue, 20 Mar 2012 14:46:13 +0000 (16:46 +0200)]
drm: Handle drm_object_get() failures

Check drm_mode_object_get() return value everywhere.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Make drm_crtc_convert_{umode, to_umode} static and constify their params
Ville Syrjälä [Tue, 20 Mar 2012 14:46:12 +0000 (16:46 +0200)]
drm: Make drm_crtc_convert_{umode, to_umode} static and constify their params

drm_crtc_convert_umode() and drm_crtc_convert_to_umode() are never
used outside drm_crtc.c, so make them static. Also make the input
mode structure const for both functions.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Fix drm_mode_attachmode_crtc()
Ville Syrjälä [Tue, 20 Mar 2012 14:46:11 +0000 (16:46 +0200)]
drm: Fix drm_mode_attachmode_crtc()

Change drm_mode_attachmode_crtc() to take an "all or nothing" approach.
If an error is returned, there are no side effects visible.

Also change the function to always duplicate the mode passed in.

Also change the function to not give up when it finds the first
connector without and encoder.

A simpler approach would be to just remove the function completely as
it's unused currently.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Check CRTC viewport against framebuffer size
Ville Syrjälä [Tue, 20 Mar 2012 14:46:10 +0000 (16:46 +0200)]
drm: Check CRTC viewport against framebuffer size

Make sure the requested CRTC viewport fits inside the
framebuffer.

Issue: ANDROID-2161
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Check user mode against overflows
Ville Syrjälä [Tue, 20 Mar 2012 14:46:09 +0000 (16:46 +0200)]
drm: Check user mode against overflows

The internal mode representation drm_display_mode uses signed data
types. When converting the user mode to internal representation,
check that the unsigned values don't overflow the signed datatypes.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Fix memory leak in drm_mode_setcrtc()
Ville Syrjälä [Tue, 20 Mar 2012 14:46:08 +0000 (16:46 +0200)]
drm: Fix memory leak in drm_mode_setcrtc()

The mode passed to the .set_config() hook was never freed. The drivers
will make a copy of the mode, so simply free it when done.

Issue: ANDROID-2160
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Make drm_mode_attachmode() void
Ville Syrjälä [Tue, 20 Mar 2012 14:46:07 +0000 (16:46 +0200)]
drm: Make drm_mode_attachmode() void

drm_mode_attachmode() always returns 0. Change the return type to void.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Check crtc x and y coordinates
Ville Syrjälä [Tue, 20 Mar 2012 14:46:06 +0000 (16:46 +0200)]
drm: Check crtc x and y coordinates

The crtc x/y panning coordinates are stored as signed integers
internally. The user provides them as unsigned, so we should check
that the user provided values actually fit in the internal datatypes.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Warn if mode to umode conversion overflows the destination types
Ville Syrjälä [Tue, 20 Mar 2012 14:46:05 +0000 (16:46 +0200)]
drm: Warn if mode to umode conversion overflows the destination types

When converting from a drm_display_mode to drm_mode_modeinfo, print a
warning if the the timings values don't fit into the __u16 datatype.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Change drm_display_mode::type to unsigned
Ville Syrjälä [Tue, 20 Mar 2012 14:46:04 +0000 (16:46 +0200)]
drm: Change drm_display_mode::type to unsigned

The drm_display_mode type is a bitmask so it should be unsigned.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrm: Reject mode set with current fb if no current fb is bound
Ville Syrjälä [Tue, 20 Mar 2012 14:46:03 +0000 (16:46 +0200)]
drm: Reject mode set with current fb if no current fb is bound

When doing a mode set with the special fb id -1, reject the mode set if
no fb is currently bound to the crtc.

Also remove the pointless list traversal to find the current crtc based
on the current crtc :)

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoAdd check reset function for msvdx firmware
Daniel Charles [Fri, 16 Mar 2012 15:39:37 +0000 (08:39 -0700)]
Add check reset function for msvdx firmware

When fence lockup is triggered by the msvdx firmware, it reaches an
unrecoverable state that requires a firmware reload so that it can
continue operating without resetting the device.

This scenario is seen when playing some corrupted media clips which
cause the media stack to fail.

Once the firmware is reloaded it will continue decoding when possible
and next attempts to play will be successful

Issue: ANDROID-2031
Reviewed-by: Sean V Kelley <sean.v.kelley@intel.com>
Signed-off-by: Daniel Charles <daniel.charles@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: display: use regulator instead of gpio to power on/off display
Jani Nikula [Fri, 16 Mar 2012 15:03:47 +0000 (17:03 +0200)]
gfx: display: use regulator instead of gpio to power on/off display

The platform code now abstracts the VLCM_DVDD voltage rail as a regulator,
so switch to using the regulator framework instead of toggling the GPIO
control directly. This allows usage counting and multiple users for the
voltage rail.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: set power state
Imre Deak [Thu, 15 Mar 2012 16:34:12 +0000 (12:34 -0400)]
gfx: set power state

The PVR PCI PMCSR returns 0 (D0), even when the
device is actually in D3.  The PCI sub-system will
not D0 a device it thinks is already in D0; and
so the driver needs to make the calls to set the
power state directly to work around this failure
of PVR to be PCI compliant.

This change allows enabling the s0i1-idle state.

echo 5 > /sys/module/intel_idle/parameters/max_cstate
(currently the default is limited to 4, which is C6)

Issue: GRA-27
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: display: switch off GL3 power island at boot when it's not used
Jani Nikula [Thu, 15 Mar 2012 14:08:38 +0000 (16:08 +0200)]
gfx: display: switch off GL3 power island at boot when it's not used

The GL3 cache power island used to be on at boot until the first display
off, even if it was never used or enabled. To save power, switch off the
GL3 island at boot if it's not used.

Issue: GRA-61
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: display: move ospm_power_(un)init functions to avoid forward declarations
Jani Nikula [Thu, 15 Mar 2012 14:08:37 +0000 (16:08 +0200)]
gfx: display: move ospm_power_(un)init functions to avoid forward declarations

Move ospm_power_init() and ospm_power_uninit() functions towards the end of
file to avoid forward declarations in the following patch. No functional
changes.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoRevert "MUST_REVERT: gfx: drm: explicitly authenticate for Android"
Sean V. Kelley [Tue, 13 Mar 2012 22:10:45 +0000 (15:10 -0700)]
Revert "MUST_REVERT: gfx: drm: explicitly authenticate for Android"

This reverts commit 0e56daf3638ba5fd598ed621e0fcd3159c975e91.

Now handled in HAL and SurfaceFlinger using DRM_AUTH API.

Issue: ANDROID-1031
Signed-off-by: Sean V Kelley <sean.v.kelley@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: hdmi: Bug fix for overflow buffer boundaries.
Anand Gandhimathi [Tue, 13 Mar 2012 00:28:46 +0000 (17:28 -0700)]
gfx: hdmi: Bug fix for overflow buffer boundaries.

fix the overflow buffer boundaries while doing strncpy
Build warning fix

ISSUE: HSD-207051
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: hdmi: Convert API interface documentation to kernel doc
Anand Gandhimathi [Tue, 13 Mar 2012 00:28:45 +0000 (17:28 -0700)]
gfx: hdmi: Convert API interface documentation to kernel doc

Added comments for all the functions following the
template mentioned in kernel documentation

Signed-off-by: Chen Hu <hu.tiger.chen@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: hdmi: Enabling EDID prints during run-time
Anand Gandhimathi [Tue, 13 Mar 2012 00:28:44 +0000 (17:28 -0700)]
gfx: hdmi: Enabling EDID prints during run-time

Handle to hdmi_context function added in a opaque manner
Cleaned up print pointers being passed to different functions
PD_LOG macros and typedefs replaced to LOG_ macros and typedefs
New module to generate run-time EDID print logs

Signed-off-by: Chen Hu <hu.tiger.chen@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoHACK: gfx: pvr: Don't try to complete SGX commands in atomic context
Ville Syrjälä [Fri, 9 Mar 2012 15:26:07 +0000 (17:26 +0200)]
HACK: gfx: pvr: Don't try to complete SGX commands in atomic context

SGXCommandComplete() may be called while holding a spinlock. In such
cases we want to defer the command completion to the MISR. As a quick
non-intrusive hack, add a simple in_atomic() check to
SGXCommandComplete() to make that happen. Obviously this only works
with CONFIG_PREEMPT kernels.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: pvr: Fix spinlock usage in ossync code
Ville Syrjälä [Fri, 9 Mar 2012 15:26:06 +0000 (17:26 +0200)]
gfx: pvr: Fix spinlock usage in ossync code

PVRSRVCallbackOnSync2() can be called with interrupts off, so use
spin_lock_irqsave() and spin_unlock_irqrestore().

[  104.859125] WARNING: at linux/kernel/lockdep.c:2507 trace_hardirqs_on_caller+0xb3/0x159()
[  104.871022] Modules linked in: btwilink wl12xx_compat(C) mac80211_compat(C) cfg80211_compat(C) compat(C) fm_drv st_drv fuse atomisp
 snd_soc_mfld_machine snd_soc_sn95031 snd_soc_sst_platform lm3554 mt9m114 mt9e013 videobuf_vmalloc videobuf_core pn544_nxp atmel_mxt_t
s
[  104.894610] Pid: 0, comm: swapper Tainted: G        WC  3.0.22-mid10-00062-g597558c-dirty #14
[  104.903174] Call Trace:
[  104.905603]  [<c1036b34>] warn_slowpath_common+0x4b/0x60
[  104.910903]  [<c1061a2b>] ? trace_hardirqs_on_caller+0xb3/0x159
[  104.916866]  [<c14edbdb>] ? _raw_spin_unlock_irq+0x22/0x43
[  104.922336]  [<c1036b58>] warn_slowpath_null+0xf/0x13
[  104.927429]  [<c1061a2b>] trace_hardirqs_on_caller+0xb3/0x159
[  104.933160]  [<c1061adc>] trace_hardirqs_on+0xb/0xd
[  104.938275]  [<c14edbdb>] _raw_spin_unlock_irq+0x22/0x43
[  104.943696]  [<c1384e29>] PVRSRVCallbackOnSync2+0x5f/0x71
[  104.949325]  [<c13a9291>] psb_fb_increase_read_ops_completed+0x3c/0x5a
[  104.955959]  [<c13b0787>] crtc_flip_complete+0xc5/0xe8
[  104.961326]  [<c139d612>] drm_flip_complete+0x17/0x6e
[  104.966480]  [<c139d8b7>] drm_flip_helper_vblank+0x53/0x9c
[  104.972192]  [<c13b05fe>] psb_intel_crtc_process_vblank+0x62/0x6a
[  104.978391]  [<c13af0b6>] mid_pipe_event_handler+0x224/0x291
[  104.984288]  [<c13af26a>] psb_irq_handler+0x147/0x1e2
[  104.989451]  [<c1081543>] handle_irq_event_percpu+0xb8/0x269
[  104.995343]  [<c1081720>] handle_irq_event+0x2c/0x43
[  105.000405]  [<c1083343>] ? handle_percpu_irq+0x3b/0x3b
[  105.005863]  [<c10833ed>] handle_edge_irq+0xaa/0xd0
[  105.010830]  <IRQ>  [<c10036fc>] ? do_IRQ+0x38/0x90
[  105.015908]  [<c14eecf5>] ? common_interrupt+0x35/0x3c
[  105.021284]  [<c124a4ee>] ? soc_s0ix_idle+0x19e/0x1ea
[  105.026443]  [<c134cef4>] ? cpuidle_idle_call+0x100/0x1ac
[  105.032070]  [<c1001a3b>] ? cpu_idle+0x93/0xc4
[  105.036629]  [<c14d8033>] ? rest_init+0xab/0xb0
[  105.041391]  [<c17a983b>] ? start_kernel+0x363/0x368
[  105.046454]  [<c17a90bc>] ? i386_start_kernel+0xbc/0xc3

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Fix double free in page flip
Pauli Nieminen [Tue, 6 Mar 2012 20:51:25 +0000 (12:51 -0800)]
gfx: drv: Fix double free in page flip

Reference counted object was accidentally freed using kfree without
checking reference count. That led to double free when kfree was called
with reference counting higher than 1. That happened often when HDMI
clone mode was enabled.

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
CC: "Kannan, Arun" <arun.kannan@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: save/restore gunit registers
Imre Deak [Tue, 6 Mar 2012 19:17:33 +0000 (21:17 +0200)]
gfx: drv: save/restore gunit registers

Missing this lead to the gunit write-combining getting disabled after
an S3 suspend/resume, with a significant performance degradation.

Kudos to Janet He <janet.he@intel.com> and Chan Wilson
<wilson.chan@intel.com> for discovering this.

Issue: GRA-26
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: give a better name to mdfld_{save,restore}_display_register
Imre Deak [Tue, 6 Mar 2012 19:17:32 +0000 (21:17 +0200)]
gfx: drv: give a better name to mdfld_{save,restore}_display_register

This functions save/restore pipe specific registers, so name them
accordingly.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: rename PLL/PLL DIV registers according to the TRM
Imre Deak [Tue, 6 Mar 2012 19:17:31 +0000 (21:17 +0200)]
gfx: drv: rename PLL/PLL DIV registers according to the TRM

Rename the PLL and PLL DIV registers according to the TRM and remove the
definitions for the non-existant MRST_FPA1 and MDFLD_DPLL_DIV1.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: clean up the save/restore of the fp/mipi/dpll regs
Imre Deak [Tue, 6 Mar 2012 19:17:30 +0000 (21:17 +0200)]
gfx: drv: clean up the save/restore of the fp/mipi/dpll regs

We have an fp and dpll reg for pipe A and B. Pipe C shares pipe A's fp
and dpll setting, since the two pipes use the same clock setting. Store
these regs into the pipe_regs array instead of having separate names for
them. Pipe C's storage space will be wasted.

Pipe A and C has a MIPI control reg, store these into the pipe_regs
array. Pipe B's storage space will be wasted.

There is 12 bytes wasted, we pay this for a cleaner abstraction.

The original code saved the same dpll,fp regs twice (for pipe A and C)
now avoid saving/restoring them for pipe C. This may also avoid glitches
on the screen as we momentarily disabled pipe A's clock while it was
already setup and active.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: save the pfit/hdmi/mipi regs along with the rest of pipe regs
Imre Deak [Tue, 6 Mar 2012 19:17:29 +0000 (21:17 +0200)]
gfx: drv: save the pfit/hdmi/mipi regs along with the rest of pipe regs

Move the saving of these registers where the rest of pipe regs are
saved. This should make the next patch easier to parse and make it
clearer what is saved for each pipe.

The access order of these registers will move before the palette
register saving, but as none of these registers have a side-effect when
reading, this shouldn't matter.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: cleanup dsi pll lock loop in mdfld_restore_display_registers
Imre Deak [Tue, 6 Mar 2012 19:17:28 +0000 (21:17 +0200)]
gfx: drv: cleanup dsi pll lock loop in mdfld_restore_display_registers

Use the already existing macro to wait for the HW flag becoming set. The
current timeout value will change from the current 3 second. The actual
PLL settling time according to measurement is < 100usec or 200
iterations of the busy wait loop. So the new timeout duration of 100000
iterations should be enough.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: add helper to wait for HW flag becoming set/clear
Imre Deak [Tue, 6 Mar 2012 19:17:27 +0000 (21:17 +0200)]
gfx: drv: add helper to wait for HW flag becoming set/clear

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>