platform/kernel/linux-3.10.git
10 years agoreservation: add suppport for read-only access using rcu sandbox/cometzero/tizen
Maarten Lankhorst [Tue, 1 Jul 2014 10:58:00 +0000 (12:58 +0200)]
reservation: add suppport for read-only access using rcu

This adds some extra functions to deal with rcu.

reservation_object_get_fences_rcu() will obtain the list of shared
and exclusive fences without obtaining the ww_mutex.

reservation_object_wait_timeout_rcu() will wait on all fences of the
reservation_object, without obtaining the ww_mutex.

reservation_object_test_signaled_rcu() will test if all fences of the
reservation_object are signaled without using the ww_mutex.

reservation_object_get_excl and reservation_object_get_list require
the reservation object to be held, updating requires
write_seqcount_begin/end. If only the exclusive fence is needed,
rcu_dereference followed by fence_get_rcu can be used, if the shared
fences are needed it's recommended to use the supplied functions.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-By: Thomas Hellstrom <thellstrom@vmware.com>
10 years agoreservation: update api and add some helpers
Maarten Lankhorst [Tue, 1 Jul 2014 10:57:54 +0000 (12:57 +0200)]
reservation: update api and add some helpers

Move the list of shared fences to a struct, and return it in
reservation_object_get_list().
Add reservation_object_get_excl to get the exclusive fence.

Add reservation_object_reserve_shared(), which reserves space
in the reservation_object for 1 more shared fence.

reservation_object_add_shared_fence() and
reservation_object_add_excl_fence() are used to assign a new
fence to a reservation_object pointer, to complete a reservation.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Changes since v1:
- Add reservation_object_get_excl, reorder code a bit.

10 years agodma-buf: add poll support, v3
Maarten Lankhorst [Tue, 1 Jul 2014 10:57:43 +0000 (12:57 +0200)]
dma-buf: add poll support, v3

Thanks to Fengguang Wu for spotting a missing static cast.

v2:
- Kill unused variable need_shared.
v3:
- Clarify the BUG() in dma_buf_release some more. (Rob Clark)

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
10 years agoreservation: add support for fences to enable cross-device synchronisation
Maarten Lankhorst [Tue, 1 Jul 2014 10:57:37 +0000 (12:57 +0200)]
reservation: add support for fences to enable cross-device synchronisation

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
10 years agodma-buf: use reservation objects
Maarten Lankhorst [Tue, 1 Jul 2014 10:57:26 +0000 (12:57 +0200)]
dma-buf: use reservation objects

This allows reservation objects to be used in dma-buf. it's required
for implementing polling support on the fences that belong to a dma-buf.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Acked-by: Mauro Carvalho Chehab <m.chehab@samsung.com> #drivers/media/v4l2-core/
Acked-by: Thomas Hellstrom <thellstrom@vmware.com> #drivers/gpu/drm/ttm
Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net> #drivers/gpu/drm/armada/
10 years agoseqno-fence: Hardware dma-buf implementation of fencing (v6)
Maarten Lankhorst [Tue, 1 Jul 2014 10:57:20 +0000 (12:57 +0200)]
seqno-fence: Hardware dma-buf implementation of fencing (v6)

This type of fence can be used with hardware synchronization for simple
hardware that can block execution until the condition
(dma_buf[offset] - value) >= 0 has been met when WAIT_GEQUAL is used,
or (dma_buf[offset] != 0) has been met when WAIT_NONZERO is set.

A software fallback still has to be provided in case the fence is used
with a device that doesn't support this mechanism. It is useful to expose
this for graphics cards that have an op to support this.

Some cards like i915 can export those, but don't have an option to wait,
so they need the software fallback.

I extended the original patch by Rob Clark.

v1: Original
v2: Renamed from bikeshed to seqno, moved into dma-fence.c since
    not much was left of the file. Lots of documentation added.
v3: Use fence_ops instead of custom callbacks. Moved to own file
    to avoid circular dependency between dma-buf.h and fence.h
v4: Add spinlock pointer to seqno_fence_init
v5: Add condition member to allow wait for != 0.
    Fix small style errors pointed out by checkpatch.
v6: Move to a separate file. Fix up api changes in fences.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-by: Rob Clark <robdclark@gmail.com> #v4
10 years agofence: dma-buf cross-device synchronization (v18)
Maarten Lankhorst [Tue, 1 Jul 2014 10:57:14 +0000 (12:57 +0200)]
fence: dma-buf cross-device synchronization (v18)

A fence can be attached to a buffer which is being filled or consumed
by hw, to allow userspace to pass the buffer without waiting to another
device.  For example, userspace can call page_flip ioctl to display the
next frame of graphics after kicking the GPU but while the GPU is still
rendering.  The display device sharing the buffer with the GPU would
attach a callback to get notified when the GPU's rendering-complete IRQ
fires, to update the scan-out address of the display, without having to
wake up userspace.

A driver must allocate a fence context for each execution ring that can
run in parallel. The function for this takes an argument with how many
contexts to allocate:
  + fence_context_alloc()

A fence is transient, one-shot deal.  It is allocated and attached
to one or more dma-buf's.  When the one that attached it is done, with
the pending operation, it can signal the fence:
  + fence_signal()

To have a rough approximation whether a fence is fired, call:
  + fence_is_signaled()

The dma-buf-mgr handles tracking, and waiting on, the fences associated
with a dma-buf.

The one pending on the fence can add an async callback:
  + fence_add_callback()

The callback can optionally be cancelled with:
  + fence_remove_callback()

To wait synchronously, optionally with a timeout:
  + fence_wait()
  + fence_wait_timeout()

When emitting a fence, call:
  + trace_fence_emit()

To annotate that a fence is blocking on another fence, call:
  + trace_fence_annotate_wait_on(fence, on_fence)

