kernel/kernel-mfld-blackbay.git
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>
12 years agogfx: drv: fix exiting DSI ULPS mode during resume
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>
12 years agogfx: drv: remove old dsp/palette reg macros
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>
12 years agogfx: drv: clean up the save/restore of the palette regs
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>
12 years agogfx: drv: clean up the save/restore of the dspcntr/pipeconf regs
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>
12 years agogfx: drv: save pipe specific panel timing regs to an array
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>
12 years agogfx: drv: use pipe specific macros to access the palette regs
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>
12 years agogfx: drv: use pipe specific macros to access the dsp regs
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>
12 years agogfx: drv: use pipe specific macros to access dsp regs in psb_page_flip.c
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>
12 years agogfx: drv: add pipe specific macros to access the dsp/palette regs
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>
12 years agogfx: drv: remove old panel timing register macros
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>
12 years agogfx: drv: use pipe specific macros to access panel timing regs
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>
12 years agogfx: drv: add pipe specific macros to access panel timing regs
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>
12 years agogfx: drv: move macro to check pipe validity to psb_intel_reg.h
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>
12 years agogfx: drv: remove unused mdfld_wait_for_PIPEA_DISABLE
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>
12 years agogfx: drv: remove unused state save/restore functions
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>
12 years agogfx: drv: Fix race between SGX and page flip
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>
12 years agogfx: pvr: Expose helper macro to compare synchronization values
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>
12 years agogfx: pvr: Add an extended sync callback API
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>
12 years agogfx: drv: Fix unlikely race condition
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>
12 years agoFix invalid pointer reference in BUFER_UNDERRUN callback for HDMI Audio.
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>
12 years agoenable parsing detailed timings for EDID rev1.3
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>
12 years agoPatch to mitigate HDMI Suspend/Resume crash/noise during Audio Playback.
Anand Saggi [Wed, 29 Feb 2012 14:18:29 +0000 (06:18 -0800)]
Patch to mitigate HDMI Suspend/Resume crash/noise during Audio Playback.

We were sending HAD DRM_DPMS_ON event when resuming from sleep state
in gfx_late_resume. Which was causing the HAD HOT_PLUG sequence to
run again causing:
 1. Audio Noise
 2. Random crash.

With this patch, we handle the situation by checking if audio stream
is busy in resume sequence. If yes, we don't send DRM_DPMS_ON in
gfx_late_resume to both Local MIPI and HDMI as we never send
DRM_DPMS_OFF in case HDMI audio is busy becasue of a known JIRA
issue - ANDROID-1553. Otherwise we turn them ON.
After the Jira issue is resolved, we can turn the local MIPI
sequence independent of HDMI Audio state.

Refer JIRA: ANDROID-1553 for more details.

ISSUE: HSD-206943

Signed-off-by: Mohan Kandra <mohan.b.kandra@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoMUST REVERT: Fix the video slowness issue when unplug HDMI.
Hu Tiger Chen [Wed, 29 Feb 2012 14:18:28 +0000 (06:18 -0800)]
MUST REVERT: Fix the video slowness issue when unplug HDMI.

This is caused by the pending flips left in psb_intel_crtc.
After HDMI unplug, vblank interrupt will never be triggered,
where actually pending flips are handled. The solution is to
handle the HDMI pending flips in vblank handler of local display.

ISSUE: ANDROID-1463

Signed-off-by: Mohan Kandra <mohan.b.kandra@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoResume HDMI audio after suspend
Anand Saggi [Wed, 29 Feb 2012 14:18:27 +0000 (06:18 -0800)]
Resume HDMI audio after suspend

HDMI Audio was not getting resumed after suspend. This was
because of changes in early_suspend which was not checking if HDMI
audio is busy and calling DPMS_OFF.

Also there was no check for HDMI busy status check in
psb_runtime_idle, but in psb_runtime_suspend itself.

There is a JIRA BUG: ANDROID-1553 for local MIPI fails to turn back
on from a DPMS off/on cycle if HDMI audio returns busy to disallow
system suspend. Once ANDROID-1553 is fixed, the expectation is to
turn off MIPI but keep display island on if there is active audio
playback over HDMI.
Refer Jira bug# Android-1553 for more details.

There is still HDMI Audio noise during suspend/resume, which
is a known issue.

Signed-off-by: Mohan Kandra <mohan.b.kandra@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoCorrect the VHDMI values inline to OTM HDMI values
Mohan Kandra [Wed, 29 Feb 2012 14:18:25 +0000 (06:18 -0800)]
Correct the VHDMI values inline to OTM HDMI values

