OSDN Git Service

sagit-ice-cold/kernel_xiaomi_msm8998.git
11 years agoMerge tag 'omapdss-for-3.8' of git://gitorious.org/linux-omap-dss2/linux into for...
Tomi Valkeinen [Thu, 13 Dec 2012 12:30:56 +0000 (14:30 +0200)]
Merge tag 'omapdss-for-3.8' of git://gitorious.org/linux-omap-dss2/linux into for-linus

OMAPDSS changes for 3.8, including:
- use dynanic debug prints
- OMAP platform dependency removals
- Creation of compat-layer, helping us to improve omapdrm
- Misc cleanups, aiming to make omadss more in line with the upcoming common
  display framework

* tag 'omapdss-for-3.8' of git://gitorious.org/linux-omap-dss2/linux: (140 commits)
  OMAPDSS: fix TV-out issue with DSI PLL
  Revert "OMAPFB: simplify locking"
  OMAPFB: remove silly loop in fb2display()
  OMAPFB: fix error handling in omapfb_find_best_mode()
  OMAPFB: use devm_kzalloc to allocate omapfb2_device
  OMAPDSS: DISPC: remove dispc fck uses
  OMAPDSS: DISPC: get dss clock rate from dss driver
  OMAPDSS: use omapdss_compat_init() in other drivers
  OMAPDSS: export dispc functions
  OMAPDSS: export dss_feat functions
  OMAPDSS: export dss_mgr_ops functions
  OMAPDSS: separate compat files in the Makefile
  OMAPDSS: move display sysfs init to compat layer
  OMAPDSS: DPI: use dispc's check_timings
  OMAPDSS: DISPC: add dispc_ovl_check()
  OMAPDSS: move irq handling to dispc-compat
  OMAPDSS: move omap_dispc_wait_for_irq_interruptible_timeout to dispc-compat.c
  OMAPDSS: move blocking mgr enable/disable to compat layer
  OMAPDSS: manage framedone irq with mgr ops
  OMAPDSS: add manager ops
  ...

11 years agoOMAPDSS: fix TV-out issue with DSI PLL
Tomi Valkeinen [Thu, 13 Dec 2012 12:21:30 +0000 (14:21 +0200)]
OMAPDSS: fix TV-out issue with DSI PLL

Commit 0e8276ef75f5c7811b038d1d23b2b42c16efc5ac (OMAPDSS: DPI: always
use DSI PLL if available) made dpi.c use DSI PLL for its clock. This
works fine, for DPI, but has a nasty side effect on OMAP3:

On OMAP3 the same clock is used for DISPC fclk and LCD output. Thus,
after the above patch, DSI PLL is used for DISPC and LCD output. If
TV-out is used, the TV-out needs DISPC. And if DPI is turned off, the
DSI PLL is also turned off, disabling DISPC.

For this to work, we'd need proper DSS internal clock handling, with
refcounts, which is a non-trivial project.

This patch fixes the issue for now by disabling the use of DSI PLL for
DPI on OMAP3.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoRevert "OMAPFB: simplify locking"
Tomi Valkeinen [Thu, 13 Dec 2012 11:19:05 +0000 (13:19 +0200)]
Revert "OMAPFB: simplify locking"

This reverts commit b41deecbda70067b26a3a7704fdf967a7940935b.

The simpler locking causes huge latencies when two processes use the
omapfb, even if they use different framebuffers.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPFB: remove silly loop in fb2display()
Tomi Valkeinen [Thu, 13 Dec 2012 10:17:08 +0000 (12:17 +0200)]
OMAPFB: remove silly loop in fb2display()

fb2display() has a for loop which always returns at the first iteration.
Replace the loop with a simple if.

This removes the smatch warning:

drivers/video/omap2/omapfb/omapfb.h:153 fb2display() info: loop could be
replaced with if statement.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPFB: fix error handling in omapfb_find_best_mode()
Tomi Valkeinen [Thu, 13 Dec 2012 10:13:51 +0000 (12:13 +0200)]
OMAPFB: fix error handling in omapfb_find_best_mode()

omapfb_find_best_mode() doesn't check for the return value of kmalloc.
Fix this. This also removes the smatch warning:

drivers/video/omap2/omapfb/omapfb-main.c:2256 omapfb_find_best_mode()
error: potential null dereference 'specs'.  (kzalloc returns null)

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPFB: use devm_kzalloc to allocate omapfb2_device
Tomi Valkeinen [Thu, 13 Dec 2012 10:08:21 +0000 (12:08 +0200)]
OMAPFB: use devm_kzalloc to allocate omapfb2_device

Use devm_kzalloc to allocate omapfb2_device. This fixes possible memory
leak:

drivers/video/omap2/omapfb/omapfb-main.c:2553 omapfb_probe() warn:
possible memory leak of 'fbdev'

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DISPC: remove dispc fck uses
Tomi Valkeinen [Wed, 12 Dec 2012 09:15:39 +0000 (11:15 +0200)]
OMAPDSS: DISPC: remove dispc fck uses

The previous patch changes dispc to get the dispc fck rate from dss core
driver. This was the only use of the dispc fck in dispc, and thus we can
now remove the clock handling.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DISPC: get dss clock rate from dss driver
Tomi Valkeinen [Wed, 12 Dec 2012 08:37:03 +0000 (10:37 +0200)]
OMAPDSS: DISPC: get dss clock rate from dss driver

Dispc currently gets dispc's fck with clk_get() and uses clk_get_rate()
to get the rate for scaling calculations. This causes a problem with
common clock framework, as omapdss uses the dispc functions inside a
spinlock, and common clock framework uses a mutex in clk_get_rate().

Looking at the DSS clock tree, the above use of the dispc fck is not
quite correct. The DSS_FCLK from PRCM goes to DSS core block, which has
a mux to select the clock for DISPC from various options, so the current
use of dispc fck bypasses that. Fortunately we never change the dispc
clock mux for now.

To fix the issue with clk_get_rate(), this patch caches the dss clock
rate in dss.c when it is set. Dispc will then ask for the clock rate
from dss. While this is not very elegant, it does fix the issue, and
it's not totally wrong when considering that the dispc fck actually
comes via dss.

In the future we should probably look into common clock framework and
see if that could be used to represent the DSS clock tree properly.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoMerge omapdss compat layer work
Tomi Valkeinen [Mon, 10 Dec 2012 11:13:32 +0000 (13:13 +0200)]
Merge omapdss compat layer work

