summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* drm/radeon: add userptr support v8Christian König2014-08-1110-3/+279
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds an IOCTL for turning a pointer supplied by userspace into a buffer object. It imposes several restrictions upon the memory being mapped: 1. It must be page aligned (both start/end addresses, i.e ptr and size). 2. It must be normal system memory, not a pointer into another map of IO space (e.g. it must not be a GTT mmapping of another object). 3. The BO is mapped into GTT, so the maximum amount of memory mapped at all times is still the GTT limit. 4. The BO is only mapped readonly for now, so no write support. 5. List of backing pages is only acquired once, so they represent a snapshot of the first use. Exporting and sharing as well as mapping of buffer objects created by this function is forbidden and results in an -EPERM. v2: squash all previous changes into first public version v3: fix tabs, map readonly, don't use MM callback any more v4: set TTM_PAGE_FLAG_SG so that TTM never messes with the pages, pin/unpin pages on bind/unbind instead of populate/unpopulate v5: rebased on 3.17-wip, IOCTL renamed to userptr, reject any unknown flags, better handle READONLY flag, improve permission check v6: fix ptr cast warning, use set_page_dirty/mark_page_accessed on unpin v7: add warning about it's availability in the API definition v8: drop access_ok check, fix VM mapping bits Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> (v4) Reviewed-by: Jérôme Glisse <jglisse@redhat.com> (v4) Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* Revert "drm: drop redundant drm_file->is_master"Dave Airlie2014-08-079-27/+20
| | | | | | | | | | | | | | | | This reverts commit 48ba813701eb14b3008edefef4a0789b328e278c. Thanks to Chris: "drm_file->is_master is not synomous with having drm_file->master == drm_file->minor->master. This is because drm_file->master is the same for all drm_files of the same generation and so when there is a master, every drm_file believes itself to be the master. Confusion ensues and things go pear shaped when one file is closed and there is no master anymore." Conflicts: drivers/gpu/drm/drm_drv.c drivers/gpu/drm/drm_stub.c
* Merge tag 'drm/tegra/for-3.17-rc1' of ↵Dave Airlie2014-08-0716-67/+425
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/tegra/linux into drm-next drm/tegra: Changes for v3.17-rc1 Mostly some cleanup all over the place. Pitch alignment limitations of the display controller are now honored and job submission is 64-bit safe. The SOR output (used for eDP) properly configures sync signal polarities according to the display mode rather than hard-coding them to some value and the number of bits per color is now taken from the panel rather than hard-coded to properly support 24-bit vs. 18-bit panels. The DSI controller now properly supports non-continuous clock mode. GEM objects can now have their flags and tiling mode modified via IOCTLs to allow buffers imported from Nouveau to be properly displayed. Newer generations of the Tegra display controller can also detile block linear buffers at scan-out time. Finally the driver now properly exports MODULE_DEVICE_TABLEs to allow it to be automatically loaded when built as a module. * tag 'drm/tegra/for-3.17-rc1' of git://anongit.freedesktop.org/tegra/linux: drm/tegra: add MODULE_DEVICE_TABLEs drm/tegra: dc - Reset controller on driver remove drm/tegra: Properly align stride for framebuffers drm/tegra: sor - Configure proper sync polarities drm/tegra: sor - Use bits-per-color from panel drm/tegra: Make job submission 64-bit safe drm/tegra: Allow non-authenticated processes to create buffer objects drm/tegra: Add SET/GET_FLAGS IOCTLs drm/tegra: Add SET/GET_TILING IOCTLs drm/tegra: Implement more tiling modes drm/tegra: dsi - Handle non-continuous clock flag drm/tegra: sor - missing unlock on error
| * drm/tegra: add MODULE_DEVICE_TABLEsStephen Warren2014-08-047-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When tegra-drm.ko is built as a module, these MODULE_DEVICE_TABLEs allow the module to be auto-loaded since the module will match the devices instantiated from device tree. (Notes for stable: in 3.14+, just git rm any conflicting file, since they are added in later kernels. For 3.13 and below, manual merging will be needed) Cc: <stable@vger.kernel.org> Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * drm/tegra: dc - Reset controller on driver removeThierry Reding2014-08-041-0/+1
| | | | | | | | | | | | | | | | Since the device will no longer be used, may as well keep it in reset to potentially save some power and make sure it is in a clean state the next time it's probed. Signed-off-by: Thierry Reding <treding@nvidia.com>
| * drm/tegra: Properly align stride for framebuffersThierry Reding2014-08-044-1/+27
| | | | | | | | | | | | | | | | | | | | | | Tegra20 and Tegra30 both required the buffer line stride to be aligned on 8 byte boundaries. Tegra114 and Tegra124 increased the alignment to 64 bytes. Introduce a parameter to specify the alignment requirements for each display controller and round up the pitch of newly allocated framebuffers appropriately. Originally-by: Stéphane Marchesin <marcheu@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * drm/tegra: sor - Configure proper sync polaritiesThierry Reding2014-08-041-3/+13
| | | | | | | | | | | | Program the sync signal polarities according to the display mode. Signed-off-by: Thierry Reding <treding@nvidia.com>
| * drm/tegra: sor - Use bits-per-color from panelStéphane Marchesin2014-08-041-1/+1
| | | | | | | | | | | | | | | | This change uses the value of bits-per-color from panel to remove one more hardcoded value. Signed-off-by: Stéphane Marchesin <marcheu@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * drm/tegra: Make job submission 64-bit safeThierry Reding2014-08-043-35/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Job submission currently relies on the fact that struct drm_tegra_reloc and struct host1x_reloc are the same size and uses a simple call to the copy_from_user() function to copy them to kernel space. This causes the handle to be stored in the buffer object field, which then needs a cast to a 32 bit integer to resolve it to a proper buffer object pointer and store it back in the buffer object field. On 64-bit architectures that will no longer work, since pointers are 64 bits wide whereas handles will remain 32 bits. This causes the sizes of both structures to because different and copying will no longer work. Fix this by adding a new function, host1x_reloc_get_user(), that copies the structures field by field. While at it, use substructures for the command and target buffers in struct host1x_reloc for better readability. Also use unsized types to make it more obvious that this isn't part of userspace ABI. Signed-off-by: Thierry Reding <treding@nvidia.com>
| * drm/tegra: Allow non-authenticated processes to create buffer objectsThierry Reding2014-08-041-1/+1
| | | | | | | | | | | | | | | | This matches what other drivers do for equivalent IOCTLs. Reviewed-by: Stéphane Marchesin <marcheu@chromium.org> Tested-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * drm/tegra: Add SET/GET_FLAGS IOCTLsThierry Reding2014-08-042-0/+70
| | | | | | | | | | | | | | | | | | | | | | The DRM_TEGRA_GEM_SET_FLAGS IOCTL can be used to set the flags of a buffer object after it has been allocated or imported. Flags associated with a buffer object can be queried using the DRM_TEGRA_GEM_GET_FLAGS IOCTL. Reviewed-by: Stéphane Marchesin <marcheu@chromium.org> Tested-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * drm/tegra: Add SET/GET_TILING IOCTLsThierry Reding2014-08-042-0/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the tiling parameters of buffer objects can only be set at allocation time, and only a single tiled mode is supported. This new DRM_TEGRA_GEM_SET_TILING IOCTL allows more modes to be set and also allows the tiling mode to be changed after the allocation. This will enable the Tegra DRM driver to import buffers from a GPU and directly scan them out by configuring the display controller appropriately. To complement this, the DRM_TEGRA_GEM_GET_TILING IOCTL can query the current tiling mode of a buffer object. This is necessary when importing buffers via handle (as is done in Mesa for example) so that userspace can determine the proper parameters for the 2D or 3D engines. Reviewed-by: Stéphane Marchesin <marcheu@chromium.org> Tested-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * drm/tegra: Implement more tiling modesThierry Reding2014-08-046-24/+118
| | | | | | | | | | | | | | | | | | Tegra124 supports a block-linear mode in addition to the regular pitch linear and tiled modes. Add support for these by moving the internal representation into a structure rather than a simple flag. Tested-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * drm/tegra: dsi - Handle non-continuous clock flagAlexandre Courbot2014-08-041-1/+2
| | | | | | | | | | | | | | | | | | Handle the MIPI_DSI_CLOCK_NONCONTINUOUS flag and only set TX-only clock behavior when this flag is present to allow panels requiring continuous clock mode to operate with this driver. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * drm/tegra: sor - missing unlock on errorDan Carpenter2014-08-041-1/+1
| | | | | | | | | | | | | | We should unlock before returning the error code. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * Merge branch 'drm/dsi/for-next' into drm/tegra/for-nextThierry Reding2014-08-041-0/+2
| |\ | | | | | | | | | | | | * drm/dsi/for-next: drm/dsi: Flag for non-continuous clock behavior
* | \ Merge tag 'drm/panel/for-3.17-rc1' of ↵Dave Airlie2014-08-0717-73/+447
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/tegra/linux into drm-next drm/panel: Changes for v3.17-rc1 Panels can now be more finely controlled via .prepare() and .unprepare() callbacks in addition to .enable() and .disable(). New kerneldoc details what they are supposed to do and when they should be called. The simple panel driver gained support for a couple of new panels and it is now possible to specify additional delays during power up and power down sequences if panels require it. DSI devices can now advertise that they support non-continuous clock mode which will allow DSI host controllers to disable the high speed clock after transmissions to save power. * tag 'drm/panel/for-3.17-rc1' of git://anongit.freedesktop.org/tegra/linux: (30 commits) drm/panel: simple: Use devm_gpiod_get_optional() drm/dsi: Replace upcasting macro by function drm/panel: ld9040: Replace upcasting macro by function drm/exynos: dp: Modify driver to support drm_panel drm/exynos: Move DP setup into commit() drm/panel: simple: Add AUO B133HTN01 panel support drm/panel: simple: Support delays in panel functions drm/panel: simple: Add proper definition for prepare and unprepare drm/panel: s6e8aa0: Add proper definition for prepare and unprepare drm/panel: ld9040: Add proper definition for prepare and unprepare drm/tegra: Add support for panel prepare and unprepare routines drm/exynos: dsi: Add support for panel prepare and unprepare routines drm/exynos: dpi: Add support for panel prepare and unprepare routines drm/panel: simple: Add dummy prepare and unprepare routines drm/panel: s6e8aa0: Add dummy prepare and unprepare routines drm/panel: ld9040: Add dummy prepare and unprepare routines drm/panel: Provide convenience wrapper for .get_modes() drm/panel: add .prepare() and .unprepare() functions drm/panel: simple: Remove simple-panel compatible drm/panel: simple: Add Innolux N116BGE panel support ...
| * | | drm/panel: simple: Use devm_gpiod_get_optional()Alexandre Courbot2014-08-071-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the new devm_gpiod_get_optional() to simplify the probe code. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/dsi: Replace upcasting macro by functionThierry Reding2014-08-061-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | Using a function instead of a macro provides proper type checking. Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: ld9040: Replace upcasting macro by functionThierry Reding2014-08-061-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | Using a function instead of a macro provides proper type checking. Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/exynos: dp: Modify driver to support drm_panelAjay Kumar2014-08-063-21/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add drm_panel controls to support powerup/down of the eDP panel, if one is present at the sink side. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/exynos: Move DP setup into commit()Ajay Kumar2014-08-061-5/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add commit callback for exynos_dp, and move the DP link training, video configuration code from the hotplug handler into commit(). Signed-off-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: simple: Add AUO B133HTN01 panel supportAjay Kumar2014-08-062-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AUO B133HTN01 is a 13.6" FHD TFT LCD panel connecting to an eDP interface and with an integrated LED backlight unit. This panel is used on the Samsung Chromebook 2 (XE503C32). Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: simple: Support delays in panel functionsAjay Kumar2014-08-061-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For most of the panels, we need to provide delays during various stages of panel power up and power down. Add a structure to hold those delay values and use them in corresponding functions. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: simple: Add proper definition for prepare and unprepareAjay Kumar2014-08-061-10/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move out code from enable and disable routines to prepare and unprepare routines, so that functionality is properly distributed across all the panel functions. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: s6e8aa0: Add proper definition for prepare and unprepareAjay Kumar2014-08-061-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move out code from enable and disable routines to prepare and unprepare routines, so that functionality is properly distributed across all the panel functions. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: ld9040: Add proper definition for prepare and unprepareAjay Kumar2014-08-061-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move out code from enable and disable routines to prepare and unprepare routines, so that functionality is properly distributed across all the panel functions. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/tegra: Add support for panel prepare and unprepare routinesAjay Kumar2014-08-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify tegra output driver to support the new panel calls: prepare and unprepare. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/exynos: dsi: Add support for panel prepare and unprepare routinesAjay Kumar2014-08-061-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify exynos_dsi driver to support the new panel calls: prepare and unprepare. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/exynos: dpi: Add support for panel prepare and unprepare routinesAjay Kumar2014-08-061-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify exynos_dpi driver to support the new panel calls: prepare and unprepare. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: simple: Add dummy prepare and unprepare routinesAjay Kumar2014-08-061-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds dummy definition for prepare and unprepare routines to simple panel driver. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: s6e8aa0: Add dummy prepare and unprepare routinesAjay Kumar2014-08-061-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds dummy definition for prepare and unprepare routines to s6e8aa0 panel driver. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: ld9040: Add dummy prepare and unprepare routinesAjay Kumar2014-08-061-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds dummy definition for prepare and unprepare routines to ld9040 panel driver. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: Provide convenience wrapper for .get_modes()Ajay Kumar2014-08-061-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a convenience wrapper for the struct drm_panel_funcs' .get_modes() function so that not every driver needs to check that the panel driver implements the function before calling it. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> [treding: extract from larger patch, commit message] Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: add .prepare() and .unprepare() functionsAjay Kumar2014-08-061-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Panels often require an initialization sequence that consists of three steps: a) powering up the panel, b) starting transmission of video data and c) enabling the panel (e.g. turn on backlight). This is usually necessary to avoid visual glitches at the beginning of video data transmission. Similarly, the shutdown sequence is typically done in three steps as well: a) disable the panel (e.g. turn off backlight), b) cease video data transmission and c) power down the panel. Currently drivers can only implement .enable() and .disable() functions, which is not enough to implement the above sequences. This commit adds a second pair of functions, .prepare() and .unprepare() to allow more fine-grained control over when the above steps are performed. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> [treding: rewrite changelog, add kerneldoc] Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: simple: Remove simple-panel compatibleThierry Reding2014-08-061-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | simple-panel is not a valid panel model, so there is no data (video timings, etc.) associated with it. Therefore drivers can't do anything useful with it, so it should not appear in the table of OF matches. Device trees will always need to specify the exact model of the panel. Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: simple: Add Innolux N116BGE panel supportThierry Reding2014-08-062-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Innolux N116BGE is an 11.6" WXGA TFT LCD panel connecting to an eDP interface and with an integrated LED backlight unit. It is used in the Tegra132 Norrin reference design. Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: simple: Add bits-per-color supportStéphane Marchesin2014-08-011-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bits-per-color is provided by the EDID normally, but if we're using panels, we need to store it somewhere. So we add a field to the panel descriptor for it. Signed-off-by: Stéphane Marchesin <marcheu@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: simple: add support for InnoLux N156BGE-L21 panelAlban Bedel2014-07-222-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This panel is used by the Medcom Wide and supported by the simple-panel driver. Signed-off-by: Alban Bedel <alban.bedel@avionic-design.de> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: s6e8aa0: Use static inline for upcastingThierry Reding2014-07-221-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a static inline function for upcasting a struct drm_panel to the driver-specific structure. The advantage over using a macro is that it gives us additional type checking. Acked-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/dsi: Use peripheral's channel for DCS commandsThierry Reding2014-07-223-14/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When executing DCS commands, use the channel associated with the DSI peripheral rather than one explicitly specified in the function call. Devices shouldn't be able to step on each others' toes like this. Acked-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/dsi: Make mipi_dsi_dcs_write() return ssize_tThierry Reding2014-07-223-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function returns the value of the struct mipi_dsi_host_ops' .transfer() so make sure the return types are consistent. Acked-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: add support for Foxlink FL500WVR00-A0T panelBoris BREZILLON2014-07-152-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This panel is used by Atmel's SAMA5D3 Evaluation Kits (sama5d3xek) and supported by the simple-panel driver. Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: Set non-continuous clock flag on supporting panelsAlexandre Courbot2014-07-141-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The LG LD070WX3-SL01 and Panasonic VVX10F004B00 are DSI support non-continuous clock mode. Set the MIPI_DSI_CLOCK_NON_CONTINUOUS to their definition so host drivers become aware of this capability. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: make DRM_PANEL_LD9040 depend on SPIRussell King2014-07-141-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than DRM_PANEL_LD9040 selecting SPI, which then results in an increase in the probability of Kconf reporting circular dependencies (we're one "select" away from that right now), make this depend on SPI instead. This is akin to having some driver select DRM. Having some drivers depend on a subsystem, and other drivers select a subsystem is a recipe for circular dependencies, and there's really no need for it. The potential circular dependency (which can be caused today by the addition of selecting DRM_PANEL from DRM_IMX_LDB) is: symbol DMADEVICES is selected by SAMSUNG_DMADEV symbol SAMSUNG_DMADEV is selected by S3C64XX_PL080 symbol S3C64XX_PL080 is selected by SPI_S3C64XX symbol SPI_S3C64XX depends on SPI symbol SPI is selected by DRM_PANEL_LD9040 symbol DRM_PANEL_LD9040 depends on DRM_PANEL symbol DRM_PANEL is selected by DRM_IMX_LDB symbol DRM_IMX_LDB depends on MFD_SYSCON symbol MFD_SYSCON is selected by POWER_RESET_KEYSTONE symbol POWER_RESET_KEYSTONE depends on POWER_SUPPLY symbol POWER_SUPPLY is selected by HID_SONY symbol HID_SONY depends on NEW_LEDS symbol NEW_LEDS is selected by BACKLIGHT_ADP8860 symbol BACKLIGHT_ADP8860 depends on BACKLIGHT_CLASS_DEVICE symbol BACKLIGHT_CLASS_DEVICE is selected by FB_MX3 symbol FB_MX3 depends on MX3_IPU symbol MX3_IPU depends on DMADEVICES Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | | drm/panel: consolidate unnecessary explicit dependenciesRussell King2014-07-141-3/+1
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DRM_PANEL_LD9040 and DRM_PANEL_S6E8AA0 both explicitly depended on DRM_PANEL && DRM, whereas DRM_PANEL_SIMPLE relies upon the dependency on the menu. We do not need to use explicit dependencies if we make the menu depend on DRM_PANEL && DRM - this will implicitly make each entry in the menu depend on DRM_PANEL && DRM without this needing to be explicitly stated against every entry. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Thierry Reding <treding@nvidia.com>
| * | drm/dsi: Flag for non-continuous clock behaviorAlexandre Courbot2014-07-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per section 5.6.1 of the DSI specification, all DSI transmitters must support continuous clock behavior on the clock lane, while non-continuous mode support is only optional. Add a flag that allows devices to indicate that they support non-continuous clock mode so host drivers can adapt their behavior accordingly. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
* | | drm: move drm_stub.c to drm_drv.cDave Airlie2014-08-062-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Everyone agrees we should do this, Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Alex Deucher <alexander.deucher@amd.com> Acked-by: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | | Merge branch 'drm-next' of git://people.freedesktop.org/~dvdhrm/linux into ↵Dave Airlie2014-08-0614-748/+727
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | drm-next bunch of cleanups * 'drm-next' of git://people.freedesktop.org/~dvdhrm/linux: drm: mark drm_context support as legacy drm: make sysfs device always available for minors drm: make minor->index available early drm: merge drm_drv.c into drm_ioctl.c drm: move module initialization to drm_stub.c drm: don't de-authenticate clients on master-close drm: drop redundant drm_file->is_master drm: extract legacy ctxbitmap flushing
| * | | drm: mark drm_context support as legacyDavid Herrmann2014-08-057-87/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This renames all drm-context helpers to drm_legacy_*() and moves the internal definitions into the new drm_legacy.h header. This header is local to DRM-core and drivers shouldn't access it. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: David Herrmann <dh.herrmann@gmail.com>