Age | Commit message (Collapse) | Author | Files | Lines |
|
In
commit da34242e5e0638312130f5bd5d2d277afbc6f806
Author: YoungJun Cho <yj44.cho@samsung.com>
Date: Wed Jun 26 10:21:42 2013 +0900
drm/prime: add return check for dma_buf_fd
the failure case handling was fixed up. But in the case when we
already had the buffer exported it changed the return value:
Previously we've return 0 on success, now we return the fd.
This ABI change has been caught by i-g-t/prime_self_import/with_one_bo.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66436
Cc: YoungJun Cho <yj44.cho@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Tested-by: lu hua <huax.lu@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: YoungJun Cho <yj44.cho@samsung.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
The dma_buf_fd() can return error when it fails to prepare fd,
so the dma_buf needs to be put.
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
When drm_prime_add_buf_handle() returns failure for an exported
dma_buf, the dma_buf was already allocated and its refcount was
increased, so it needs to be put.
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
The drm prime also can support it like GEM CMA supports to cache
mapping. It doesn't allow multiple mappings for one attachment.
[airlied: rebased on top of other prime changes]
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Instead of NULL, error value is casted with ERR_PTR() for
drm_prime_pages_to_sg() and IS_ERR_OR_NULL() macro is replaced
with IS_ERR() macro for drm_gem_map_dma_buf().
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
The dma_map_sg(), in map_dma_buf callback operation of prime helper,
can return 0 when it fails to map, so it needs to release related
resources.
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
This allows importing bo's to own device to work without requiring that the buffer is pinned in GART.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Conflicts:
drivers/gpu/drm/drm_prime.c
Change-Id: I17dbe44549acdf570e155d11370752b0b4ab7919
|
|
Prevents buffers from being pinned forever.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Conflicts:
drivers/gpu/drm/drm_prime.c
Change-Id: I220c7924a9b08a13646fcc43c80cd9c031dd2d79
|
|
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>
Acked-by: Sumit Semwal <sumit.semwal@linaro.org>
Acked-by: Daniel Vetter <daniel@ffwll.ch>
Reviewed-by: Rob Clark <robdclark@gmail.com> #v4
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
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()
Acked-by: Sumit Semwal <sumit.semwal@linaro.org>
Acked-by: Daniel Vetter <daniel@ffwll.ch>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Conflicts:
drivers/base/Kconfig
Change-Id: Ie62c8c33a0cb7ca3df596f47ef328c33c4468139
|
|
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Acked-by: Sumit Semwal <sumit.semwal@linaro.org>
Acked-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
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>
|
|
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>
|
|
This reverts commit 7a9958fedb90ef4000b6461d77a5c6dfd795c1c1.
|
|
This reverts commit 22a2b813ad54d967edf9d8117662fea25093f7d0.
|
|
This reverts commit 30d585606b85e454113b79478b6b6bb1991dd210.
|
|
This reverts commit 5c6a3a47e9a5b4286e4219bd70e9917b8ffee414.
|
|
This reverts commit c75e1e7a03b157842638e55b27f28c41a9a3dc2b.
|
|
This reverts commit 5d2749a0ac3be2a3ed43a24a88d821e26097bf1e.
|
|
This reverts commit 4439a419906d4fe3d7e5093292bd2f4f4fbfc8c2.
|
|
This reverts commit 494805a828f760a3b36629875cc123cc1e396aa8.
|
|
This reverts commit cf7e07ce2d9843105d2ed8f9d30ee66c06d83bb0.
|
|
During system suspend after connector switch off its dpms field
is set to connector previous dpms state. To properly resume dpms field
should be set to its actual state (off) before resuming to previous dpms state.
Change-Id: I80acefcd408279c3c1cf3b0e89133dc6899a6914
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
This patch adjusts all infomative message from s5m rtc driver to
debug level.
Change-Id: I52f6903fce2bd6d61b8e5f81aa521a3bf7dad9bc
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
|
|
These interfaces aren't used anymore.
Change-Id: Ia02fbd60b329a3193bb2fe009f55e410031365ac
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
This patch disables s3c-rtc feature becuase Rinato board don't use it.
Change-Id: I3648618731b9d2554419fe04cd28c3c0c16943f9
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
|
|
This patch removes s3c-rtc dt node to disable Exynos3250 RTC because SoC RTC
cannot guarantee system time after poweroff and reboot. So, Rinato board
will only used PMIC RTC for system time and rtc alarm.
Change-Id: Ia8426907baff5554c8a6215d5eeb43a0908c5b98
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
|
|
This patch fix critical power-off issue during resume sequence. DRM should
control the ldo6 (VAP_VMIPI_1.0V).
Change-Id: I6262863af2fb89c280693fd68e809e23f7251a7b
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
|
|
Like most of other external chips, it needs to defer handling of IRQ
arised during suspend until i2c bus is re-enabled.
Change-Id: I6052fed2c89b349374a1cad510f7a9fed757699f
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
|
|
This patch reduce period_bytes_min to 128 bytes and period_bytes_max
to 1K bytes.
If period_bytes values is too large, underrun error occures in PULSEAUDIO.
I/PULSEAUDIO( 1619): alsa-sink.c: Underrun!
Change-Id: I33fd95d4748b2016740dd673108377181726df66
Signed-off-by: Inha Song <ideal.song@samsung.com>
|
|
reduce period_bytes_max from 64K to 20K bytes
if period_bytes configured more than that it causes dma pl330 error.
Change-Id: Ia5012b0a9452b2c0db43cb469317d1904b4d299b
Signed-off-by: Kwang-Hui Cho <kwanghui.cho@samsung.com>
|
|
Change-Id: I8defc8536ffe6669f953085ed8c3838bab00cfc3
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
|
|
We support three boards, trats2(RD-PQ)/odroid-u3 and rinato(Galaxy
Gear2). To avoid overwrite headers package, only provide the package in
Mobile profile.
Change-Id: I03b423da193bb2f654a40e959b01458401b49437
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
|
|
This patch add revison information of exynos3250-rinato board.
Revision property use hardware information.
Change-Id: I5896dfff2ef074dfe4bf33cae820f11546a1d037
Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
|
|
When charger-manager sets alarmtimer, it has used nanoseconds converted
from polling period which is in milliseconds. However ktimer's nanoseconds
is limited to represent as size of unsinged long type, and the previous
use often exceeds its limitation. It fixes to divide target timer period
into seconds part and remains in nanoseconds to prevent abnormal timer period
is set.
Change-Id: I7a5cad5569505c901a4822bbd7a4ad0fa149570b
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
|
|
Tis patch use the devm_* managed functions to allocate resources.
Change-Id: I9351869922b481a6791ca98f6dd3328d84424906
Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
|
|
This patch moves firmware download function to workqueue
to reduce booting time.
Change-Id: Idfa934b67494988a7de1f95f461dac41546cb2e5
Signed-off-by: Jaewon Kim <jaewon02.kim@samsung.com>
|
|
from "Standby Mode"
When trying to play sound after setting the "Music Input Volume" grater
than 85, board power is turned off suddenly.
Change-Id: Id11cf9ff4620595037dba3c8e515c63b8adcfc98
Signed-off-by: Inha Song <ideal.song@samsung.com>
|
|
MCU firmware check process in ssp_probe() moves to
workqueue to reduce booting time. And when driver try to
check MCU revision, MCU is not ready to communicate.
So, this patch uses delayed workqueue to wait MCU.
Change-Id: I2a64d195fc4a7910884a6da03e9a0f8846c17ac3
Signed-off-by: Jaewon Kim <jaewon02.kim@samsung.com>
|
|
|
|
This patch adds sensohub MCU firmware for rinato board.
Version : 14052300
Change-Id: I903f77ca90e8d898115726782da2a4a7e23fcda6
Signed-off-by: Jaewon Kim <jaewon02.kim@samsung.com>
|
|
To confirm NULL point exception and also follow the common convention
of 'for loop' control, fix the driver to use scalar variable,
'num_chargers' when it retrieves the power_supply pointer array.
Change-Id: Iab834cf93822b1a03419ca9933e82d6396cc0474
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
|
|
To make charger-manager to aware the battery thermal, it adds thermal zone
name and temperature limitation to the charger-manager's device tree.
Change-Id: Idd804d7ecd1ca5084786d164f2f53f2ad3fa0dd0
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
|
|
This patch adds correspond irq number for EXYNOS3250's rtc alarm irq to
make the irq to work as a wakeup source.
Change-Id: I8970496a597729b8ad70d0e0bb893052e56e24c9
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
|
|
The POWER_SUPPLY_CHARGE_NOW/FULL property reflects battery's charges
in uAh unit, but charger-manager has been used it wrongly. This patch
makes it to use those propeties correctly and change to be optional.
Change-Id: I68b3940a9388a095f47205207f1bc6bc863bd407
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
|
|
Whenever battery status is changed, charger manager tries to trigger uevent
through private interface. This patch modifies it to use power_supply_changed()
since it belongs to power supply subsystem.
Change-Id: I9f25664a2196745f3a303d57ded073f5eb604180
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
|
|
cm_notify_event() is introduced to get event associated with battery status
externally, but no one had been used. Moreover it makes charger manager
driver more complicated. This patch tries to drop the function and all data
related to simplify the driver.
Change-Id: I89d802f57a3005c9102e8d342318f2bf77ccce48
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
|
|
Monitoring battery temperature becomes mandatory for charger manager working.
If there is no way to measure temperature, it stops probing and won't work.
And also it will use thermal susbsystem inteface only to make driver simple.
Change-Id: Idef5f8f29a104f5f51532c3321f6bebe887deb24
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
|
|
To guerantee proper charing and managing batteries even in suspend,
charger-manager has used rtc device with rtc framework interface.
However, it is better to use alarmtimer for cleaner and more appropriate
operation.
This patch makes driver to use alamtimer for polling work in suspend and
removes all deprecated codes related with using rtc interface.
Change-Id: I0c84ccd62653b50fc9c9b687fddcaba7ea58e8ca
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
|