We have two separate, exclusive, users of omapdss: 1) omapfb + omap_vout and 2)
omapdrm. Because omapfb and omap_vout are independent drivers, we've built
layers in omapdss to manage the two simultaneous callers. These layers are not
needed for omapdrm, as omapdrm is the sole user of omapdss, and these layers in
fact only create trouble for omapdrm.

The simple option to improve omapdrm situation would be to copy the omapdss
code for omapdrm. We are trying to avoid this, as omapdss and the panel drivers
are quite a lot of code together, and most of the code would be used without
change.

Thus this series helps the situation by moving the omapdss code required by
omapfb + omap_vout to separate files, creating a distinct layer used only by
omapfb + omap_vout. We call this layer "compat layer". This compat layer then
uses the core omapdss driver to operate the hardware. omapdrm will use the core
omapdss directly, without any layers in between.

After this series, omapfb, omap_vout and omapdrm can all be compiled at the
same time. Obviously omapdrm and omapfb+omap_vout cannot be run at the same
time (the first one to start will "win"), so compiling them at the same time is
only sensible as modules for testing purposes. Normal users should only compile
one of those.

This series does not make omapdrm use the core omapdss API, that will happen in
a separate series for omapdrm.

11 years agodrivers/video/console/softcursor.c: remove redundant NULL check before kfree()
Sachin Kamat [Fri, 7 Dec 2012 20:30:39 +0000 (12:30 -0800)]
drivers/video/console/softcursor.c: remove redundant NULL check before kfree()

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agodrivers/video: add support for the Solomon SSD1307 OLED Controller
Maxime Ripard [Fri, 7 Dec 2012 20:30:38 +0000 (12:30 -0800)]
drivers/video: add support for the Solomon SSD1307 OLED Controller

Add support for the Solomon SSD1307 OLED controller found on the
Crystalfontz CFA10036 board.

This controller can drive a display with a resolution up to 128x39 and can
operate over I2C or SPI.

The current driver has only been tested on the CFA-10036, that is using
this controller over I2C to driver a 96x16 OLED screen.

[akpm@linux-foundation.org: checkpatch fixes]
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Brian Lilly <brian@crystalfontz.com>
Cc: Greg KH <gregkh@linux-foundation.org>
Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Thomas Petazzoni <thomas@free-electrons.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: use omapdss_compat_init() in other drivers
Tomi Valkeinen [Wed, 10 Oct 2012 07:26:45 +0000 (10:26 +0300)]
OMAPDSS: use omapdss_compat_init() in other drivers

omapdss_compat_init() and omapdss_compat_uninit() is called internally
by omapdss. This patch moves the calls to omapfb, omap_vout and omapdrm
drivers. omapdrm driver can later remove the call after non-compat
support has been implemented in omapdrm.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: export dispc functions
Tomi Valkeinen [Wed, 7 Nov 2012 16:17:35 +0000 (18:17 +0200)]
OMAPDSS: export dispc functions

Export DISPC functions.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: export dss_feat functions
Tomi Valkeinen [Wed, 7 Nov 2012 14:26:11 +0000 (16:26 +0200)]
OMAPDSS: export dss_feat functions

Export dss_features related functions.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: export dss_mgr_ops functions
Tomi Valkeinen [Wed, 24 Oct 2012 10:52:40 +0000 (13:52 +0300)]
OMAPDSS: export dss_mgr_ops functions

Export dss_mgr_ops related functions.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: separate compat files in the Makefile
Tomi Valkeinen [Wed, 24 Oct 2012 10:29:00 +0000 (13:29 +0300)]
OMAPDSS: separate compat files in the Makefile

Separate the core DSS files and compat layer files in the Makefile for
clarity.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: move display sysfs init to compat layer
Tomi Valkeinen [Thu, 8 Nov 2012 12:11:29 +0000 (14:11 +0200)]
OMAPDSS: move display sysfs init to compat layer

Move creation of the sysfs files for displays to the compat layer.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DPI: use dispc's check_timings
Tomi Valkeinen [Wed, 24 Oct 2012 10:27:02 +0000 (13:27 +0300)]
OMAPDSS: DPI: use dispc's check_timings

dpi.c uses dss_mgr_check_timings() to verify video timings, but that
function is in the compat layer. Change dpi.c to use the dispc's check
instead.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DISPC: add dispc_ovl_check()
Tomi Valkeinen [Fri, 19 Oct 2012 12:57:11 +0000 (15:57 +0300)]
OMAPDSS: DISPC: add dispc_ovl_check()

This patch adds a new function, dispc_ovl_check(), which can be used to
verify scaling configuration for an overlay. The function gets both the
overlay and overlay manager as parameters, so that the caller does not
need to configure the hardware before using this function.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: move irq handling to dispc-compat
Tomi Valkeinen [Wed, 10 Oct 2012 12:55:19 +0000 (15:55 +0300)]
OMAPDSS: move irq handling to dispc-compat

The whole dispc irq handling system we currently have is only needed for
compat layer, and thus can be moved from dispc.c to the compat layer.

This is quite straigtforward, but we need to add new dispc functions to
request and free the actual hardware irq: dispc_request_irq() and
dispc_free_irq().

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: move omap_dispc_wait_for_irq_interruptible_timeout to dispc-compat.c
Tomi Valkeinen [Wed, 10 Oct 2012 11:03:11 +0000 (14:03 +0300)]
OMAPDSS: move omap_dispc_wait_for_irq_interruptible_timeout to dispc-compat.c

We have two functions to wait for a dispc interrupt:

