drm/tilcdc: Add bridge support and sync-lost flood recovery
Subsystems (6)
v5 cover drm/tilcdc: Add bridge support and sync-lost flood recovery
Changes since v4:
- "drm/bridge: Add ti-tfp410 DVI transmitter driver"
- Put i2c behind #if IS_ENABLED(CONFIG_I2C)
- "drm/tilcdc: Add drm bridge support for attaching drm bridge drivers"
- Use exsisting infrastructure to hookup crtc mode validation code to newly connected connector, whether that came from componentized driver or trough an attached bridge
Changes since v3:
- "drm/tilcdc: Enable sync lost error and recovery handling for rev 1 LCDC"
- Fix broken irq enable/disble code for LCDC rev 1
- Add: "dt-bindings: Move "ti,tfp410.txt" from display/ti to display/bridge"
- "drm/bridge: Add ti-tfp410 DVI transmitter driver"
- Don't fail if either i2c or platform driver register succeeds
- ftp410 -> tfp410
- Merge the old display/ti,tfp410.txt document with my addition
Changes since v2:
- "drm/tilcdc: Recover from sync lost error flood by resetting the LCDC"
- no change
- "drm/bridge: Add ti-tfp410 DVI transmitter driver"
- Fix deveice-tree document
- "driver node" -> "device node"
- remove "(the current implementation does not yet support this)"
- Add dummy i2c support. The driver probe works also if placed under i2c controller node, but there is no actual i2c probing.
- "drm/tilcdc: Add drm bridge support for attaching drm bridge drivers"
- no change
Changes since first version of the series:
- "drm/tilcdc: Recover from sync lost error flood by resetting the LCDC"
- no change
- "drm/bridge: Add ti-tfp410 DVI transmitter driver"
- HDMI -> DVI
- DT Binding document
- Prepare for tfp410 connected trough i2c by optional reg property
- Require two port nodes
- Implementation
- Implement connector node functionality with in tfp410 bridge drive, but follow generic connector binding by pulling the ddc-i2c-bus property from the connector node.
- "drm/tilcdc: Add drm bridge support for attaching drm bridge drivers"
- Remove earlier change in TD binding document. There is no need to mention DRM implementation details, like bridge support, in DT binding.
The first patch is an independent on and I've been testing it for quite a while now.
The tfp410 bridge driver and the tilcdc bridge support are tested with BeagleBone DVI-D Cape Rev A3. The tfp410 bridge driver is missing a lot of features, because the DVI-D cape does not have too many wires connected. The missing features can be added later when they are needed.
Jyri Sarha (4):
drm/tilcdc: Recover from sync lost error flood by resetting the LCDC
dt-bindings: Move "ti,tfp410.txt" from display/ti to display/bridge drm/bridge: Add ti-tfp410 DVI transmitter driver drm/tilcdc: Add drm bridge support for attaching drm bridge drivers
.../bindings/display/{ti => bridge}/ti,tfp410.txt | 9 +-
drivers/gpu/drm/bridge/Kconfig | 7 +
drivers/gpu/drm/bridge/Makefile | 1 +
drivers/gpu/drm/bridge/ti-tfp410.c | 317 +++++++++++++++++++++
drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 26 +-
drivers/gpu/drm/tilcdc/tilcdc_drv.c | 11 +-
drivers/gpu/drm/tilcdc/tilcdc_drv.h | 5 +-
drivers/gpu/drm/tilcdc/tilcdc_external.c | 260 ++++++++++++-----
drivers/gpu/drm/tilcdc/tilcdc_external.h | 5 +-
9 files changed, 564 insertions(+), 77 deletions(-)
rename Documentation/devicetree/bindings/display/{ti => bridge}/ti,tfp410.txt (65%)
create mode 100644 drivers/gpu/drm/bridge/ti-tfp410.cSignature · 6 lines
1.9.1 _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel
PATCH v5 1/4 drm/tilcdc: Recover from sync lost error flood by resetting the LCDC
Recover from sync lost error flood by resetting the LCDC instead of turning off the SYNC_LOST error IRQ. When LCDC starves on limited memory bandwidth it may sometimes result an error situation when the picture may have shifted couple of pixels to right and SYNC_LOST interrupt is generated on every frame. LCDC main reset recovers from this situation and causes a brief blanking on the screen.
--- drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-)
drivers/gpu/drm/tilcdc/tilcdc_crtc.c +25 -1
@@ -55,6 +55,7 @@ struct tilcdc_crtc {int sync_lost_count;bool frame_intact; +struct work_struct recover_work; };#define to_tilcdc_crtc (x) container_of(x, struct tilcdc_crtc, base)
@@ -252,6 +253,25 @@ static bool tilcdc_crtc_is_on(struct drm_crtc *crtc)return crtc->state && crtc->state->enable && crtc->state->active; } +static void tilcdc_crtc_recover_work (struct work_struct *work) +{ +struct tilcdc_crtc *tilcdc_crtc = + container_of(work, struct tilcdc_crtc, recover_work); +struct drm_crtc *crtc = &tilcdc_crtc->base; + +dev_info (crtc->dev->dev,"%s: Reset CRTC" , __func__); + +drm_modeset_lock_crtc (crtc,NULL ); + +if (!tilcdc_crtc_is_on (crtc)) + goto out; + +tilcdc_crtc_disable (crtc); +tilcdc_crtc_enable (crtc); +out: +drm_modeset_unlock_crtc (crtc); +} +static void tilcdc_crtc_destroy (struct drm_crtc *crtc) {struct tilcdc_crtc *tilcdc_crtc =to_tilcdc_crtc (crtc);
@@ -838,9 +858,12 @@ irqreturn_t tilcdc_crtc_irq(struct drm_crtc *crtc) tilcdc_crtc->frame_intact = false;if (tilcdc_crtc->sync_lost_count++ >SYNC_LOST_COUNT_LIMIT ) { -dev_err (dev->dev,"%s(0x%08x): Sync lost flood detected, disabling the interrupt" , __func__, stat); +dev_err (dev->dev,"%s(0x%08x): Sync lost flood detected, recovering" , __func__, stat); +queue_work (system_wq, + &tilcdc_crtc->recover_work);tilcdc_write (dev,LCDC_INT_ENABLE_CLR_REG ,LCDC_SYNC_LOST ); + tilcdc_crtc->sync_lost_count =0 ; } }
@@ -880,6 +903,7 @@ struct drm_crtc *tilcdc_crtc_create(struct drm_device *dev) "unref", unref_worker);spin_lock_init (&tilcdc_crtc->irq_lock); +INIT_WORK (&tilcdc_crtc->recover_work, tilcdc_crtc_recover_work); ret = drm_crtc_init_with_planes(dev, crtc, &tilcdc_crtc->primary,
Signature · 6 lines
1.9.1 _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel
PATCH v5 2/4 dt-bindings: Move "ti, tfp410.txt" from display/ti to display/bridge
In reply to Jyri SarhaMove "ti,tfp410.txt" from display/ti to display/bridge before adding generic (non omapdrm/dss specific) implementation and new features.
---
Documentation/devicetree/bindings/display/{ti => bridge}/ti,tfp410.txt | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename Documentation/devicetree/bindings/display/{ti => bridge}/ti,tfp410.txt (100%)Documentation/devicetree/bindings/display/bridge/ti,tfp410.txt renamed from Documentation/devicetree/bindings/display/ti/ti,tfp410.txt +0 -0
Signature · 6 lines
1.9.1 _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel
PATCH v5 3/4 drm/bridge: Add ti-tfp410 DVI transmitter driver
In reply to Jyri SarhaAdd very basic ti-tfp410 DVI transmitter driver. The only feature separating this from a completely dummy bridge is the EDID read support trough DDC I2C. Even that functionality should be in a separate generic connector driver. However, because of missing DRM infrastructure support the connector is implemented within the bridge driver. Some tfp410 HW specific features may be added later if needed, because there is a set of registers behind i2c if it is connected.
This implementation is tested against my new tilcdc bridge support and it works with BeagleBone DVI-D Cape Rev A3. A DT binding document is also updated.
--- .../bindings/display/bridge/ti,tfp410.txt | 9 +- drivers/gpu/drm/bridge/Kconfig | 7 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/ti-tfp410.c | 317 +++++++++++++++++++++ 4 files changed, 332 insertions(+), 2 deletions(-) create mode 100644 drivers/gpu/drm/bridge/ti-tfp410.c
Documentation/devicetree/bindings/display/bridge/ti,tfp410.txt +7 -2
@@ -6,10 +6,15 @@ Required properties: Optional properties: - powerdown-gpios: power-down gpio +- reg: I2C address. If and only if present the device node + should be placed into the i2c controller node where the + tfp410 i2c is connected to. Required nodes: -- Video port 0 for DPI input -- Video port 1 for DVI output +- Video port 0 for DPI input [1]. +- Video port 1 for DVI output [1]. + +[1]: Documentation/devicetree/bindings/media/video-interfaces.txt Example -------
drivers/gpu/drm/bridge/Kconfig +7 -0
@@ -81,6 +81,13 @@ config DRM_TOSHIBA_TC358767 ---help--- Toshiba TC358767 eDP bridge chip driver. +config DRM_TI_TFP410 + tristate "TI TFP410 DVI/HDMI bridge" + depends on OF + select DRM_KMS_HELPER + ---help--- + Texas Instruments TFP410 DVI/HDMI Transmitter driver + source "drivers/gpu/drm/bridge/analogix/Kconfig" source "drivers/gpu/drm/bridge/adv7511/Kconfig"
drivers/gpu/drm/bridge/Makefile +1 -0
@@ -11,3 +11,4 @@ obj-$(CONFIG_DRM_SII902X) += sii902x.o obj-$(CONFIG_DRM_TOSHIBA_TC358767) += tc358767.o obj-$(CONFIG_DRM_ANALOGIX_DP) += analogix/ obj-$(CONFIG_DRM_I2C_ADV7511) += adv7511/ +obj-$(CONFIG_DRM_TI_TFP410) += ti-tfp410.o
drivers/gpu/drm/bridge/ti-tfp410.c new file +317 -0
317 lines not on this page · raw message
Signature · 6 lines
1.9.1 _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v5 3/4] drm/bridge: Add ti-tfp410 DVI transmitter driver
The module unload should not be allowed while the bridge is attached. So still need to add these:
drivers/gpu/drm/bridge/ti-tfp410.c line 103
Quoted 6 lines · Jyri Sarha
drivers/gpu/drm/bridge/ti-tfp410.c new file +6
-0+ +static int tfp410_attach (struct drm_bridge *bridge) +{ +struct tfp410 *dvi =drm_bridge_to_tfp410 (bridge); +int ret; +
+ if (!try_module_get(THIS_MODULE)) {
+ dev_err(dvi->dev, "Module unloading\n");
+ return -ENODEV;
+ }
+
Quoted 9 lines
drivers/gpu/drm/bridge/ti-tfp410.c new file +9
-0+if (!bridge->encoder) { +dev_err (dvi->dev,"Missing encoder\n" ); +return -ENODEV ; + } + +drm_connector_helper_add (&dvi->connector, + &tfp410_con_helper_funcs); + ret =drm_connector_init (bridge->dev, &dvi->connector, + &tfp410_con_funcs,DRM_MODE_CONNECTOR_HDMIA );
drivers/gpu/drm/bridge/ti-tfp410.c line 122
Quoted 10 lines
drivers/gpu/drm/bridge/ti-tfp410.c new file +10
-0+if (ret) { +dev_err (dvi->dev,"drm_connector_init() failed: %d\n" , ret); +return ret; + } + +drm_mode_connector_attach_encoder (&dvi->connector, + bridge->encoder); + +return 0 ; +}
+static void tfp410_detach(struct drm_bridge *bridge) +{
+ module_put(THIS_MODULE);
+}
+
drivers/gpu/drm/bridge/ti-tfp410.c line 125
Quoted 3 lines
drivers/gpu/drm/bridge/ti-tfp410.c new file +3
-0+ +static const struct drm_bridge_funcs tfp410_bridge_funcs = { + .attach = tfp410_attach,
+ .detach = tfp410_detach,
Review
Quoted 2 lines
(quoted diff) +2
-0+}; +
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Laurent Pinchart
reviewerRe: [PATCH v5 3/4] drm/bridge: Add ti-tfp410 DVI transmitter driver
Hi Jyri,
Quoted 11 lines · On Tuesday 29 Nov 2016 22:18:25 Jyri Sarha wrote:
The module unload should not be allowed while the bridge is attached. So still need to add these:
Quoted 6 lines · Jyri Sarha
drivers/gpu/drm/bridge/ti-tfp410.c new file +6
-0+ +static int tfp410_attach (struct drm_bridge *bridge) +{ +struct tfp410 *dvi =drm_bridge_to_tfp410 (bridge); +int ret; +
drivers/gpu/drm/bridge/ti-tfp410.c line 108
Quoted 5 lines
drivers/gpu/drm/bridge/ti-tfp410.c new file +5
-0+if (!try_module_get (THIS_MODULE )) { +dev_err (dvi->dev,"Module unloading\n" ); +return -ENODEV ; + } +
Shouldn't this be done in core code ?
Quoted 34 lines
Quoted 19 lines
drivers/gpu/drm/bridge/ti-tfp410.c new file +19
-0+if (!bridge->encoder) { +dev_err (dvi->dev,"Missing encoder\n" ); +return -ENODEV ; + } + +drm_connector_helper_add (&dvi->connector, + &tfp410_con_helper_funcs); + ret =drm_connector_init (bridge->dev, &dvi->connector, + &tfp410_con_funcs,DRM_MODE_CONNECTOR_HDMIA ); +if (ret) { +dev_err (dvi->dev,"drm_connector_init() failed: %d\n" , ret); +return ret; + } + +drm_mode_connector_attach_encoder (&dvi->connector, + bridge->encoder); + +return 0 ; +}drivers/gpu/drm/bridge/ti-tfp410.c new file +5
-0+static void tfp410_detach (struct drm_bridge *bridge) +{ +module_put (THIS_MODULE ); +} +drivers/gpu/drm/bridge/ti-tfp410.c line 125
Quoted 4 lines
drivers/gpu/drm/bridge/ti-tfp410.c new file +3
-0+ +static const struct drm_bridge_funcs tfp410_bridge_funcs = { + .attach = tfp410_attach,+ .detach =
tfp410_detach,Quoted 2 lines
(quoted diff) +2
-0+}; +
Signature · 8 lines
Regards, Laurent Pinchart _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v5 3/4] drm/bridge: Add ti-tfp410 DVI transmitter driver
Quoted 19 lines · Laurent Pinchart
Hi Jyri,
Quoted 4 lines · On Tuesday 29 Nov 2016 22:18:25 Jyri Sarha wrote:
Quoted 4 lines
The module unload should not be allowed while the bridge is attached. So still need to add these:
On 11/25/16 11:02, Jyri Sarha wrote:
Quoted 12 lines
drivers/gpu/drm/bridge/ti-tfp410.c line 108
Quoted 12 lines
Quoted 6 lines
Quoted 6 lines
drivers/gpu/drm/bridge/ti-tfp410.c new file +6
-0+ +static int tfp410_attach (struct drm_bridge *bridge) +{ +struct tfp410 *dvi =drm_bridge_to_tfp410 (bridge); +int ret; +drivers/gpu/drm/bridge/ti-tfp410.c new file +5
-0+if (!try_module_get (THIS_MODULE )) { +dev_err (dvi->dev,"Module unloading\n" ); +return -ENODEV ; + } +
Quoted 2 lines
Shouldn't this be done in core code ?
Hmmm, probably. I'll send a patch shortly.
Cheers,
Jyri
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
PATCH v5 4/4 drm/tilcdc: Add drm bridge support for attaching drm bridge drivers
In reply to Jyri SarhaAdds drm bride support for attaching drm bridge drivers to tilcdc. The decision whether a video port leads to an external encoder or bridge is made simply based on remote device's compatible string. The code has been tested with BeagleBone-Black with and without BeagleBone DVI-D Cape Rev A3 using ti-tfp410 driver.
--- drivers/gpu/drm/tilcdc/tilcdc_drv.c | 11 +- drivers/gpu/drm/tilcdc/tilcdc_drv.h | 5 +- drivers/gpu/drm/tilcdc/tilcdc_external.c | 260 +++++++++++++++++++++++-------- drivers/gpu/drm/tilcdc/tilcdc_external.h | 5 +- 4 files changed, 207 insertions(+), 74 deletions(-)
drivers/gpu/drm/tilcdc/tilcdc_drv.c +8 -3
@@ -209,7 +209,7 @@ static void tilcdc_fini(struct drm_device *dev)drm_irq_uninstall (dev);drm_mode_config_cleanup (dev); -tilcdc_remove_external_encoders (dev); +tilcdc_remove_external_device (dev);#ifdef CONFIG_CPU_FREQ if (priv->freq_transition.notifier_call)
@@ -381,12 +381,17 @@ static int tilcdc_init(struct drm_driver *ddrv, struct device *dev)if (ret <0 ) goto init_failed; - ret =tilcdc_add_external_encoders (ddev); + ret =tilcdc_add_component_encoder (ddev);if (ret <0 ) goto init_failed; + }else { + ret =tilcdc_attach_external_device (ddev); +if (ret) + goto init_failed; } -if ((priv->num_encoders ==0 ) || (priv->num_connectors ==0 )) { +if (!priv->external_connector && + ((priv->num_encoders ==0 ) || (priv->num_connectors ==0 ))) {dev_err (dev,"no encoders/connectors found\n" ); ret = -ENXIO ; goto init_failed;
drivers/gpu/drm/tilcdc/tilcdc_drv.h +4 -1
@@ -88,7 +88,10 @@ struct tilcdc_drm_private {unsigned int num_connectors;struct drm_connector *connectors[8 ]; -const struct drm_connector_helper_funcs *connector_funcs[8 ]; + +struct drm_encoder *external_encoder; +struct drm_connector *external_connector; +const struct drm_connector_helper_funcs *connector_funcs;bool is_registered;bool is_componentized;
drivers/gpu/drm/tilcdc/tilcdc_external.c +192 -68
325 lines not on this page · raw message
drivers/gpu/drm/tilcdc/tilcdc_external.h +3 -2
@@ -18,8 +18,9 @@#ifndef __TILCDC_EXTERNAL_H__#define __TILCDC_EXTERNAL_H__ -int tilcdc_add_external_encoders (struct drm_device *dev); -void tilcdc_remove_external_encoders (struct drm_device *dev); +int tilcdc_add_component_encoder (struct drm_device *dev); +void tilcdc_remove_external_device (struct drm_device *dev);int tilcdc_get_external_components (struct device *dev,struct component_match **match); +int tilcdc_attach_external_device (struct drm_device *ddev);#endif /* __TILCDC_SLAVE_H__ */
Signature · 6 lines
1.9.1 _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v5 4/4] drm/tilcdc: Add drm bridge support for attaching drm bridge drivers
Quoted 8 lines · Jyri Sarha
drivers/gpu/drm/tilcdc/tilcdc_external.c +1
-3-void tilcdc_remove_external_encoders (struct drm_device *dev) +void tilcdc_remove_external_device (struct drm_device *dev) {struct tilcdc_drm_private *priv = dev->dev_private; -int i;/* Restore the original helper functions, if any. */ -for (i =0 ; i < priv->num_connectors; i++)
drivers/gpu/drm/tilcdc/tilcdc_external.c static int tilcdc_add_external_encoder(struct drm_device *dev, · line 155
Quoted 10 lines
drivers/gpu/drm/tilcdc/tilcdc_external.c +5
-5-if (IS_ERR (priv->connector_funcs[i])) -drm_connector_helper_add (priv->connectors[i],NULL ); -else if (priv->connector_funcs[i]) -drm_connector_helper_add (priv->connectors[i], - priv->connector_funcs[i]); +if (IS_ERR (priv->connector_funcs)) +drm_connector_helper_add (priv->external_connector,NULL ); +else if (priv->connector_funcs) +drm_connector_helper_add (priv->external_connector, + priv->connector_funcs);
I still need to add:
+
+ if (priv->external_encoder && priv->external_encoder->bridge)
+ drm_bridge_detach(priv->external_encoder->bridge);
Quoted 1 line
+}
... and reorder the tilcdc_fini() a bit. I need to put tilcdc_remove_external_device() before drm_mode_config_cleanup() for drm_bridge_detach() to be called before whole mode config is teared apart.
There is also a bug in tearing down drm debugfs that had to be fixed before I got module unload and reload to work properly. I'll send a patch shortly.
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Laurent Pinchart
reviewerRe: [PATCH v5 4/4] drm/tilcdc: Add drm bridge support for attaching drm bridge drivers
Hi Jyri,
Quoted 21 lines · On Tuesday 29 Nov 2016 22:18:56 Jyri Sarha wrote:
Quoted 8 lines · Jyri Sarha
drivers/gpu/drm/tilcdc/tilcdc_external.c +1
-3-void tilcdc_remove_external_encoders (struct drm_device *dev) +void tilcdc_remove_external_device (struct drm_device *dev) {struct tilcdc_drm_private *priv = dev->dev_private; -int i;/* Restore the original helper functions, if any. */ -for (i =0 ; i < priv->num_connectors; i++)drivers/gpu/drm/tilcdc/tilcdc_external.c static int tilcdc_add_external_encoder(struct drm_device *dev, · line 155
Quoted 10 lines
drivers/gpu/drm/tilcdc/tilcdc_external.c +5
-5-if (IS_ERR (priv->connector_funcs[i])) -drm_connector_helper_add (priv->connectors[i],NULL ); -else if (priv->connector_funcs[i]) -drm_connector_helper_add (priv->connectors[i], - priv->connector_funcs[i]); +if (IS_ERR (priv->connector_funcs)) +drm_connector_helper_add (priv->external_connector,NULL ); +else if (priv->connector_funcs) +drm_connector_helper_add (priv->external_connector, + priv->connector_funcs);I still need to add:
Review
Quoted 3 lines
(quoted diff) +3
-0+ + if (priv->external_encoder && priv->external_encoder->bridge) + drm_bridge_detach(priv->external_encoder->bridge);
"drm: bridge: Detach bridge from encoder at encoder cleanup time" :-)
Quoted 10 lines
Quoted 1 line
+}
... and reorder the
tilcdc_fini()a bit. I need to puttilcdc_remove_external_device()beforedrm_mode_config_cleanup()fordrm_bridge_detach()to be called before whole mode config is teared apart.There is also a bug in tearing down drm debugfs that had to be fixed before I got module unload and reload to work properly. I'll send a patch shortly.
Signature · 8 lines
Regards, Laurent Pinchart _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel
2016-11-25 10:02 GMT+01:00 Jyri Sarha <[email protected]>:
Quoted 74 lines
Changes since v4:
- "drm/bridge: Add ti-tfp410 DVI transmitter driver"
- Put i2c behind #ifIS_ENABLED(CONFIG_I2C)
- "drm/tilcdc: Add drm bridge support for attaching drm bridge drivers"
- Use exsisting infrastructure to hookup crtc mode validation code to newly connected connector, whether that came from componentized driver or trough an attached bridgeChanges since v3:
- "drm/tilcdc: Enable sync lost error and recovery handling for rev 1 LCDC"
- Fix broken irq enable/disble code for LCDC rev 1
- Add: "dt-bindings: Move "ti,tfp410.txt" from display/ti to display/bridge"
- "drm/bridge: Add ti-tfp410 DVI transmitter driver"
- Don't fail if either i2c or platform driver register succeeds
- ftp410 -> tfp410
- Merge the olddisplay/ti,tfp410.txtdocument with my additionChanges since v2:
- "drm/tilcdc: Recover from sync lost error flood by resetting the LCDC"
- no change
- "drm/bridge: Add ti-tfp410 DVI transmitter driver"
- Fix deveice-tree document
- "driver node" -> "device node"
- remove "(the current implementation does not yet support this)"
- Add dummy i2c support. The driver probe works also if placed under i2c controller node, but there is no actual i2c probing.
- "drm/tilcdc: Add drm bridge support for attaching drm bridge drivers"
- no changeChanges since first version of the series:
- "drm/tilcdc: Recover from sync lost error flood by resetting the LCDC"
- no change
- "drm/bridge: Add ti-tfp410 DVI transmitter driver"
- HDMI -> DVI
- DT Binding document
- Prepare for tfp410 connected trough i2c by optional reg property
- Require two port nodes
- Implementation
- Implement connector node functionality with in tfp410 bridge drive, but follow generic connector binding by pulling the ddc-i2c-bus property from the connector node.
- "drm/tilcdc: Add drm bridge support for attaching drm bridge drivers"
- Remove earlier change in TD binding document. There is no need to mention DRM implementation details, like bridge support, in DT binding.The first patch is an independent on and I've been testing it for quite a while now.
The tfp410 bridge driver and the tilcdc bridge support are tested with BeagleBone DVI-D Cape Rev A3. The tfp410 bridge driver is missing a lot of features, because the DVI-D cape does not have too many wires connected. The missing features can be added later when they are needed.
Jyri Sarha (4):
drm/tilcdc: Recover from sync lost error flood by resetting the LCDC
dt-bindings: Move "ti,tfp410.txt" from display/ti to display/bridge drm/bridge: Add ti-tfp410 DVI transmitter driver drm/tilcdc: Add drm bridge support for attaching drm bridge drivers.../bindings/display/{ti => bridge}/ti,tfp410.txt | 9 +- drivers/gpu/drm/bridge/Kconfig | 7 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/ti-tfp410.c | 317 +++++++++++++++++++++ drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 26 +- drivers/gpu/drm/tilcdc/tilcdc_drv.c | 11 +- drivers/gpu/drm/tilcdc/tilcdc_drv.h | 5 +- drivers/gpu/drm/tilcdc/tilcdc_external.c | 260 ++++++++++++----- drivers/gpu/drm/tilcdc/tilcdc_external.h | 5 +- 9 files changed, 564 insertions(+), 77 deletions(-) rename Documentation/devicetree/bindings/display/{ti => bridge}/ti,tfp410.txt (65%) create mode 100644 drivers/gpu/drm/bridge/ti-tfp410.c
Quoted 3 lines
--
1.9.1
For 1/4 and 4/4:
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel