summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-11-13Merge branch 'drm/panel/for-next' into drm/tegra/for-nextThierry Reding
2014-11-13drm/panel: Add Sharp LQ101R1SX01 supportThierry Reding
This panel requires dual-channel mode. The device accepts command-mode data on 8 lanes and will therefore need a dual-channel DSI controller. The two interfaces that make up this device need to be instantiated in the controllers that gang up to provide the dual-channel DSI host. Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Do not require .owner field to be setThierry Reding
Drivers now no longer need to set the .owner field. It will be automatically set at registration time. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Resolve MIPI DSI device from phandleThierry Reding
Add a function, of_find_mipi_dsi_device_by_node(), that can be used to resolve a phandle to a MIPI DSI device. Acked-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Implement DCS set_{column,page}_address commandsThierry Reding
Provide small convenience wrappers to set the column and page extents of the frame memory accessed by the host processors. Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Implement DCS {get,set}_pixel_format commandsThierry Reding
Provide small convenience wrappers to query or set the pixel format used by the interface. Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Implement DCS get_power_mode commandThierry Reding
Provide a small convenience wrapper that transmits a DCS get_power_mode command. A set of bitmasks for the mode bits is also provided. Acked-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Implement DCS soft_reset commandThierry Reding
Provide a small convenience wrapper that transmits a DCS soft_reset command. Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Implement DCS nop commandThierry Reding
Provide a small convenience wrapper that transmits a DCS nop command. Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Add to DocBook documentationThierry Reding
Integrate the MIPI DSI helpers into DocBook and clean up various kerneldoc warnings. Also add a brief DOC section and clarify some aspects of the mipi_dsi_host struct's .transfer() operation. Acked-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Implement some standard DCS commandsYoungJun Cho
Add helpers for the {enter,exit}_sleep_mode, set_display_{on,off} and set_tear_{on,off} DCS commands. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> [treding: kerneldoc and other minor cleanup] Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Implement generic read and write commandsThierry Reding
Implement generic read and write commands. Selection of the proper data type for packets is done automatically based on the number of parameters or payload length. Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/panel: s6e8aa0: Use standard MIPI DSI functionThierry Reding
Use the newly introduced mipi_dsi_set_maximum_return_packet_size() function to replace an open-coded version. Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Add mipi_dsi_set_maximum_return_packet_size() helperYoungJun Cho
This function can be used to set the maximum return packet size for a MIPI DSI peripheral. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> [treding: endianess, kerneldoc, return value] Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Constify mipi_dsi_msgThierry Reding
struct mipi_dsi_msg is a read-only structure, drivers should never need to modify it. Make this explicit by making all references to the struct const. Acked-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Make mipi_dsi_dcs_{read,write}() symmetricalThierry Reding
Currently the mipi_dsi_dcs_write() function requires the DCS command byte to be embedded within the write buffer whereas mipi_dsi_dcs_read() has a separate parameter. Make them more symmetrical by adding an extra command parameter to mipi_dsi_dcs_write(). The S6E8AA0 driver relies on the old asymmetric API and there's concern that moving to the new API may be less efficient. Provide a new function with the old semantics for those cases and make the S6E8AA0 driver use it instead. Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Add DSI transfer helperThierry Reding
A common pattern is starting to emerge for higher level transfer helpers. Create a new helper that encapsulates this pattern and avoids code duplication. Acked-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Add message to packet translatorThierry Reding
This commit introduces a new function, mipi_dsi_create_packet(), which converts from a MIPI DSI message to a MIPI DSI packet. The MIPI DSI packet is as close to the protocol described in the DSI specification as possible and useful in drivers that need to write a DSI packet into a FIFO to send a message off to the peripheral. Suggested-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/dsi: Introduce packet format helpersThierry Reding
Add two helpers, mipi_dsi_packet_format_is_{short,long}(), that help in determining the format of a packet. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/cma: Remove call to drm_gem_free_mmap_offset()Thierry Reding
drm_gem_object_release() called later in the drm_gem_cma_free_object() function already calls this, so there's no need to do this explicitly. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm: Sanitize DRM_IOCTL_MODE_CREATE_DUMB inputThierry Reding
Some drivers treat the pitch and size fields as inputs and will use them as minima provided by userspace so that they are only overwritten if the minimal requirements of the driver exceed them. This can cause strange behaviour when applications don't zero out these fields, causing whatever was on the stack to be passed to the IOCTL. In a typical case this would become visible as a failed allocation if the pitch or size were unusually high. But this could also cause more subtle bugs like overallocating dumb framebuffers. To prevent drivers from misusing these values, make the DRM core zero out the pitch and size fields before passing the structure to the driver implementation. While at it, also set the output handle field to zero for good measure, even though it's less likely to be abused. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/rcar: gem: dumb: pitch is an outputThierry Reding
When creating a dumb buffer object using the DRM_IOCTL_MODE_CREATE_DUMB IOCTL, only the width, height, bpp and flags fields are inputs. The caller is not guaranteed to zero out or set handle, pitch and size. Drivers must not treat these values as possible inputs, otherwise they may use uninitialized memory during the computation of the framebuffer size. The R-Car DU driver treats the pitch passed in from userspace as minimum and will only overwrite it when the driver-computed pitch is larger, allowing userspace to, intentionally or not, overallocate framebuffers. Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/omap: gem: dumb: pitch is an outputThierry Reding
When creating a dumb buffer object using the DRM_IOCTL_MODE_CREATE_DUMB IOCTL, only the width, height, bpp and flags fields are inputs. The caller is not guaranteed to zero out or set handle, pitch and size. Drivers must not treat these values as possible inputs, otherwise they may use uninitialized memory during the computation of the framebuffer size. The OMAP driver uses the pitch field passed in by userspace as a minimum and only override it if the driver-computed pitch is larger than what userspace provided. To prevent this from causing overallocation, fix the minimum pitch to 0 to enforce the driver-computed pitch. Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Rob Clark <robdclark@gmail.com> Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/cma: Introduce drm_gem_cma_dumb_create_internal()Thierry Reding
This function is similar to drm_gem_cma_dumb_create() but targetted at kernel internal users so that they can override the pitch and size requirements of the dumb buffer. It is important to make this difference because the IOCTL says that the pitch and size fields are to be considered outputs and therefore should not be used in computations of the framebuffer size. Internal users may still want to use this code to avoid duplication and at the same time pass on additional, driver-specific restrictions on the pitch and size. While at it, convert the R-Car DU driver, the single user that overrides the pitch, to use the new internal helper. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/doc: Add GEM/CMA helpers to kerneldocThierry Reding
Most of the functions already have the beginnings of kerneldoc comments but are using the wrong opening marker. Use the correct opening marker and flesh out the comments so that they can be integrated with the DRM DocBook document. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/doc: mm: Fix indentationThierry Reding
Use spaces consistently for indentation in the memory-management section. Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/gem: Fix a few kerneldoc typosThierry Reding
While at it, adjust the drm_gem_handle_create() function declaration to be more consistent with other functions in the file. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13video/hdmi: Relicense header under MIT licenseThierry Reding
OpenBSD wants to reuse this file but needs the license to be more permissive. Acked-by: Alban Bedel <alban.bedel@avionic-design.de> Acked-by: Daniel Vetter <daniel.vetter@intel.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/gma500: mdfld: Reuse video/mipi_display.hThierry Reding
The GMA500 driver redefines many constants already found in the generic header. Replace uses of the custom defines by the standard ones and get rid of the duplicate defininitions. Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm: Make drm_mode_create_tv_properties() signature consistentThierry Reding
The prototype and the function implementation differ in their signature. Make them consistent and use an unsigned integer for the number of modes while at it. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm: Implement drm_get_pci_dev() dummy for !PCIThierry Reding
Implementing a dummy of this function allows drivers that use it to be built on platforms that don't have PCI. This can happen for example if the nouveau driver is built on Tegra without PCI enabled (or on 64-bit ARM where PCI is not yet implemented). Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/prime: Use unsigned type for number of pagesThierry Reding
The number of pages can never be negative, so an unsigned type is enough. This also matches the type of the n_pages argument of the sg_alloc_table_from_pages() function. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm/gem: Fix typo in kerneldocThierry Reding
The function being documented is drm_gem_object_handle_free(), not drm_gem_object_free(). Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm: Use const data when creating blob propertiesThierry Reding
Creating a blob property will always copy the input data so the data that is passed in can be const. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13drm: Use size_t for blob property sizesThierry Reding
size_t is the standard type when dealing with sizes of all kinds. Use it consistently when instantiating DRM blob properties. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13Merge branch 'drm-next-3.19' of git://people.freedesktop.org/~agd5f/linux ↵Dave Airlie
into drm-next Radeon patches for 3.19. Christian has a number of GPUVM improvements slated as well, but I'd like to wait until he gets back to work next week to pull those in. Highlights of this pull: - ttm performance improvements - CI dpm fixes * 'drm-next-3.19' of git://people.freedesktop.org/~agd5f/linux: (26 commits) drm/radeon/si/ci: make u8 static arrays constant drm/radeon: set power control in ci dpm enable drm/radeon: powertune fixes for hawaii drm/radeon: fix dpm mc init for certain hawaii boards drm/radeon: set bootup pcie level to max for ci dpm drm/radeon: fix default dpm state setup drm/radeon: workaround a hw bug in bonaire pcie dpm drm/radeon: fix mclk vddc configuration for cards for hawaii drm/radeon: fix sclk DS enablement drm/radeon: fix activity settings for sclk and mclk for CI drm/radeon: improve mclk param calcuations for ci dpm drm/radeon: fix dram timing for certain hawaii boards drm/radeon: switch force state commands for CI drm/radeon: fix for memory training on bonaire 0x6649 drm/radeon/ci: handle gpio controlled dpm features properly drm/radeon: store the gpio shift as well drm/radeon: export radeon_atombios_lookup_gpio drm/radeon: fix typo in CI dpm disable drm/radeon: rework CI dpm thermal setup drm/radeon: rework SI dpm thermal setup ...
2014-11-12drm/radeon/si/ci: make u8 static arrays constantDave Airlie
These two arrays don't change, just make them constant, reduces data segment by a few bytes. Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: set power control in ci dpm enableAlex Deucher
Necessary for poper operation. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: powertune fixes for hawaiiAlex Deucher
- bapm is not available on hawaii - update pt defaults Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: fix dpm mc init for certain hawaii boardsAlex Deucher
Needs special overrides for certain vram configurations. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: set bootup pcie level to max for ci dpmAlex Deucher
Avoids problems when re-loading the driver. Does not affect power saving when dpm is enabled. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: fix default dpm state setupAlex Deucher
Only enable the first levels for mclk and sclk. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: workaround a hw bug in bonaire pcie dpmAlex Deucher
Some boards get stuck in pcie x1 otherwise. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: fix mclk vddc configuration for cards for hawaiiAlex Deucher
Need to use vddc0 for vdcc1 for certain hawaii configurations. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: fix sclk DS enablementAlex Deucher
Only enable it for levels 0 and 1. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: fix activity settings for sclk and mclk for CIAlex Deucher
Only need to be enabled on the first level. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: improve mclk param calcuations for ci dpmAlex Deucher
Properly take into account the post divider. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: fix dram timing for certain hawaii boardsAlex Deucher
Certain memory configurations need a fix. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: switch force state commands for CIAlex Deucher
Use the preferred SMC commands for forcing state on CI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-11-12drm/radeon: fix for memory training on bonaire 0x6649Alex Deucher
Workaround for memory link training on certain variants of 0x6649. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>