int omap_dispc_wait_for_irq_timeout(u32 irqmask, unsigned long timeout);
int omap_dispc_wait_for_irq_interruptible_timeout(u32 irqmask,

Of these, the former is not used at all, and can be removed. The latter
is only used by the compat layer, and can be moved to the compat layer
code.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: move blocking mgr enable/disable to compat layer
Tomi Valkeinen [Wed, 24 Oct 2012 09:39:53 +0000 (12:39 +0300)]
OMAPDSS: move blocking mgr enable/disable to compat layer

dispc_mgr_enable_sync and dispc_mgr_disable_sync are only used with the
compat mode. Non-compat will use the simpler enable and disable
functions.

This patch moves the synchronous enable/disable code to the compat
layer. A new file is created, dispc-compat.c, which contains low level
dispc compat code (versus apply.c, which contains slightly higher level
compat code).

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: manage framedone irq with mgr ops
Tomi Valkeinen [Wed, 10 Oct 2012 10:59:07 +0000 (13:59 +0300)]
OMAPDSS: manage framedone irq with mgr ops

Some of the output drivers need to handle FRAMEDONE interrupt from
DISPC. This creates a direct dependency to dispc code, and we need to
avoid this to make the compat code to work.

Instead of the output drivers registering for dispc interrupts, we
create new mgr-ops that are used to register a framedone handler. The
code implementing the mgr-ops is responsible for calling the handler
when DISPC FRAMEDONE interrupt happens. The compat layer is improved
accordingly to do the call to the framedone handler.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: add manager ops
Tomi Valkeinen [Wed, 10 Oct 2012 07:56:05 +0000 (10:56 +0300)]
OMAPDSS: add manager ops

The output drivers need some operations from the overlay managers, like
enable and set_timings. These will affect the dispc registers, and need
to be synchronized with the composition-side changes with overlays and
overlay managers.

We want to handle these calls in the apply.c in the compatibility mode,
but when in non-compat mode, the calls need to be handled by some other
component (e.g. omapdrm).

To make this possible, this patch creates a set of function pointers in
a dss_mgr_ops struct, that is used to redirect the calls into the
correct destination.

The non-compat users can install their mgr ops with
dss_install_mgr_ops() function.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: move ovl function setup to apply.c
Tomi Valkeinen [Tue, 23 Oct 2012 10:45:07 +0000 (13:45 +0300)]
OMAPDSS: move ovl function setup to apply.c

Most of the functions that are assigned to the fields in ovl struct are
in apply.c. By moving the function pointer setup into apply.c we can
make these functions static.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: move ovl-mgr function setup to apply.c
Tomi Valkeinen [Tue, 23 Oct 2012 10:44:12 +0000 (13:44 +0300)]
OMAPDSS: move ovl-mgr function setup to apply.c

Most of the functions that are assigned to the fields in ovl-mgr struct
are in apply.c. By moving the function pointer setup into apply.c we can
make these functions static.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: move ovl & ovl-mgr init to apply.c
Tomi Valkeinen [Tue, 23 Oct 2012 10:46:12 +0000 (13:46 +0300)]
OMAPDSS: move ovl & ovl-mgr init to apply.c

Overlay and overlay_manager structs will only be needed in the compat
mode.

This patch moves initialization of overlay and overlay_manager structs
to apply.c, so that they are handled in omapdss_compat_init().

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: add omapdss_compat_init()
Tomi Valkeinen [Wed, 10 Oct 2012 07:26:45 +0000 (10:26 +0300)]
OMAPDSS: add omapdss_compat_init()

Add two new exported functions, omapdss_compat_init and
omapdss_compat_uninit, which are to be used by omapfb, omap_vout to
enable compatibility mode for omapdss. The functions are called by
omapdss internally for now, and moved to other drivers later.

The compatibility mode is implemented fully in the following patches.
For now, enabling compat mode only sets up the private data in apply.c.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPFB: connect ovl managers to all dssdevs
Tomi Valkeinen [Tue, 4 Dec 2012 11:12:39 +0000 (13:12 +0200)]
OMAPFB: connect ovl managers to all dssdevs

Commit 5d89bcc341771d95e3a2996218e5949a6627f59e (OMAPDSS: remove initial
display code from omapdss) moved setting up the initial overlay, overlay
manager, output and display connections from omapdss to omapfb.

However, currently omapfb only handles the connection related to the
default display, which means that no overlay managers are connected to
other displays.

This patch changes omapfb to go through all dssdevs, and connect an
overlay manager to them.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: manage output-dssdev connection in output drivers
Tomi Valkeinen [Fri, 7 Dec 2012 10:50:08 +0000 (12:50 +0200)]
OMAPDSS: manage output-dssdev connection in output drivers

We currently attach an output to a dssdev in the initialization code for
dssdevices in display.c. This works, but doesn't quite make sense: an
output entity represents (surprisingly) an output of DSS, which is
managed by an output driver. The output driver also handles adding new
dssdev's for that particular output.

It makes more sense to make the output-dssdev connection in the output
driver. This is also in line with common display framework.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPFB: remove warning when trying to alloc at certain paddress
Tomi Valkeinen [Tue, 4 Dec 2012 14:26:09 +0000 (16:26 +0200)]
OMAPFB: remove warning when trying to alloc at certain paddress

omapfb gives a WARN_ONCE if a predefined physical address is given for
allocating the framebuffer memory, as this is not currently supported.

However, the same warning happens if omapfb fails to allocate memory
during runtime, as when the allocation has failed, omapfb tries to
re-allocate the old memory with the physical address of the old memory
area.

Remove the warning from omapfb_alloc_fbmem, as it serves no purpose on
the failure case above, and move it to omapfb_parse_vram_param, so that
we only warn if physical address is given via omapfb module parameters.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPFB: simplify locking
Tomi Valkeinen [Tue, 4 Dec 2012 12:55:18 +0000 (14:55 +0200)]
OMAPFB: simplify locking

Kernel lock verification code has lately detected possible circular
locking in omapfb. The exact problem is unclear, but omapfb's current
locking seems to be overly complex.

This patch simplifies the locking in the following ways:

- Remove explicit omapfb mem region locking. I couldn't figure out the
  need for this, as long as we take care to take omapfb lock.

- Get omapfb lock always, even if the operation is possibly only related
  to one fb_info. Better safe than sorry, and normally there's only one
  user for the fb so this shouldn't matter.

- Make sure fb_info lock is taken first, then omapfb lock.

With this patch the warnings about possible circular locking does not
happen anymore.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
11 years agoOMAPFB: move dssdev->sync call out from omapfb_realloc_fbmem
Tomi Valkeinen [Fri, 7 Dec 2012 14:47:28 +0000 (16:47 +0200)]
OMAPFB: move dssdev->sync call out from omapfb_realloc_fbmem

Currently omapfb_realloc_fbmem() calls dssdev->sync to ensure any
possible frame update is finished. This patch moves the call to
dssdev->sync from omapfb_realloc_fbmem to the callers of
omapfb_realloc_fbmem.

This keeps dssdev related calls out from omapfb_realloc_fbmem, which
makes sense as the function should only deal with fb memory. Also, this
seems to avoid a lockdep warning about possible circular locking.
However, the exact reason for that warning is still unclear.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPFB: remove exported udpate window
Tomi Valkeinen [Tue, 4 Dec 2012 12:20:11 +0000 (14:20 +0200)]
OMAPFB: remove exported udpate window

omapfb contains an exported omapfb_update_window function, which, at
some point in history, was used by a closed source SGX driver. This was
a hack even then, and should not be needed anymore. So remove it.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoda8xx: Fix revision check on the da8xx driver
Pantelis Antoniou [Wed, 31 Oct 2012 15:56:24 +0000 (17:56 +0200)]
da8xx: Fix revision check on the da8xx driver

The revision check fails for the beaglebone; Add new revision ID.

Signed-off-by: Pantelis Antoniou <panto@antoniou-consulting.com>
Acked-by: Manjunathappa, Prakash <prakash.pm@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: Add terminating entry for picodlp_i2c_id table
Axel Lin [Fri, 30 Nov 2012 04:30:45 +0000 (12:30 +0800)]
OMAPDSS: Add terminating entry for picodlp_i2c_id table

The i2c_device_id table is supposed to be zero-terminated.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years ago[media] omap_vout: remove extra include
Tomi Valkeinen [Mon, 12 Nov 2012 13:24:02 +0000 (15:24 +0200)]
[media] omap_vout: remove extra include

Remove including plat/dma.h which is not needed.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] omap_vout: use omapdss's version instead of cpu_is_*
Tomi Valkeinen [Mon, 12 Nov 2012 13:17:39 +0000 (15:17 +0200)]
[media] omap_vout: use omapdss's version instead of cpu_is_*

