You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm updates from Dave Airlie:
"This is the main drm pull, it has a shared branch with some alsa
crossover but everything should be acked by relevant people.
New drivers:
- ATMEL HLCDC driver
- designware HDMI core support (used in multiple SoCs).
core:
- lots more atomic modesetting work, properties and atomic ioctl
(hidden under option)
- bridge rework allows support for Samsung exynos chromebooks to
work finally.
- some more panels supported
i915:
- atomic plane update support
- DSI uses shared DSI infrastructure
- Skylake basic support is all merged now
- component framework used for i915/snd-hda interactions
- write-combine cpu memory mappings
- engine init code refactored
- full ppgtt enabled where execlists are enabled.
- cherryview rps/gpu turbo and pipe CRC support.
radeon:
- indirect draw support for evergreen/cayman
- SMC and manual fan control for SI/CI
- Displayport audio support
amdkfd:
- SDMA usermode queue support
- replace suballocator usage with more suitable one
- rework for allowing interfacing to more than radeon
nouveau:
- major renaming in prep for later splitting work
- merge arm platform driver into nouveau
- GK20A reclocking support
msm:
- conversion to atomic modesetting
- YUV support for mdp4/5
- eDP support
- hw cursor for mdp5
tegra:
- conversion to atomic modesetting
- better suspend/resume support for child devices
rcar-du:
- interlaced support
imx:
- move to using dw_hdmi shared support
- mode_fixup support
sti:
- DVO support
- HDMI infoframe support
exynos:
- refactoring and cleanup, removed lots of internal unnecessary
abstraction
- exynos7 DECON display controller support
Along with the usual bunch of fixes, cleanups etc"
* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (724 commits)
drm/radeon: fix voltage setup on hawaii
drm/radeon/dp: Set EDP_CONFIGURATION_SET for bridge chips if necessary
drm/radeon: only enable kv/kb dpm interrupts once v3
drm/radeon: workaround for CP HW bug on CIK
drm/radeon: Don't try to enable write-combining without PAT
drm/radeon: use 0-255 rather than 0-100 for pwm fan range
drm/i915: Clamp efficient frequency to valid range
drm/i915: Really ignore long HPD pulses on eDP
drm/exynos: Add DECON driver
drm/i915: Correct the base value while updating LP_OUTPUT_HOLD in MIPI_PORT_CTRL
drm/i915: Insert a command barrier on BLT/BSD cache flushes
drm/i915: Drop vblank wait from intel_dp_link_down
drm/exynos: fix NULL pointer reference
drm/exynos: remove exynos_plane_dpms
drm/exynos: remove mode property of exynos crtc
drm/exynos: Remove exynos_plane_dpms() call with no effect
drm/i915: Squelch overzealous uncore reset WARN_ON
drm/i915: Take runtime pm reference on hangcheck_info
drm/i915: Correct the IOSF Dev_FN field for IOSF transfers
drm/exynos: fix DMA_ATTR_NO_KERNEL_MAPPING usage
...
This commit is contained in:
@@ -239,6 +239,14 @@
|
||||
Driver supports dedicated render nodes.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>DRIVER_ATOMIC</term>
|
||||
<listitem><para>
|
||||
Driver supports atomic properties. In this case the driver
|
||||
must implement appropriate obj->atomic_get_property() vfuncs
|
||||
for any modeset objects with driver specific properties.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect3>
|
||||
<sect3>
|
||||
@@ -1377,7 +1385,7 @@ int max_width, max_height;</synopsis>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
DRM_PLANE_TYPE_PRIMARY represents a "main" plane for a CRTC. Primary
|
||||
planes are the planes operated upon by by CRTC modesetting and flipping
|
||||
planes are the planes operated upon by CRTC modesetting and flipping
|
||||
operations described in <xref linkend="drm-kms-crtcops"/>.
|
||||
</listitem>
|
||||
<listitem>
|
||||
@@ -2362,6 +2370,7 @@ void intel_crt_init(struct drm_device *dev)
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Modeset Helper Functions Reference</title>
|
||||
!Iinclude/drm/drm_crtc_helper.h
|
||||
!Edrivers/gpu/drm/drm_crtc_helper.c
|
||||
!Pdrivers/gpu/drm/drm_crtc_helper.c overview
|
||||
</sect2>
|
||||
@@ -2564,8 +2573,8 @@ void intel_crt_init(struct drm_device *dev)
|
||||
<td valign="top" >Description/Restrictions</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="25" valign="top" >DRM</td>
|
||||
<td rowspan="4" valign="top" >Generic</td>
|
||||
<td rowspan="36" valign="top" >DRM</td>
|
||||
<td rowspan="5" valign="top" >Connector</td>
|
||||
<td valign="top" >“EDID”</td>
|
||||
<td valign="top" >BLOB | IMMUTABLE</td>
|
||||
<td valign="top" >0</td>
|
||||
@@ -2594,7 +2603,14 @@ void intel_crt_init(struct drm_device *dev)
|
||||
<td valign="top" >Contains tiling information for a connector.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" valign="top" >Plane</td>
|
||||
<td valign="top" >“CRTC_ID”</td>
|
||||
<td valign="top" >OBJECT</td>
|
||||
<td valign="top" >DRM_MODE_OBJECT_CRTC</td>
|
||||
<td valign="top" >Connector</td>
|
||||
<td valign="top" >CRTC that connector is attached to (atomic)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="11" valign="top" >Plane</td>
|
||||
<td valign="top" >“type”</td>
|
||||
<td valign="top" >ENUM | IMMUTABLE</td>
|
||||
<td valign="top" >{ "Overlay", "Primary", "Cursor" }</td>
|
||||
@@ -2602,6 +2618,76 @@ void intel_crt_init(struct drm_device *dev)
|
||||
<td valign="top" >Plane type</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" >“SRC_X”</td>
|
||||
<td valign="top" >RANGE</td>
|
||||
<td valign="top" >Min=0, Max=UINT_MAX</td>
|
||||
<td valign="top" >Plane</td>
|
||||
<td valign="top" >Scanout source x coordinate in 16.16 fixed point (atomic)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" >“SRC_Y”</td>
|
||||
<td valign="top" >RANGE</td>
|
||||
<td valign="top" >Min=0, Max=UINT_MAX</td>
|
||||
<td valign="top" >Plane</td>
|
||||
<td valign="top" >Scanout source y coordinate in 16.16 fixed point (atomic)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" >“SRC_W”</td>
|
||||
<td valign="top" >RANGE</td>
|
||||
<td valign="top" >Min=0, Max=UINT_MAX</td>
|
||||
<td valign="top" >Plane</td>
|
||||
<td valign="top" >Scanout source width in 16.16 fixed point (atomic)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" >“SRC_H”</td>
|
||||
<td valign="top" >RANGE</td>
|
||||
<td valign="top" >Min=0, Max=UINT_MAX</td>
|
||||
<td valign="top" >Plane</td>
|
||||
<td valign="top" >Scanout source height in 16.16 fixed point (atomic)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" >“CRTC_X”</td>
|
||||
<td valign="top" >SIGNED_RANGE</td>
|
||||
<td valign="top" >Min=INT_MIN, Max=INT_MAX</td>
|
||||
<td valign="top" >Plane</td>
|
||||
<td valign="top" >Scanout CRTC (destination) x coordinate (atomic)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" >“CRTC_Y”</td>
|
||||
<td valign="top" >SIGNED_RANGE</td>
|
||||
<td valign="top" >Min=INT_MIN, Max=INT_MAX</td>
|
||||
<td valign="top" >Plane</td>
|
||||
<td valign="top" >Scanout CRTC (destination) y coordinate (atomic)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" >“CRTC_W”</td>
|
||||
<td valign="top" >RANGE</td>
|
||||
<td valign="top" >Min=0, Max=UINT_MAX</td>
|
||||
<td valign="top" >Plane</td>
|
||||
<td valign="top" >Scanout CRTC (destination) width (atomic)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" >“CRTC_H”</td>
|
||||
<td valign="top" >RANGE</td>
|
||||
<td valign="top" >Min=0, Max=UINT_MAX</td>
|
||||
<td valign="top" >Plane</td>
|
||||
<td valign="top" >Scanout CRTC (destination) height (atomic)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" >“FB_ID”</td>
|
||||
<td valign="top" >OBJECT</td>
|
||||
<td valign="top" >DRM_MODE_OBJECT_FB</td>
|
||||
<td valign="top" >Plane</td>
|
||||
<td valign="top" >Scanout framebuffer (atomic)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" >“CRTC_ID”</td>
|
||||
<td valign="top" >OBJECT</td>
|
||||
<td valign="top" >DRM_MODE_OBJECT_CRTC</td>
|
||||
<td valign="top" >Plane</td>
|
||||
<td valign="top" >CRTC that plane is attached to (atomic)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2" valign="top" >DVI-I</td>
|
||||
<td valign="top" >“subconnector”</td>
|
||||
<td valign="top" >ENUM</td>
|
||||
@@ -3883,6 +3969,7 @@ int num_ioctls;</synopsis>
|
||||
<title>Runtime Power Management</title>
|
||||
!Pdrivers/gpu/drm/i915/intel_runtime_pm.c runtime pm
|
||||
!Idrivers/gpu/drm/i915/intel_runtime_pm.c
|
||||
!Idrivers/gpu/drm/i915/intel_uncore.c
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Interrupt Handling</title>
|
||||
@@ -3931,6 +4018,11 @@ int num_ioctls;</synopsis>
|
||||
framebuffer compression and panel self refresh.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Atomic Plane Helpers</title>
|
||||
!Pdrivers/gpu/drm/i915/intel_atomic_plane.c atomic plane helpers
|
||||
!Idrivers/gpu/drm/i915/intel_atomic_plane.c
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Output Probing</title>
|
||||
<para>
|
||||
@@ -3949,6 +4041,11 @@ int num_ioctls;</synopsis>
|
||||
<title>Panel Self Refresh PSR (PSR/SRD)</title>
|
||||
!Pdrivers/gpu/drm/i915/intel_psr.c Panel Self Refresh (PSR/SRD)
|
||||
!Idrivers/gpu/drm/i915/intel_psr.c
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Frame Buffer Compression (FBC)</title>
|
||||
!Pdrivers/gpu/drm/i915/intel_fbc.c Frame Buffer Compression (FBC)
|
||||
!Idrivers/gpu/drm/i915/intel_fbc.c
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>DPIO</title>
|
||||
@@ -4052,12 +4149,33 @@ int num_ioctls;</synopsis>
|
||||
<title>Batchbuffer Parsing</title>
|
||||
!Pdrivers/gpu/drm/i915/i915_cmd_parser.c batch buffer command parser
|
||||
!Idrivers/gpu/drm/i915/i915_cmd_parser.c
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Batchbuffer Pools</title>
|
||||
!Pdrivers/gpu/drm/i915/i915_gem_batch_pool.c batch pool
|
||||
!Idrivers/gpu/drm/i915/i915_gem_batch_pool.c
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Logical Rings, Logical Ring Contexts and Execlists</title>
|
||||
!Pdrivers/gpu/drm/i915/intel_lrc.c Logical Rings, Logical Ring Contexts and Execlists
|
||||
!Idrivers/gpu/drm/i915/intel_lrc.c
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Global GTT views</title>
|
||||
!Pdrivers/gpu/drm/i915/i915_gem_gtt.c Global GTT views
|
||||
!Idrivers/gpu/drm/i915/i915_gem_gtt.c
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Buffer Object Eviction</title>
|
||||
<para>
|
||||
This section documents the interface function for evicting buffer
|
||||
objects to make space available in the virtual gpu address spaces.
|
||||
Note that this is mostly orthogonal to shrinking buffer objects
|
||||
caches, which has the goal to make main memory (shared with the gpu
|
||||
through the unified memory architecture) available.
|
||||
</para>
|
||||
!Idrivers/gpu/drm/i915/i915_gem_evict.c
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
Device-Tree bindings for Atmel's HLCDC (High LCD Controller) DRM driver
|
||||
|
||||
The Atmel HLCDC Display Controller is subdevice of the HLCDC MFD device.
|
||||
See ../mfd/atmel-hlcdc.txt for more details.
|
||||
|
||||
Required properties:
|
||||
- compatible: value should be "atmel,hlcdc-display-controller"
|
||||
- pinctrl-names: the pin control state names. Should contain "default".
|
||||
- pinctrl-0: should contain the default pinctrl states.
|
||||
- #address-cells: should be set to 1.
|
||||
- #size-cells: should be set to 0.
|
||||
|
||||
Required children nodes:
|
||||
Children nodes are encoding available output ports and their connections
|
||||
to external devices using the OF graph reprensentation (see ../graph.txt).
|
||||
At least one port node is required.
|
||||
|
||||
Example:
|
||||
|
||||
hlcdc: hlcdc@f0030000 {
|
||||
compatible = "atmel,sama5d3-hlcdc";
|
||||
reg = <0xf0030000 0x2000>;
|
||||
interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
|
||||
clock-names = "periph_clk","sys_clk", "slow_clk";
|
||||
status = "disabled";
|
||||
|
||||
hlcdc-display-controller {
|
||||
compatible = "atmel,hlcdc-display-controller";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
|
||||
hlcdc_panel_output: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&panel_input>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hlcdc_pwm: hlcdc-pwm {
|
||||
compatible = "atmel,hlcdc-pwm";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_lcd_pwm>;
|
||||
#pwm-cells = <3>;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,50 @@
|
||||
DesignWare HDMI bridge bindings
|
||||
|
||||
Required properties:
|
||||
- compatible: platform specific such as:
|
||||
* "snps,dw-hdmi-tx"
|
||||
* "fsl,imx6q-hdmi"
|
||||
* "fsl,imx6dl-hdmi"
|
||||
* "rockchip,rk3288-dw-hdmi"
|
||||
- reg: Physical base address and length of the controller's registers.
|
||||
- interrupts: The HDMI interrupt number
|
||||
- clocks, clock-names : must have the phandles to the HDMI iahb and isfr clocks,
|
||||
as described in Documentation/devicetree/bindings/clock/clock-bindings.txt,
|
||||
the clocks are soc specific, the clock-names should be "iahb", "isfr"
|
||||
-port@[X]: SoC specific port nodes with endpoint definitions as defined
|
||||
in Documentation/devicetree/bindings/media/video-interfaces.txt,
|
||||
please refer to the SoC specific binding document:
|
||||
* Documentation/devicetree/bindings/drm/imx/hdmi.txt
|
||||
* Documentation/devicetree/bindings/video/dw_hdmi-rockchip.txt
|
||||
|
||||
Optional properties
|
||||
- reg-io-width: the width of the reg:1,4, default set to 1 if not present
|
||||
- ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing
|
||||
- clocks, clock-names: phandle to the HDMI CEC clock, name should be "cec"
|
||||
|
||||
Example:
|
||||
hdmi: hdmi@0120000 {
|
||||
compatible = "fsl,imx6q-hdmi";
|
||||
reg = <0x00120000 0x9000>;
|
||||
interrupts = <0 115 0x04>;
|
||||
gpr = <&gpr>;
|
||||
clocks = <&clks 123>, <&clks 124>;
|
||||
clock-names = "iahb", "isfr";
|
||||
ddc-i2c-bus = <&i2c2>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
hdmi_mux_0: endpoint {
|
||||
remote-endpoint = <&ipu1_di0_hdmi>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
hdmi_mux_1: endpoint {
|
||||
remote-endpoint = <&ipu1_di1_hdmi>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -2,6 +2,8 @@ Qualcomm adreno/snapdragon hdmi output
|
||||
|
||||
Required properties:
|
||||
- compatible: one of the following
|
||||
* "qcom,hdmi-tx-8084"
|
||||
* "qcom,hdmi-tx-8074"
|
||||
* "qcom,hdmi-tx-8660"
|
||||
* "qcom,hdmi-tx-8960"
|
||||
- reg: Physical base address and length of the controller's registers
|
||||
|
||||
@@ -83,6 +83,22 @@ sti-hda:
|
||||
- clock-names: names of the clocks listed in clocks property in the same
|
||||
order.
|
||||
|
||||
sti-dvo:
|
||||
Required properties:
|
||||
must be a child of sti-tvout
|
||||
- compatible: "st,stih<chip>-dvo"
|
||||
- reg: Physical base address of the IP registers and length of memory mapped region.
|
||||
- reg-names: names of the mapped memory regions listed in regs property in
|
||||
the same order.
|
||||
- clocks: from common clock binding: handle hardware IP needed clocks, the
|
||||
number of clocks may depend of the SoC type.
|
||||
See ../clocks/clock-bindings.txt for details.
|
||||
- clock-names: names of the clocks listed in clocks property in the same
|
||||
order.
|
||||
- pinctrl-0: pin control handle
|
||||
- pinctrl-name: names of the pin control to use
|
||||
- sti,panel: phandle of the panel connected to the DVO output
|
||||
|
||||
sti-hqvdp:
|
||||
must be a child of sti-display-subsystem
|
||||
Required properties:
|
||||
@@ -198,6 +214,19 @@ Example:
|
||||
clock-names = "pix", "hddac";
|
||||
clocks = <&clockgen_c_vcc CLK_S_PIX_HD>, <&clockgen_c_vcc CLK_S_HDDAC>;
|
||||
};
|
||||
|
||||
sti-dvo@8d00400 {
|
||||
compatible = "st,stih407-dvo";
|
||||
reg = <0x8d00400 0x200>;
|
||||
reg-names = "dvo-reg";
|
||||
clock-names = "dvo_pix", "dvo",
|
||||
"main_parent", "aux_parent";
|
||||
clocks = <&clk_s_d2_flexgen CLK_PIX_DVO>, <&clk_s_d2_flexgen CLK_DVO>,
|
||||
<&clk_s_d2_quadfs 0>, <&clk_s_d2_quadfs 1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_dvo>;
|
||||
sti,panel = <&panel_dvo>;
|
||||
};
|
||||
};
|
||||
|
||||
sti-hqvdp@9c000000 {
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
Shanghai AVIC Optoelectronics 7" 1024x600 color TFT-LCD panel
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "avic,tm070ddh03"
|
||||
|
||||
This binding is compatible with the simple-panel binding, which is specified
|
||||
in simple-panel.txt in this directory.
|
||||
@@ -0,0 +1,7 @@
|
||||
GiantPlus GPG48273QS5 4.3" (480x272) WQVGA TFT LCD panel
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "giantplus,gpg48273qs5"
|
||||
|
||||
This binding is compatible with the simple-panel binding, which is specified
|
||||
in simple-panel.txt in this directory.
|
||||
@@ -25,6 +25,7 @@ asahi-kasei Asahi Kasei Corp.
|
||||
atmel Atmel Corporation
|
||||
auo AU Optronics Corporation
|
||||
avago Avago Technologies
|
||||
avic Shanghai AVIC Optoelectronics Co., Ltd.
|
||||
bosch Bosch Sensortec GmbH
|
||||
brcm Broadcom Corporation
|
||||
buffalo Buffalo, Inc.
|
||||
@@ -68,6 +69,7 @@ fsl Freescale Semiconductor
|
||||
GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc.
|
||||
gef GE Fanuc Intelligent Platforms Embedded Systems, Inc.
|
||||
geniatech Geniatech, Inc.
|
||||
giantplus Giantplus Technology Co., Ltd.
|
||||
globalscale Globalscale Technologies, Inc.
|
||||
gmt Global Mixed-mode Technology, Inc.
|
||||
google Google, Inc.
|
||||
@@ -126,6 +128,7 @@ onnn ON Semiconductor Corp.
|
||||
opencores OpenCores.org
|
||||
ovti OmniVision Technologies
|
||||
panasonic Panasonic Corporation
|
||||
parade Parade Technologies Inc.
|
||||
pericom Pericom Technology Inc.
|
||||
phytec PHYTEC Messtechnik GmbH
|
||||
picochip Picochip Ltd
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
ps8622-bridge bindings
|
||||
|
||||
Required properties:
|
||||
- compatible: "parade,ps8622" or "parade,ps8625"
|
||||
- reg: first i2c address of the bridge
|
||||
- sleep-gpios: OF device-tree gpio specification for PD_ pin.
|
||||
- reset-gpios: OF device-tree gpio specification for RST_ pin.
|
||||
|
||||
Optional properties:
|
||||
- lane-count: number of DP lanes to use
|
||||
- use-external-pwm: backlight will be controlled by an external PWM
|
||||
- video interfaces: Device node can contain video interface port
|
||||
nodes for panel according to [1].
|
||||
|
||||
[1]: Documentation/devicetree/bindings/media/video-interfaces.txt
|
||||
|
||||
Example:
|
||||
lvds-bridge@48 {
|
||||
compatible = "parade,ps8622";
|
||||
reg = <0x48>;
|
||||
sleep-gpios = <&gpc3 6 1 0 0>;
|
||||
reset-gpios = <&gpc3 1 1 0 0>;
|
||||
lane-count = <1>;
|
||||
ports {
|
||||
port@0 {
|
||||
bridge_out: endpoint {
|
||||
remote-endpoint = <&panel_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
+14
-2
@@ -3,8 +3,8 @@ ptn3460 bridge bindings
|
||||
Required properties:
|
||||
- compatible: "nxp,ptn3460"
|
||||
- reg: i2c address of the bridge
|
||||
- powerdown-gpio: OF device-tree gpio specification
|
||||
- reset-gpio: OF device-tree gpio specification
|
||||
- powerdown-gpio: OF device-tree gpio specification for PD_N pin.
|
||||
- reset-gpio: OF device-tree gpio specification for RST_N pin.
|
||||
- edid-emulation: The EDID emulation entry to use
|
||||
+-------+------------+------------------+
|
||||
| Value | Resolution | Description |
|
||||
@@ -17,6 +17,11 @@ Required properties:
|
||||
| 6 | 1600x900 | ChiMei M215HGE |
|
||||
+-------+------------+------------------+
|
||||
|
||||
- video interfaces: Device node can contain video interface port
|
||||
nodes for panel according to [1].
|
||||
|
||||
[1]: Documentation/devicetree/bindings/media/video-interfaces.txt
|
||||
|
||||
Example:
|
||||
lvds-bridge@20 {
|
||||
compatible = "nxp,ptn3460";
|
||||
@@ -24,4 +29,11 @@ Example:
|
||||
powerdown-gpio = <&gpy2 5 1 0 0>;
|
||||
reset-gpio = <&gpx1 5 1 0 0>;
|
||||
edid-emulation = <5>;
|
||||
ports {
|
||||
port@0 {
|
||||
bridge_out: endpoint {
|
||||
remote-endpoint = <&panel_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,46 @@
|
||||
Rockchip specific extensions to the Synopsys Designware HDMI
|
||||
================================
|
||||
|
||||
Required properties:
|
||||
- compatible: "rockchip,rk3288-dw-hdmi";
|
||||
- reg: Physical base address and length of the controller's registers.
|
||||
- clocks: phandle to hdmi iahb and isfr clocks.
|
||||
- clock-names: should be "iahb" "isfr"
|
||||
- rockchip,grf: this soc should set GRF regs to mux vopl/vopb.
|
||||
- interrupts: HDMI interrupt number
|
||||
- ports: contain a port node with endpoint definitions as defined in
|
||||
Documentation/devicetree/bindings/media/video-interfaces.txt. For
|
||||
vopb,set the reg = <0> and set the reg = <1> for vopl.
|
||||
- reg-io-width: the width of the reg:1,4, the value should be 4 on
|
||||
rk3288 platform
|
||||
|
||||
Optional properties
|
||||
- ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing
|
||||
- clocks, clock-names: phandle to the HDMI CEC clock, name should be "cec"
|
||||
|
||||
Example:
|
||||
hdmi: hdmi@ff980000 {
|
||||
compatible = "rockchip,rk3288-dw-hdmi";
|
||||
reg = <0xff980000 0x20000>;
|
||||
reg-io-width = <4>;
|
||||
ddc-i2c-bus = <&i2c5>;
|
||||
rockchip,grf = <&grf>;
|
||||
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
|
||||
clock-names = "iahb", "isfr";
|
||||
status = "disabled";
|
||||
ports {
|
||||
hdmi_in: port {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
hdmi_in_vopb: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&vopb_out_hdmi>;
|
||||
};
|
||||
hdmi_in_vopl: endpoint@1 {
|
||||
reg = <1>;
|
||||
remote-endpoint = <&vopl_out_hdmi>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,68 @@
|
||||
Device-Tree bindings for Samsung Exynos7 SoC display controller (DECON)
|
||||
|
||||
DECON (Display and Enhancement Controller) is the Display Controller for the
|
||||
Exynos7 series of SoCs which transfers the image data from a video memory
|
||||
buffer to an external LCD interface.
|
||||
|
||||
Required properties:
|
||||
- compatible: value should be "samsung,exynos7-decon";
|
||||
|
||||
- reg: physical base address and length of the DECON registers set.
|
||||
|
||||
- interrupt-parent: should be the phandle of the decon controller's
|
||||
parent interrupt controller.
|
||||
|
||||
- interrupts: should contain a list of all DECON IP block interrupts in the
|
||||
order: FIFO Level, VSYNC, LCD_SYSTEM. The interrupt specifier
|
||||
format depends on the interrupt controller used.
|
||||
|
||||
- interrupt-names: should contain the interrupt names: "fifo", "vsync",
|
||||
"lcd_sys", in the same order as they were listed in the interrupts
|
||||
property.
|
||||
|
||||
- pinctrl-0: pin control group to be used for this controller.
|
||||
|
||||
- pinctrl-names: must contain a "default" entry.
|
||||
|
||||
- clocks: must include clock specifiers corresponding to entries in the
|
||||
clock-names property.
|
||||
|
||||
- clock-names: list of clock names sorted in the same order as the clocks
|
||||
property. Must contain "pclk_decon0", "aclk_decon0",
|
||||
"decon0_eclk", "decon0_vclk".
|
||||
- i80-if-timings: timing configuration for lcd i80 interface support.
|
||||
|
||||
Optional Properties:
|
||||
- samsung,power-domain: a phandle to DECON power domain node.
|
||||
- display-timings: timing settings for DECON, as described in document [1].
|
||||
Can be used in case timings cannot be provided otherwise
|
||||
or to override timings provided by the panel.
|
||||
|
||||
[1]: Documentation/devicetree/bindings/video/display-timing.txt
|
||||
|
||||
Example:
|
||||
|
||||
SoC specific DT entry:
|
||||
|
||||
decon@13930000 {
|
||||
compatible = "samsung,exynos7-decon";
|
||||
interrupt-parent = <&combiner>;
|
||||
reg = <0x13930000 0x1000>;
|
||||
interrupt-names = "lcd_sys", "vsync", "fifo";
|
||||
interrupts = <0 188 0>, <0 189 0>, <0 190 0>;
|
||||
clocks = <&clock_disp PCLK_DECON_INT>,
|
||||
<&clock_disp ACLK_DECON_INT>,
|
||||
<&clock_disp SCLK_DECON_INT_ECLK>,
|
||||
<&clock_disp SCLK_DECON_INT_EXTCLKPLL>;
|
||||
clock-names = "pclk_decon0", "aclk_decon0", "decon0_eclk",
|
||||
"decon0_vclk";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
Board specific DT entry:
|
||||
|
||||
decon@13930000 {
|
||||
pinctrl-0 = <&lcd_clk &pwm1_out>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
@@ -66,6 +66,10 @@ Optional properties for dp-controller:
|
||||
Hotplug detect GPIO.
|
||||
Indicates which GPIO should be used for hotplug
|
||||
detection
|
||||
-video interfaces: Device node can contain video interface port
|
||||
nodes according to [1].
|
||||
|
||||
[1]: Documentation/devicetree/bindings/media/video-interfaces.txt
|
||||
|
||||
Example:
|
||||
|
||||
@@ -105,4 +109,12 @@ Board Specific portion:
|
||||
vsync-len = <6>;
|
||||
};
|
||||
};
|
||||
|
||||
ports {
|
||||
port@0 {
|
||||
dp_out: endpoint {
|
||||
remote-endpoint = <&bridge_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -15,6 +15,7 @@ Required properties:
|
||||
a) mixer: Gate of Mixer IP bus clock.
|
||||
b) sclk_hdmi: HDMI Special clock, one of the two possible inputs of
|
||||
mixer mux.
|
||||
c) hdmi: Gate of HDMI IP bus clock, needed together with sclk_hdmi.
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
@@ -26,6 +26,10 @@ Required Properties:
|
||||
per LVDS encoder. The functional clocks must be named "du.x" with "x"
|
||||
being the channel numerical index. The LVDS clocks must be named
|
||||
"lvds.x" with "x" being the LVDS encoder numerical index.
|
||||
- In addition to the functional and encoder clocks, all DU versions also
|
||||
support externally supplied pixel clocks. Those clocks are optional.
|
||||
When supplied they must be named "dclkin.x" with "x" being the input
|
||||
clock numerical index.
|
||||
|
||||
Required nodes:
|
||||
|
||||
|
||||
@@ -630,6 +630,8 @@ L: dri-devel@lists.freedesktop.org
|
||||
T: git git://people.freedesktop.org/~gabbayo/linux.git
|
||||
S: Supported
|
||||
F: drivers/gpu/drm/amd/amdkfd/
|
||||
F: drivers/gpu/drm/amd/include/cik_structs.h
|
||||
F: drivers/gpu/drm/amd/include/kgd_kfd_interface.h
|
||||
F: drivers/gpu/drm/radeon/radeon_kfd.c
|
||||
F: drivers/gpu/drm/radeon/radeon_kfd.h
|
||||
F: include/uapi/linux/kfd_ioctl.h
|
||||
|
||||
@@ -219,7 +219,10 @@ struct agp_bridge_data *agp_generic_find_bridge(struct pci_dev *pdev);
|
||||
/* generic functions for user-populated AGP memory types */
|
||||
struct agp_memory *agp_generic_alloc_user(size_t page_count, int type);
|
||||
void agp_alloc_page_array(size_t size, struct agp_memory *mem);
|
||||
void agp_free_page_array(struct agp_memory *mem);
|
||||
static inline void agp_free_page_array(struct agp_memory *mem)
|
||||
{
|
||||
kvfree(mem->pages);
|
||||
}
|
||||
|
||||
|
||||
/* generic routines for agp>=3 */
|
||||
|
||||
@@ -98,17 +98,6 @@ void agp_alloc_page_array(size_t size, struct agp_memory *mem)
|
||||
}
|
||||
EXPORT_SYMBOL(agp_alloc_page_array);
|
||||
|
||||
void agp_free_page_array(struct agp_memory *mem)
|
||||
{
|
||||
if (is_vmalloc_addr(mem->pages)) {
|
||||
vfree(mem->pages);
|
||||
} else {
|
||||
kfree(mem->pages);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(agp_free_page_array);
|
||||
|
||||
|
||||
static struct agp_memory *agp_create_user_memory(unsigned long num_agp_pages)
|
||||
{
|
||||
struct agp_memory *new;
|
||||
|
||||
@@ -225,7 +225,7 @@ static int i810_insert_dcache_entries(struct agp_memory *mem, off_t pg_start,
|
||||
intel_private.driver->write_entry(addr,
|
||||
i, type);
|
||||
}
|
||||
readl(intel_private.gtt+i-1);
|
||||
wmb();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -329,7 +329,7 @@ static void i810_write_entry(dma_addr_t addr, unsigned int entry,
|
||||
break;
|
||||
}
|
||||
|
||||
writel(addr | pte_flags, intel_private.gtt + entry);
|
||||
writel_relaxed(addr | pte_flags, intel_private.gtt + entry);
|
||||
}
|
||||
|
||||
static const struct aper_size_info_fixed intel_fake_agp_sizes[] = {
|
||||
@@ -735,7 +735,7 @@ static void i830_write_entry(dma_addr_t addr, unsigned int entry,
|
||||
if (flags == AGP_USER_CACHED_MEMORY)
|
||||
pte_flags |= I830_PTE_SYSTEM_CACHED;
|
||||
|
||||
writel(addr | pte_flags, intel_private.gtt + entry);
|
||||
writel_relaxed(addr | pte_flags, intel_private.gtt + entry);
|
||||
}
|
||||
|
||||
bool intel_enable_gtt(void)
|
||||
@@ -858,7 +858,7 @@ void intel_gtt_insert_sg_entries(struct sg_table *st,
|
||||
j++;
|
||||
}
|
||||
}
|
||||
readl(intel_private.gtt+j-1);
|
||||
wmb();
|
||||
}
|
||||
EXPORT_SYMBOL(intel_gtt_insert_sg_entries);
|
||||
|
||||
@@ -875,7 +875,7 @@ static void intel_gtt_insert_pages(unsigned int first_entry,
|
||||
intel_private.driver->write_entry(addr,
|
||||
j, flags);
|
||||
}
|
||||
readl(intel_private.gtt+j-1);
|
||||
wmb();
|
||||
}
|
||||
|
||||
static int intel_fake_agp_insert_entries(struct agp_memory *mem,
|
||||
@@ -938,7 +938,7 @@ void intel_gtt_clear_range(unsigned int first_entry, unsigned int num_entries)
|
||||
intel_private.driver->write_entry(intel_private.scratch_page_dma,
|
||||
i, 0);
|
||||
}
|
||||
readl(intel_private.gtt+i-1);
|
||||
wmb();
|
||||
}
|
||||
EXPORT_SYMBOL(intel_gtt_clear_range);
|
||||
|
||||
@@ -1106,7 +1106,7 @@ static void i965_write_entry(dma_addr_t addr,
|
||||
|
||||
/* Shift high bits down */
|
||||
addr |= (addr >> 28) & 0xf0;
|
||||
writel(addr | pte_flags, intel_private.gtt + entry);
|
||||
writel_relaxed(addr | pte_flags, intel_private.gtt + entry);
|
||||
}
|
||||
|
||||
static int i9xx_setup(void)
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
obj-y += drm/ vga/
|
||||
# drm/tegra depends on host1x, so if both drivers are built-in care must be
|
||||
# taken to initialize them in the correct order. Link order is the only way
|
||||
# to ensure this currently.
|
||||
obj-$(CONFIG_TEGRA_HOST1X) += host1x/
|
||||
obj-y += drm/ vga/
|
||||
obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user