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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Markus Lehtonen [Tue, 10 Apr 2012 12:00:19 +0000 (15:00 +0300)]
PVR hybrid: 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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Imre Deak [Tue, 6 Mar 2012 19:17:26 +0000 (21:17 +0200)]
gfx: drv: fix exiting DSI ULPS mode during resume
The DEVICE_READY_REG register used during resume to exit the ULPS mode
is pipe specific and we should use the already available
MIPI_DEVICE_READY_REG(pipe) macro to access it.
The current resume code calls mdfld_restore_display_registers for pipe A
and C, but due to the above bug will incorrectly exit ULPS mode in both
cases for pipe A. Fix this by exiting ULPS only on pipe A. For now this
works ok for tablets and for other devices the code was broken in the
first place anyway. Later we'll add a more generic solution to handle
ULPS state that works for other devices too.
Thanks for Jani Nikula for pointing this out.
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>
Imre Deak [Tue, 6 Mar 2012 19:17:22 +0000 (21:17 +0200)]
gfx: drv: remove old dsp/palette reg macros
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>
Imre Deak [Tue, 6 Mar 2012 19:17:25 +0000 (21:17 +0200)]
gfx: drv: clean up the save/restore of the palette regs
We have the same set of palette regs for each pipe, so store them to an
appropriate array instead of separate variables named after the pipe.
No functional change.
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>
Imre Deak [Tue, 6 Mar 2012 19:17:24 +0000 (21:17 +0200)]
gfx: drv: clean up the save/restore of the dspcntr/pipeconf regs
We have the same set of the dspcntr/pipeconf regs for each pipe, so
store them to an appropriate array instead of separate variables named
after the pipe.
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>
Imre Deak [Tue, 6 Mar 2012 19:17:23 +0000 (21:17 +0200)]
gfx: drv: save pipe specific panel timing regs to an array
We have the same set of panel timing regs for each pipe, so store them
to an appropriate array instead of separate variables named after the
pipe.
The CNTR, CONF, DPLL, PALETTE, MIPI registers are handled specially
during restore, so the parts related to those are cleaned up separately
in the upcoming patches.
The only functional change of this patch is that the CNTR register is
saved now before all the above generic registers, but as reading these
registers don't have a side-effect this shouldn't be a problem.
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>
Imre Deak [Tue, 6 Mar 2012 19:17:21 +0000 (21:17 +0200)]
gfx: drv: use pipe specific macros to access the palette regs
Use the new pipe specific macros to access the palette registers. This
will also fix accessing the palette registers for PIPE C.
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>
Imre Deak [Tue, 6 Mar 2012 19:17:20 +0000 (21:17 +0200)]
gfx: drv: use pipe specific macros to access the dsp regs
Use the pipe specific macros to access these registers.
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>
Imre Deak [Tue, 6 Mar 2012 19:17:19 +0000 (21:17 +0200)]
gfx: drv: use pipe specific macros to access dsp regs in psb_page_flip.c
Use the pipe specific macros to access these registers.
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>
Imre Deak [Tue, 6 Mar 2012 19:17:18 +0000 (21:17 +0200)]
gfx: drv: add pipe specific macros to access the dsp/palette regs
The registers are pipe specific, so add helpers to properly access them.
The actual register accesses will be fixed up by an upcoming patch.
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>
Imre Deak [Tue, 6 Mar 2012 19:17:17 +0000 (21:17 +0200)]
gfx: drv: remove old panel timing register macros
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>
Imre Deak [Tue, 6 Mar 2012 19:17:16 +0000 (21:17 +0200)]
gfx: drv: use pipe specific macros to access panel timing regs
Use the new pipe specific macros to access these registers.
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>
Imre Deak [Tue, 6 Mar 2012 19:17:15 +0000 (21:17 +0200)]
gfx: drv: add pipe specific macros to access panel timing regs
The registers are pipe specific, so add helpers to properly access them.
The actual register references will be fixed up by an upcoming patch.
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>
Imre Deak [Tue, 6 Mar 2012 19:17:14 +0000 (21:17 +0200)]
gfx: drv: move macro to check pipe validity to psb_intel_reg.h
This will be needed by the next patch converting other pipe specific
register definitions in psb_intel_reg.h to use this macro.
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>
Imre Deak [Tue, 6 Mar 2012 19:17:13 +0000 (21:17 +0200)]
gfx: drv: remove unused mdfld_wait_for_PIPEA_DISABLE
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>
Imre Deak [Tue, 6 Mar 2012 19:17:12 +0000 (21:17 +0200)]
gfx: drv: remove unused state save/restore functions
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>
Pauli Nieminen [Thu, 1 Mar 2012 22:40:36 +0000 (00:40 +0200)]
gfx: drv: Fix race between SGX and page flip
There is possible race condition where SGX might have parallel leads
happening while page flip is processing. There is small race condition
open where software managed sync object completion may block SGX from
completing rendering.
The deadlock situation would cause complete system deadlock which isn't
simple to recover from.
Issue: ANDROID-1661
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Thu, 1 Mar 2012 22:40:35 +0000 (00:40 +0200)]
gfx: pvr: Expose helper macro to compare synchronization values
To make it simpler to compare synchronization values safetily expose the
helper macro in a header.
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Thu, 1 Mar 2012 22:40:34 +0000 (00:40 +0200)]
gfx: pvr: Add an extended sync callback API
To allow advanced wait for specific pending value that isn't the lates
one caller needs more control for sync callback state. Giving full
control for caller what is in sync struct gives complete control to
caller what is waited for.
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Thu, 1 Mar 2012 22:40:33 +0000 (00:40 +0200)]
gfx: drv: Fix unlikely race condition
Checking operation completeness before taking the lock may result to
state where IRQ work is run between checking for completion and before
the callback is added to the list. In practice that race will require
premption because time between microkernel modifying synchronization
object and kernel work check for status is many microseconds.
That could block the last page flip in the animation until next GPU
rendering is pushed from userspace. The missing frame in end of
animation could be extremy visible in some cases.
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Anand Saggi [Wed, 29 Feb 2012 14:18:32 +0000 (06:18 -0800)]
Fix invalid pointer reference in BUFER_UNDERRUN callback for HDMI Audio.
A Null pointer was being passed in the buffer underrun event, causing
tablet to crash as the hdmi audio data pointer is expected.
The scenario is reproducible when we plug HDMI during suspended mode
when audio is playing and try to wake up.
This patch will fix the above described issue.
ISSUE: HSD-206962
Signed-off-by: Mohan Kandra <mohan.b.kandra@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Gandhimathi Anand [Wed, 29 Feb 2012 14:18:30 +0000 (06:18 -0800)]
enable parsing detailed timings for EDID rev1.3
Few Detailed Descriptor Timings were missing.
This fix parses through the EDID block 1 for detailed timing
descriptor for EDID revision 1.3. Earlier code was handling
for EDID revision 1.1
ISSUE: HSD-206749
Signed-off-by: Mohan Kandra <mohan.b.kandra@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>