Skip to content

Commit

Permalink
Merge tag 'drm/panel/for-3.20-rc1' of git://anongit.freedesktop.org/t…
Browse files Browse the repository at this point in the history
…egra/linux into drm-next

drm/panel: Changes for v3.20-rc1

This contains the long-awaited drm_bridge series that makes Chromebooks
work for people. I had thought this would've been perfect by now, but
then I go and build test it and the first thing it does is yell about a
recursive dependency. I fixed that up because I was feeling bad for not
getting around to look at this earlier.

Biseds that there is new support for two more panels, a couple of fixup
patches to the Sharp LQ101R1SX01 dual-channel DSI panel driver and a
potential NULL pointer dereference fix.

* tag 'drm/panel/for-3.20-rc1' of git://anongit.freedesktop.org/tegra/linux: (23 commits)
  drm/bridge: dw-hdmi: Adapt to bridge API change
  drm/sti: fixup for bridge interface
  drm/bridge: dw-hdmi: Fix return error path
  drm: Check the right variable when setting formats
  Documentation: bridge: Add documentation for ps8622 DT properties
  Documentation: devicetree: Add vendor prefix for parade
  Documentation: drm: bridge: move to video/bridge
  drm/bridge: ptn3460: use gpiod interface
  drm/bridge: ptn3460: probe connector at the end of bridge attach
  drm/bridge: ptn3460: support drm_panel
  drm/exynos: dp: support drm_bridge
  drm/bridge: ptn3460: Convert to I2C driver model
  drm/bridge: make bridge registration independent of drm flow
  drm/bridge: do not pass drm_bridge_funcs to drm_bridge_init
  drm/bridge: ptn3460: Few trivial cleanups
  drm/panel: simple: Add AVIC TM070DDH03 panel support
  of: Add vendor prefix for Shanghai AVIC Optoelectronics Co., Ltd.
  drm/panel: sharp: lq101r1sx01: Remove unneeded include
  drm/panel: sharp: lq101r1sx01: Respect power timings
  drm/panel: sharp: lq101r1sx01: Add delay after display on
  ...
  • Loading branch information
airlied committed Jan 29, 2015
2 parents 21773f1 + b5217bf commit 7b83741
Show file tree
Hide file tree
Showing 25 changed files with 531 additions and 294 deletions.
7 changes: 7 additions & 0 deletions Documentation/devicetree/bindings/panel/avic,tm070ddh03.txt
Original file line number Diff line number Diff line change
@@ -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.
Original file line number Diff line number Diff line change
@@ -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.
3 changes: 3 additions & 0 deletions Documentation/devicetree/bindings/vendor-prefixes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ armadeus ARMadeus Systems SARL
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.
Expand Down Expand Up @@ -62,6 +63,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.
Expand Down Expand Up @@ -119,6 +121,7 @@ nxp NXP Semiconductors
onnn ON Semiconductor Corp.
opencores OpenCores.org
panasonic Panasonic Corporation
parade Parade Technologies Inc.
pericom Pericom Technology Inc.
phytec PHYTEC Messtechnik GmbH
picochip Picochip Ltd
Expand Down
31 changes: 31 additions & 0 deletions Documentation/devicetree/bindings/video/bridge/ps8622.txt
Original file line number Diff line number Diff line change
@@ -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>;
};
};
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
Expand All @@ -17,11 +17,23 @@ 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";
reg = <0x20>;
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>;
};
};
};
};
12 changes: 12 additions & 0 deletions Documentation/devicetree/bindings/video/exynos_dp.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down Expand Up @@ -105,4 +109,12 @@ Board Specific portion:
vsync-len = <6>;
};
};

ports {
port@0 {
dp_out: endpoint {
remote-endpoint = <&bridge_in>;
};
};
};
};
2 changes: 1 addition & 1 deletion drivers/gpu/drm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ drm-y := drm_auth.o drm_bufs.o drm_cache.o \
drm_info.o drm_debugfs.o drm_encoder_slave.o \
drm_trace_points.o drm_global.o drm_prime.o \
drm_rect.o drm_vma_manager.o drm_flip_work.o \
drm_modeset_lock.o drm_atomic.o
drm_modeset_lock.o drm_atomic.o drm_bridge.o

drm-$(CONFIG_COMPAT) += drm_ioc32.o
drm-$(CONFIG_DRM_GEM_CMA_HELPER) += drm_gem_cma_helper.o
Expand Down
13 changes: 8 additions & 5 deletions drivers/gpu/drm/bridge/Kconfig
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
config DRM_PTN3460
tristate "PTN3460 DP/LVDS bridge"
config DRM_DW_HDMI
tristate
depends on DRM
select DRM_KMS_HELPER
---help---

config DRM_DW_HDMI
tristate
config DRM_PTN3460
tristate "PTN3460 DP/LVDS bridge"
depends on DRM
depends on OF
select DRM_KMS_HELPER
select DRM_PANEL
---help---
ptn3460 eDP-LVDS bridge chip driver.
13 changes: 3 additions & 10 deletions drivers/gpu/drm/bridge/dw_hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1373,12 +1373,6 @@ static void dw_hdmi_bridge_enable(struct drm_bridge *bridge)
dw_hdmi_poweron(hdmi);
}

static void dw_hdmi_bridge_destroy(struct drm_bridge *bridge)
{
drm_bridge_cleanup(bridge);
kfree(bridge);
}

static void dw_hdmi_bridge_nop(struct drm_bridge *bridge)
{
/* do nothing */
Expand Down Expand Up @@ -1468,7 +1462,6 @@ struct drm_bridge_funcs dw_hdmi_bridge_funcs = {
.post_disable = dw_hdmi_bridge_nop,
.mode_set = dw_hdmi_bridge_mode_set,
.mode_fixup = dw_hdmi_bridge_mode_fixup,
.destroy = dw_hdmi_bridge_destroy,
};

static irqreturn_t dw_hdmi_hardirq(int irq, void *dev_id)
Expand Down Expand Up @@ -1531,8 +1524,8 @@ static int dw_hdmi_register(struct drm_device *drm, struct dw_hdmi *hdmi)

hdmi->bridge = bridge;
bridge->driver_private = hdmi;

ret = drm_bridge_init(drm, bridge, &dw_hdmi_bridge_funcs);
bridge->funcs = &dw_hdmi_bridge_funcs;
ret = drm_bridge_attach(drm, bridge);
if (ret) {
DRM_ERROR("Failed to initialize bridge with drm\n");
return -EINVAL;
Expand Down Expand Up @@ -1649,7 +1642,7 @@ int dw_hdmi_bind(struct device *dev, struct device *master,
dw_hdmi_irq, IRQF_SHARED,
dev_name(dev), hdmi);
if (ret)
return ret;
goto err_iahb;

/*
* To prevent overflows in HDMI_IH_FC_STAT2, set the clk regenerator
Expand Down
Loading

0 comments on commit 7b83741

Please sign in to comment.