cpu_is_* class functions create a dependency to OMAP platform code.
omapdss driver, which omap_vout uses, exposes a function to get the
version of the DSS hardware.

To remove the dependency to OMAP platform code this patch changes
omap_vout to use the omapdss version. For most of the checks, the ones
dealing with DSS differences, this is actually more correct than using
cpu_is_* functions. For the check whether VRFB is available or not this
is not really correct, but still works fine.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years agoOMAPDSS: Use only "omapdss_dss" platform device to get context lost count
Archit Taneja [Wed, 28 Nov 2012 11:31:39 +0000 (17:01 +0530)]
OMAPDSS: Use only "omapdss_dss" platform device to get context lost count

When enabling a hwmod, omap_hwmod refers to the register mentioned in the
hwmod struct's member 'prcm.omap4.context_offs' to see whether context was
lost or not. It increments the context lost count for the hwmod and then clears
the register.

All the DSS hwmods have the same register(RM_DSS_DSS_CONTEXT) as context_offs.
When DSS is enabled, the first hwmod to be enabled is the "dss_core" hwmod since
it's corresponding platform device is the parent platform device("omapdss_dss").
The dss_core hwmod updates it's context lost count correctly and clears the
register. When the hwmods corresponding to the children platform devices are
enabled, they see that the register is clear, and don't increment their context
lost count. Therefore, all the children platform devices never report a loss in
context.

The DISPC driver currently gets the context lost count for DSS power domain from
it's corresponding platform device instance("omapdss_dispc"). The DISPC platform
device is one of the child devices, and it's corresponding hwmod("dss_dispc")
doesn't report the context lost count correctly.

Modify dss_get_ctx_loss_count() such that it always takes the "omapdss_dss"
platform device as it's input, move the function to dss.c so that it has access
to that platform device.

Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoMerge branch 'exynos-dp-next' of git://github.com/jingoo/linux into for-linus
Tomi Valkeinen [Thu, 29 Nov 2012 08:34:41 +0000 (10:34 +0200)]
Merge branch 'exynos-dp-next' of git://github.com/jingoo/linux into for-linus

Exynos DP changes for the 3.8 merge window.

- Device Tree support for Samsung Exynos DP
- SW Link training is cleaned up.
- HPD interrupt is supported.

* 'exynos-dp-next' of git://github.com/jingoo/linux:
  video: exynos_dp: remove redundant parameters
  video: exynos_dp: Fix incorrect setting for INT_CTL
  video: exynos_dp: Reset and initialize DP before requesting irq
  video: exynos_dp: Enable hotplug interrupts
  video: exynos_dp: Move hotplug into a workqueue
  video: exynos_dp: Remove sink control to D0
  video: exynos_dp: Fix bug when checking dp->irq
  video: exynos_dp: Improve EDID error handling
  video: exynos_dp: Get pll lock before pattern set
  video: exynos_dp: Clean up SW link training
  video: exynos_dp: Check DPCD return codes
  video: exynos_dp: device tree documentation
  video: exynos_dp: Add device tree support to DP driver

11 years agoMerge branch 'samsung-fb-next' of git://github.com/jingoo/linux into for-linus
Tomi Valkeinen [Thu, 29 Nov 2012 08:34:02 +0000 (10:34 +0200)]
Merge branch 'samsung-fb-next' of git://github.com/jingoo/linux into for-linus

Samsung Framebuffer changes for the 3.8 merge window.

- The bit definitions of header file are updated.
- Some minor typos are fixed.
- Some minor bugs of s3c_fb_check_var() are fixed.

* 'samsung-fb-next' of git://github.com/jingoo/linux:
  video: s3c-fb: fix red offset and length for ARGB232 format
  video: s3c-fb: return an error when bpp is invalid
  video: s3c-fb: add "drop through" comment
  video: s3c-fb: use dev_get_drvdata() instead of platform_get_drvdata()
  video: s3c-fb: use FIMD_V8_VIDTCON0 for EXYNOS5 FIMD
  video: s3c-fb: fix help message for FB_S3C_DEBUG_REGWRITE
  video: s3c-fb: fix typo in comment
  video: s3c-fb: add the bit definitions for VIDCON0_VIDOUT_WB
  video: s3c-fb: move the bit definitions for DITHMODE register
  video: s3c-fb: move the bit definitions for WINxMAP and WPALCON register
  video: s3c-fb: move the bit definitions for VIDINTCON0 register
  video: s3c-fb: move the address definition for VIDOSD register
  video: s3c-fb: move the address definitions for VIDTCON registers
  video: s3c-fb: clean the bit definition for WINCON register

11 years agovideo: exynos_dp: remove redundant parameters
Ajay Kumar [Fri, 9 Nov 2012 05:05:06 +0000 (14:05 +0900)]
video: exynos_dp: remove redundant parameters

This patch cleans up few redundant parameters keeping
the same functionality intact.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: exynos_dp: Fix incorrect setting for INT_CTL
Ajay Kumar [Mon, 5 Nov 2012 07:47:00 +0000 (16:47 +0900)]
video: exynos_dp: Fix incorrect setting for INT_CTL

INT_CTL register contains bits INT_POL0 and INT_POL1, and not INT_POL.
This patch fixes the wrong register setting for INT_CTL.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: exynos_dp: Reset and initialize DP before requesting irq
Ajay Kumar [Fri, 9 Nov 2012 04:59:09 +0000 (13:59 +0900)]
video: exynos_dp: Reset and initialize DP before requesting irq