Change the VHDMI values as these values in psb are not
inline to OTM HDMI. This will change MSIC VHDMI switch
off time to 0ms, and keeps VHDMI always on. This
is needed as HDMI HPD cannot be pulled up for some HDMI displays.

Signed-off-by: Mohan Kandra <mohan.b.kandra@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: display: initialize backlight PWM frequency
Jani Nikula [Thu, 1 Mar 2012 14:49:25 +0000 (16:49 +0200)]
gfx: display: initialize backlight PWM frequency

Some DV1s, and DV1.5s and later use I2C to adjust the backlight. We have
PWM based backlight control enabled for compatibility with older, non-CABC
devices. The PWM clock divider was not initialized, causing the PWM signal
to run at the base clock frequency of 19.2 MHz.

Initialize the clock divider, setting the PWM frequency to 9600 Hz. The
panel specification has no recommendation on the frequency, but the bug
ANDROID-1342 has this experimental value.

Issue: ANDROID-1342
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrv: psb: print useful values in the PSB IRQ debug macros.
Oliver McFadden [Tue, 28 Feb 2012 19:39:11 +0000 (21:39 +0200)]
drv: psb: print useful values in the PSB IRQ debug macros.

Signed-off-by: Oliver McFadden <oliver.mcfadden@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: avoid NULL deref when enabling PSB debug output.
Oliver McFadden [Thu, 23 Feb 2012 23:07:19 +0000 (01:07 +0200)]
gfx: drv: avoid NULL deref when enabling PSB debug output.

Issue: GRA-43
Signed-off-by: Oliver McFadden <oliver.mcfadden@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrv: gfx: do not use KERN_ALERT for debug messages.
Oliver McFadden [Thu, 23 Feb 2012 21:16:00 +0000 (23:16 +0200)]
drv: gfx: do not use KERN_ALERT for debug messages.

Issue: GRA-39
Signed-off-by: Oliver McFadden <oliver.mcfadden@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrv: tc35876x: add a named module parameter for register write debug.
Oliver McFadden [Thu, 23 Feb 2012 21:15:59 +0000 (23:15 +0200)]
drv: tc35876x: add a named module parameter for register write debug.

Otherwise the output on the serial console is far too verbose.

Issue: GRA-19
Signed-off-by: Oliver McFadden <oliver.mcfadden@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrv: tc35876x: set the brightness only when the panel is turned on.
Oliver McFadden [Fri, 17 Feb 2012 12:52:29 +0000 (14:52 +0200)]
drv: tc35876x: set the brightness only when the panel is turned on.

Attempting to set the brightness when the panel is off would result in
several failed i2c writes; cache the value and write it when bringing
the panel turned on.

Issue: GRA-28
Signed-off-by: Oliver McFadden <oliver.mcfadden@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agodrv: tc35876x: pass the DRM device to all tc35876x functions.
Oliver McFadden [Fri, 17 Feb 2012 12:52:28 +0000 (14:52 +0200)]
drv: tc35876x: pass the DRM device to all tc35876x functions.

This patch is required for further patches in this series; no functional
changes.

Signed-off-by: Oliver McFadden <oliver.mcfadden@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoLack of MTX_CMDID_NULL causes topaz fence to timeout
Naeem M. Afzal [Thu, 16 Feb 2012 17:04:07 +0000 (09:04 -0800)]
Lack of MTX_CMDID_NULL causes topaz fence to timeout

this timeout results in reset the hardware for every
jpeg frame encode. vaSyncSurface will not complete until
the timeout occurs, since it is still waiting for
MTX_CMID_NULL. This shows up as slow performance
(we have to wait for timeout).

Issue: ANDROID-1633

Signed-off-by: naeem.m.afzal@intel.com
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoAdd DVI interoperability support for HDMI.
asaggi [Tue, 14 Feb 2012 22:06:55 +0000 (14:06 -0800)]
Add DVI interoperability support for HDMI.

Kernel changes to add interoperability support for DVI. We do not want to send
NULL packets for DVI mode. This change depends on Android frameworks change to
actually make the decision of NOT routing audio to DVI.

ISSUE: ANDROID-1482
ISSUE: ANDROID-1519
Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoHDMI Audio PHY should be disabled if HDMI plane is disabled.
asaggi [Tue, 14 Feb 2012 22:06:53 +0000 (14:06 -0800)]
HDMI Audio PHY should be disabled if HDMI plane is disabled.

Disable audio Phy in DPMS when unplugging HDMI cable physically
and in cases like: deep sleep, etc., which was previously missing.

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoEnable HDMI audio routing and signaling to user-space and HDMI audio driver.
Arun Kannan [Tue, 14 Feb 2012 22:06:52 +0000 (14:06 -0800)]
Enable HDMI audio routing and signaling to user-space and HDMI audio driver.