A default software-only implementation is provided, which can be used
by drivers attaching a fence to a buffer when they have no other means
for hw sync.  But a memory backed fence is also envisioned, because it
is common that GPU's can write to, or poll on some memory location for
synchronization.  For example:

  fence = custom_get_fence(...);
  if ((seqno_fence = to_seqno_fence(fence)) != NULL) {
    dma_buf *fence_buf = seqno_fence->sync_buf;
    get_dma_buf(fence_buf);

    ... tell the hw the memory location to wait ...
    custom_wait_on(fence_buf, seqno_fence->seqno_ofs, fence->seqno);
  } else {
    /* fall-back to sw sync * /
    fence_add_callback(fence, my_cb);
  }

On SoC platforms, if some other hw mechanism is provided for synchronizing
between IP blocks, it could be supported as an alternate implementation
with it's own fence ops in a similar way.

enable_signaling callback is used to provide sw signaling in case a cpu
waiter is requested or no compatible hardware signaling could be used.

The intention is to provide a userspace interface (presumably via eventfd)
later, to be used in conjunction with dma-buf's mmap support for sw access
to buffers (or for userspace apps that would prefer to do their own
synchronization).

v1: Original
v2: After discussion w/ danvet and mlankhorst on #dri-devel, we decided
    that dma-fence didn't need to care about the sw->hw signaling path
    (it can be handled same as sw->sw case), and therefore the fence->ops
    can be simplified and more handled in the core.  So remove the signal,
    add_callback, cancel_callback, and wait ops, and replace with a simple
    enable_signaling() op which can be used to inform a fence supporting
    hw->hw signaling that one or more devices which do not support hw
    signaling are waiting (and therefore it should enable an irq or do
    whatever is necessary in order that the CPU is notified when the
    fence is passed).
v3: Fix locking fail in attach_fence() and get_fence()
v4: Remove tie-in w/ dma-buf..  after discussion w/ danvet and mlankorst
    we decided that we need to be able to attach one fence to N dma-buf's,
    so using the list_head in dma-fence struct would be problematic.
v5: [ Maarten Lankhorst ] Updated for dma-bikeshed-fence and dma-buf-manager.
v6: [ Maarten Lankhorst ] I removed dma_fence_cancel_callback and some comments
    about checking if fence fired or not. This is broken by design.
    waitqueue_active during destruction is now fatal, since the signaller
    should be holding a reference in enable_signalling until it signalled
    the fence. Pass the original dma_fence_cb along, and call __remove_wait
    in the dma_fence_callback handler, so that no cleanup needs to be
    performed.
v7: [ Maarten Lankhorst ] Set cb->func and only enable sw signaling if
    fence wasn't signaled yet, for example for hardware fences that may
    choose to signal blindly.
v8: [ Maarten Lankhorst ] Tons of tiny fixes, moved __dma_fence_init to
    header and fixed include mess. dma-fence.h now includes dma-buf.h
    All members are now initialized, so kmalloc can be used for
    allocating a dma-fence. More documentation added.
v9: Change compiler bitfields to flags, change return type of
    enable_signaling to bool. Rework dma_fence_wait. Added
    dma_fence_is_signaled and dma_fence_wait_timeout.
    s/dma// and change exports to non GPL. Added fence_is_signaled and
    fence_enable_sw_signaling calls, add ability to override default
    wait operation.
v10: remove event_queue, use a custom list, export try_to_wake_up from
    scheduler. Remove fence lock and use a global spinlock instead,
    this should hopefully remove all the locking headaches I was having
    on trying to implement this. enable_signaling is called with this
    lock held.
v11:
    Use atomic ops for flags, lifting the need for some spin_lock_irqsaves.
    However I kept the guarantee that after fence_signal returns, it is
    guaranteed that enable_signaling has either been called to completion,
    or will not be called any more.

    Add contexts and seqno to base fence implementation. This allows you
    to wait for less fences, by testing for seqno + signaled, and then only
    wait on the later fence.

    Add FENCE_TRACE, FENCE_WARN, and FENCE_ERR. This makes debugging easier.
    An CONFIG_DEBUG_FENCE will be added to turn off the FENCE_TRACE
    spam, and another runtime option can turn it off at runtime.
v12:
    Add CONFIG_FENCE_TRACE. Add missing documentation for the fence->context
    and fence->seqno members.
v13:
    Fixup CONFIG_FENCE_TRACE kconfig description.
    Move fence_context_alloc to fence.
    Simplify fence_later.
    Kill priv member to fence_cb.
v14:
    Remove priv argument from fence_add_callback, oops!
v15:
    Remove priv from documentation.
    Explicitly include linux/atomic.h.
v16:
    Add trace events.
    Import changes required by android syncpoints.
v17:
    Use wake_up_state instead of try_to_wake_up. (Colin Cross)
    Fix up commit description for seqno_fence. (Rob Clark)
v18:
    Rename release_fence to fence_release.
    Move to drivers/dma-buf/.
    Rename __fence_is_signaled and __fence_signal to *_locked.
    Rename __fence_init to fence_init.
    Make fence_default_wait return a signed long, and fix wait ops too.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com> #use smp_mb__before_atomic()
Reviewed-by: Rob Clark <robdclark@gmail.com>
10 years agodma-buf: move to drivers/dma-buf
Maarten Lankhorst [Tue, 1 Jul 2014 10:57:08 +0000 (12:57 +0200)]
dma-buf: move to drivers/dma-buf

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
10 years agoreservation: cross-device reservation support, v4
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:16 +0000 (13:48 +0200)]
reservation: cross-device reservation support, v4

This adds support for a generic reservations framework that can be
hooked up to ttm and dma-buf and allows easy sharing of reservations
across devices.

The idea is that a dma-buf and ttm object both will get a pointer
to a struct reservation_object, which has to be reserved before
anything is done with the contents of the dma-buf.

Changes since v1:
 - Fix locking issue in ticket_reserve, which could cause mutex_unlock
   to be called too many times.
Changes since v2:
 - All fence related calls and members have been taken out for now,
   what's left is the bare minimum to be useful for ttm locking conversion.
Changes since v3:
 - Removed helper functions too. The documentation has an example
   implementation for locking. With the move to ww_mutex there is no
   need to have much logic any more.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
10 years agodma-buf: fix trivial typo error
Javier Martinez Canillas [Wed, 9 Apr 2014 23:30:05 +0000 (01:30 +0200)]
dma-buf: fix trivial typo error

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
10 years agodma-buf: update debugfs output
Sumit Semwal [Mon, 3 Feb 2014 09:39:12 +0000 (15:09 +0530)]
dma-buf: update debugfs output

Russell King observed 'wierd' looking output from debugfs, and also suggested
better ways of getting device names (use KBUILD_MODNAME, dev_name())

This patch addresses these issues to make the debugfs output correct and better
looking.

While at it, replace seq_printf with seq_puts to remove the checkpatch.pl
warnings.

Reported-by: Russell King - ARM Linux <linux@arm.linux.org.uk>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
10 years agodma-buf: avoid using IS_ERR_OR_NULL
Colin Cross [Sat, 21 Dec 2013 00:43:50 +0000 (16:43 -0800)]
dma-buf: avoid using IS_ERR_OR_NULL

dma_buf_map_attachment and dma_buf_vmap can return NULL or
ERR_PTR on a error.  This encourages a common buggy pattern in
callers:
sgt = dma_buf_map_attachment(attach, DMA_BIDIRECTIONAL);
if (IS_ERR_OR_NULL(sgt))
                return PTR_ERR(sgt);

This causes the caller to return 0 on an error.  IS_ERR_OR_NULL
is almost always a sign of poorly-defined error handling.

This patch converts dma_buf_map_attachment to always return
ERR_PTR, and fixes the callers that incorrectly handled NULL.
There are a few more callers that were not checking for NULL
at all, which would have dereferenced a NULL pointer later.
There are also a few more callers that correctly handled NULL
and ERR_PTR differently, I left those alone but they could also
be modified to delete the NULL check.

This patch also converts dma_buf_vmap to always return NULL.
All the callers to dma_buf_vmap only check for NULL, and would
have dereferenced an ERR_PTR and panic'd if one was ever
returned. This is not consistent with the rest of the dma buf
APIs, but matches the expectations of all of the callers.

Signed-off-by: Colin Cross <ccross@android.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
10 years agodma-buf: Expose buffer size to userspace (v2)
Christopher James Halse Rogers [Tue, 10 Sep 2013 06:06:45 +0000 (11:36 +0530)]
dma-buf: Expose buffer size to userspace (v2)

Each dma-buf has an associated size and it's reasonable for userspace
to want to know what it is.

Since userspace already has an fd, expose the size using the
size = lseek(fd, SEEK_END, 0); lseek(fd, SEEK_CUR, 0);
idiom.

v2: Added Daniel's sugeested documentation, with minor fixups

Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
10 years agodma-buf: Check return value of anon_inode_getfile
Tuomas Tynkkynen [Tue, 27 Aug 2013 13:30:38 +0000 (16:30 +0300)]
dma-buf: Check return value of anon_inode_getfile

anon_inode_getfile might fail, so check its return value.

Signed-off-by: Tuomas Tynkkynen <ttynkkynen@nvidia.com>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
10 years agodma-buf: Replace PTR_RET with PTR_ERR_OR_ZERO
Sachin Kamat [Mon, 15 Jul 2013 10:21:22 +0000 (15:51 +0530)]
dma-buf: Replace PTR_RET with PTR_ERR_OR_ZERO

PTR_RET is now deprecated. Use PTR_ERR_OR_ZERO instead.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
10 years agodma-buf: Cocci spatch "ptr_ret.spatch"
Thomas Meyer [Sat, 1 Jun 2013 08:53:10 +0000 (05:53 -0300)]
dma-buf: Cocci spatch "ptr_ret.spatch"

Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years agoRevert "dmabuf-sync: add buffer synchronization framework"
Chanho Park [Wed, 9 Jul 2014 13:34:51 +0000 (22:34 +0900)]
Revert "dmabuf-sync: add buffer synchronization framework"

This reverts commit cf5eb8ecce5f3c60846f9ec5adf66e444c837835.

10 years agoRevert "dmabuf-sync: add cache operation feature"
Chanho Park [Wed, 9 Jul 2014 13:34:37 +0000 (22:34 +0900)]
Revert "dmabuf-sync: add cache operation feature"

This reverts commit 03a155cf2bf5af820345208db05d10fab35f7e34.

10 years agoRevert "dma-buf: add lock callback for fcntl system call."
Chanho Park [Wed, 9 Jul 2014 13:34:25 +0000 (22:34 +0900)]
Revert "dma-buf: add lock callback for fcntl system call."

This reverts commit 5357bb2de616c23658d51c6e84e5b58e61373a74.

10 years agoRevert "dmabuf-sync: fix sync lock to multiple read"
Chanho Park [Wed, 9 Jul 2014 13:34:17 +0000 (22:34 +0900)]
Revert "dmabuf-sync: fix sync lock to multiple read"

This reverts commit b6e01b19eb07007421a5d8362da2cac7a16dc646.

10 years agoRevert "dmabuf-sync: remove unnecessary the use of mutex lock."
Chanho Park [Wed, 9 Jul 2014 13:34:06 +0000 (22:34 +0900)]
Revert "dmabuf-sync: remove unnecessary the use of mutex lock."

This reverts commit 8acaa60cc42f763254f4bcd10c91e890aff2ce2c.

10 years agoRevert "dmabuf-sync: add private backend callbacks"
Chanho Park [Wed, 9 Jul 2014 13:33:57 +0000 (22:33 +0900)]
Revert "dmabuf-sync: add private backend callbacks"

This reverts commit 280aad79070ccc58baadc6b6c80cc3c36cc48b3e.

10 years agoRevert "dmabuf-sync: add select system call support."
Chanho Park [Wed, 9 Jul 2014 13:33:49 +0000 (22:33 +0900)]
Revert "dmabuf-sync: add select system call support."

This reverts commit e317b76581483822f47fea5e41df967466dd3e2d.

10 years agoRevert "dma-buf: return POLLIN | POLLOUT instead of POLLERR"
Chanho Park [Wed, 9 Jul 2014 13:33:40 +0000 (22:33 +0900)]
Revert "dma-buf: return POLLIN | POLLOUT instead of POLLERR"

This reverts commit 09042c6296640228f3e725c1d3dbdcf0ce07ab6b.

10 years agoRevert "dmabuf-sync: update it to patch v8"
Chanho Park [Wed, 9 Jul 2014 13:33:32 +0000 (22:33 +0900)]
Revert "dmabuf-sync: update it to patch v8"

This reverts commit 24ddf093da5e974073614cbd50f1fd0904479d7a.

10 years agousbnet: smsc95xx: add reset_resume function with reset operation 17/24417/2
Joonyoung Shim [Tue, 8 Jul 2014 08:03:15 +0000 (17:03 +0900)]
usbnet: smsc95xx: add reset_resume function with reset operation

The smsc95xx needs to resume with reset operation. Otherwise it causes
system hang by network error like below after resume. This case appears
on odroid u3 board.

[    9.727600] smsc95xx 1-2:1.0 eth0: kevent 2 may have been dropped
[    9.727648] smsc95xx 1-2:1.0 eth0: kevent 2 may have been dropped
[    9.727689] smsc95xx 1-2:1.0 eth0: kevent 2 may have been dropped
[    9.727728] smsc95xx 1-2:1.0 eth0: kevent 2 may have been dropped
[    9.729486] PM: resume of devices complete after 2011.219 msecs
[   10.117609] Restarting tasks ... done.
[   11.725099] smsc95xx 1-2:1.0 eth0: kevent 2 may have been dropped
[   13.480846] smsc95xx 1-2:1.0 eth0: kevent 2 may have been dropped
[   13.481361] smsc95xx 1-2:1.0 eth0: kevent 2 may have been dropped
...

Change-Id: I47bd52d7168ab7ec362d2de7c05d6817f2f14f9f
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
10 years agousb: s3c-hsotg: break infinite loop in endpoint disable code 29/24429/2
Marek Szyprowski [Thu, 29 May 2014 11:29:31 +0000 (13:29 +0200)]
usb: s3c-hsotg: break infinite loop in endpoint disable code

This patch fixes possible freeze caused by infinite loop in interrupt
context.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ie70ffda63d3608e5e73d87b41d0966d225cc2879

10 years agoarm: tizen_odroid_defconfig: enable LED heartbeat 05/24405/2
Marek Szyprowski [Fri, 11 Jul 2014 12:19:45 +0000 (14:19 +0200)]
arm: tizen_odroid_defconfig: enable LED heartbeat

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Iefb3e75d763693a29f85e5413675dbbfd2c51eb7

10 years agoUSB: add reset resume quirk for usb3503 97/24397/2
Joonyoung Shim [Thu, 10 Jul 2014 05:22:35 +0000 (14:22 +0900)]
USB: add reset resume quirk for usb3503

The usb device will autoresume from choose_wakeup() if it is
autosuspended with the wrong wakeup setting, but below errors occur
because usb3503 misc driver will switch to standby mode when suspended.

As add USB_QUIRK_RESET_RESUME, it can stop setting wrong wakeup from
autosuspend_check().

[    7.734717] usb 1-3: reset high-speed USB device number 3 using exynos-ehci
[    7.854658] usb 1-3: device descriptor read/64, error -71
[    8.079657] usb 1-3: device descriptor read/64, error -71
[    8.294664] usb 1-3: reset high-speed USB device number 3 using exynos-ehci
[    8.414658] usb 1-3: device descriptor read/64, error -71
[    8.639657] usb 1-3: device descriptor read/64, error -71
[    8.854667] usb 1-3: reset high-speed USB device number 3 using exynos-ehci
[    9.264598] usb 1-3: device not accepting address 3, error -71
[    9.374655] usb 1-3: reset high-speed USB device number 3 using exynos-ehci
[    9.784601] usb 1-3: device not accepting address 3, error -71
[    9.784838] usb usb1-port3: device 1-3 not suspended yet

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: If3af8c52956ad48096af85e34185af52bcaa9a45

10 years agousb: usb3503: add PM functions 96/24396/2
Joonyoung Shim [Thu, 10 Jul 2014 05:22:34 +0000 (14:22 +0900)]
usb: usb3503: add PM functions

The usb3503 needs to switch to standby mode while suspending and should
switch to hub mode when resumed. Also we can control clock on PM
function.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Iaba4a22e52bc3be58c099107dcddc390f57d3e88

10 years agoARM: dts: exynos4412-odroid*: fix properties for usb3503 chip 95/24395/2
Marek Szyprowski [Fri, 11 Jul 2014 11:28:43 +0000 (13:28 +0200)]
ARM: dts: exynos4412-odroid*: fix properties for usb3503 chip

After updating usb3503 chip driver to match mainline, a new
refclk-frequency property is required. This patch adds it.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ifad5683eb46c1b9b0123c8977760c958a5658aed

10 years agousb: misc: usb3503: Update error code in print message 94/24394/2
Tushar Behera [Tue, 17 Jun 2014 11:08:50 +0000 (16:38 +0530)]
usb: misc: usb3503: Update error code in print message

'err' is uninitialized, rather print the error code directly.

This also fixes following warning.
drivers/usb/misc/usb3503.c: In function ‘usb3503_probe’:
drivers/usb/misc/usb3503.c:195:11: warning: ‘err’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
    dev_err(dev, "unable to request refclk (%d)\n", err);

Signed-off-by: Tushar Behera <tushar.b@samsung.com>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[merged to mainline as commit ec5734c41bee2ee7c938a8f34853d31cada7e67a]

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I2dc568d12518cdadd1467fb8fb90fbcfb184495e

10 years agousb: usb5303: add support for reference clock specified in device tree 93/24393/2
Marek Szyprowski [Thu, 22 May 2014 11:21:38 +0000 (13:21 +0200)]
usb: usb5303: add support for reference clock specified in device tree

USB3503 chip supports 8 values of reference clock. The value is
specified by REF_SEL[1:0] pins and INT_N line. This patch add support
for getting 'refclk' clock, enabling it and setting INT_N line according
to the value of the gathered clock. If no clock has been specified,
driver defaults to the old behaviour (assuming that clock has been
specified by REF_SEL pins from primary reference clock frequencies
table).

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[merged to mainline as commit 657d898a9320a7cdb9b94565d75ecf75c25cbf0a]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: If36e36c671bb2ebc87ad39bfba5e30947e486c4a

10 years agoRevert "usb: usb5303: add support for reference clock specified in device tree" 92/24392/2
Marek Szyprowski [Fri, 11 Jul 2014 11:21:22 +0000 (13:21 +0200)]
Revert "usb: usb5303: add support for reference clock specified in device tree"

This reverts commit 36de3d9a1a856a88f3c7f98d4a3a2ec0fd2cd407.

This patch will be replaced with the version merged to mainline kernel.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I70bab95f5c3cebd730b3dfe122c9567502717c3a

10 years agoARM: dts: exynos4412-odroid*: fix sleep state for eMMC_nDET pin 91/24391/2
Marek Szyprowski [Fri, 11 Jul 2014 11:17:33 +0000 (13:17 +0200)]
ARM: dts: exynos4412-odroid*: fix sleep state for eMMC_nDET pin

During system sleep, eMMC must be put into reset state with eMMC_nDET line.
This patch adds proper configuration for eMMC_nDET pin in sleep state, so
now board finally correctly operates after suspend/resume cycle.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ied067cceb5fece61f1e5f9cab74c248878f9185c

10 years agoARM: dts: exynos4412-odroid*: fix T-FLASH hotplug detection 88/24388/2
Marek Szyprowski [Fri, 11 Jul 2014 07:11:43 +0000 (09:11 +0200)]
ARM: dts: exynos4412-odroid*: fix T-FLASH hotplug detection

TFLASH (SDHCI2 controller) uses internal card detect line, but it looks
that the driver fails to operate it properly. As a workaround use GPIO
interrupt on SD_CDn line for detecting SD card state.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I5b90ae5fcfd205349be7bdff1e6af199713b3a47

10 years agoASoC: odroidx2_max98090: dapm: Add pin switch control 50/24050/2
Huang Chao [Tue, 8 Jul 2014 08:56:42 +0000 (16:56 +0800)]
ASoC: odroidx2_max98090: dapm: Add pin switch control

This patch enables to control pins information switch
by virtual mixer.

Change-Id: I02a3546d8aaf69a05e50e71c42b2e9daa03e203c
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agodrm/exynos: use a new anon file for exynos gem mmaper 54/24354/1
Inki Dae [Fri, 11 Jul 2014 06:15:55 +0000 (15:15 +0900)]
drm/exynos: use a new anon file for exynos gem mmaper

This patch resolves potential deadlock issue that can be incurred
by changing file->f_op and filp->private_data to exynos specific
mapper ops and gem object temporarily.

To resolve this issue, this patch creates a new anon file dedicated
to exynos specific mmaper, and making it used instead of existing one.

Change-Id: I7e49302561385f4a2ce4e06980c25481d0d2e91c
Signed-off-by: Inki Dae <inki.dae@samsung.com>
10 years agoARM: dts: exyno4412-odroid*: correct memory size 17/24317/2
Marek Szyprowski [Wed, 9 Jul 2014 08:18:11 +0000 (10:18 +0200)]
ARM: dts: exyno4412-odroid*: correct memory size

Last megabyte of RAM is used by secure firmware and should not be accessed
by Linux kernel, so correct available memory size in DTS files.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I26a432773a2c8c3abb19cd44d9712aed9ce8097d

10 years agoASoC: samsung: dma: Remove the unnecessary dma chan pointer check 47/23947/3
Huang Chao [Sat, 5 Jul 2014 05:25:12 +0000 (13:25 +0800)]
ASoC: samsung: dma: Remove the unnecessary dma chan pointer check

After DMA request slave channel failed and return NULL in dma_open,
the snd_dmaengine_pcm_open function will check and handle it.
Besides, there is no need to call kfree with NULL argument when a
dma_request_slave_channel call fails.

Change-Id: I02629dd74b9c535bb134f5516bf3c03a239bd241
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoASoC: samsung: i2s: Add missing newlines in error messsages 48/23948/2
Huang Chao [Sat, 5 Jul 2014 01:34:19 +0000 (09:34 +0800)]
ASoC: samsung: i2s: Add missing newlines in error messsages

This is trivial, but generally speaking, linefeed should be
the last character of error messages.

Change-Id: I49e595989942d8862f25b6348979ddee6645ea51
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoASoC: samsung: Correct I2S DAI suspend/resume ops 41/23941/2
Sylwester Nawrocki [Fri, 4 Jul 2014 13:45:58 +0000 (15:45 +0200)]
ASoC: samsung: Correct I2S DAI suspend/resume ops

We should save/restore relevant I2S registers regardless of
the dai->active flag, otherwise some settings are being lost
after system suspend/resume cycle. E.g. I2S slave mode set only
during dai initialization is not preserved and the device ends
up in master mode after system resume.

Change-Id: Id5b5783cbcd8ce251a1c5efb2a68f5716e4cf81a
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
10 years agoASoC: samsung: Add missing pm ops assignment for odroidx2_max98090 40/23940/2
Sylwester Nawrocki [Fri, 4 Jul 2014 13:56:02 +0000 (15:56 +0200)]
ASoC: samsung: Add missing pm ops assignment for odroidx2_max98090

Assign pm ops to this driver so sound keeps working after system
suspend/resume cycle.

Change-Id: I3ec57d082be5362386947a069dd1904b91c56934
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
10 years agoclk: samsung: Add suspend/resume pm ops for audss clk controller 76/23776/3
Sylwester Nawrocki [Wed, 2 Jul 2014 13:40:58 +0000 (15:40 +0200)]
clk: samsung: Add suspend/resume pm ops for audss clk controller

Ensure the Exynos audio subsystem clock controller registers are
preserved across suspend/resume.

Change-Id: I57f4dcbbc9d02f7dfa2cd68508a9cefba010b9e5
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
10 years agoASoC: samsung: i2s: Add DT interrupts property description 18/24218/4
Huang Chao [Wed, 9 Jul 2014 03:26:10 +0000 (11:26 +0800)]
ASoC: samsung: i2s: Add DT interrupts property description

When the interrupts node is introduced in DT, we need to
describe the property and give usage example.

Change-Id: I2ac28a9e37e0a0fecf7f5712fd45ae36929e3c43
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoASoC: samsung: i2s: Correct documentation colon formats 20/24220/2
Huang Chao [Wed, 9 Jul 2014 04:34:32 +0000 (12:34 +0800)]
ASoC: samsung: i2s: Correct documentation colon formats

The colons should be used as the same format, without a
space before it.

Change-Id: I44ebcba9c8b36fb492a056ac053720afdd732aa1
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoARM: dts: exynos4412-odroid-common: disable 'always on' for BUCK8 regulator 66/24066/1
Kamil Debski [Wed, 25 Jun 2014 12:56:07 +0000 (14:56 +0200)]
ARM: dts: exynos4412-odroid-common: disable 'always on' for BUCK8 regulator

On Odroid U2/U3 BUCK8 is used for providing power to also to P3V3
source, which is also connected to LAN9730 chip's nRESET signal. To
reset lan chip on system reboot, the BUCK8 output should not be used in
'always on' mode. This change has no impact on X/X2 boards.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
Change-Id: I27f942711c53ae9abf5a71034388d1f0081aa359
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
10 years agos5p-mfc: Change buffer allocation per LSI suggestions 85/23485/5
Kamil Debski [Thu, 26 Jun 2014 10:32:55 +0000 (12:32 +0200)]
s5p-mfc: Change buffer allocation per LSI suggestions

When using IOMMU page fault were observed. This patches increases the DPB
size for interlaced streams. In addition the reported size of the DPB is
also increased for all tpes of stream.

Change-Id: I5597abe8f9a4a5194a017631d004dcf1e5101237
Signed-off-by: Kamil Debski <k.debski@samsung.com>
10 years agos5p-mfc: Add special handling for MPEG2 decoding with IOMMU use case 83/23483/3
Kamil Debski [Wed, 2 Apr 2014 09:18:54 +0000 (11:18 +0200)]
s5p-mfc: Add special handling for MPEG2 decoding with IOMMU use case

The DPB sizes for decoding MPEG2 when IOMMU is used and the stream is
interlaced should be doubled.

Change-Id: I0c69a1fa9be05a3050ae50bc14f10821a455dbcc
Signed-off-by: Kamil Debski <k.debski@samsung.com>
10 years agos5p-mfc: Fix the calculation of DPB size for non H264 video 82/23482/2
Kamil Debski [Wed, 2 Apr 2014 09:08:37 +0000 (11:08 +0200)]
s5p-mfc: Fix the calculation of DPB size for non H264 video

Image size was used instead of the buffer size which resulted in a smaller
than necessary buffer allocation.

Change-Id: Ia457957cf8e2777e01c3d9f18216156b0dce4856
Signed-off-by: Kamil Debski <k.debski@samsung.com>
10 years agos5p-mfc: Optimize use of s5p_mfc_ctx parameters 81/23481/2
Kamil Debski [Tue, 1 Apr 2014 11:23:16 +0000 (13:23 +0200)]
s5p-mfc: Optimize use of s5p_mfc_ctx parameters

luma_dpb_size, chroma_dpb_size and me_buffer_size were added with MFC v6 to
be used by the encoder. Their function directly maps to the previously used
luma_size, chroma_size and mv_size.

Change-Id: I7e585013d173f0349dd18cf52f2639d03ab16d36
Signed-off-by: Kamil Debski <k.debski@samsung.com>
10 years agodrm/exynos: dsi: add driver data to support Exynos5420 47/23147/2
YoungJun Cho [Wed, 18 Jun 2014 09:28:24 +0000 (18:28 +0900)]
drm/exynos: dsi: add driver data to support Exynos5420

The offset of register DSIM_PLLTMR_REG in Exynos5420 is
different from the one in Exynos4 SoC.

In case of Exynos5420 SoC, there is no frequency band bit
in DSIM_PLLCTRL_REG,
and it uses DSIM_PHYCTRL_REG and DSIM_PHYTIMING*_REG instead.
So this patch adds driver data to distinguish it.

Change-Id: Id5fad2e6042d28a73ed38de8657db9599d2cb782
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
10 years agodrm/exynos: fimd: support LCD I80 interface 46/23146/2
YoungJun Cho [Wed, 18 Jun 2014 09:27:23 +0000 (18:27 +0900)]
drm/exynos: fimd: support LCD I80 interface

To support MIPI command mode based I80 interface panel,
FIMD should do followings:
- Sets LCD I80 interface timings configuration.
- Uses "lcd_sys" as an IRQ resource and sets relevant IRQ configuration.
- Sets LCD block configuration for I80 interface.
- Sets ideal(pixel) clock is 2 times faster than the original one to
  generate frame done IRQ prior to the next TE signal.
- Implements trigger feature that transfers image data if there is page
  flip request, and implements TE handler to call trigger function.

Change-Id: I3a620a40e4d9c03a2d41b61ffb6cc7c43e782d1f
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
10 years agodrm/exynos: dsi: add TE handler to support LCD I80 interface 45/23145/2
YoungJun Cho [Thu, 24 Apr 2014 05:07:09 +0000 (14:07 +0900)]
drm/exynos: dsi: add TE handler to support LCD I80 interface

To support LCD I80 interface, the DSI host calls this handler
to notify the panel tearing effect synchronization signal to
the CRTC device manager to trigger to transfer video image.

Change-Id: Ic07e1bc6ee5744c7f7abea2e4ff99eeca86c8a3f
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
10 years agodrm/exynos: add TE handler to support LCD I80 interface 44/23144/2
YoungJun Cho [Wed, 18 Jun 2014 09:15:41 +0000 (18:15 +0900)]
drm/exynos: add TE handler to support LCD I80 interface

To support LCD I80 interface, the panel should generates
Tearing Effect synchronization signal between MCU and FB
to display video images.
And the display controller should trigger to transfer
video image at this signal.
So the panel receives the TE IRQ, then calls this handler
chains to notify it to the display controller.

Change-Id: Ie60112b9b135bb8a1b05a01fedcd62bd65fc59cd
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
10 years agoARM: dts: samsung-fimd: add LCD I80 interface specific properties 58/23858/1
YoungJun Cho [Fri, 11 Apr 2014 12:45:11 +0000 (21:45 +0900)]
ARM: dts: samsung-fimd: add LCD I80 interface specific properties

In case of using MIPI DSI based I80 interface panel,
the relevant registers should be set.
So this patch adds relevant DT bindings.

Change-Id: Ifc476d834f0bf25d9d908ec681fb80f17abf8b8c
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
10 years agoexynos/fimd: add parallel output related bindings 57/23857/1
Andrzej Hajda [Thu, 3 Jul 2014 01:26:41 +0000 (10:26 +0900)]
exynos/fimd: add parallel output related bindings

The patch adds bindings required to add support
for parallel output.

Change-Id: I36199e9fce05bb1cfbd2f1447ff9d8c0ccbca0e1
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
10 years agotizen: odroid: update defconfig 00/23800/1
Chanho Park [Thu, 3 Jul 2014 07:38:27 +0000 (16:38 +0900)]
tizen: odroid: update defconfig

Enable slp gadget
Enable Network configurations
Enable smack

Change-Id: I6d0e5b0b4ae40cef54c5763bf566a17719290fdc
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
10 years agodma: pl330: Modify pause/resume cmd capability flag for slave dma
Huang Chao [Tue, 1 Jul 2014 09:08:05 +0000 (17:08 +0800)]
dma: pl330: Modify pause/resume cmd capability flag for slave dma

Since the pl330 dma pause/resume capability is supported now,
the corresponding flag should be set as true.

Change-Id: I2dfe6575e6407232f3dcb441e1690650e571f66c
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoASoC: samsung: dma: Replace the private pcm operations with the generic ones
Huang Chao [Tue, 1 Jul 2014 01:41:12 +0000 (09:41 +0800)]
ASoC: samsung: dma: Replace the private pcm operations with the generic ones

This patch reshapes the whole samsung platform driver which is composed by
samsung private dmaengine pcm operations, replacing them with the generic
asoc dmaengine pcm operations implemented by alsa soc subsystem.

The dma channel is requested in open callback, and will be released when
the pcm stream is closed. And the pcm trigger operations are also changed
to the asoc generic dmaengine based pcm trigger implementation.

Change-Id: Ib70b973720e5d57a40c7d583b74c11b971b4776c
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoASoC: samsung: Kconfig: Support sound generic dmaengine pcm operations
Huang Chao [Tue, 1 Jul 2014 00:45:29 +0000 (08:45 +0800)]
ASoC: samsung: Kconfig: Support sound generic dmaengine pcm operations

This patch makes the generic dmaengine support for samsung pcm operations,
which can be used to substitute for samsung private dmaengine operations.

Change-Id: I4ab828fc95199bda7999e1c0c770100000aa2f74
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoASoC: samsung: i2s: Configure dmaengine playback/capture DAI DMA data
Huang Chao [Mon, 30 Jun 2014 08:35:47 +0000 (16:35 +0800)]
ASoC: samsung: i2s: Configure dmaengine playback/capture DAI DMA data

This patch configures the standard alsa dmaengine configure dai data.
The dma address, width and maxburst size will be initialized during
cpu dai probe process, in which the address width is assigned with
a default value as four bytes. Then when the hardware parameters are
configured as playback or capture are started, the dma address width
will be configured again according to current sound channels.

After the configuration, this patch will set the dai dma data into
the private dma data field in snd_soc_dai structure.

Change-Id: I46ece6472464d003a19d409441619ebbe4ef30cd
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoASoC: samsung: i2s: Add sound dmaengine playback/capture DAI DMA data
Huang Chao [Mon, 30 Jun 2014 07:45:06 +0000 (15:45 +0800)]
ASoC: samsung: i2s: Add sound dmaengine playback/capture DAI DMA data

This patch adds the standard alsa dmaengine configuration dai data,
which can make the dma slave channel runtime data be configured by
generic sound dmaengine slave config callback. This dmaengine dai
configuration data mainly contain dma address, width and maxburst.

Change-Id: Ief0688913ef89faafb90a1cf72c8a0977f3cb688
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agodma: pl330: Implement the DMA channel PAUSE/RESUME interfaces
Huang Chao [Tue, 24 Jun 2014 05:01:46 +0000 (13:01 +0800)]
dma: pl330: Implement the DMA channel PAUSE/RESUME interfaces

This patch implements the DMA_PAUSE/DMA_RESUME interfaces in pl330 DMAC
driver, which will call the dma pause/resume operations to set the dma
channel status respectively.

When DMA_PAUSE is called from dma subsystem during audio playback, the
DMAC should halt the transfer execution of the channel thread and wait
for the resume event occurs, which is specified by the event number in
INTEN register. The channel thread is stalled by the DMAWFE instruction.
After that, when DMA_RESUME is called, which means that the resume event
occurs, this patch will signal an interrupt to send the DMASEV instruction
and restart the channel thread, and then the channel thread moves to the
Executing state and the DMAC clears the event.

Change-Id: I5d990f0efb31b7e37673a060fdcbc9002b6ea488
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agodma: pl330: Enumerate the DMA channel PAUSE/RESUME operations
Huang Chao [Tue, 24 Jun 2014 03:17:45 +0000 (11:17 +0800)]
dma: pl330: Enumerate the DMA channel PAUSE/RESUME operations

This patch expands the pl330 dma channel operation enumerations,
which will support to pause data transfer and halt dma channel
on DMA_PAUSE command and resume data transfer and restart dma
channel on DMA_RESUME command.

Change-Id: I5d129063edca747a6c03f23a67c82ef508e4de17
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoASoC: samsung: i2s: Fix the checked out code style problems
Huang Chao [Mon, 30 Jun 2014 06:15:35 +0000 (14:15 +0800)]
ASoC: samsung: i2s: Fix the checked out code style problems

This patch just fix the code style issues about required space
missing and redundant line continuations have been checked out:

./scripts/checkpatch.pl -f ./sound/soc/samsung/i2s.c
ERROR: space required before the open brace '{'
\#1033: FILE: sound/soc/samsung/i2s.c:1033:
+ if (!IS_ERR(i2s->op_clk)){

WARNING: Avoid unnecessary line continuations
\#1225: FILE: sound/soc/samsung/i2s.c:1225:
+ dev_err(&pdev->dev, "idma address is not"\

total: 1 errors, 1 warnings, 1398 lines checked

./sound/soc/samsung/i2s.c has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Change-Id: I51f2bf0f6b203613b3a81d604b69c6e08ed97507
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoextcon: max77693: Remove initial path setting
Kamil Debski [Mon, 23 Jun 2014 10:35:16 +0000 (12:35 +0200)]
extcon: max77693: Remove initial path setting

Setting the muic to UART regardles of what is connected results in
havoc on the USB bus if it is connected at the time of boot.

Change-Id: I4f1867afee717635874e905faaffd7398afe050a
Signed-off-by: Kamil Debski <k.debski@samsung.com>
10 years agodts: Enable host port in ehci-exynos in Trats2
Kamil Debski [Tue, 17 Jun 2014 12:17:51 +0000 (14:17 +0200)]
dts: Enable host port in ehci-exynos in Trats2

This patch enables the external host port of the ehci-exynos module in the
Trats2 board.

Change-Id: I60f3a9bdb4baa3acb939c73640200ce44173b763
Signed-off-by: Kamil Debski <k.debski@samsung.com>
10 years agodts: Enabled ohci-exynos in Trats2 board
Kamil Debski [Tue, 17 Jun 2014 12:16:30 +0000 (14:16 +0200)]
dts: Enabled ohci-exynos in Trats2 board

This patch enabled support for the ohci-exynos module in the Trats2 board.

Change-Id: Ibfa78d4fc9f1a04429e65ba2b7ad211178e5ba3b
Signed-off-by: Kamil Debski <k.debski@samsung.com>
10 years agodts: Add support for the exynos-ohci driver for Exynos4
Kamil Debski [Tue, 17 Jun 2014 12:14:56 +0000 (14:14 +0200)]
dts: Add support for the exynos-ohci driver for Exynos4

This patch adds support for the exynos-ohci driver for Exynos4.

Change-Id: I7f195feabe0dfce25bb46fb31c91b3117da5a61c
Signed-off-by: Kamil Debski <k.debski@samsung.com>
10 years agomax77693: Add support for OTG host power supply
Kamil Debski [Tue, 17 Jun 2014 11:49:22 +0000 (13:49 +0200)]
max77693: Add support for OTG host power supply

The max77693_otg_control function was adapted from the 3.0 vendor kernel.
The modification were done to the max77693_read_reg and max77693_write_reg
calls. In the 3.10 kernel these functions use regmap.

Change-Id: If6e42fa3ef1ef5fdc1fe846b3b8a1c517928b626
Signed-off-by: Kamil Debski <k.debski@samsung.com>
10 years agousb: ohci-exynos: Add facility to use phy provided by the generic phy framework
Vivek Gautam [Mon, 5 May 2014 05:02:57 +0000 (10:32 +0530)]
usb: ohci-exynos: Add facility to use phy provided by the generic phy framework

Add support to consume phy provided by Generic phy framework.
Keeping the support for older usb-phy intact right now, in order
to prevent any functionality break in absence of relevant
device tree side change for ohci-exynos.
Once we move to new phy in the device nodes for ohci, we can
remove the support for older phys.

Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
Cc: Jingoo Han <jg1.han@samsung.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Change-Id: If4e12fb15edcf179e4433da08d7c06c226e05a63

10 years agousb: gadget: udc: Fix initialization sequence with extcon present
Kamil Debski [Mon, 9 Jun 2014 12:12:41 +0000 (14:12 +0200)]
usb: gadget: udc: Fix initialization sequence with extcon present

Prior to this patch during initialization the udc would switch off regardless
of the current state of the cable. Then it would be enabled if the cable is
present. After applying this patch the udc would be disabled only if the cable
is not present during initialization.

Change-Id: Icfd7e42f9890798afb92428f4041dcffefaa2a08
Signed-off-by: Kamil Debski <k.debski@samsung.com>
10 years agophy: phy-samsung-usb2: Change phy power on/power off sequence
Kamil Debski [Tue, 24 Jun 2014 12:04:54 +0000 (14:04 +0200)]
phy: phy-samsung-usb2: Change phy power on/power off sequence

The Exynos4412 USB 2.0 PHY hardware differs from the description provided
in the documentation. Some register bits have different function. This
patch fixes the defines of register bits and changes the way how phys are
powered on and off.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
Change-Id: I05f2568157c3d857b71d47c0e6506b35bf969699

10 years agoASoC: odroidx2_max98090: Support audio routing specified in DT
Sylwester Nawrocki [Thu, 12 Jun 2014 17:29:44 +0000 (19:29 +0200)]
ASoC: odroidx2_max98090: Support audio routing specified in DT

This patch adds support for specifying the audio routing in device
tree.

Change-Id: Iebbd8d4dff79afba888f4e7620cbf1f2debc81de
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
10 years agoASoC: odroidx2_max98090: Allow defining sound card name in DT
Sylwester Nawrocki [Thu, 12 Jun 2014 14:10:57 +0000 (16:10 +0200)]
ASoC: odroidx2_max98090: Allow defining sound card name in DT

The 'samsung,model' property allows to define the sound card name
in device tree, rather than relying on single name coded in the driver
for all Odroid boards.

Change-Id: Iad446b3d95d578d8d5390af5d0a9d8f9dcdd2a46
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
10 years agoARM: dts: Add audio model and audio-routing information for Odroid X2/U3
Sylwester Nawrocki [Thu, 12 Jun 2014 16:13:01 +0000 (18:13 +0200)]
ARM: dts: Add audio model and audio-routing information for Odroid X2/U3

This will specify the sound card name and the audio routing.

Change-Id: I54e042266cc937e97849ca146e40b65cd9bdaa6f
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
10 years agoASoC: odroidx2_max98090: Add missing of_node_put() calls
Sylwester Nawrocki [Mon, 23 Jun 2014 13:28:36 +0000 (15:28 +0200)]
ASoC: odroidx2_max98090: Add missing of_node_put() calls

Ensure the acquired references to the DT nodes are properly released
on error paths and upon the driver's removal.

Change-Id: I8ffff330041ad6d6adbc1afff3c85154e18dd85d
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
10 years agousb: s5p-ehci: fix the status when the device is being resumed
Hyungwon Hwang [Fri, 20 Jun 2014 11:00:59 +0000 (20:00 +0900)]
usb: s5p-ehci: fix the status when the device is being resumed

The device is powered down when it is suspended. So the status must be set as
hibernated when it is being resumed.

Change-Id: Ie67613f0e5e19f4412e46c25a9ea082c31beb0e2
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
10 years agopackaging: use upstream tags
Philippe Coval [Thu, 12 Jun 2014 15:30:20 +0000 (17:30 +0200)]
packaging: use upstream tags

Change-Id: I19ec564fa7fb0e6b88ed64390efd33b430b25894
Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
10 years agousb: gadget: s3c-hsotg: delay enabling irq once hardware is configured properly
Marek Szyprowski [Tue, 17 Jun 2014 15:33:33 +0000 (17:33 +0200)]
usb: gadget: s3c-hsotg: delay enabling irq once hardware is configured properly

This patch fixes kernel panic/interrupt storm/etc issues if bootloader
left s3c-hsotg module in enabled state. Now interrupt handler is enabled
only after proper configuration of hardware registers.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I665fde86a7ca018e0d19610877828d0495535ade

10 years agoarm: dts: odroid: make the gpio key node for power key common
Hyungwon Hwang [Fri, 20 Jun 2014 10:24:59 +0000 (19:24 +0900)]
arm: dts: odroid: make the gpio key node for power key common

The gpio key for power enable is common in both of Odroid X2 and U3. So move the
dt node to the common odroid dt file from the odroid x2 dt file.

Change-Id: Id295289e092bcd71f9854de6896cb7d5cfae9540
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
10 years agomfd: max77686: check the interrupt is specified or not
Hyungwon Hwang [Fri, 20 Jun 2014 11:05:27 +0000 (20:05 +0900)]
mfd: max77686: check the interrupt is specified or not

For the cases which the interrupt for this device is not specified, it must be
checked whether it is or not. Without it, an error occurs, because some
operations are done on the interrupt number which is not specified well.

Change-Id: Idc0a4b0f1e99f0f1022795927c54c1d3f56a4459
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
10 years agoarm: tizen_odroid_defconfig: enable mmc unsafe resume
Hyungwon Hwang [Fri, 20 Jun 2014 08:37:10 +0000 (17:37 +0900)]
arm: tizen_odroid_defconfig: enable mmc unsafe resume

Enable mmc unsafe resume. This option is needed for the system which uses the mmc
card for rootfs. Without it, errors occur when the system is being suspended,
because the mmc card is removed too early.

Change-Id: Iba885bda33d426df1cd83f9b2bb22d3744ca3f44
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
10 years agodrm/exynos: use wait_event_timeout() for safety usage
YoungJun Cho [Wed, 18 Jun 2014 09:14:00 +0000 (18:14 +0900)]
drm/exynos: use wait_event_timeout() for safety usage

There could be the case that the page flip operation isn't finished correctly
with some abnormal condition such as panel reset. So this patch replaces
wait_event() with wait_event_timeout() to avoid waiting for page flip completion
infinitely.
And clears exynos_crtc->pending_flip in exynos_drm_crtc_page_flip()
when exynos_drm_crtc_mode_set_commit() is failed.

Change-Id: Ib110ff1d6089394da37ba5a8375a4efdd6128672
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
10 years agodrm/exynos: dsi: move the EoT packets configuration point
YoungJun Cho [Fri, 11 Apr 2014 08:34:30 +0000 (17:34 +0900)]
drm/exynos: dsi: move the EoT packets configuration point

This configuration could be used in MIPI DSI command mode also.

Change-Id: I7f0f088296cd56d8b68dc9ae6ff910dd63e84d89
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
10 years agoASoC: odroidx2_max98090: Drop unnecessary of_node check
Sylwester Nawrocki [Thu, 12 Jun 2014 13:57:01 +0000 (15:57 +0200)]
ASoC: odroidx2_max98090: Drop unnecessary of_node check

There is no way we can have probe() called with dev->of_node being
NULL on Exynos, so remove the unneeded check.

Change-Id: Icc815a56d2c0da14240dabc2097836e59117ccac
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
10 years agoASoC: odroidx2_max98090: Drop unneeded assignment to NULL
Sylwester Nawrocki [Thu, 12 Jun 2014 13:50:48 +0000 (15:50 +0200)]
ASoC: odroidx2_max98090: Drop unneeded assignment to NULL

odroidx2_dai is a static variable so reinitialization of some
of its members to NULL can be removed.

Change-Id: I8448a6166a5008640ef3fd5d467acbcbc8e3cea9
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
10 years agoASoC: odroidx2_max98090: Make debug logs dev_dbg()
Sylwester Nawrocki [Thu, 12 Jun 2014 13:48:29 +0000 (15:48 +0200)]
ASoC: odroidx2_max98090: Make debug logs dev_dbg()

It's just a debug information so make it dev_dbg(). While at it
use snd_pcm_stream_str() rather than open coding it.

Change-Id: Ib3c9820660bc69fb0c98a12762c6c009a55a6020
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
10 years agoASoC: odroidx2_max98090: Indentation changes
Sylwester Nawrocki [Mon, 16 Jun 2014 14:08:48 +0000 (16:08 +0200)]
ASoC: odroidx2_max98090: Indentation changes

Purely cosmetic, i.e. no functionality changes.

Change-Id: I092e33f8a944c495cbb1ba6f1255c9794f4e76fc
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
10 years agoASoC: samsung: dma: Implement audio pause/resume callback operations
Huang Chao [Fri, 13 Jun 2014 05:28:36 +0000 (13:28 +0800)]
ASoC: samsung: dma: Implement audio pause/resume callback operations

When the dma operations get called from audio platform driver, and
users want to pause or resume the audio pcm stream when playback music,
there should be the related pause and release callback operations for
such requirements. This patch just implements the audio pause/resume
callback operations by simply call the corresponding functions from
the dma engine subsystem.

Change-Id: Ifed8d2acf1cbc09f1bd5d37151dcf74255b20da0
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoASoC: samsung: dma: Add pause/resume support for pcm stream information
Huang Chao [Fri, 13 Jun 2014 06:11:11 +0000 (14:11 +0800)]
ASoC: samsung: dma: Add pause/resume support for pcm stream information

This patch expands the sound pcm hardware information set, which makes
dma driver support audio stream pause/resume when playback music, and
triggering the push/release commands respectively.

Change-Id: I2f89c13afd335c964d144e9ba1b9d101ceb14a0d
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoASoC: samsung: dma: Implement audio stream pause/resume interfaces
Huang Chao [Fri, 13 Jun 2014 05:58:31 +0000 (13:58 +0800)]
ASoC: samsung: dma: Implement audio stream pause/resume interfaces

This patch implements the pause/resume operations for audio stream
when users are playback the music, which will call the correlative
pause/resume callbacks from samsung dma operations set.

Change-Id: I151a9b48152dab52b9b618c54af4200fecd3fd8a
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agoASoC: samsung: dma: Define audio pause/resume callback operations
Huang Chao [Fri, 13 Jun 2014 04:36:49 +0000 (12:36 +0800)]
ASoC: samsung: dma: Define audio pause/resume callback operations

When this set of dma operations get called from audio platform
driver, and users want to set the audio pcm stream to pause or
resume state when playback music, there should be the related
pause and release callback operations for such requirements.

Change-Id: Id872285c0c4bc0c5cc537aad0622b1b6d697f049
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agodma: pl330: Implement the dma channel pause/resume interfaces
Huang Chao [Fri, 13 Jun 2014 03:22:17 +0000 (11:22 +0800)]
dma: pl330: Implement the dma channel pause/resume interfaces

This patch implements dma pause and resume interfaces for the
pl330 dmac driver. When the dmaengine_pause callback is called
from audio platform driver, the pl330 driver should handle the
pause command. And when the dmaengine_resume callback function
is called, the pl330 driver should handle the resume command.

In order not to return error code for pause/resume operation,
currently there is nothing implemented for pause and resume
switch interfaces, and there might have some continuous work
for pl330 channel configuration in the future. However, the
odroidx2/u3 board can pause/resume with this implementation.

Change-Id: I584106a4d7861fde308997e6843088fbf0a9b1bb
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
10 years agodrm/exynos: hdmi: fix power order issue
Inki Dae [Fri, 13 Jun 2014 08:44:40 +0000 (17:44 +0900)]
drm/exynos: hdmi: fix power order issue

This patch resolves page fault issue of Mixer when disabled.

The SFRs of VP and Mixer are updated by Vertical Sync of Timing
generator which is a part of HDMI so the sequence to disable TV
Subsystem should be as following:
VP -> Mixer -> HDMI

For this, this patch disables Mixer and VP (if used) prior to
disabling HDMI.

Change-Id: I85591e66264c9e5b7efe7ddf7fe71df1b9972356
Signed-off-by: Inki Dae <inki.dae@samsung.com>
10 years agoRevert "drm/exynos: do hdmi power control by crtc DPMS"
Inki Dae [Fri, 13 Jun 2014 06:25:32 +0000 (15:25 +0900)]
Revert "drm/exynos: do hdmi power control by crtc DPMS"

This reverts commit 4d1a75bbabd92b458e8f8cf1d3c071efc873cc87.

Change-Id: I4b56d6ac44586580c4a6d871e20064aacce30331

10 years agovb2: fix buf_init/buf_cleanup call sequences
Hans Verkuil [Wed, 29 Jan 2014 16:36:53 +0000 (13:36 -0300)]
vb2: fix buf_init/buf_cleanup call sequences

Ensure that these ops are properly balanced.

There are two scenarios:

1) for MMAP buf_init is called when the buffers are created and buf_cleanup
   must be called when the queue is finally freed. This scenario was always
   working.

2) for USERPTR and DMABUF it is more complicated. When a buffer is queued
   the code checks if all planes of this buffer have been acquired before.
   If that's the case, then only buf_prepare has to be called. Otherwise
   buf_cleanup needs to be called if the buffer was acquired before, then,
   once all changed planes have been (re)acquired, buf_init has to be
   called followed by buf_prepare. Should buf_prepare fail, then buf_cleanup
   must be called on the newly acquired planes to release them in.

Finally, in __vb2_queue_free we have to check if the buffer was actually
acquired before calling buf_cleanup. While that it always true for MMAP
mode, it is not necessarily true for the other modes. E.g. if you just
call REQBUFS and close the file handle, then buffers were never queued and
so no buf_init was ever called.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
[Backport from upstream to support dmabuf memory]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: I9a020bd5bca6376f70f3a9a85cce63ff0ff555ed

10 years agonetfilter: x_tables: lightweight process control group matching
Daniel Borkmann [Sun, 29 Dec 2013 17:27:12 +0000 (18:27 +0100)]
netfilter: x_tables: lightweight process control group matching

It would be useful e.g. in a server or desktop environment to have
a facility in the notion of fine-grained "per application" or "per
application group" firewall policies. Probably, users in the mobile,
embedded area (e.g. Android based) with different security policy
requirements for application groups could have great benefit from
that as well. For example, with a little bit of configuration effort,
an admin could whitelist well-known applications, and thus block
otherwise unwanted "hard-to-track" applications like [1] from a
user's machine. Blocking is just one example, but it is not limited
to that, meaning we can have much different scenarios/policies that
netfilter allows us than just blocking, e.g. fine grained settings
where applications are allowed to connect/send traffic to, application
traffic marking/conntracking, application-specific packet mangling,
and so on.

Implementation of PID-based matching would not be appropriate
as they frequently change, and child tracking would make that
even more complex and ugly. Cgroups would be a perfect candidate
for accomplishing that as they associate a set of tasks with a
set of parameters for one or more subsystems, in our case the
netfilter subsystem, which, of course, can be combined with other
cgroup subsystems into something more complex if needed.

As mentioned, to overcome this constraint, such processes could
be placed into one or multiple cgroups where different fine-grained
rules can be defined depending on the application scenario, while
e.g. everything else that is not part of that could be dropped (or
vice versa), thus making life harder for unwanted processes to
communicate to the outside world. So, we make use of cgroups here
to track jobs and limit their resources in terms of iptables
policies; in other words, limiting, tracking, etc what they are
allowed to communicate.

In our case we're working on outgoing traffic based on which local
socket that originated from. Also, one doesn't even need to have
an a-prio knowledge of the application internals regarding their
particular use of ports or protocols. Matching is *extremly*
lightweight as we just test for the sk_classid marker of sockets,
originating from net_cls. net_cls and netfilter do not contradict
each other; in fact, each construct can live as standalone or they
can be used in combination with each other, which is perfectly fine,
plus it serves Tejun's requirement to not introduce a new cgroups
subsystem. Through this, we result in a very minimal and efficient
module, and don't add anything except netfilter code.

One possible, minimal usage example (many other iptables options
can be applied obviously):

 1) Configuring cgroups if not already done, e.g.:

  mkdir /sys/fs/cgroup/net_cls
  mount -t cgroup -o net_cls net_cls /sys/fs/cgroup/net_cls
  mkdir /sys/fs/cgroup/net_cls/0
  echo 1 > /sys/fs/cgroup/net_cls/0/net_cls.classid
  (resp. a real flow handle id for tc)

 2) Configuring netfilter (iptables-nftables), e.g.:

  iptables -A OUTPUT -m cgroup ! --cgroup 1 -j DROP

 3) Running applications, e.g.:

  ping 208.67.222.222  <pid:1799>
  echo 1799 > /sys/fs/cgroup/net_cls/0/tasks
  64 bytes from 208.67.222.222: icmp_seq=44 ttl=49 time=11.9 ms
  [...]
  ping 208.67.220.220  <pid:1804>
  ping: sendmsg: Operation not permitted
  [...]
  echo 1804 > /sys/fs/cgroup/net_cls/0/tasks
  64 bytes from 208.67.220.220: icmp_seq=89 ttl=56 time=19.0 ms
  [...]

Of course, real-world deployments would make use of cgroups user
space toolsuite, or own custom policy daemons dynamically moving
applications from/to various cgroups.

  [1] http://www.blackhat.com/presentations/bh-europe-06/bh-eu-06-biondi/bh-eu-06-biondi-up.pdf

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: cgroups@vger.kernel.org
Acked-by: Li Zefan <lizefan@huawei.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
[backport from upstream commit 82a37132f300ea53bdcd812917af5a6329ec80c3]
Signed-off-by: Przemyslaw Kedzierski <p.kedzierski@samsung.com>
Change-Id: Iac82ecef5b31a50f52ad9329bdd0403c667f154d

10 years agoASoC: samsung: odroidx2/u3: Remove unnecessary system clock setting
Huang Chao [Thu, 12 Jun 2014 06:42:58 +0000 (14:42 +0800)]
ASoC: samsung: odroidx2/u3: Remove unnecessary system clock setting

This patch removes the redundant sysclk setting of odroid cpu_dai.
Since the audio working mode has been changed from I2S master mode
to I2S slave mode, so we don't need to set the cpu_dai I2S clock
mode to operation any more. Besides, the hw_params function will
set cpu_dai I2S sysclk to CDCCLK mode, which makes the cpu_dai to
use the system clock generated by audio codec max98090.

Change-Id: Ia09f9774c07d22991a706eff6553892b9d7ca39c
Signed-off-by: Huang Chao <chao7.huang@samsung.com>