If DP is not reset properly before kernel bootup(in bootloader code),
there can be few pending interrupts, and sometimes they invoke
DP irq handler as soon as the irq handler is registered in DP probe.
So, we make the DP driver more robust by resetting and
initializing DP at the earliest and then registering the irq handler.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: exynos_dp: Enable hotplug interrupts
Sean Paul [Thu, 1 Nov 2012 10:13:46 +0000 (19:13 +0900)]
video: exynos_dp: Enable hotplug interrupts

Enable hotplug interrupts and move the hotplug scheduling into the
interrupt handler. This allows us to introduce a screen at any time
while we're running.

[jg1.han@samsung.com: moved the bit masking of hotplug interrupts]
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: exynos_dp: Move hotplug into a workqueue
Sean Paul [Fri, 9 Nov 2012 04:55:08 +0000 (13:55 +0900)]
video: exynos_dp: Move hotplug into a workqueue

Move the hotplug related code from probe and resume into a workqueue.
This allows us to initialize the DP driver (and resume it) when there
is no monitor connected.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: exynos_dp: Remove sink control to D0
Sean Paul [Thu, 1 Nov 2012 01:38:49 +0000 (10:38 +0900)]
video: exynos_dp: Remove sink control to D0

According to DP spec, it is not required in the Link Training
procedure.

[jg1.han@samsung.com: modified the commit message]
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: exynos_dp: Fix bug when checking dp->irq
Sean Paul [Wed, 31 Oct 2012 23:21:00 +0000 (23:21 +0000)]
video: exynos_dp: Fix bug when checking dp->irq

Fix a bug where we check !dp->irq instead of the correct check for
-ENXIO.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: exynos_dp: Improve EDID error handling
Sean Paul [Thu, 1 Nov 2012 02:13:00 +0000 (02:13 +0000)]
video: exynos_dp: Improve EDID error handling

EDID error handling has 2 problems:
 - It doesn't fail as early as it can
 - The retry counts for i2c and aux transactions are huge

This patch fails if the initial i2c transaction fails, and reduces the
aux and i2c retry counts down to 3.

[jg1.han@samsung.com: reduced the retry count of exynos_dp_read_byte_from_dpcd()]
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: exynos_dp: Get pll lock before pattern set
Sean Paul [Wed, 31 Oct 2012 23:21:00 +0000 (23:21 +0000)]
video: exynos_dp: Get pll lock before pattern set

According to the exynos datasheet (Figure 49-10), we should wait for PLL
lock before programming the training pattern when doing software eDP
link training.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: exynos_dp: Clean up SW link training
Sean Paul [Wed, 31 Oct 2012 23:21:00 +0000 (23:21 +0000)]
video: exynos_dp: Clean up SW link training

Clean up some of the SW training code to make it more clear and reduce
duplicate code.

[jg1.han@samsung.com: used exynos_dp_write_bytes_to_dpcd()]
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: exynos_dp: Check DPCD return codes
Sean Paul [Wed, 31 Oct 2012 23:21:00 +0000 (23:21 +0000)]
video: exynos_dp: Check DPCD return codes

Add return code checks to the DPCD transactions in the SW link training

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: exynos_dp: device tree documentation
Ajay Kumar [Fri, 12 Oct 2012 20:48:00 +0000 (05:48 +0900)]
video: exynos_dp: device tree documentation

Add documentation for the DT bindings in exynos display port driver.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: exynos_dp: Add device tree support to DP driver
Ajay Kumar [Fri, 12 Oct 2012 20:48:00 +0000 (05:48 +0900)]
video: exynos_dp: Add device tree support to DP driver

This patch enables device tree based discovery support for DP driver.
The driver is modified to handle platform data in both the cases:
with DT and non-DT.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agoOMAPDSS: add dss_get_core_pdev()
Tomi Valkeinen [Wed, 10 Oct 2012 07:46:06 +0000 (10:46 +0300)]
OMAPDSS: add dss_get_core_pdev()

Add dss_get_core_pdev() which returns the platform device for dss core
device. The following patches use the core pdev to register sysfs files
in the compat code.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: create display-sysfs.c
Tomi Valkeinen [Thu, 8 Nov 2012 11:13:02 +0000 (13:13 +0200)]
OMAPDSS: create display-sysfs.c

Move display sysfs related code from display.c to display-sysfs.c, for
clarity. The sysfs code will only be used for compat mode.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DISPC: pass pclk & lclk to dispc_ovl_calc_scaling
Tomi Valkeinen [Fri, 19 Oct 2012 12:46:30 +0000 (15:46 +0300)]
OMAPDSS: DISPC: pass pclk & lclk to dispc_ovl_calc_scaling

In order to make the scaling calculations independent of the current
hardware configuration (e.g. which manager is connected to this output),
we need to change the calc funcs to get all the variables needed for the
calculations via parameters.

This patch changes dispc_ovl_calc_scaling to get pclk and lclk as
parameters.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DISPC: pass pclk & lclk to calc_scaling
Tomi Valkeinen [Fri, 19 Oct 2012 12:43:29 +0000 (15:43 +0300)]
OMAPDSS: DISPC: pass pclk & lclk to calc_scaling

In order to make the scaling calculations independent of the current
hardware configuration (e.g. which manager is connected to this output),
we need to change the calc funcs to get all the variables needed for the
calculations via parameters.

This patch changes calc_scaling to get pclk and lclk as parameters.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DISPC: pass pclk & lclk to check_horiz_timing_omap3
Tomi Valkeinen [Fri, 19 Oct 2012 12:40:24 +0000 (15:40 +0300)]
OMAPDSS: DISPC: pass pclk & lclk to check_horiz_timing_omap3

In order to make the scaling calculations independent of the current
hardware configuration (e.g. which manager is connected to this output),
we need to change the calc funcs to get all the variables needed for the
calculations via parameters.

This patch changes check_horiz_timing_omap3() to get pclk and lclk as
parameters.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DISPC: pass pclk to calc_core_clk()
Tomi Valkeinen [Fri, 19 Oct 2012 12:36:11 +0000 (15:36 +0300)]
OMAPDSS: DISPC: pass pclk to calc_core_clk()

In order to make the scaling calculations independent of the current
hardware configuration (e.g. which manager is connected to this output),
we need to change the calc funcs to get all the variables needed for the
calculations via parameters.