We use the Android switch class driver to signal an HDMI state change to frameworks.
It is also important to notify the state change to HDMI audio driver.

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoEnable HDMI Audio callbacks from HDMI driver.
Sanjay Rama Reddy [Tue, 14 Feb 2012 22:06:50 +0000 (14:06 -0800)]
Enable HDMI Audio callbacks from HDMI driver.

HDMI audio driver needs to register itself with the HDMI display
driver in order to be notified of HDMI events.

This patch will register the audio driver during boot-up and callback
HDMI audio driver functions when an event like PLUG/UNPLUG occurs.

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoDuring page flip, update the fb_helper->fbdev to that in the swapped fb.
Hu Tiger Chen [Tue, 14 Feb 2012 22:06:49 +0000 (14:06 -0800)]
During page flip, update the fb_helper->fbdev to that in the swapped fb.

This fixes the bug of system crash if unplug the HDMI cable after play video
with overlay enabled.
It is because fb_helper->fbdev points to the old value in the last fb, which
is cleaned up after video playback. And in hotplug sequence, segmentation fault
happens when walking through fb_helper->fbdev content.

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoIn encoder dpms power on display island before accessing HDMI registers
Sanjay Rama Reddy [Tue, 14 Feb 2012 22:06:48 +0000 (14:06 -0800)]
In encoder dpms power on display island before accessing HDMI registers

In mdfld encoder dpms function, before accessing the registers notify
Power Management module not to power down the display island and once done notify
the module about that access to registers is no longer needed.

Signed-off-by: Mohan Kandra <mohan.b.kandra@intel.com>
Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoChange HDMI I2C adapter from 3 to 8.
Mohan Kandra [Tue, 14 Feb 2012 22:06:46 +0000 (14:06 -0800)]
Change HDMI I2C adapter from 3 to 8.

I2C adapter 3 on Medfield has known issues with reliably reading EDIDs
and especially reading 4-block EDID. We change the i2c adapter for HDMI
to adapter 8 to enable EDID extension block read (4 blocks EDID).

OTM_HDMI: r2954

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoMUST_REVERT: Set overlay clip region for HDMI to be same as MIPI.
Mohan Kandra [Tue, 14 Feb 2012 22:06:43 +0000 (14:06 -0800)]
MUST_REVERT: Set overlay clip region for HDMI to be same as MIPI.

Since the same FB is used between MIPI and HDMI, in video clone mode,
the clip region for HDMI that overlay configures should be same as MIPI.

OTM_HDMI: r3079
ISSUE: ANDROID-1462

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoMark some unused functions in code to avoid warnings.
Gandhimathi Anand [Tue, 14 Feb 2012 22:06:42 +0000 (14:06 -0800)]
Mark some unused functions in code to avoid warnings.

Some currently unused functions are annotated. These will get used in the
near future and will be enabled as required.

OTM_HDMI: r3068

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoCleanup of some hardcoded values in OTM HDMI driver.
Gandhimathi Anand [Tue, 14 Feb 2012 22:06:41 +0000 (14:06 -0800)]
Cleanup of some hardcoded values in OTM HDMI driver.

Removed some hardcode values and replace with meaningful macros.

OTM_HDMI: r3001

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoPort Panel fitting changes for HDMI from Gingerbread.
Mohan Kandra [Tue, 14 Feb 2012 22:06:40 +0000 (14:06 -0800)]
Port Panel fitting changes for HDMI from Gingerbread.

Panel fit hardware configuration dependent on required output HDMI mode.

OTM_HDMI: r2979

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoFix more build warnings found in OTM HDMI driver.
Gandhimathi Anand [Tue, 14 Feb 2012 22:06:39 +0000 (14:06 -0800)]
Fix more build warnings found in OTM HDMI driver.

Some more build warning fixes for OTM HDMI driver.

OTM_HDMI: r2971

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoCorrect the compile condition for command line interface code
Mohan Kandra [Tue, 14 Feb 2012 22:06:38 +0000 (14:06 -0800)]
Correct the compile condition for command line interface code

Command line interface code needs to be within OTM_HDMI_UNIT_TEST condition.

OTM_HDMI: r2967

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoFix compilation warnings in OTM HDMI driver.
Gandhimathi Anand [Tue, 14 Feb 2012 22:06:37 +0000 (14:06 -0800)]
Fix compilation warnings in OTM HDMI driver.

Fixes multiple compilation warnings/sparse warnings in OTM HDMI driver.

OTM_HDMI: r2964

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoFix SPARSE issues found in OTM HDMI driver.
Gandhimathi Anand [Tue, 14 Feb 2012 22:06:36 +0000 (14:06 -0800)]
Fix SPARSE issues found in OTM HDMI driver.

