Ville Syrjälä [Wed, 14 Dec 2011 22:11:53 +0000 (00:11 +0200)]
drm: Check that the requested pixel format is valid
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Ville Syrjälä [Wed, 14 Dec 2011 22:11:52 +0000 (00:11 +0200)]
drm: Handle duplicate FOURCCs
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Ville Syrjälä [Wed, 14 Dec 2011 22:11:51 +0000 (00:11 +0200)]
drm: Replace pitch with pitches[] in drm_framebuffer
Otherwise each driver would need to keep the information inside
their own framebuffer object structure. Also add offsets[]. BOs
on the other hand are driver specific, so those can be kept in
driver specific structures.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Ville Syrjälä [Wed, 14 Dec 2011 22:11:50 +0000 (00:11 +0200)]
drm: plane: Check that the fb pixel format is supported by the plane
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Ville Syrjälä [Wed, 14 Dec 2011 22:11:49 +0000 (00:11 +0200)]
drm: plane: Make 'formats' parameter to drm_plane_init() const
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Ville Syrjälä [Wed, 14 Dec 2011 22:11:48 +0000 (00:11 +0200)]
drm: plane: Check crtc coordinates against integer overflows in setplane ioctl
Help drivers a little by guaranteeing that crtc_x+crtc_w and
crtc_y+crtc_h don't overflow.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Ville Syrjälä [Wed, 14 Dec 2011 22:11:47 +0000 (00:11 +0200)]
drm: plane: Check source coordinates
Make sure the source coordinates stay within the buffer.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Ville Syrjälä [Wed, 14 Dec 2011 22:11:46 +0000 (00:11 +0200)]
drm: fourcc: Use __u32 instead of u32
drm_fourcc.h can be included from user space so appropriate types.
Also fix some sparse errors while were at it.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Ville Syrjälä [Wed, 14 Dec 2011 22:11:45 +0000 (00:11 +0200)]
drm: plane: Clear plane.crtc and plane.fb after disable_plane()
These are the only indication to user space that the plane was disabled.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Ville Syrjälä [Wed, 14 Dec 2011 22:11:44 +0000 (00:11 +0200)]
drm: Redefine pixel formats
Name the formats as DRM_FORMAT_X instead of DRM_FOURCC_X. Use consistent
names, especially for the RGB formats. Component order and byte order are
now strictly specified for each format.
The RGB format naming follows a convention where the components names
and sizes are listed from left to right, matching the order within a
single pixel from most significant bit to least significant bit.
The YUV format names vary more. For the 4:2:2 packed formats and 2
plane formats use the fourcc. For the three plane formats the
name includes the subsampling information using the standard
subsampling notation.
The fourccs for for all the RGB formats and some of the YUV formats
I invented myself. The idea was that looking at just the fourcc you
get some idea what the format is about without having to decode it
using some external reference.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Ville Syrjälä [Wed, 14 Dec 2011 22:11:43 +0000 (00:11 +0200)]
drm: Add a missing ')'
The code happened to compile because the flag wasn't actually used yet.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jesse Barnes [Wed, 14 Dec 2011 22:11:42 +0000 (00:11 +0200)]
drm: add an fb creation ioctl that takes a pixel format v5
To properly support the various plane formats supported by different
hardware, the kernel must know the pixel format of a framebuffer object.
So add a new ioctl taking a format argument corresponding to a fourcc
name from the new drm_fourcc.h header file. Implement the fb creation
hooks in terms of the new mode_fb_cmd2 using helpers where the old
bpp/depth values are needed.
v2: create DRM specific fourcc header file for sharing with libdrm etc
v3: fix rebase failure and use DRM fourcc codes in intel_display.c and
update commit message
v4: make fb_cmd2 handle field into an array for multi-object formats
pull in Ville's fix for the memcpy in drm_plane_init
apply Ville's cleanup to zero out fb_cmd2 arg in drm_mode_addfb
v5: add 'flags' field for interlaced support (from Ville)
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Reviewed-by: Rob Clark <rob.clark@linaro.org>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jesse Barnes [Wed, 14 Dec 2011 22:11:41 +0000 (00:11 +0200)]
drm: add plane support v3
Planes are a bit like half-CRTCs. They have a location and fb, but
don't drive outputs directly. Add support for handling them to the core
KMS code.
v2: fix ABI of get_plane - move format_type_ptr to the end
v3: add 'flags' field for interlaced support (from Ville)
Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Reviewed-by: Rob Clark <rob.clark@linaro.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Ville Syrjälä [Wed, 14 Dec 2011 22:11:40 +0000 (00:11 +0200)]
staging: mrst: Return ERR_PTR() from fb_create hook
In case of an error, the caller expects ERR_PTR() to be
used instead of returning NULL.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:33 +0000 (15:14 +0200)]
gfx: display: don't touch port control twice in a row
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:32 +0000 (15:14 +0200)]
gfx: display: use REG_BIT_WAIT for waiting bits to flip
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:31 +0000 (15:14 +0200)]
gfx: display: unconditionally enable display
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:30 +0000 (15:14 +0200)]
gfx: display: fix pipe/plane enable disable
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:29 +0000 (15:14 +0200)]
gfx: display: only change the device ready bit, don't touch others
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:28 +0000 (15:14 +0200)]
gfx: display: reg and field helpers
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:27 +0000 (15:14 +0200)]
gfx: display: give the panel more time to wake up after power on
The panel I2C writes would fail if done too soon after power on. The panel
spec is not explicit on how early I2C can be used, but 50 ms was clearly
too little.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:26 +0000 (15:14 +0200)]
gfx: display: tc35876x: soft reset the LCD controller after configuration
Soft reset the bridge chip LCD controller after configuration according to
the chip bring up and programming guide.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:25 +0000 (15:14 +0200)]
gfx: display: switch panel power off/on when blanking/unblanking
Add the missing panel power off to save power when the display is blanked.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:24 +0000 (15:14 +0200)]
HACK: gfx: display: add display I2C device
The display I2C device (bus 2, addr 0x60) is not present in
firmware. Workaround by creating the device by ourselves.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:23 +0000 (15:14 +0200)]
gfx: display: add driver for CMI LCD panel I2C
The CMI LCD panel has an I2C interface for some configuration. Add driver
for it.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:22 +0000 (15:14 +0200)]
gfx: display: put DSI lanes to ULPS before disabling pipe
Apparently disabling the pipe does not succeed if DSI lanes are not put to
ULPS before that.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 9 Dec 2011 13:14:21 +0000 (15:14 +0200)]
gfx: display: add Android early suspend support
Use early suspend to switch display off, and late resume to switch display
on. Use runtime PM to automatically handle enabling and disabling hardware.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Mon, 5 Dec 2011 10:37:56 +0000 (12:37 +0200)]
gfx: display: drop gl3 enable kernel command line and module parameter
The support for enabling or disabling GL3 via module or command line
parameter is broken (as it only defines whether it's initialized or
not). Also, the gfx userspace depends on this being one or the other, and
it can't be switched at will. Just remove the parameter.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Mon, 5 Dec 2011 10:37:55 +0000 (12:37 +0200)]
gfx: display: remove module and early parameter to toggle runtime PM
There's no point in having a module or early parameter to toggle the
driver's runtime PM on and off, since it can be done dynamically through
the sysfs /sys/devices/.../power/control files.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Mon, 5 Dec 2011 10:37:54 +0000 (12:37 +0200)]
gfx: display: clean up PCI suspend/resume
Don't mess with the PCI power states. The PCI core will take care of all
this for us. Clean up the functions accordingly.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Mon, 5 Dec 2011 10:37:53 +0000 (12:37 +0200)]
gfx: display: fix and clean runtime PM code
Fix and clean up runtime PM code. Call pm_runtime_put_noidle() in init, and
pm_runtime_get_noresume() in deinit, according to the PCI runtime PM model
(see pci-driver.c). Wake up hardware in runtime resume.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Mon, 5 Dec 2011 10:37:52 +0000 (12:37 +0200)]
gfx: display: remove unused module parameter rtpm/gfxrtdelay
The rtpm (internally gfxrtdelay) module parameter is not used for
anything. Remove it.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Mon, 5 Dec 2011 10:37:51 +0000 (12:37 +0200)]
gfx: display: remove the remains of unused procfs support
The gfx driver procfs has not been enabled or used for a while, and parts
of it are obsolete and bitrotten. Remove what's left of the procfs
support. In the unlikely event that the interface is ever needed in the
future, it should be implemented through sysfs anyway.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Mon, 5 Dec 2011 10:37:50 +0000 (12:37 +0200)]
gfx: display: remove suspicious runtime PM related code
Remove suspicious runtime PM related code sprinkled here and there in the
driver. This is in preparation of eventually properly implementing runtime
PM.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Mon, 5 Dec 2011 10:37:49 +0000 (12:37 +0200)]
gfx: display: reduce the use of global variables
Do not use gpDrmDevice (a pointer to the struct drm_device) where it's
possible to derive it from other information. This is a step towards
removing gpDrmDevice altogether.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Kristen Carlson Accardi [Mon, 5 Dec 2011 10:37:48 +0000 (12:37 +0200)]
gfx: display: remove legacy pm interface
Drivers should not support both legacy and new pm framework.
Signed-off-by: Kristen Carlson Accardi <kristen@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Mon, 5 Dec 2011 10:37:47 +0000 (12:37 +0200)]
gfx: display: tc35876x: remove device creation hack
The I2C device is now present in firmware. Remove the device creation hack.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Mon, 5 Dec 2011 10:37:46 +0000 (12:37 +0200)]
gfx: display: tc35876x: fix null pointer dereference in panel off
Initialize platform data pointer before use.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Tue, 29 Nov 2011 10:21:31 +0000 (12:21 +0200)]
gfx: pvr: fix locking of the firmare trace debugfs entry
Fix regression introduced by:
3233b3a1 - gfx: pvr: debugfs: replace test_and_set_bit with spinlock+flag
Wrong spinlock was used..
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Tue, 29 Nov 2011 10:21:30 +0000 (12:21 +0200)]
gfx: pvr: make firmware trace output IMG compatible
Make the order of words in the firmware trace record match that of the
original IMG driver.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Tue, 29 Nov 2011 10:21:28 +0000 (12:21 +0200)]
gfx: pvr: reduce loglevel of 'fw state not available' msg
This isn't an error, but an indication that user space wasn't built to
provide this information.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Fri, 25 Nov 2011 12:32:56 +0000 (14:32 +0200)]
gfx: display: Avoid NULL pointer deference
Framebuffer memory might be created without syncobject. Page fliping
assumed that all framebuffers have syncobject which oopses because of
NULL pointer deference.
That kind of memory can't be protected from tearing using
syncobject in kernel.
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Kirill A. Shutemov [Fri, 25 Nov 2011 14:22:04 +0000 (16:22 +0200)]
gfx: hide false positive warnings include dir warnings
Currently if you try to build PVR driver using W=1 and O=... you'll get
a lot of warnings like:
cc1: warning: drivers/staging/mrst/pvr/include4: No such file or directory [enabled by default]
The root of the problem is kbuild. For every non-absolute -I path in
cflags kbuild adds one more option with $(srctree) prefix even if the
dir doesn't exists.
Let's workaround the issue with absolute paths.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Tested-by: Imre Deak <imre.deak@intel.com>
Jani Nikula [Fri, 25 Nov 2011 11:08:14 +0000 (13:08 +0200)]
gfx: build driver using top level Makefile and drop medfield/Makefile
Simplify build by removing medfield/Makefile and building the driver using
top level Makefile. Clean up the Makefile.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Imre Deak <imre.deak@intel.com>
Acked-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Wed, 23 Nov 2011 19:06:25 +0000 (21:06 +0200)]
gfx: pvr: Move ioctl number check before first use
Driver is using user provided ioctl number before checking if it is in
valid range. That makes it possible to force kernel to read memory past
the end of ioctl information array.
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Acked-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Mon, 21 Nov 2011 17:48:32 +0000 (19:48 +0200)]
gfx: pvr: fix regression in user debug request
Fix the regression during user debug request IOCTL introduced by:
7214f0fe418 - gfx: pvr: move core debugging functions to a separate file
Spotted-and-tested-by: Pauli Nieminen <pauli.nieminen@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 18 Nov 2011 14:38:05 +0000 (16:38 +0200)]
gfx: pvr: add hwrec_debugfs entries
These entries provide details about an SGX HW recovery event. In general
the hwrec_xxx entry will provide a snapshot of the corresponding state
as it was at the time of the last recovery, while the xxx entry will
give the current state.
At the moment we have hwrec_event and hwrec_sgx_registers. hwrec_event
is special in that it can be used to step to the next HW recovery event.
After it's opened and read all other hwrec_* entries will provide the
state for the same event. A second open on hwrec_event will reset all
hwrec_* entries, in preparation for the next event.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 18 Nov 2011 14:38:04 +0000 (16:38 +0200)]
gfx: pvr: debugfs: replace test_and_set_bit with spinlock+flag
The busy variable is not really a bitmap, using a spinlock with a busy
flag better expresses the purpose.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 18 Nov 2011 14:38:03 +0000 (16:38 +0200)]
gfx: pvr: add sgx_save_registers_no_pwron
Needed by the upcoming patch.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 18 Nov 2011 14:38:02 +0000 (16:38 +0200)]
gfx: pvr: add sgx_{read/write}_reg
Needed by the upcoming patch.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 18 Nov 2011 14:38:01 +0000 (16:38 +0200)]
gfx: pvr: make sure power is on during SGX reset
There is a race where after calling the SGX power-on function, it's possible
that the device will be powered-off through another IOCTL or and SGX
interrupt, before we get to perform the actual reset operation. To prevent
this, keep the power-lock for the duration of the reset.
Note that the current PVR API for powering on/off the devices is suboptimal.
Powering on a device requires acquiring the 'power lock', which will be
re-tried for a given amount of time, after which the driver will give up.
Instead of this we should have a refcount based solution and get rid of
the above timeout mechanism.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 18 Nov 2011 14:38:00 +0000 (16:38 +0200)]
gfx: pvr: move core debugging functions to a separate file
We'll add more of similar functionality in the future, so having a
separate file for them makes things cleaner.
No functional change.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Wed, 16 Nov 2011 00:29:39 +0000 (02:29 +0200)]
gfx: drv: Fix mode after all drm clients have exited
In case crtc is disabled surfaceflinger will fail to set mode
correct after surfaceflinger restart. Problem is assumbtion in HAL code
that KMS has set prober mode for internal display.
But drm disables crtc when surfaceflinger exists leaving its own memory
as framebuffer that is freed by kernel in process exit handling. After
all process have exited KMS driver should restore mode and fb to initial
state set by fbcon.
Adding the missing state restoration lets surfaceflinger initialize
correctly after restart.
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Tue, 15 Nov 2011 12:48:39 +0000 (14:48 +0200)]
gfx: drv: tc35876x: Fix physical display size information
The physical size of display is hardcoded in display driver. The
hardcoded value for lvds bridge is returned from tmd panel which is
phone size display.
Userspace reading the incorrect display size would calculate wrong dpi
for display which would results to incorrectly sized UI.
To provide correct information for lvds bridge driver needs separate
panel info function for lvds bridge.
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Thu, 10 Nov 2011 16:22:54 +0000 (18:22 +0200)]
gfx: pvr: add debugfs entry to read sgx firmware trace
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Thu, 10 Nov 2011 16:39:08 +0000 (18:39 +0200)]
gfx: pvr: add debugfs entry to reset sgx
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Thu, 10 Nov 2011 16:22:52 +0000 (18:22 +0200)]
gfx: pvr: export HWRecoveryResetSGX
Needed by the next patch.
I8c4219ef0c0773471c3aa147ebee90c04d0e71e6
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Thu, 10 Nov 2011 16:22:51 +0000 (18:22 +0200)]
gfx: pvr: refactor pvr_get_sgx_dev_info
Needed by the upcoming patches.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Thu, 10 Nov 2011 16:22:50 +0000 (18:22 +0200)]
gfx: pvr: refactor fw state dumping code
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Thu, 10 Nov 2011 16:22:49 +0000 (18:22 +0200)]
gfx: pvr: add Kconfig option to dump fw trace to console
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 11 Nov 2011 13:43:10 +0000 (15:43 +0200)]
gfx: drv: fix display backlight PWM duty cycle setting
Fix broken PWM calculation. The PWM register accepts values between
0x00...0x63, corresponding to pulse duty cycles of 0...99%.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Tue, 8 Nov 2011 16:18:59 +0000 (18:18 +0200)]
gfx: pvr: reduce verbosity of debug messages
Not much use in these messages, removing them reduces trashing on the
console.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Tue, 8 Nov 2011 16:18:58 +0000 (18:18 +0200)]
gfx: pvr: remove warning on gaps in the IOCTL ID range
There is no reason to warn for gaps only bigger than 5, while allowing
gaps less than 5. Also in the future we will have a gap as we want to
move the PDUMP IDs to the end of the range. Undefined IOCTLs will be
caught anyway by the IOCTL dispatcher, so remove this check.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Tue, 8 Nov 2011 16:18:57 +0000 (18:18 +0200)]
gfx: pvr: add header to track the ABI version
This includes the IOCTL and the firmware ABI version. The following
build and runtime check between the PVR kernel driver and the PVR user
space libraries will be made based on this:
kernel major = user space major
kernel minor >= user space minor
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Wed, 9 Nov 2011 11:48:16 +0000 (13:48 +0200)]
gfx: pvr: remove ABI dependency on firmware tracing feature
There is no reason to have the IOCTL/firmware ABI dependent on this
option. Revmoing the dependency will also enable us to toggle tracing
on/off dynamically in the future.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Mon, 7 Nov 2011 16:51:11 +0000 (18:51 +0200)]
gfx: pvr: clarify Kconfig terms wrt. ABI version vs. simple debug
Give a better name for the Kconfig option selecting the ABI version
(release or debug) and add a new option for simple debug messages and
asserts.
Disable debugging in bridged_pvr_bridge.c, the following patch will
enable debugging/asserts through Kconfig everywhere in the driver.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 4 Nov 2011 13:32:39 +0000 (15:32 +0200)]
gfx: drv: tc35876x: don't oops if functions are called before probe
The whole driver has serious design issues due to the rest of the display
controller code calling the driver's functions directly. In some (typically
failure) circumstances the calls might come in before the driver has
probed. Don't oops in such cases, but emit a warning. The proper fix will
require some redesign and rework later on.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Fri, 4 Nov 2011 13:32:38 +0000 (15:32 +0200)]
gfx: drv: tc35876x: fix bridge and panel GPIO numbers and usage
Get the GPIO numbers from platform data. Clean up old #defined GPIO numbers
from the code. New ones will be easy to add through platform data as
needed.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:28:08 +0000 (14:28 +0200)]
gfx: pvr: indicate presence of cache op in misc info
This is expected by the 1.7 user space libraries.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Fri, 4 Nov 2011 12:28:07 +0000 (14:28 +0200)]
gfx: pvr: Update error return codes to match 1.7
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:28:06 +0000 (14:28 +0200)]
gfx: pvr: add force cleanup param
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Fri, 4 Nov 2011 12:28:05 +0000 (14:28 +0200)]
gfx: pvr: Remove unused variable from uKernel struct
1.7 doesn't have backward compatible destination variables any more for
uKernel. They have to be removed to allow 2D blit operations work.
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Fri, 4 Nov 2011 12:28:04 +0000 (14:28 +0200)]
gfx: pvr: Add host control variable to match uKernel
uKernel gets extra variable in 1.7 to avoid hardware recovery whe there
is long running OpenCL task. But OpenCL isn't required yet so
implementation of timeout extension is postboned.
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Fri, 4 Nov 2011 12:28:03 +0000 (14:28 +0200)]
gfx: pvr: Implement uKernel assert fail status variable
New uKernel has assert fail variable to check if micro kernel hit any
assertions. That needs to be adapted in out control structure.
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Fri, 4 Nov 2011 12:28:02 +0000 (14:28 +0200)]
gfx: pvr: Update add shared parameter buffer ioctl
1.7 changed sgx add shared paramter buffer ioctl structure and
implementation. Adapt changes to our kernel.
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Pauli Nieminen [Fri, 4 Nov 2011 12:28:01 +0000 (14:28 +0200)]
gfx: pvr: Implement ioctl return for devinitpart2
1.7 DDK adds build options to sgx device init part2 ioctl.
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:27:59 +0000 (14:27 +0200)]
gfx: pvr: add PVRSRVSyncOps{TakeToken, FlushToToken}
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:27:58 +0000 (14:27 +0200)]
gfx: pvr: make DoQuerySyncOpsSatisfied accept counter snaphots
This is needed by the upcoming patch, adding IOCTLs for sync counter
manipulations.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:27:57 +0000 (14:27 +0200)]
gfx: pvr: annotate IOCTL IDs
The actual ID helps in debugging.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:27:55 +0000 (14:27 +0200)]
gfx: pvr: fix sgx transfer kick IOCTLs
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:27:53 +0000 (14:27 +0200)]
gfx: pvr: change map/export_devmem to map/export_devmem_2
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:27:52 +0000 (14:27 +0200)]
gfx: pvr: enable workqueues
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:27:51 +0000 (14:27 +0200)]
gfx: pvr: Keep required drm pos close function
Post close function is correct implementation variant for psb drm
implementation. We have to use that independ of workqueue settings.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:27:50 +0000 (14:27 +0200)]
gfx: pvr: add missing IOCTLs
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:27:49 +0000 (14:27 +0200)]
gfx: pvr: fix SGX KICK IOCTL param struct
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:27:48 +0000 (14:27 +0200)]
gfx: pvr: fix typo in PVRSRV_BRIDGE_CHG_DEV_MEM_ATTRIBS name
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:27:47 +0000 (14:27 +0200)]
gfx: pvr: Update heap address to match 1.7 DDK
Heap bases and sizes were updated in 1.7 DDK. Adapt changes to the
driver.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 4 Nov 2011 12:27:46 +0000 (14:27 +0200)]
gfx: pvr: Split 3D paramter heap to shared and per context
1.7 user space assumes that 3D paramter heap is split to shared and per
context heaps. We have to add that to kernel heap setup to support the
new DDK.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Wed, 2 Nov 2011 18:41:58 +0000 (20:41 +0200)]
gfx: pvr: fix SGX get misc info ABI
This wasn't caught by the IOCTL size checking, since the structure is
accessed through an extra redirecation. This redirection should be
removed at some point, since it's pointless.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Wed, 2 Nov 2011 17:41:40 +0000 (19:41 +0200)]
gfx: pvr: fix clock enabling per 1.7
This is expected by the 1.7 user space and fixes a hard lockup problem
during SGX initialization.
Thanks for Pauli for spotting the difference between the two DDK versions.
Spotted-by: Pauli Nieminen <pauli.nieminen@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Wed, 2 Nov 2011 17:41:39 +0000 (19:41 +0200)]
gfx: pvr: rename DEBUG to PVR_DEBUG_EXT
DEBUG is used for generic debugging in the kernel, but for PVR it
changes the IOCTL ABI. Since we don't want this do the above rename and
keep DEBUG for debug prints.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Jani Nikula [Wed, 2 Nov 2011 16:46:53 +0000 (18:46 +0200)]
gfx: drv: tc35876x: fix input muxing for dv1
The LVDS pin configuration has changed for dv1. Set the LVDS-TX transmitter
input muxing accordingly.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Charles Johnson [Tue, 1 Nov 2011 23:23:39 +0000 (16:23 -0700)]
Remove the reference to the moorestown directory.
Signed-off-by: Charles Johnson <charles.f.johnson@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Ander Conselvan de Oliveira [Wed, 26 Oct 2011 13:29:14 +0000 (16:29 +0300)]
gfx: drv: make page flip work on fb's with pvrBO null
The fb created in psbfb_create for stolen memory has a null
pvrBO. Make it possible to page flip a way from it.
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Tue, 1 Nov 2011 09:31:30 +0000 (11:31 +0200)]
gfx: drv: add missing mdfld_gl3 header
Fix compilation when CONFIG_MDFD_GL3 is on.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Tue, 1 Nov 2011 09:30:58 +0000 (11:30 +0200)]
gfx: fix MDFD_GL3 makefile logic
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Mon, 31 Oct 2011 17:04:20 +0000 (19:04 +0200)]
gfx: display: force panel type
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 28 Oct 2011 13:42:39 +0000 (16:42 +0300)]
gfx: pvr: fix SGX_BRIDGE_INIT_INFO per 1.7
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 28 Oct 2011 13:34:59 +0000 (16:34 +0300)]
gfx: pvr: increase SGX_MAX_INIT_MEM_HANDLES per 1.7
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Imre Deak [Fri, 28 Oct 2011 13:29:44 +0000 (16:29 +0300)]
gfx: pvr: add missing 1.7 ukernel commands
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>