This patch changes calc_core_clk() function to get pclk as a parameter.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DISPC: pclk & lclk rates for writeback
Tomi Valkeinen [Thu, 15 Nov 2012 11:20:02 +0000 (13:20 +0200)]
OMAPDSS: DISPC: pclk & lclk rates for writeback

Change the dispc_plane_pclk_rate and dispc_plane_lclk_rate functions to
return 0 if the given plane is the writeback plane. The clocks are not
valid for WB, but returning 0 from these functions instead of running
into BUG() will simplify the code that uses these functions.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DISPC: use WARN_ON() in dispc_mgr_go
Tomi Valkeinen [Fri, 19 Oct 2012 12:06:07 +0000 (15:06 +0300)]
OMAPDSS: DISPC: use WARN_ON() in dispc_mgr_go

dispc_mgr_go() should never be called with manager output disabled or if
the GO bit is already set. Change the current silent returns to
WARN_ONs.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: cleanup WB enable/is_enabled functions
Tomi Valkeinen [Wed, 10 Oct 2012 11:13:26 +0000 (14:13 +0300)]
OMAPDSS: cleanup WB enable/is_enabled functions

Instead of doing direct register reads/writes, dispc_wb_enable() and
dispc_wb_is_enabled() functions can use the common overlay functions to
set and check the enable bit.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DISPC: Remove blocking code from dispc_wb_enable()
Tomi Valkeinen [Fri, 19 Oct 2012 11:23:06 +0000 (14:23 +0300)]
OMAPDSS: DISPC: Remove blocking code from dispc_wb_enable()

WB will not be used with compat-mode, i.e. from omapfb. This means we
don't need the current complex dispc_wb_enable function, but can have a
simple register write version of the function.

This patch removes all the extra code from dispc_wb_enable()

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DISPC: use get_framedone_irq in disable_digit_out
Tomi Valkeinen [Thu, 8 Nov 2012 08:05:31 +0000 (10:05 +0200)]
OMAPDSS: DISPC: use get_framedone_irq in disable_digit_out

dispc_mgr_disable_digit_out() needs to wait until the DIGIT output is
turned off. This is done with either VSYNC irq on OMAP2/3 and
FRAMEDONETV on OMAP4+. It currently uses a rather hacky way to decide
what irq to use.

This patch changes dispc_mgr_disable_digit_out to use
dispc_mgr_get_framedone_irq to find out if there's framedone irq on this
SoC, and if not, uses VSYNC.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DISPC: add no_framedone_tv feat
Tomi Valkeinen [Thu, 8 Nov 2012 08:01:33 +0000 (10:01 +0200)]
OMAPDSS: DISPC: add no_framedone_tv feat

OMAP2/3 do not have FRAMEDONETV irq, but later omaps do. We currently
always return 0 from dispc_mgr_get_framedone_irq() for TV output to be
compatible with OMAP2/3.

This patch implements "no_framedone_tv" dispc-feature that is used in
dispc_mgr_get_framedone_irq to return either 0 for OMAP2/3, or the
correct IRQ number for FRAMEDONETV on OMAP4+.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: don't WARN if there's no DSI device
Tomi Valkeinen [Mon, 12 Nov 2012 14:55:28 +0000 (16:55 +0200)]
OMAPDSS: don't WARN if there's no DSI device

dsi_get_dsidev_from_id() gives a WARN if DSI support is not compiled in.
This warning is not right, as it's valid to call
dsi_get_dsidev_from_id() to see if there is DSI support or not.

Remove the WARN().

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: DPI: fix crash with dpi_verify_dsi_pll()
Tomi Valkeinen [Mon, 12 Nov 2012 14:52:11 +0000 (16:52 +0200)]
OMAPDSS: DPI: fix crash with dpi_verify_dsi_pll()

If the DSI support has not been compiled in or the SoC doesn't have DSI
hardware, dpi_get_dsidev() returns NULL. This NULL is passed to
dpi_verify_dsi_pll() causing a crash. The bug was added with commit
0e8276ef75f5c7811b038d1d23b2b42c16efc5ac (OMAPDSS: DPI: always use DSI
PLL if available).

Fix this by checking if dsidev is NULL before calling
dpi_verify_dsi_pll().

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoOMAPDSS: remove declarations for non-existing functions
Tomi Valkeinen [Wed, 7 Nov 2012 14:33:09 +0000 (16:33 +0200)]
OMAPDSS: remove declarations for non-existing functions

Remove dispc_mgr_is_channel_enabled() and dss_mgr_get_timings()
declarations, as the function doesn't exist.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoMerge branch 'fbdev-next' of github.com:timur-tabi/linux-2.6 into for-linus
Tomi Valkeinen [Tue, 27 Nov 2012 10:06:10 +0000 (12:06 +0200)]
Merge branch 'fbdev-next' of github.com:timur-tabi/linux-2.6 into for-linus

* 'fbdev-next' of github.com:timur-tabi/linux-2.6:
  drivers/video: fsl-diu-fb: store EDID data in the global object
  drivers/video: fsl-diu-fb: don't touch registers for unused features
  drivers/video: fsl-diu-fb: clean up reset of primary display
  drivers/video: fsl-diu-fb: remove unused 'cursor_reset' variable
  drivers/video: fsl-diu-fb: improve message displays
  drivers/video: fsl-diu-fb: streamline enabling of interrupts
  drivers/video: fsl-diu-fb: add support for set_gamma ioctls
  drivers/video: fsl-diu-fb: simplify platforms that have only one port
  MAINTAINERS: Make Timur Tabi the maintainer for the Freescale DIU driver

11 years agovideo: da8xx-fb: clk_get on connection id fck
Manjunathappa [Tue, 20 Nov 2012 12:41:01 +0000 (18:11 +0530)]
video: da8xx-fb: clk_get on connection id fck

do clk_get on connection id "fck" to support OMAP based
platforms having multiple clocks for module. Without this
driver change clk_get fails on am335x.

This patch is based on the discussion in community
http://marc.info/?l=linux-kernel&m=135166018907827&w=2

Signed-off-by: Manjunathappa <prakash.pm@ti.com>
Cc: Vaibhav Hiremath <hvaibhav@ti.com>
Acked-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoda8xx-fb: cleanup LCDC configurations
Manjunathappa, Prakash [Tue, 16 Oct 2012 04:53:16 +0000 (10:23 +0530)]
da8xx-fb: cleanup LCDC configurations

Configure below LCDC configurations to optimal values, also have an
option configure these optional parameters for platform.
1) AC bias configuration: Required only for passive panels
2) Dma_burst_size:
3) FIFO_DMA_DELAY:
4) FIFO threshold: Does not apply for da830 LCDC.

Patch is verified for 16bpp and 24bpp configurations on da830, da850 and
am335x EVMs.

Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoda8xx-fb: adopt fb_videomode data for panel information
Manjunathappa, Prakash [Tue, 16 Oct 2012 04:53:15 +0000 (10:23 +0530)]
da8xx-fb: adopt fb_videomode data for panel information

Adopt fb_videomode data instead of defining driver private
structure to hold panel information. This is the way standard FB
drivers maintain the panel information.

Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
11 years agoMerge branch 'lcdc-next' of git://linuxtv.org/pinchartl/fbdev into for-linus
Tomi Valkeinen [Tue, 27 Nov 2012 09:45:43 +0000 (11:45 +0200)]
Merge branch 'lcdc-next' of git://linuxtv.org/pinchartl/fbdev into for-linus

Merge SH Mobile LCDC patches from Laurent.

* 'lcdc-next' of git://linuxtv.org/pinchartl/fbdev:
  fbdev: sh_mobile_lcdc: Make sh_mobile_lcdc_sys_bus_ops static
  sh: kfr2r09: Use the backlight API for brightness control
  ARM: mach-shmobile: ag5evm: Use the backlight API for brightness control
  fbdev: sh_mobile_lcdc: Remove unused get_brightness pdata callback
  sh: ecovec24: Remove unused get_brightness LCDC callback
  sh: ap325rxa: Remove unused get_brightness LCDC callback
  ARM: mach-shmobile: mackerel: Removed unused get_brightness callback
  fbdev: sh_mobile_lcdc: Store the backlight brightness internally
  fbdev: sh_mipi_dsi: Remove the unused sh_mipi_dsi_info lcd_chan field
  ARM: mach-shmobile: Remove the unused sh_mipi_dsi_info lcd_chan field
  fbdev: sh_mipi_dsi: Remove last reference to LCDC platform data
  fbdev: sh_mipi_dsi: Use the LCDC entity default mode
  fbdev: sh_mipi_dsi: Use the sh_mipi_dsi_info channel field
  ARM: mach-shmobile: Initiliaze the new sh_mipi_dsi_info channel field
  fbdev: sh_mipi_dsi: Add channel field to platform data
  ARM: mach-shmobile: ag5evm: Add LCDC tx_dev field to platform data
  fbdev: sh_mobile_lcdc: Remove priv argument from channel and overlay init
  fbdev: sh_mobile_lcdc: Rename mode argument to modes
  fbdev: sh_mobile_lcdc: Get display dimensions from the channel structure
  fbdev: sh_mobile_lcdc: use dma_mmap_coherent

11 years agodrivers/video: fsl-diu-fb: store EDID data in the global object
Timur Tabi [Tue, 16 Oct 2012 22:33:50 +0000 (17:33 -0500)]
drivers/video: fsl-diu-fb: store EDID data in the global object

Although the DIU driver creates five framebuffer devices, only the first
one controls the physical display.  The remaining four are virtual "AOIs".
Therefore, the EDID data should be stored in the global fsl_diu_data
object, instead of the per-framebuffer object.

Signed-off-by: Timur Tabi <timur@freescale.com>
11 years agodrivers/video: fsl-diu-fb: don't touch registers for unused features
Timur Tabi [Tue, 16 Oct 2012 22:33:49 +0000 (17:33 -0500)]
drivers/video: fsl-diu-fb: don't touch registers for unused features

We don't use the writeback buffer, so don't initialize the registers for
that feature.

The default value for SYN_POL is already zero, so don't re-initialize it.

Writing the INT_STATUS register does nothing.

The value that we write to the PLUT register only makes sense on the
MPC8610 and P1022, so don't touch that register on the MPC5121.

Signed-off-by: Timur Tabi <timur@freescale.com>
11 years agodrivers/video: fsl-diu-fb: clean up reset of primary display
Timur Tabi [Tue, 16 Oct 2012 22:33:48 +0000 (17:33 -0500)]
drivers/video: fsl-diu-fb: clean up reset of primary display

Commit 4b5006ec ("shared DIU framebuffer support") added the ability to
retain the splash screen until the framebuffer is opened by user space.
Clean up this code to eliminate redundant writes to registers, and eliminate
the use of dummy area descriptor.

Signed-off-by: Timur Tabi <timur@freescale.com>
11 years agodrivers/video: fsl-diu-fb: remove unused 'cursor_reset' variable
Timur Tabi [Tue, 16 Oct 2012 22:33:47 +0000 (17:33 -0500)]
drivers/video: fsl-diu-fb: remove unused 'cursor_reset' variable

Probably left over from initial development in hardware cursor support
that never made it upstream.

Signed-off-by: Timur Tabi <timur@freescale.com>
11 years agodrivers/video: fsl-diu-fb: improve message displays
Timur Tabi [Tue, 16 Oct 2012 22:33:46 +0000 (17:33 -0500)]
drivers/video: fsl-diu-fb: improve message displays

Add some debug and error messages that are useful during debugging.

Signed-off-by: Timur Tabi <timur@freescale.com>
11 years agodrivers/video: fsl-diu-fb: streamline enabling of interrupts
Timur Tabi [Tue, 16 Oct 2012 22:33:45 +0000 (17:33 -0500)]
drivers/video: fsl-diu-fb: streamline enabling of interrupts

Remove functions request_irq_local() and free_irq_local(), and merge
their code into the functions that handle opening and closing the
framebuffer.  We also improve the way that interrupts are enabled.

Also implement a work-around for broken U-Boots that leave the DIU
interrupts enabled.

Signed-off-by: Timur Tabi <timur@freescale.com>
11 years agodrivers/video: fsl-diu-fb: add support for set_gamma ioctls
Timur Tabi [Tue, 16 Oct 2012 22:33:44 +0000 (17:33 -0500)]
drivers/video: fsl-diu-fb: add support for set_gamma ioctls

The MPC5121 BSP comes with a gamma_set utility that initializes the gamma
table via an ioctl.  Unfortunately, the ioctl number that utility uses
is defined improperly, but we can still support it.

Signed-off-by: Timur Tabi <timur@freescale.com>
11 years agodrivers/video: fsl-diu-fb: simplify platforms that have only one port
Timur Tabi [Tue, 16 Oct 2012 22:33:43 +0000 (17:33 -0500)]
drivers/video: fsl-diu-fb: simplify platforms that have only one port

Allow the platform code not to define a value for diu_ops.set_monitor_port.
This would be for platforms that only have one monitor port.
set_monitor_port() will never be called with an unsupported port anyway.