Patch fixes multiple issues found by SPARSE in OTM HDMI driver.

OTM_HDMI: r2947

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoCleanup of hooking OTM HDMI driver into mrst/Makefile
Mohan Kandra [Tue, 14 Feb 2012 22:06:35 +0000 (14:06 -0800)]
Cleanup of hooking OTM HDMI driver into mrst/Makefile

mrst/Makefile changes corresponding to the new OTM HDMI
Makefile where the OTM HDMI Makefile is now independent
of mrst/Makefile inclusions, definitions etc.

Signed-off-by: Mohan Kandra <mohan.b.kandra@intel.com>
Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoCleanup of OTM HDMI Makefile.
Mohan Kandra [Tue, 14 Feb 2012 22:06:34 +0000 (14:06 -0800)]
Cleanup of OTM HDMI Makefile.

Removing uncessary CFLAGS and include dirs from Makefile and making is simpler.

OTM_HDMI: r2919

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoFix SMATCH issues found in OTM HDMI driver.
Gandhimathi Anand [Tue, 14 Feb 2012 22:06:33 +0000 (14:06 -0800)]
Fix SMATCH issues found in OTM HDMI driver.

Fixes for multiple SMATCH issues inside OTM HDMI driver.

OTM_HDMI: r2913

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agoStatic Analysis fixes for OTM HDMI driver
Gandhimathi Anand [Tue, 14 Feb 2012 22:06:32 +0000 (14:06 -0800)]
Static Analysis fixes for OTM HDMI driver

This patch comprises of multiple issues found by static analysis tools.

OTM_HDMI: r2897

Signed-off-by: Arun Kannan <arun.kannan@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Warn if mode_config.mutex is not locked in GTT code
Ville Syrjälä [Wed, 15 Feb 2012 13:02:52 +0000 (15:02 +0200)]
gfx: drv: Warn if mode_config.mutex is not locked in GTT code

The GTT ref counting relies on mode_config.mutex for protection. Print a
warning if the code is called without holding the mutex.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Kill psb_bo_offset()
Ville Syrjälä [Wed, 15 Feb 2012 13:02:51 +0000 (15:02 +0200)]
gfx: drv: Kill psb_bo_offset()

.bo_offset() is the only function in struct psb_intel_mode_device
which takes psb_framebuffer as a parameter, whereas the others take a
pvr mem info. Also .bo_offset() is only called from
mdfld__intel_pipe_set_base() whereas the other functions are only called
from the hardware cursor code.

Eliminate this incosistency by removing the .bo_offset() function
pointer completely and just dereference the psb_framebuffer pointer
directly in mdfld__intel_pipe_set_base().

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Reference count cursor BOs
Ville Syrjälä [Wed, 15 Feb 2012 13:02:50 +0000 (15:02 +0200)]
gfx: drv: Reference count cursor BOs

Refrence count cursor BOs the same way as FB BOs.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Increase mem info ref count safely
Ville Syrjälä [Wed, 15 Feb 2012 13:02:49 +0000 (15:02 +0200)]
gfx: drv: Increase mem info ref count safely

gPVRSRVLock must be held when looking up the mem info based on the
handle. Also increase the ref count on the mem info before releasing
the  lock. Otherwise some other thread could destroy the mem info
after we've looked it up, but before we've increased the ref count.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Add WARN_ON(1) to psb_gtt_{map, unmap}_meminfo_ioctl
Ville Syrjälä [Wed, 15 Feb 2012 13:02:48 +0000 (15:02 +0200)]
gfx: drv: Add WARN_ON(1) to psb_gtt_{map, unmap}_meminfo_ioctl

psb_gtt_map_meminfo_ioctl() and psb_gtt_unmap_meminfo_ioctl() should not
be used by anyone. Add a WARN_ON(1) to both to catch anyone using them.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Fix locking in psb_gtt_{map, unmap}_meminfo_ioctl
Ville Syrjälä [Wed, 15 Feb 2012 13:02:47 +0000 (15:02 +0200)]
gfx: drv: Fix locking in psb_gtt_{map, unmap}_meminfo_ioctl

mode_config.mutex is needed to protect the GTT reference counting, and
gPVRSRVLock is needed to protect the pvr data structures during these
ioctls. With locking properly handled in the code we can make both
ioctls DRM_UNLOCKED.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
12 years agogfx: drv: Kill psbfb_vdc_reg()
Ville Syrjälä [Wed, 15 Feb 2012 13:02:46 +0000 (15:02 +0200)]
gfx: drv: Kill psbfb_vdc_reg()

psbfb_vdc_reg() is not used anywhere, kill it.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>