Alex Deucher [Mon, 1 Jul 2013 17:33:53 +0000 (13:33 -0400)]
drm/radeon: fix typo in radeon_atom_init_mc_reg_table()
Bad pointer math. Fixes hangs in state transitions with
BTC+ asics.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Alex Deucher [Mon, 1 Jul 2013 17:32:49 +0000 (13:32 -0400)]
drm/radeon/atom: fix endian bug in radeon_atom_init_mc_reg_table()
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Alex Deucher [Fri, 28 Jun 2013 16:55:48 +0000 (12:55 -0400)]
drm/radeon: remove sumo dpm/uvd bringup leftovers
Function doesn't do anything useful.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Dave Airlie [Mon, 1 Jul 2013 04:10:20 +0000 (14:10 +1000)]
Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next
- Various fixes that make surviving concurrent piglit more possible.
- Buffer object deletion no longer synchronous
- Context/register initialisation updates that have been reported to
solve some stability issues (particularly on some problematic GF119
chips)
- Kernel side support for VP2 video decoding engines
* 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (44 commits)
drm/nvd0-/disp: handle case where display engine is missing/disabled
drm/gr/nvc0-: merge nvc0/nve0 ucode, and use cpp instead of m4
drm/nouveau/bsp/nv84: initial vp2 engine implementation
drm/nouveau/vp/nv84: initial vp2 engine implementation
drm/nouveau/core: xtensa engine base class implementation
drm/nouveau/vdec: fork vp3 implementations from vp2
drm/nouveau/core: move falcon class to engine/
drm/nouveau/kms: don't fail if there's no dcb table entries
drm/nouveau: remove limit on gart
drm/nouveau/vm: perform a bar flush when flushing vm
drm/nvc0/gr: cleanup register lists, and add nvce/nvcf to switches
drm/nvc8/gr: update initial register/context values
drm/nvc4/gr: update initial register/context values
drm/nvc1/gr: update initial register/context values
drm/nvc3/gr: update initial register/context values
drm/nvc0/gr: update initial register/context values
drm/nvd9/gr: update initial register/context values
drm/nve4/gr: update initial register/context values
drm/nvc0-/gr: bump maximum gpc/tpc limits
drm/nvf0/gr: initial register/context setup
...
Maarten Lankhorst [Thu, 27 Jun 2013 07:35:53 +0000 (17:35 +1000)]
drm/nvd0-/disp: handle case where display engine is missing/disabled
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 5 Jun 2013 00:28:12 +0000 (10:28 +1000)]
drm/gr/nvc0-: merge nvc0/nve0 ucode, and use cpp instead of m4
No code changes, proven by envyas producing identical binaries.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ilia Mirkin [Thu, 27 Jun 2013 04:14:01 +0000 (14:14 +1000)]
drm/nouveau/bsp/nv84: initial vp2 engine implementation
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ilia Mirkin [Thu, 27 Jun 2013 04:12:46 +0000 (14:12 +1000)]
drm/nouveau/vp/nv84: initial vp2 engine implementation
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ilia Mirkin [Thu, 27 Jun 2013 04:08:22 +0000 (14:08 +1000)]
drm/nouveau/core: xtensa engine base class implementation
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ilia Mirkin [Thu, 27 Jun 2013 04:04:20 +0000 (14:04 +1000)]
drm/nouveau/vdec: fork vp3 implementations from vp2
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 27 Jun 2013 03:59:01 +0000 (13:59 +1000)]
drm/nouveau/core: move falcon class to engine/
Not really "core" per-se. About to merge Ilia's work adding another
similar class for the VP2 xtensa engines, so, seems like a good time to
move all these to engine/.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 25 Jun 2013 02:26:42 +0000 (12:26 +1000)]
drm/nouveau/kms: don't fail if there's no dcb table entries
Fixes module not loading on Tesla K20.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Maarten Lankhorst [Mon, 17 Jun 2013 13:09:09 +0000 (15:09 +0200)]
drm/nouveau: remove limit on gart
Most graphics cards nowadays have a multiple of this limit as their vram,
so limiting GART doesn't seem to make much sense.
Signed-off-by: Maarten >Lnkhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Maarten Lankhorst [Tue, 11 Jun 2013 12:17:25 +0000 (14:17 +0200)]
drm/nouveau/vm: perform a bar flush when flushing vm
Appears to fix the regression from "drm/nvc0/vm: handle bar tlb flushes
internally".
nvidia always seems to do this flush after writing values.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 14 May 2013 03:09:28 +0000 (13:09 +1000)]
drm/nvc0/gr: cleanup register lists, and add nvce/nvcf to switches
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 14 May 2013 00:54:32 +0000 (10:54 +1000)]
drm/nvc8/gr: update initial register/context values
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 13 May 2013 23:23:52 +0000 (09:23 +1000)]
drm/nvc4/gr: update initial register/context values
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 13 May 2013 08:29:02 +0000 (18:29 +1000)]
drm/nvc1/gr: update initial register/context values
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 13 May 2013 04:45:56 +0000 (14:45 +1000)]
drm/nvc3/gr: update initial register/context values
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 13 May 2013 02:57:10 +0000 (12:57 +1000)]
drm/nvc0/gr: update initial register/context values
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Sun, 12 May 2013 22:33:52 +0000 (08:33 +1000)]
drm/nvd9/gr: update initial register/context values
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 7 May 2013 04:30:52 +0000 (14:30 +1000)]
drm/nve4/gr: update initial register/context values
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 6 May 2013 06:44:17 +0000 (16:44 +1000)]
drm/nvc0-/gr: bump maximum gpc/tpc limits
Needed for GK110, separate commit to catch any unexpected breaks to
other parts of the code.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 6 May 2013 06:00:20 +0000 (16:00 +1000)]
drm/nvf0/gr: initial register/context setup
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 6 May 2013 05:27:44 +0000 (15:27 +1000)]
drm/nve7/gr: update initial register/context values
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 6 May 2013 01:35:37 +0000 (11:35 +1000)]
drm/nve6/gr: update initial register/context values
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 6 May 2013 23:48:30 +0000 (09:48 +1000)]
drm/nouveau: delay busy bo vma removal until fence signals
As opposed to an explicit wait. Allows userspace to not stall waiting
on buffer deletion.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 6 May 2013 22:36:33 +0000 (08:36 +1000)]
drm/nouveau/vm: make each vma take a reference on its parent vm
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 13 May 2013 12:30:56 +0000 (22:30 +1000)]
drm/nouveau/core: remove nouveau_mm.mutex, no more users
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 13 May 2013 12:26:26 +0000 (22:26 +1000)]
drm/nouveau/vm: take subdev mutex, not the mm, protects against race with vm/nvc0
nvc0_vm_flush() accesses the pgd list, which will soon be able to race
with vm_unlink() during channel destruction.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 13 May 2013 12:07:16 +0000 (22:07 +1000)]
drm/nvc0/vm: handle bar tlb flushes internally
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 13 May 2013 11:13:15 +0000 (21:13 +1000)]
drm/nv50-/vm: take mutex rather than irqsave spinlock
These operations can take quite some time, and we really don't want to
have to hold a spinlock for too long.
Now that the lock ordering for vm and the gr/nv84 hw bug workaround has
been reversed, it's possible to use a mutex here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 13 May 2013 10:55:46 +0000 (20:55 +1000)]
drm/nv50/vm: remove explicit vm knowledge from engines
This reverses the lock ordering between VM and gr/nv84:nvc0.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 13 May 2013 10:41:18 +0000 (20:41 +1000)]
drm/nv50/vm: handle bar tlb flushes internally
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 13 May 2013 01:54:05 +0000 (11:54 +1000)]
drm/nvc0/gr: port mp trap handling from calim's kepler code
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 7 May 2013 03:13:41 +0000 (13:13 +1000)]
drm/nve0/gr: attempt to resume after sm traps
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 7 May 2013 03:04:18 +0000 (13:04 +1000)]
drm/nve0/gr: s/tp/tpc/
NVIDIA's name...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 6 May 2013 23:09:46 +0000 (09:09 +1000)]
drm/nve0/fifo: create our playlists up-front, at startup
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 24 Jan 2013 02:15:45 +0000 (12:15 +1000)]
drm/nva3/clk: minor improvements to fractional N calculation
Helps us to get identical numbers to the binary driver for (at least)
Kepler memory PLLs, and fixes a rounding error.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 4 Mar 2013 03:01:21 +0000 (13:01 +1000)]
drm/nouveau/fb: initialise vram controller as pfb sub-object
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 5 Mar 2013 02:32:06 +0000 (12:32 +1000)]
drm/nouveau/clk: change init ordering, no longer needed by devinit
And, will depend on FB/VOLT/DAEMON being ready when it gets initialised
so that it can set/restore clocks.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 5 Mar 2013 00:53:54 +0000 (10:53 +1000)]
drm/nouveau/devinit: move simple pll setting routines to devinit
These are pretty much useless for reclocking purposes. Lets make it
clearer what they're for and move them to DEVINIT to signify they're
for the very simple PLL setting requirements of running the init
tables.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 5 Mar 2013 02:10:24 +0000 (12:10 +1000)]
drm/nouveau: pass generic subdev to calculation routines
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Sun, 28 Apr 2013 23:44:33 +0000 (09:44 +1000)]
drm/nve0/ce: stub interrupt handler
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Sun, 28 Apr 2013 23:36:42 +0000 (09:36 +1000)]
drm/nve0/ce: link ce2 to its engine, rather than from graphics
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Sun, 28 Apr 2013 23:35:28 +0000 (09:35 +1000)]
drm/nve0/fifo: copy engine context stored in ramfc, not externally
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Sun, 28 Apr 2013 23:31:05 +0000 (09:31 +1000)]
drm/nve0/ce: create engine object for ce2
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 14 May 2013 06:34:54 +0000 (16:34 +1000)]
drm/nouveau: pull in latest ucode builds from external tree
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Dave Airlie [Mon, 1 Jul 2013 00:08:45 +0000 (10:08 +1000)]
Merge branch 'exynos-drm-next' of git://git./linux/kernel/git/daeinki/drm-exynos into drm-next
Feature summary:
Add S3C64XX SoC series support - S3C64XX SoC series are previous version
chips of Exynos SoC series. With this patch set, KMS driver of Exynos drm
supports those chips also.
Update device tree support - This patch set corrects compatible strings,
and adds Exynos5420 SoC support for hdmi subsystem.
Consider CCF (Common Clock Framework) support - With reference to CCF
support, it uses clock_prepare_enable/clock_disable_unprepare instead of
clk_enable/clk_disable for hdmi subsystem.
Big cleanups - This patch just removes unnecessary all debug logs.
* 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: (22 commits)
ARM: dts: change compatible strings for EXYNOS5250 hdmi subsystem
drm/exynos: add support for exynos5420 mixer
drm/exynos: add new compatible strings for hdmi subsystem
drm/exynos: fix interlace resolutions for exynos5420
drm/exynos: use of_get_named_gpio to get hdmi hpd gpio
drm/exynos: make sure to handle an error case to vm_mmap call
drm/exynos: exynos_drm_ipp: Remove redundant break statement
drm/exynos: add mout_hdmi clock in hdmi driver to change parent
drm/exynos: Prepare/Unprepare HDMI subsystem clocks
drm/exynos: Clean up logs for DRM_ERROR / DRM_DEBUG_KMS
drm/exynos: Remove tracking log functions
drm/exynos: hdmi: use drm_display_mode to check the supported modes
drm/exynos: fimd: Add support for S3C64xx SoCs
drm/exynos: fimd: Add support for FIMD variants with clock selection
drm/exynos: fimd: Add support for FIMD versions without SHADOWCON register
drm/exynos: fimd: Hold pointer to driver data in context struct
drm/exynos: do not use mode_set_base function directly
drm/exynos: Remove redundant use of of_match_ptr macro
drm/exynos: remove ignoring return value warning in hdmi
drm/exynos: fix WINDOWS_NR checking to vidi driver
...
Rahul Sharma [Wed, 19 Jun 2013 12:51:09 +0000 (18:21 +0530)]
ARM: dts: change compatible strings for EXYNOS5250 hdmi subsystem
This patch renames the combatible strings for hdmi, mixer, ddc
and hdmiphy. It follows the convention of using compatible string
which represent the SoC in which the IP was added for the first
time.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Rahul Sharma [Wed, 19 Jun 2013 12:51:08 +0000 (18:21 +0530)]
drm/exynos: add support for exynos5420 mixer
Add support for exynos5420 mixer IP in the drm mixer driver.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Acked-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Rahul Sharma [Wed, 19 Jun 2013 12:51:07 +0000 (18:21 +0530)]
drm/exynos: add new compatible strings for hdmi subsystem
This patch adds new combatible strings for hdmi, mixer, ddc
and hdmiphy. It follows the convention of using compatible string
which represent the SoC in which the IP was added for the first
time.
Drivers continue to support the previous compatible strings
but further addition of these compatible strings in device tree
is deprecated.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Rahul Sharma [Tue, 18 Jun 2013 12:49:37 +0000 (18:19 +0530)]
drm/exynos: fix interlace resolutions for exynos5420
Modified code for calculating hdmi IP register values from drm timing
values. The modification is based on the inputs from hw team and specifically
proposed for 1440x576i and 1440x480i. But same changes holds good for other
interlaced resolutions also.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Acked-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Rahul Sharma [Tue, 11 Jun 2013 14:11:29 +0000 (19:41 +0530)]
drm/exynos: use of_get_named_gpio to get hdmi hpd gpio
Cleanup by removing flags variable from drm_hdmi_dt_parse_pdata
which is not used anywhere. Swtiching to of_get_named_gpio instead
of of_get_named_gpio_flags solved this.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Acked-by: Seung-Woo Kim <sw0312@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 14 Jun 2013 08:54:27 +0000 (17:54 +0900)]
drm/exynos: make sure to handle an error case to vm_mmap call
vm_mmap function returns unsigned long so addr type should be unsigned long.
a pointer or address variable is required to use unsigned long or uint64_t
type for 64bits address support.
So this patch makes sure that addr has unsigned long type and also
exynos_drm_gem_mmap_ioctl returns correct error type.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Sachin Kamat [Tue, 11 Jun 2013 06:56:51 +0000 (12:26 +0530)]
drm/exynos: exynos_drm_ipp: Remove redundant break statement
'break' after goto statement is redundant. Silences the following
message:
drivers/gpu/drm/exynos/exynos_drm_ipp.c:1067 exynos_drm_ipp_check_valid()
info: ignoring unreachable code.
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Rahul Sharma [Tue, 11 Jun 2013 06:54:03 +0000 (12:24 +0530)]
drm/exynos: add mout_hdmi clock in hdmi driver to change parent
HDMI driver needs to configure the mout_hdmi mux clock to change
the parent between sclk_hdmiphy and sclk_pixel.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Sean Paul [Tue, 11 Jun 2013 06:54:02 +0000 (12:24 +0530)]
drm/exynos: Prepare/Unprepare HDMI subsystem clocks
Change the clk_enable/clk_disable calls in mixer and hdmi drivers into
clk_prepare_enable/clk_disable_unprepare, respectively.
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
YoungJun Cho [Wed, 12 Jun 2013 01:44:40 +0000 (10:44 +0900)]
drm/exynos: Clean up logs for DRM_ERROR / DRM_DEBUG_KMS
This patch cleans up logs for DRM_ERROR / DRM_DEBUG_KMS to avoid
logging duplicated function name because the macros already contain
__func__.
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
YoungJun Cho [Wed, 12 Jun 2013 01:40:52 +0000 (10:40 +0900)]
drm/exynos: Remove tracking log functions
This patch removes tracking log functions which were used to debug
in the early development stage and are not so important as were.
So remove them for code clean up.
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Rahul Sharma [Mon, 10 Jun 2013 09:20:00 +0000 (14:50 +0530)]
drm/exynos: hdmi: use drm_display_mode to check the supported modes
This patch renames check_timing to check_mode and removes the
unnecessary conversion of drm_display_mode to/from fb_videomode in
the hdmi driver.
v4:
1) Changed the commit message to add information related to renaming
the callbacks to check_mode.
2) Changed debug message to print 1/0 for interlace mode.
v3:
1) Replaced check_timing callbacks with check_mode.
2) Change the type of second parameter of check_mode callback from void
pointer paramenter to struct drm_display_mode pointer.
v2:
1) Removed convert_to_video_timing().
2) Corrected DRM_DEBUG_KMS to print the resolution properly.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tomasz Figa [Wed, 1 May 2013 19:02:29 +0000 (21:02 +0200)]
drm/exynos: fimd: Add support for S3C64xx SoCs
The FIMD block present on S3C6400/S3C6410 SoCs is compatible with this
driver, so it can be supported by it as well.
This patch adds appropriate device IDs and driver data to enable this
driver for S3C64xx SoCs.
Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
Acked-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tomasz Figa [Wed, 1 May 2013 19:02:28 +0000 (21:02 +0200)]
drm/exynos: fimd: Add support for FIMD variants with clock selection
Some platforms that can be supported this driver has additional clock
source selection bits in VIDCON0 register that allows to select which
clock should be used to drive the pixel clock: bus clock or special
clock.
Since this driver assumes that special clock always drives the pixel
clock, this patch sets the selection bitfield to use the special clock.
Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
Acked-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tomasz Figa [Wed, 1 May 2013 19:02:27 +0000 (21:02 +0200)]
drm/exynos: fimd: Add support for FIMD versions without SHADOWCON register
Some platforms that can be supported with this driver have PRTCON
register instead of SHADOWCON, which requires slightly different
handling.
This patch factors out all register shadow control code from the driver
and adds a function to control register shadowing appropriately,
depending on driver data.
Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
Acked-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tomasz Figa [Wed, 1 May 2013 19:02:26 +0000 (21:02 +0200)]
drm/exynos: fimd: Hold pointer to driver data in context struct
This patch adds pointer to driver data to fimd_context structure, to
remove the need to call drm_fimd_get_driver_data() each time access to
driver data is necessary.
Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
Acked-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Sun, 12 May 2013 07:09:33 +0000 (16:09 +0900)]
drm/exynos: do not use mode_set_base function directly
This patch adds exynos_drm_crtc_mode_set_commit function
to update mode data and it makes page flip call this function
instead of calling exynos_drm_crtc_mode_set_base function directly.
exynos_drm_crtc_mode_set_base function is called by drm subsystem
as a callback so we don't have to call this function directly.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Sachin Kamat [Wed, 5 Jun 2013 07:00:23 +0000 (16:00 +0900)]
drm/exynos: Remove redundant use of of_match_ptr macro
'mixer_match_types' is always compiled in. Hence of_match_ptr is not
necessary.
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Seung-Woo Kim [Wed, 5 Jun 2013 05:34:38 +0000 (14:34 +0900)]
drm/exynos: remove ignoring return value warning in hdmi
The definition of regulator_bulk_enable is fixed with __must_check
and this causes following build warning.
warning: ignoring return value of 'regulator_bulk_enable',
declared with attribute warn_unused_result
This patch fixes to check return value of the function.
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 28 May 2013 07:01:21 +0000 (16:01 +0900)]
drm/exynos: fix WINDOWS_NR checking to vidi driver
This patch just checks if win_data array range is valid
or not correctly.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Krzysztof Kozlowski [Mon, 27 May 2013 09:56:26 +0000 (11:56 +0200)]
drm/exynos: fix tests for valid FIMD window number
Valid values for FIMD windows are from 0 to WINDOWS_NR-1
inclusive (5 windows in total). The WINDOWS_NR is also
a size of fimd_context.win_data array.
However, early-return tests for wrong values of windows
accepted a value of WINDOWS_NR which is out of bound
for fimd_context.win_data.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Krzysztof Kozlowski [Mon, 27 May 2013 06:00:43 +0000 (15:00 +0900)]
drm/exynos: fix checks for valid mixer window
Valid values for mixer window are from 0 to MIXER_WIN_NR-1 inclusive.
Arrays in structures (e.g. mixer_context.win_data) have size of
MIXER_WIN_NR so checks for wrong mixer window must be greater-equal.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Hyunhee Kim <hyunhee.kim@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Dave Airlie [Fri, 28 Jun 2013 10:31:34 +0000 (20:31 +1000)]
Revert "drm: kms_helper: don't lose hotplug event"
This reverts commit
160954b7bca43da7cd3cfbce310e6df919a8216e.
This was rearming the workqueue with a 0 timeout, causing
a WARN_ON, and possible loop.
Daniel writes:
"I've looked a bit into this and I think we need to have a separate
work struct for recovering these lost hotplug events since the
continuous self-rearming case is a real risk (e.g. if a connector
flip-flops all the time). At least I don't see a sane way to block out
re-arming with the current code in a simple way. So reverting the
offender seems like the right thing and I'll go back to the drawing
board for 3.12."
Signed-off-by: Dave Airlie <airlied@redhat.com>
Laurent Pinchart [Sat, 22 Jun 2013 14:10:30 +0000 (16:10 +0200)]
drm/doc: Document the KMS property API
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Laurent Pinchart [Sat, 22 Jun 2013 14:10:29 +0000 (16:10 +0200)]
drm/doc: Remove outdated note about i915 driver not behaving properly
The i915 driver has been fixed not to modify the mode argument of the
encoder mode_fixup operation. Remove the related comment from the
documentation.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Laurent Pinchart [Sat, 22 Jun 2013 12:10:59 +0000 (14:10 +0200)]
drm: Improve manual IRQ installation documentation
Define the rules for using irqs from drm drivers.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
YoungJun Cho [Wed, 26 Jun 2013 01:21:42 +0000 (10:21 +0900)]
drm/prime: add return check for dma_buf_fd
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>
Seung-Woo Kim [Wed, 26 Jun 2013 01:21:41 +0000 (10:21 +0900)]
drm/prime: reorder drm_prime_add_buf_handle and remove prototype
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>
YoungJun Cho [Wed, 26 Jun 2013 01:21:40 +0000 (10:21 +0900)]
drm/prime: fix to put an exported dma_buf for adding handle failure
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>
Joonyoung Shim [Wed, 19 Jun 2013 06:03:05 +0000 (15:03 +0900)]
drm/prime: support to cache mapping
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>
YoungJun Cho [Mon, 24 Jun 2013 07:40:53 +0000 (16:40 +0900)]
drm/prime: replace NULL with error value in drm_prime_pages_to_sg
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>
YoungJun Cho [Mon, 24 Jun 2013 06:34:21 +0000 (15:34 +0900)]
drm/prime: fix to check return of dma_map_sg in prime helper
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>
YoungJun Cho [Wed, 26 Jun 2013 23:58:33 +0000 (08:58 +0900)]
drm/gem: fix not to assign error value to gem name
If idr_alloc() is failed, obj->name can be error value. Also
it cleans up duplicated flink processing code.
This regression has been introduced in
commit
2e928815c1886fe628ed54623aa98d0889cf5509
Author: Tejun Heo <tj@kernel.org>
Date: Wed Feb 27 17:04:08 2013 -0800
drm: convert to idr_alloc()
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>
Cc: stable@vger.kernel.org
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Dave Airlie <airlied@redhat.com>
YoungJun Cho [Wed, 26 Jun 2013 23:39:58 +0000 (08:39 +0900)]
drm/gem: add mutex lock when using drm_gem_mmap_obj
The drm_gem_mmap_obj() has to be protected with dev->struct_mutex,
but some caller functions do not. So it adds mutex lock to missing
callers and adds assertion to check whether drm_gem_mmap_obj() is
called with mutex lock or not.
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>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Fri, 28 Jun 2013 02:08:10 +0000 (12:08 +1000)]
drm/omap: drop the !FB_OMAP2 dep
This ends up causing circularity and really let people shoot themselves
in the foot.
Acked-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:28 +0000 (13:48 +0200)]
drm/ttm: get rid of ttm_bo_is_reserved
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:27 +0000 (13:48 +0200)]
drm/vmwgfx: get rid of ttm_bo_is_reserved usage
Use lockdep_assert_held instead.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:26 +0000 (13:48 +0200)]
drm/radeon: get rid of ttm_bo_is_reserved usage
Try to use lockdep_assert_held or other alternatives where possible.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:25 +0000 (13:48 +0200)]
drm/ttm: get rid of ttm_bo_is_reserved usage
Use lockdep_assert_held instead.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:24 +0000 (13:48 +0200)]
drm/ttm: inline ttm_bo_reserve and related calls
Makes lockdep a lot more useful.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:23 +0000 (13:48 +0200)]
drm/radeon: inline reservations
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:22 +0000 (13:48 +0200)]
drm/mgag200: inline reservations
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:21 +0000 (13:48 +0200)]
drm/cirrus: inline reservations
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:20 +0000 (13:48 +0200)]
drm/ast: inline reservations
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:19 +0000 (13:48 +0200)]
drm/ttm: convert to the reservation api
Now that the code is compatible in semantics, flip the switch.
Use ww_mutex instead of the homegrown implementation.
ww_mutex uses -EDEADLK to signal that the caller has to back off,
and -EALREADY to indicate this buffer is already held by the caller.
ttm used -EAGAIN and -EDEADLK for those, respectively. So some changes
were needed to handle this correctly.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:18 +0000 (13:48 +0200)]
drm/nouveau: make flipping lockdep safe
cli->mutex was inverted with reservations, and multiple reservations were
used without a ticket, fix both. This commit had to be done after the previous
commit, because otherwise ttm_eu_* calls would use a different seqno counter..
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Acked-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:48:17 +0000 (13:48 +0200)]
drm/ttm: make ttm reservation calls behave like reservation calls
This commit converts the source of the val_seq counter to
the ww_mutex api. The reservation objects are converted later,
because there is still a lockdep splat in nouveau that has to
resolved first.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
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>
Maarten Lankhorst [Thu, 27 Jun 2013 11:38:26 +0000 (13:38 +0200)]
drm/ast: do not attempt to acquire a reservation while in an interrupt handler
Mutexes should not be acquired in interrupt context. While the trylock
fastpath is arguably safe on all implementations, the slowpath
unlock path definitely isn't.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:38:25 +0000 (13:38 +0200)]
drm/mgag200: do not attempt to acquire a reservation while in an interrupt handler
Mutexes should not be acquired in interrupt context. While the trylock
fastpath is arguably safe on all implementations, the slowpath
unlock path definitely isn't.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Maarten Lankhorst [Thu, 27 Jun 2013 11:38:24 +0000 (13:38 +0200)]
drm/cirrus: do not attempt to acquire a reservation while in an interrupt handler
Mutexes should not be acquired in interrupt context. While the trylock
fastpath is arguably safe on all implementations, the slowpath
unlock path definitely isn't. This fixes the following lockdep splat:
[ 13.044313] ------------[ cut here ]------------
[ 13.044367] WARNING: at /c/kernel-tests/src/tip/kernel/mutex.c:858 mutex_trylock+0x87/0x220()
[ 13.044378] DEBUG_LOCKS_WARN_ON(in_interrupt())
[ 13.044378] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-rc4-00296-ga2963dd #20
[ 13.044379] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
[ 13.044390]
0000000000000009 ffff88000de039f8 ffffffff81fc86d5 ffff88000de03a38
[ 13.044395]
ffffffff810d511b ffff880000000018 ffff88000f33c690 0000000000000001
[ 13.044398]
00000000000003f0 ffff88000f4677c8 0000000000000000 ffff88000de03a98
[ 13.044400] Call Trace:
[ 13.044412] <IRQ> [<
ffffffff81fc86d5>] dump_stack+0x19/0x1b
[ 13.044441] [<
ffffffff810d511b>] warn_slowpath_common+0x6b/0x90
[ 13.044445] [<
ffffffff810d51a6>] warn_slowpath_fmt+0x46/0x50
[ 13.044448] [<
ffffffff81fd34d7>] mutex_trylock+0x87/0x220
[ 13.044482] [<
ffffffff8186484d>] cirrus_dirty_update+0x1cd/0x330
[ 13.044486] [<
ffffffff818649e8>] cirrus_imageblit+0x38/0x50
[ 13.044506] [<
ffffffff8165782e>] soft_cursor+0x22e/0x240
[ 13.044510] [<
ffffffff81656c31>] bit_cursor+0x581/0x5b0
[ 13.044525] [<
ffffffff815de9f4>] ? vsnprintf+0x124/0x670
[ 13.044529] [<
ffffffff81651333>] ? get_color.isra.16+0x43/0x130
[ 13.044532] [<
ffffffff81653fca>] fbcon_cursor+0x18a/0x1d0
[ 13.044535] [<
ffffffff816566b0>] ? update_attr.isra.2+0xa0/0xa0
[ 13.044556] [<
ffffffff81754b82>] hide_cursor+0x32/0xa0
[ 13.044565] [<
ffffffff81755bd3>] vt_console_print+0x103/0x3b0
[ 13.044569] [<
ffffffff810d58ac>] ? print_time+0x9c/0xb0
[ 13.044576] [<
ffffffff810d5960>] ? print_prefix+0xa0/0xc0
[ 13.044580] [<
ffffffff810d63f6>] call_console_drivers.constprop.6+0x146/0x1f0
[ 13.044593] [<
ffffffff815f9b38>] ? do_raw_spin_unlock+0xc8/0x100
[ 13.044597] [<
ffffffff810d6f27>] console_unlock+0x2f7/0x460
[ 13.044600] [<
ffffffff810d787a>] vprintk_emit+0x59a/0x5e0
[ 13.044615] [<
ffffffff81fb676c>] printk+0x4d/0x4f
[ 13.044650] [<
ffffffff82ba5511>] print_local_APIC+0x28/0x41c
[ 13.044672] [<
ffffffff8114db55>] generic_smp_call_function_single_interrupt+0x145/0x2b0
[ 13.044688] [<
ffffffff8106f9e7>] smp_call_function_single_interrupt+0x27/0x40
[ 13.044697] [<
ffffffff81fd8f72>] call_function_single_interrupt+0x72/0x80
[ 13.044707] <EOI> [<
ffffffff81078166>] ? native_safe_halt+0x6/0x10
[ 13.044717] [<
ffffffff811425cd>] ? trace_hardirqs_on+0xd/0x10
[ 13.044738] [<
ffffffff8104f669>] default_idle+0x59/0x120
[ 13.044742] [<
ffffffff810501e8>] arch_cpu_idle+0x18/0x40
[ 13.044754] [<
ffffffff811320c5>] cpu_startup_entry+0x235/0x410
[ 13.044763] [<
ffffffff81f9e781>] rest_init+0xd1/0xe0
[ 13.044766] [<
ffffffff81f9e6b5>] ? rest_init+0x5/0xe0
[ 13.044778] [<
ffffffff82b93ec2>] start_kernel+0x425/0x493
[ 13.044781] [<
ffffffff82b93810>] ? repair_env_string+0x5e/0x5e
[ 13.044786] [<
ffffffff82b93595>] x86_64_start_reservations+0x2a/0x2c
[ 13.044789] [<
ffffffff82b93688>] x86_64_start_kernel+0xf1/0x100
[ 13.044799] ---[ end trace
113ad28772af4058 ]---
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>