Signed-off-by: Timur Tabi <timur@freescale.com>
11 years agoMAINTAINERS: Make Timur Tabi the maintainer for the Freescale DIU driver
Timur Tabi [Tue, 16 Oct 2012 22:33:42 +0000 (17:33 -0500)]
MAINTAINERS: Make Timur Tabi the maintainer for the Freescale DIU driver

Timur has been cleaning up this driver, so just make it official.

Signed-off-by: Timur Tabi <timur@freescale.com>
11 years agoMerge tag 'omapdss-for-3.7-rc' of git://gitorious.org/linux-omap-dss2/linux
Tomi Valkeinen [Mon, 26 Nov 2012 08:26:29 +0000 (10:26 +0200)]
Merge tag 'omapdss-for-3.7-rc' of git://gitorious.org/linux-omap-dss2/linux

omapdss fixes for 3.7-rc

Conflicts:
drivers/video/omap2/dss/dss.c

11 years agovideo: s3c-fb: fix red offset and length for ARGB232 format
Jingoo Han [Fri, 26 Oct 2012 06:41:49 +0000 (15:41 +0900)]
video: s3c-fb: fix red offset and length for ARGB232 format

Green pixel and blue pixel are 3 bits and 2 bits respectively
at ARGB232 format. Thus, the value of red offset should be 5,
not 4. Also, the value of red length should be 2, because
red pixel is 2 bits at ARGB232 format.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: return an error when bpp is invalid
Jingoo Han [Fri, 26 Oct 2012 05:54:01 +0000 (14:54 +0900)]
video: s3c-fb: return an error when bpp is invalid

This patch returns an error, when bpp is invalid in
s3c_fb_check_var(). If invalid bpp is requested,
an error should be returned.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: add "drop through" comment
Jingoo Han [Fri, 26 Oct 2012 05:34:24 +0000 (14:34 +0900)]
video: s3c-fb: add "drop through" comment

This patch adds a "drop through" comment to improve
the readability.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: use dev_get_drvdata() instead of platform_get_drvdata()
Jingoo Han [Tue, 16 Oct 2012 04:21:44 +0000 (13:21 +0900)]
video: s3c-fb: use dev_get_drvdata() instead of platform_get_drvdata()

Because there is no need to access to the platform device in
suspend/resume and runtime_suspend/resume, dev_get_drvdata()
can be used instead of platform_get_drvdata() to make the code
smaller.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: use FIMD_V8_VIDTCON0 for EXYNOS5 FIMD
Jingoo Han [Thu, 27 Sep 2012 07:23:59 +0000 (16:23 +0900)]
video: s3c-fb: use FIMD_V8_VIDTCON0 for EXYNOS5 FIMD

This patch uses FIMD_V8_VIDTCON0 as the address definition
of VIDTCON0 register, because the address offset of VIDTCONx
registers is changed from 0x0 to 0x20000 for EXYNOS5 FIMD.
So, FIMD_V8_VIDTCON0 should be used.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: fix help message for FB_S3C_DEBUG_REGWRITE
Jingoo Han [Thu, 27 Sep 2012 07:46:19 +0000 (16:46 +0900)]
video: s3c-fb: fix help message for FB_S3C_DEBUG_REGWRITE

The help message of config FB_S3C_DEBUG_REGWRITE is fixed,
because printk(KERN_DEBUG) was replaced with pr_debug().

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: fix typo in comment
Jingoo Han [Thu, 27 Sep 2012 10:24:05 +0000 (19:24 +0900)]
video: s3c-fb: fix typo in comment

"sturucture" should be "structure".

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: add the bit definitions for VIDCON0_VIDOUT_WB
Jingoo Han [Tue, 25 Sep 2012 07:19:03 +0000 (16:19 +0900)]
video: s3c-fb: add the bit definitions for VIDCON0_VIDOUT_WB

This patch adds the bit definitions for VIDCON0_VIDOUT_WB.
These definitions are used to support writeback for RGB and
i80 interface. Also, output format of writeback is YUV444.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: move the bit definitions for DITHMODE register
Jingoo Han [Tue, 25 Sep 2012 08:30:36 +0000 (17:30 +0900)]
video: s3c-fb: move the bit definitions for DITHMODE register

The bit definitions for DITHMODE registers are moved according to
address order. Also, the bit definition of VIDCON1_FSTATUS_EVEN
is moved.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: move the bit definitions for WINxMAP and WPALCON register
Jingoo Han [Tue, 25 Sep 2012 08:16:52 +0000 (17:16 +0900)]
video: s3c-fb: move the bit definitions for WINxMAP and WPALCON register

The bit definitions for WINxMAP and WPALCON register are moved to
right place.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: move the bit definitions for VIDINTCON0 register
Jingoo Han [Tue, 25 Sep 2012 07:55:18 +0000 (16:55 +0900)]
video: s3c-fb: move the bit definitions for VIDINTCON0 register

The bit definitions for VIDINTCON0 registers are moved to right
place.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: move the address definition for VIDOSD register
Jingoo Han [Tue, 25 Sep 2012 07:43:16 +0000 (16:43 +0900)]
video: s3c-fb: move the address definition for VIDOSD register

The address definition for VIDTCON VIDOSD is moved to right
place.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: move the address definitions for VIDTCON registers
Jingoo Han [Tue, 25 Sep 2012 06:48:20 +0000 (15:48 +0900)]
video: s3c-fb: move the address definitions for VIDTCON registers

The address definitions for VIDTCON registers are moved to right
place.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agovideo: s3c-fb: clean the bit definition for WINCON register
Jingoo Han [Tue, 25 Sep 2012 06:37:45 +0000 (15:37 +0900)]
video: s3c-fb: clean the bit definition for WINCON register

This patch cleans the bit definition for WINCON register.
The bit definition for WINCON1 and WINCON2 is removed, because
it is not used.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
11 years agoLinux 3.7-rc7
Linus Torvalds [Mon, 26 Nov 2012 01:59:19 +0000 (17:59 -0800)]
Linux 3.7-rc7

11 years agoMerge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
Linus Torvalds [Mon, 26 Nov 2012 01:57:01 +0000 (17:57 -0800)]
Merge branch 'merge' of git://git./linux/kernel/git/benh/powerpc

Pull powerpc EEH bugfixes from Benjamin Herrenschmidt.

Two one-liner fixes for the new EEH code.

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
  powerpc/eeh: Do not invalidate PE properly
  powerpc/pseries: Fix oops with MSIs when missing EEH PEs