All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Reichel <sre@kernel.org>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v2 48/49] drm/omap: Remove TFP410 and DVI connector drivers
Date: Sat, 9 Feb 2019 04:26:59 +0100	[thread overview]
Message-ID: <20190209032659.q65urvuqrmcs3och@earth.universe> (raw)
In-Reply-To: <20190111035120.20668-49-laurent.pinchart@ideasonboard.com>


[-- Attachment #1.1: Type: text/plain, Size: 16132 bytes --]

Hi,

On Fri, Jan 11, 2019 at 05:51:19AM +0200, Laurent Pinchart wrote:
> Those components are supported by the drm_bridge infrastructure, remove
> the omapdrm-specific driver.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---

Tested-by: Sebastian Reichel <sebastian.reichel@collabora.com>

-- Sebastian

>  drivers/gpu/drm/omapdrm/displays/Kconfig      |  11 -
>  drivers/gpu/drm/omapdrm/displays/Makefile     |   2 -
>  .../gpu/drm/omapdrm/displays/connector-dvi.c  | 293 ------------------
>  .../gpu/drm/omapdrm/displays/encoder-tfp410.c | 140 ---------
>  .../gpu/drm/omapdrm/dss/omapdss-boot-init.c   |   2 -
>  5 files changed, 448 deletions(-)
>  delete mode 100644 drivers/gpu/drm/omapdrm/displays/connector-dvi.c
>  delete mode 100644 drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c
> 
> diff --git a/drivers/gpu/drm/omapdrm/displays/Kconfig b/drivers/gpu/drm/omapdrm/displays/Kconfig
> index a349cb61961e..38d066ac966e 100644
> --- a/drivers/gpu/drm/omapdrm/displays/Kconfig
> +++ b/drivers/gpu/drm/omapdrm/displays/Kconfig
> @@ -6,23 +6,12 @@ config DRM_OMAP_ENCODER_OPA362
>  	  Driver for OPA362 external analog TV amplifier controlled
>  	  through a GPIO.
>  
> -config DRM_OMAP_ENCODER_TFP410
> -        tristate "TFP410 DPI to DVI Encoder"
> -	help
> -	  Driver for TFP410 DPI to DVI encoder.
> -
>  config DRM_OMAP_ENCODER_TPD12S015
>          tristate "TPD12S015 HDMI ESD protection and level shifter"
>  	help
>  	  Driver for TPD12S015, which offers HDMI ESD protection and level
>  	  shifting.
>  
> -config DRM_OMAP_CONNECTOR_DVI
> -        tristate "DVI Connector"
> -	depends on I2C
> -	help
> -	  Driver for a generic DVI connector.
> -
>  config DRM_OMAP_CONNECTOR_HDMI
>          tristate "HDMI Connector"
>  	help
> diff --git a/drivers/gpu/drm/omapdrm/displays/Makefile b/drivers/gpu/drm/omapdrm/displays/Makefile
> index d99659e1381b..da1d5321ef50 100644
> --- a/drivers/gpu/drm/omapdrm/displays/Makefile
> +++ b/drivers/gpu/drm/omapdrm/displays/Makefile
> @@ -1,8 +1,6 @@
>  # SPDX-License-Identifier: GPL-2.0
>  obj-$(CONFIG_DRM_OMAP_ENCODER_OPA362) += encoder-opa362.o
> -obj-$(CONFIG_DRM_OMAP_ENCODER_TFP410) += encoder-tfp410.o
>  obj-$(CONFIG_DRM_OMAP_ENCODER_TPD12S015) += encoder-tpd12s015.o
> -obj-$(CONFIG_DRM_OMAP_CONNECTOR_DVI) += connector-dvi.o
>  obj-$(CONFIG_DRM_OMAP_CONNECTOR_HDMI) += connector-hdmi.o
>  obj-$(CONFIG_DRM_OMAP_CONNECTOR_ANALOG_TV) += connector-analog-tv.o
>  obj-$(CONFIG_DRM_OMAP_PANEL_DPI) += panel-dpi.o
> diff --git a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
> deleted file mode 100644
> index fa3a69bf8a04..000000000000
> --- a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
> +++ /dev/null
> @@ -1,293 +0,0 @@
> -/*
> - * Generic DVI Connector driver
> - *
> - * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
> - * Author: Tomi Valkeinen <tomi.valkeinen@ti.com>
> - *
> - * This program is free software; you can redistribute it and/or modify it
> - * under the terms of the GNU General Public License version 2 as published by
> - * the Free Software Foundation.
> - */
> -
> -#include <linux/gpio/consumer.h>
> -#include <linux/i2c.h>
> -#include <linux/module.h>
> -#include <linux/platform_device.h>
> -#include <linux/slab.h>
> -
> -#include <drm/drm_edid.h>
> -
> -#include "../dss/omapdss.h"
> -
> -struct panel_drv_data {
> -	struct omap_dss_device dssdev;
> -
> -	struct i2c_adapter *i2c_adapter;
> -
> -	struct gpio_desc *hpd_gpio;
> -
> -	void (*hpd_cb)(void *cb_data, enum drm_connector_status status);
> -	void *hpd_cb_data;
> -	bool hpd_enabled;
> -	/* mutex for hpd fields above */
> -	struct mutex hpd_lock;
> -};
> -
> -#define to_panel_data(x) container_of(x, struct panel_drv_data, dssdev)
> -
> -static int dvic_connect(struct omap_dss_device *src,
> -			struct omap_dss_device *dst)
> -{
> -	return 0;
> -}
> -
> -static void dvic_disconnect(struct omap_dss_device *src,
> -			    struct omap_dss_device *dst)
> -{
> -}
> -
> -static int dvic_ddc_read(struct i2c_adapter *adapter,
> -		unsigned char *buf, u16 count, u8 offset)
> -{
> -	int r, retries;
> -
> -	for (retries = 3; retries > 0; retries--) {
> -		struct i2c_msg msgs[] = {
> -			{
> -				.addr   = DDC_ADDR,
> -				.flags  = 0,
> -				.len    = 1,
> -				.buf    = &offset,
> -			}, {
> -				.addr   = DDC_ADDR,
> -				.flags  = I2C_M_RD,
> -				.len    = count,
> -				.buf    = buf,
> -			}
> -		};
> -
> -		r = i2c_transfer(adapter, msgs, 2);
> -		if (r == 2)
> -			return 0;
> -
> -		if (r != -EAGAIN)
> -			break;
> -	}
> -
> -	return r < 0 ? r : -EIO;
> -}
> -
> -static int dvic_read_edid(struct omap_dss_device *dssdev,
> -		u8 *edid, int len)
> -{
> -	struct panel_drv_data *ddata = to_panel_data(dssdev);
> -	int r, l, bytes_read;
> -
> -	l = min(EDID_LENGTH, len);
> -	r = dvic_ddc_read(ddata->i2c_adapter, edid, l, 0);
> -	if (r)
> -		return r;
> -
> -	bytes_read = l;
> -
> -	/* if there are extensions, read second block */
> -	if (len > EDID_LENGTH && edid[0x7e] > 0) {
> -		l = min(EDID_LENGTH, len - EDID_LENGTH);
> -
> -		r = dvic_ddc_read(ddata->i2c_adapter, edid + EDID_LENGTH,
> -				l, EDID_LENGTH);
> -		if (r)
> -			return r;
> -
> -		bytes_read += l;
> -	}
> -
> -	return bytes_read;
> -}
> -
> -static bool dvic_detect(struct omap_dss_device *dssdev)
> -{
> -	struct panel_drv_data *ddata = to_panel_data(dssdev);
> -	unsigned char out;
> -	int r;
> -
> -	if (ddata->hpd_gpio)
> -		return gpiod_get_value_cansleep(ddata->hpd_gpio);
> -
> -	if (!ddata->i2c_adapter)
> -		return true;
> -
> -	r = dvic_ddc_read(ddata->i2c_adapter, &out, 1, 0);
> -
> -	return r == 0;
> -}
> -
> -static void dvic_register_hpd_cb(struct omap_dss_device *dssdev,
> -				 void (*cb)(void *cb_data,
> -					    enum drm_connector_status status),
> -				 void *cb_data)
> -{
> -	struct panel_drv_data *ddata = to_panel_data(dssdev);
> -
> -	mutex_lock(&ddata->hpd_lock);
> -	ddata->hpd_cb = cb;
> -	ddata->hpd_cb_data = cb_data;
> -	mutex_unlock(&ddata->hpd_lock);
> -}
> -
> -static void dvic_unregister_hpd_cb(struct omap_dss_device *dssdev)
> -{
> -	struct panel_drv_data *ddata = to_panel_data(dssdev);
> -
> -	mutex_lock(&ddata->hpd_lock);
> -	ddata->hpd_cb = NULL;
> -	ddata->hpd_cb_data = NULL;
> -	mutex_unlock(&ddata->hpd_lock);
> -}
> -
> -static const struct omap_dss_device_ops dvic_ops = {
> -	.connect	= dvic_connect,
> -	.disconnect	= dvic_disconnect,
> -
> -	.read_edid	= dvic_read_edid,
> -	.detect		= dvic_detect,
> -
> -	.register_hpd_cb	= dvic_register_hpd_cb,
> -	.unregister_hpd_cb	= dvic_unregister_hpd_cb,
> -};
> -
> -static irqreturn_t dvic_hpd_isr(int irq, void *data)
> -{
> -	struct panel_drv_data *ddata = data;
> -
> -	mutex_lock(&ddata->hpd_lock);
> -	if (ddata->hpd_enabled && ddata->hpd_cb) {
> -		enum drm_connector_status status;
> -
> -		if (dvic_detect(&ddata->dssdev))
> -			status = connector_status_connected;
> -		else
> -			status = connector_status_disconnected;
> -
> -		ddata->hpd_cb(ddata->hpd_cb_data, status);
> -	}
> -	mutex_unlock(&ddata->hpd_lock);
> -
> -	return IRQ_HANDLED;
> -}
> -
> -static int dvic_probe_of(struct platform_device *pdev)
> -{
> -	struct panel_drv_data *ddata = platform_get_drvdata(pdev);
> -	struct device_node *node = pdev->dev.of_node;
> -	struct device_node *adapter_node;
> -	struct i2c_adapter *adapter;
> -	struct gpio_desc *gpio;
> -	int r;
> -
> -	gpio = devm_gpiod_get_optional(&pdev->dev, "hpd", GPIOD_IN);
> -	if (IS_ERR(gpio)) {
> -		dev_err(&pdev->dev, "failed to parse HPD gpio\n");
> -		return PTR_ERR(gpio);
> -	}
> -
> -	ddata->hpd_gpio = gpio;
> -
> -	mutex_init(&ddata->hpd_lock);
> -
> -	if (ddata->hpd_gpio) {
> -		r = devm_request_threaded_irq(&pdev->dev,
> -			gpiod_to_irq(ddata->hpd_gpio), NULL, dvic_hpd_isr,
> -			IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
> -			"DVI HPD", ddata);
> -		if (r)
> -			return r;
> -	}
> -
> -	adapter_node = of_parse_phandle(node, "ddc-i2c-bus", 0);
> -	if (adapter_node) {
> -		adapter = of_get_i2c_adapter_by_node(adapter_node);
> -		of_node_put(adapter_node);
> -		if (adapter == NULL) {
> -			dev_err(&pdev->dev, "failed to parse ddc-i2c-bus\n");
> -			return -EPROBE_DEFER;
> -		}
> -
> -		ddata->i2c_adapter = adapter;
> -	}
> -
> -	return 0;
> -}
> -
> -static int dvic_probe(struct platform_device *pdev)
> -{
> -	struct panel_drv_data *ddata;
> -	struct omap_dss_device *dssdev;
> -	int r;
> -
> -	ddata = devm_kzalloc(&pdev->dev, sizeof(*ddata), GFP_KERNEL);
> -	if (!ddata)
> -		return -ENOMEM;
> -
> -	platform_set_drvdata(pdev, ddata);
> -
> -	r = dvic_probe_of(pdev);
> -	if (r)
> -		return r;
> -
> -	dssdev = &ddata->dssdev;
> -	dssdev->ops = &dvic_ops;
> -	dssdev->dev = &pdev->dev;
> -	dssdev->type = OMAP_DISPLAY_TYPE_DVI;
> -	dssdev->display = true;
> -	dssdev->owner = THIS_MODULE;
> -	dssdev->of_ports = BIT(0);
> -
> -	if (ddata->hpd_gpio)
> -		dssdev->ops_flags |= OMAP_DSS_DEVICE_OP_DETECT
> -				  |  OMAP_DSS_DEVICE_OP_HPD;
> -	if (ddata->i2c_adapter)
> -		dssdev->ops_flags |= OMAP_DSS_DEVICE_OP_DETECT
> -				  |  OMAP_DSS_DEVICE_OP_EDID;
> -
> -	omapdss_display_init(dssdev);
> -	omapdss_device_register(dssdev);
> -
> -	return 0;
> -}
> -
> -static int __exit dvic_remove(struct platform_device *pdev)
> -{
> -	struct panel_drv_data *ddata = platform_get_drvdata(pdev);
> -
> -	omapdss_device_unregister(&ddata->dssdev);
> -
> -	i2c_put_adapter(ddata->i2c_adapter);
> -
> -	mutex_destroy(&ddata->hpd_lock);
> -
> -	return 0;
> -}
> -
> -static const struct of_device_id dvic_of_match[] = {
> -	{ .compatible = "omapdss,dvi-connector", },
> -	{},
> -};
> -
> -MODULE_DEVICE_TABLE(of, dvic_of_match);
> -
> -static struct platform_driver dvi_connector_driver = {
> -	.probe	= dvic_probe,
> -	.remove	= __exit_p(dvic_remove),
> -	.driver	= {
> -		.name	= "connector-dvi",
> -		.of_match_table = dvic_of_match,
> -		.suppress_bind_attrs = true,
> -	},
> -};
> -
> -module_platform_driver(dvi_connector_driver);
> -
> -MODULE_AUTHOR("Tomi Valkeinen <tomi.valkeinen@ti.com>");
> -MODULE_DESCRIPTION("Generic DVI Connector driver");
> -MODULE_LICENSE("GPL");
> diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c b/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c
> deleted file mode 100644
> index de954182c4bb..000000000000
> --- a/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c
> +++ /dev/null
> @@ -1,140 +0,0 @@
> -/*
> - * TFP410 DPI-to-DVI encoder driver
> - *
> - * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
> - * Author: Tomi Valkeinen <tomi.valkeinen@ti.com>
> - *
> - * This program is free software; you can redistribute it and/or modify it
> - * under the terms of the GNU General Public License version 2 as published by
> - * the Free Software Foundation.
> - */
> -
> -#include <linux/gpio/consumer.h>
> -#include <linux/module.h>
> -#include <linux/platform_device.h>
> -#include <linux/slab.h>
> -
> -#include "../dss/omapdss.h"
> -
> -struct panel_drv_data {
> -	struct omap_dss_device dssdev;
> -
> -	struct gpio_desc *pd_gpio;
> -};
> -
> -#define to_panel_data(x) container_of(x, struct panel_drv_data, dssdev)
> -
> -static int tfp410_connect(struct omap_dss_device *src,
> -			  struct omap_dss_device *dst)
> -{
> -	return omapdss_device_connect(dst->dss, dst, dst->next);
> -}
> -
> -static void tfp410_disconnect(struct omap_dss_device *src,
> -			      struct omap_dss_device *dst)
> -{
> -	omapdss_device_disconnect(dst, dst->next);
> -}
> -
> -static void tfp410_enable(struct omap_dss_device *dssdev)
> -{
> -	struct panel_drv_data *ddata = to_panel_data(dssdev);
> -
> -	if (ddata->pd_gpio)
> -		gpiod_set_value_cansleep(ddata->pd_gpio, 0);
> -}
> -
> -static void tfp410_disable(struct omap_dss_device *dssdev)
> -{
> -	struct panel_drv_data *ddata = to_panel_data(dssdev);
> -
> -	if (ddata->pd_gpio)
> -		gpiod_set_value_cansleep(ddata->pd_gpio, 0);
> -}
> -
> -static const struct omap_dss_device_ops tfp410_ops = {
> -	.connect	= tfp410_connect,
> -	.disconnect	= tfp410_disconnect,
> -	.enable		= tfp410_enable,
> -	.disable	= tfp410_disable,
> -};
> -
> -static int tfp410_probe(struct platform_device *pdev)
> -{
> -	struct panel_drv_data *ddata;
> -	struct omap_dss_device *dssdev;
> -	struct gpio_desc *gpio;
> -
> -	ddata = devm_kzalloc(&pdev->dev, sizeof(*ddata), GFP_KERNEL);
> -	if (!ddata)
> -		return -ENOMEM;
> -
> -	platform_set_drvdata(pdev, ddata);
> -
> -	/* Powerdown GPIO */
> -	gpio = devm_gpiod_get_optional(&pdev->dev, "powerdown", GPIOD_OUT_HIGH);
> -	if (IS_ERR(gpio)) {
> -		dev_err(&pdev->dev, "failed to parse powerdown gpio\n");
> -		return PTR_ERR(gpio);
> -	}
> -
> -	ddata->pd_gpio = gpio;
> -
> -	dssdev = &ddata->dssdev;
> -	dssdev->ops = &tfp410_ops;
> -	dssdev->dev = &pdev->dev;
> -	dssdev->type = OMAP_DISPLAY_TYPE_DPI;
> -	dssdev->owner = THIS_MODULE;
> -	dssdev->of_ports = BIT(1) | BIT(0);
> -	dssdev->bus_flags = DRM_BUS_FLAG_DE_HIGH
> -			  | DRM_BUS_FLAG_SYNC_DRIVE_POSEDGE
> -			  | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE;
> -
> -	dssdev->next = omapdss_of_find_connected_device(pdev->dev.of_node, 1);
> -	if (IS_ERR(dssdev->next)) {
> -		if (PTR_ERR(dssdev->next) != -EPROBE_DEFER)
> -			dev_err(&pdev->dev, "failed to find video sink\n");
> -		return PTR_ERR(dssdev->next);
> -	}
> -
> -	omapdss_device_register(dssdev);
> -
> -	return 0;
> -}
> -
> -static int __exit tfp410_remove(struct platform_device *pdev)
> -{
> -	struct panel_drv_data *ddata = platform_get_drvdata(pdev);
> -	struct omap_dss_device *dssdev = &ddata->dssdev;
> -
> -	if (dssdev->next)
> -		omapdss_device_put(dssdev->next);
> -	omapdss_device_unregister(&ddata->dssdev);
> -
> -	tfp410_disable(dssdev);
> -
> -	return 0;
> -}
> -
> -static const struct of_device_id tfp410_of_match[] = {
> -	{ .compatible = "omapdss,ti,tfp410", },
> -	{},
> -};
> -
> -MODULE_DEVICE_TABLE(of, tfp410_of_match);
> -
> -static struct platform_driver tfp410_driver = {
> -	.probe	= tfp410_probe,
> -	.remove	= __exit_p(tfp410_remove),
> -	.driver	= {
> -		.name	= "tfp410",
> -		.of_match_table = tfp410_of_match,
> -		.suppress_bind_attrs = true,
> -	},
> -};
> -
> -module_platform_driver(tfp410_driver);
> -
> -MODULE_AUTHOR("Tomi Valkeinen <tomi.valkeinen@ti.com>");
> -MODULE_DESCRIPTION("TFP410 DPI to DVI encoder driver");
> -MODULE_LICENSE("GPL");
> diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c b/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
> index 309b7b453e98..dfeaea639920 100644
> --- a/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
> +++ b/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
> @@ -186,7 +186,6 @@ static const struct of_device_id omapdss_of_match[] __initconst = {
>  
>  static const struct of_device_id omapdss_of_fixups_whitelist[] __initconst = {
>  	{ .compatible = "composite-video-connector" },
> -	{ .compatible = "dvi-connector" },
>  	{ .compatible = "hdmi-connector" },
>  	{ .compatible = "lgphilips,lb035q02" },
>  	{ .compatible = "nec,nl8048hl11" },
> @@ -196,7 +195,6 @@ static const struct of_device_id omapdss_of_fixups_whitelist[] __initconst = {
>  	{ .compatible = "sony,acx565akm" },
>  	{ .compatible = "svideo-connector" },
>  	{ .compatible = "ti,opa362" },
> -	{ .compatible = "ti,tfp410" },
>  	{ .compatible = "ti,tpd12s015" },
>  	{ .compatible = "toppoly,td028ttec1" },
>  	{ .compatible = "tpo,td028ttec1" },
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2019-02-09 18:57 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-11  3:50 [PATCH v2 00/49] omapdrm: drm_bridge and drm_panel support Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 01/49] drm/atomic: Constify mode argument to mode_valid_path() Laurent Pinchart
2019-01-14 11:10   ` Tomi Valkeinen
2019-02-09  2:01   ` Sebastian Reichel
2019-01-11  3:50 ` [PATCH v2 02/49] drm/omap: dsi: Fix crash in DSI debug dumps Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 03/49] drm/omap: dsi: Fix OF platform depopulate Laurent Pinchart
2019-01-14 11:40   ` Tomi Valkeinen
2019-01-14 14:32     ` Laurent Pinchart
2019-02-09  2:03   ` Sebastian Reichel
2019-01-11  3:50 ` [PATCH v2 04/49] drm/omap: dsi: Hack-fix DSI bus flags Laurent Pinchart
2019-02-09  2:04   ` Sebastian Reichel
2019-01-11  3:50 ` [PATCH v2 05/49] drm/omap: Remove declaration of nonexisting function Laurent Pinchart
2019-01-14 11:48   ` Tomi Valkeinen
2019-01-11  3:50 ` [PATCH v2 06/49] drm/omap: Remove unused kobj field from struct omap_dss_device Laurent Pinchart
2019-01-14 11:49   ` Tomi Valkeinen
2019-01-11  3:50 ` [PATCH v2 07/49] drm/omap: venc: Remove wss_data field from venc_device structure Laurent Pinchart
2019-01-14 11:50   ` Tomi Valkeinen
2019-01-11  3:50 ` [PATCH v2 08/49] drm/omap: Use atomic suspend/resume helpers Laurent Pinchart
2019-01-14 12:13   ` Tomi Valkeinen
2019-01-11  3:50 ` [PATCH v2 09/49] drm/omap: Move common display enable/disable code to encoder Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 10/49] drm/omap: Remove connection checks from internal encoders .enable() Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 11/49] drm/omap: Remove connection checks from display .enable() and .remove() Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 12/49] drm/omap: Remove enable " Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 13/49] drm/omap: Reverse direction of the DSS device enable/disable operations Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 14/49] drm/omap: Remove omap_dss_device dst field Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 15/49] drm/omap: Factor out common init/cleanup code for output devices Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 16/49] drm/omap: Expose DRM modes instead of timings in display devices Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 17/49] drm/omap: Merge display .get_modes() and .get_size() operations Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 18/49] drm/omap: Add a dss device operation flag for .get_modes() Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 19/49] drm/omap: venc: List both PAL and NTSC modes Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 20/49] drm/omap: Don't pass display pointer to encoder init function Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 21/49] drm/omap: Move display alias ID to omap_drm_pipeline Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 22/49] drm/omap: Don't store display pointer in omap_connector structure Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 23/49] drm/omap: panel-dsi-cm: Store source pointer internally Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 24/49] drm/omap: Notify all devices in the pipeline of output disconnection Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 25/49] drm/omap: Remove src field from omap_dss_device structure Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 26/49] drm/omap: Move DISPC timing checks to CRTC .mode_valid() operation Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 27/49] drm/omap: venc: Simplify mode setting by caching configuration Laurent Pinchart
2019-01-11  3:50 ` [PATCH v2 28/49] drm/omap: Factor out common mode validation code Laurent Pinchart
2019-01-11  3:51 ` [PATCH v2 29/49] drm/omap: Pass drm_display_mode to .check_timings() and .set_timings() Laurent Pinchart
2019-02-09  2:33   ` Sebastian Reichel
2019-01-11  3:51 ` [PATCH v2 30/49] drm/omap: venc: Use drm_display_mode natively Laurent Pinchart
2019-01-11  3:51 ` [PATCH v2 31/49] drm/omap: Store pixel clock instead of full mode in DPI and SDI encoders Laurent Pinchart
2019-01-11  3:51 ` [PATCH v2 32/49] drm/omap: Simplify OF lookup of DSS devices Laurent Pinchart
2019-01-11  3:51 ` [PATCH v2 33/49] drm/omap: Refactor initialization sequence Laurent Pinchart
2019-01-11  3:51 ` [PATCH v2 34/49] drm/omap: Merge omap_dss_device type and output_type fields Laurent Pinchart
2019-01-11  3:51 ` [PATCH v2 35/49] drm: Clarify definition of the DRM_BUS_FLAG_(PIXDATA|SYNC)_* macros Laurent Pinchart
2019-01-11  8:47   ` Stefan Agner
2019-01-11  9:23   ` Daniel Vetter
2019-01-12  1:13     ` Laurent Pinchart
2019-01-11  3:51 ` [PATCH v2 36/49] drm: Use new DRM_BUS_FLAG_*_(DRIVE|SAMPLE)_(POS|NEG)EDGE flags Laurent Pinchart
2019-01-11  8:53   ` Stefan Agner
2019-01-11  3:51 ` [PATCH v2 37/49] drm/bridge: use bus flags in bridge timings Laurent Pinchart
2019-01-11  3:51 ` [PATCH v2 38/49] dt-bindings: display: tfp410: Add bus parameters properties Laurent Pinchart
2019-01-15 21:37   ` Rob Herring
2019-01-11  3:51 ` [PATCH v2 39/49] drm/bridge: ti-tfp410: Set connector type based on DT connector node Laurent Pinchart
2019-01-11  3:51 ` [PATCH v2 40/49] drm/bridge: ti-tfp410: Add support for the powerdown GPIO Laurent Pinchart
2019-01-11  3:51 ` [PATCH v2 41/49] drm/bridge: ti-tfp410: Report input bus config through bridge timings Laurent Pinchart
2019-01-11  3:51 ` [PATCH v2 42/49] dt-bindings: Add vendor prefix for OSD Displays Laurent Pinchart
2019-01-14 12:15   ` Tomi Valkeinen
2019-01-15 21:38   ` Rob Herring
2019-01-11  3:51 ` [PATCH v2 43/49] dt-bindings: display: Add OSD Displays OSD070T1718-19TS panel binding Laurent Pinchart
2019-01-14 12:15   ` Tomi Valkeinen
2019-01-15 21:39   ` Rob Herring
2019-02-08 11:19     ` [PATCH v2.1 " Laurent Pinchart
2019-02-25 23:27       ` Rob Herring
2019-01-11  3:51 ` [PATCH v2 44/49] drm/panel: simple: Add OSD070T1718-19TS panel support Laurent Pinchart
2019-01-14 12:15   ` Tomi Valkeinen
2019-01-11  3:51 ` [PATCH v2 45/49] drm/omap: Add support for drm_bridge Laurent Pinchart
2019-01-18 10:33   ` Tomi Valkeinen
2019-02-08 15:20     ` Laurent Pinchart
2019-02-11  9:32       ` Tomi Valkeinen
2019-02-09  2:00   ` Sebastian Reichel
2019-02-09  3:26   ` Sebastian Reichel
2019-02-11  7:50   ` [PATCH v2.1 " Laurent Pinchart
2019-01-11  3:51 ` [PATCH v2 46/49] drm/omap: Add support for drm_panel Laurent Pinchart
2019-02-09  3:26   ` Sebastian Reichel
2019-01-11  3:51 ` [PATCH v2 47/49] drm/omap: Whitelist DT nodes to fixup with omapdss, prefix Laurent Pinchart
2019-02-09  3:26   ` Sebastian Reichel
2019-01-11  3:51 ` [PATCH v2 48/49] drm/omap: Remove TFP410 and DVI connector drivers Laurent Pinchart
2019-02-09  3:26   ` Sebastian Reichel [this message]
2019-01-11  3:51 ` [PATCH v2 49/49] drm/omap: Remove panel-dpi driver Laurent Pinchart
2019-02-09  3:27   ` Sebastian Reichel
2019-02-06 11:41 ` [PATCH v2 00/49] omapdrm: drm_bridge and drm_panel support Tomi Valkeinen
2019-02-09  3:32 ` Sebastian Reichel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190209032659.q65urvuqrmcs3och@earth.universe \
    --to=sre@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=tomi.valkeinen@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.