All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jonathan Neuschäfer" <j.neuschaefer@gmx.net>
To: Andreas Kemnade <andreas@kemnade.info>
Cc: p.zabel@pengutronix.de, airlied@linux.ie, daniel@ffwll.ch,
	robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de,
	kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com,
	maarten.lankhorst@linux.intel.com, mripard@kernel.org,
	tzimmermann@suse.de, dri-devel@lists.freedesktop.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, alistair@alistair23.me,
	samuel@sholland.org, josua.mayer@jm0.eu,
	letux-kernel@openphoenux.org
Subject: Re: [RFC PATCH 3/6] drm: mxc-epdc: Add display and waveform initialisation
Date: Sat, 12 Mar 2022 21:12:46 +0100	[thread overview]
Message-ID: <Yiz+vvnkfn9hemJg@latitude> (raw)
In-Reply-To: <20220206080016.796556-4-andreas@kemnade.info>

[-- Attachment #1: Type: text/plain, Size: 4899 bytes --]

On Sun, Feb 06, 2022 at 09:00:13AM +0100, Andreas Kemnade wrote:
> Adds display parameter initialisation, display power up/down and
> waveform loading
> 
> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> ---
[...]
> +	/* Enable the v3p3 regulator */
> +	ret = regulator_enable(priv->v3p3_regulator);
> +	if (IS_ERR((void *)ret)) {

	if (ret < 0)   is common enough to be understood.

> +		dev_err(priv->drm.dev,
> +			"Unable to enable V3P3 regulator. err = 0x%x\n",
> +			ret);
> +		mutex_unlock(&priv->power_mutex);
> +		return;
> +	}
> +
> +	usleep_range(1000, 2000);
> +
> +	pm_runtime_get_sync(priv->drm.dev);
> +
> +	/* Enable clocks to EPDC */
> +	clk_prepare_enable(priv->epdc_clk_axi);
> +	clk_prepare_enable(priv->epdc_clk_pix);
> +
> +	epdc_write(priv, EPDC_CTRL_CLEAR, EPDC_CTRL_CLKGATE);
> +
> +	/* Enable power to the EPD panel */
> +	ret = regulator_enable(priv->display_regulator);
> +	if (IS_ERR((void *)ret)) {

dito

> +		dev_err(priv->drm.dev,
> +			"Unable to enable DISPLAY regulator. err = 0x%x\n",
> +			ret);
> +		mutex_unlock(&priv->power_mutex);
> +		return;
> +	}
> +
> +	ret = regulator_enable(priv->vcom_regulator);
> +	if (IS_ERR((void *)ret)) {

dito

> +		dev_err(priv->drm.dev,
> +			"Unable to enable VCOM regulator. err = 0x%x\n",
> +			ret);
> +		mutex_unlock(&priv->power_mutex);
> +		return;
> +	}
> +
> +	priv->powered = true;
> +
> +	mutex_unlock(&priv->power_mutex);
> +}

[...]
> +	priv->rev = ((val & EPDC_VERSION_MAJOR_MASK) >>
> +				EPDC_VERSION_MAJOR_OFFSET) * 10
> +			+ ((val & EPDC_VERSION_MINOR_MASK) >>
> +				EPDC_VERSION_MINOR_OFFSET);

Instead of this transformation it might be (1) safer against unexpected
versions and (2) simpler, to store the EPDC_VERSION register content
directly.

Instead of

	if (priv->rev == 20) { ... }

we'd have

	if (priv->rev == 0x02000000) { ... }

or perhaps something along the lines of

	if (priv->rev == EPDC_REV(2, 0, 0)) { ... }

(using a macro that does the proper bitshifts).

> +	dev_dbg(priv->drm.dev, "EPDC version = %d\n", priv->rev);
> +
> +	if (priv->rev <= 20) {
> +		dev_err(priv->drm.dev, "Unsupported version (%d)\n", priv->rev);
> +		return -ENODEV;
> +	}
> +
> +	/* Initialize EPDC pins */
> +	pinctrl = devm_pinctrl_get_select_default(priv->drm.dev);
> +	if (IS_ERR(pinctrl)) {
> +		dev_err(priv->drm.dev, "can't get/select pinctrl\n");
> +		return PTR_ERR(pinctrl);
> +	}
> +
> +	mutex_init(&priv->power_mutex);
> +
> +	return 0;
> +}

[...]
> diff --git a/drivers/gpu/drm/mxc-epdc/epdc_waveform.h b/drivers/gpu/drm/mxc-epdc/epdc_waveform.h
> new file mode 100644
> index 000000000000..c5c461b975cb
> --- /dev/null
> +++ b/drivers/gpu/drm/mxc-epdc/epdc_waveform.h
> @@ -0,0 +1,7 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/* Copyright (C) 2022 Andreas Kemnade */
> +int mxc_epdc_fb_get_temp_index(struct mxc_epdc *priv, int temp);
> +int mxc_epdc_prepare_waveform(struct mxc_epdc *priv,
> +			      const u8 *waveform, size_t size);
> +void mxc_epdc_set_update_waveform(struct mxc_epdc *priv,
> +				  struct mxcfb_waveform_modes *wv_modes);
> diff --git a/drivers/gpu/drm/mxc-epdc/mxc_epdc.h b/drivers/gpu/drm/mxc-epdc/mxc_epdc.h
> index c5f5280b574f..f7b1cbc4cc4e 100644
> --- a/drivers/gpu/drm/mxc-epdc/mxc_epdc.h
> +++ b/drivers/gpu/drm/mxc-epdc/mxc_epdc.h
> @@ -8,6 +8,32 @@
>  #include <drm/drm_drv.h>
>  #include <drm/drm_connector.h>
>  #include <drm/drm_simple_kms_helper.h>
> +#include <linux/thermal.h>
> +#include "epdc_regs.h"
> +
> +#define TEMP_USE_AMBIENT			0x1000

What's the significance of 0x1000 here? Is it a register value?


>  static void mxc_epdc_pipe_update(struct drm_simple_display_pipe *pipe,
> @@ -187,6 +267,7 @@ static struct drm_driver mxc_epdc_driver = {
>  static int mxc_epdc_probe(struct platform_device *pdev)
>  {
>  	struct mxc_epdc *priv;
> +	const struct firmware *firmware;
>  	int ret;
>  
>  	priv = devm_drm_dev_alloc(&pdev->dev, &mxc_epdc_driver, struct mxc_epdc, drm);
> @@ -195,6 +276,19 @@ static int mxc_epdc_probe(struct platform_device *pdev)
>  
>  	platform_set_drvdata(pdev, priv);
>  
> +	ret = mxc_epdc_init_hw(priv);
> +	if (ret)
> +		return ret;
> +
> +	ret = request_firmware(&firmware, "imx/epdc/epdc.fw", priv->drm.dev);

Thinking ahead to the point when we'll have multiple waveforms for
different modes...  What's your idea for a naming scheme to distinguish
the different waveform files, and should the default name be epdc.fw, or
perhaps something more specific?

> +	if (ret)
> +		return ret;
> +
> +	ret = mxc_epdc_prepare_waveform(priv, firmware->data, firmware->size);
> +	release_firmware(firmware);
> +	if (ret)
> +		return ret;
> +
>  	mxc_epdc_setup_mode_config(&priv->drm);
>  
>  	ret = mxc_epdc_output(&priv->drm);


Jonathan

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

WARNING: multiple messages have this Message-ID (diff)
From: "Jonathan Neuschäfer" <j.neuschaefer@gmx.net>
To: Andreas Kemnade <andreas@kemnade.info>
Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
	letux-kernel@openphoenux.org, tzimmermann@suse.de,
	samuel@sholland.org, airlied@linux.ie, s.hauer@pengutronix.de,
	alistair@alistair23.me, linux-kernel@vger.kernel.org,
	robh+dt@kernel.org, linux-imx@nxp.com, josua.mayer@jm0.eu,
	shawnguo@kernel.org, kernel@pengutronix.de,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC PATCH 3/6] drm: mxc-epdc: Add display and waveform initialisation
Date: Sat, 12 Mar 2022 21:12:46 +0100	[thread overview]
Message-ID: <Yiz+vvnkfn9hemJg@latitude> (raw)
In-Reply-To: <20220206080016.796556-4-andreas@kemnade.info>

[-- Attachment #1: Type: text/plain, Size: 4899 bytes --]

On Sun, Feb 06, 2022 at 09:00:13AM +0100, Andreas Kemnade wrote:
> Adds display parameter initialisation, display power up/down and
> waveform loading
> 
> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> ---
[...]
> +	/* Enable the v3p3 regulator */
> +	ret = regulator_enable(priv->v3p3_regulator);
> +	if (IS_ERR((void *)ret)) {

	if (ret < 0)   is common enough to be understood.

> +		dev_err(priv->drm.dev,
> +			"Unable to enable V3P3 regulator. err = 0x%x\n",
> +			ret);
> +		mutex_unlock(&priv->power_mutex);
> +		return;
> +	}
> +
> +	usleep_range(1000, 2000);
> +
> +	pm_runtime_get_sync(priv->drm.dev);
> +
> +	/* Enable clocks to EPDC */
> +	clk_prepare_enable(priv->epdc_clk_axi);
> +	clk_prepare_enable(priv->epdc_clk_pix);
> +
> +	epdc_write(priv, EPDC_CTRL_CLEAR, EPDC_CTRL_CLKGATE);
> +
> +	/* Enable power to the EPD panel */
> +	ret = regulator_enable(priv->display_regulator);
> +	if (IS_ERR((void *)ret)) {

dito

> +		dev_err(priv->drm.dev,
> +			"Unable to enable DISPLAY regulator. err = 0x%x\n",
> +			ret);
> +		mutex_unlock(&priv->power_mutex);
> +		return;
> +	}
> +
> +	ret = regulator_enable(priv->vcom_regulator);
> +	if (IS_ERR((void *)ret)) {

dito

> +		dev_err(priv->drm.dev,
> +			"Unable to enable VCOM regulator. err = 0x%x\n",
> +			ret);
> +		mutex_unlock(&priv->power_mutex);
> +		return;
> +	}
> +
> +	priv->powered = true;
> +
> +	mutex_unlock(&priv->power_mutex);
> +}

[...]
> +	priv->rev = ((val & EPDC_VERSION_MAJOR_MASK) >>
> +				EPDC_VERSION_MAJOR_OFFSET) * 10
> +			+ ((val & EPDC_VERSION_MINOR_MASK) >>
> +				EPDC_VERSION_MINOR_OFFSET);

Instead of this transformation it might be (1) safer against unexpected
versions and (2) simpler, to store the EPDC_VERSION register content
directly.

Instead of

	if (priv->rev == 20) { ... }

we'd have

	if (priv->rev == 0x02000000) { ... }

or perhaps something along the lines of

	if (priv->rev == EPDC_REV(2, 0, 0)) { ... }

(using a macro that does the proper bitshifts).

> +	dev_dbg(priv->drm.dev, "EPDC version = %d\n", priv->rev);
> +
> +	if (priv->rev <= 20) {
> +		dev_err(priv->drm.dev, "Unsupported version (%d)\n", priv->rev);
> +		return -ENODEV;
> +	}
> +
> +	/* Initialize EPDC pins */
> +	pinctrl = devm_pinctrl_get_select_default(priv->drm.dev);
> +	if (IS_ERR(pinctrl)) {
> +		dev_err(priv->drm.dev, "can't get/select pinctrl\n");
> +		return PTR_ERR(pinctrl);
> +	}
> +
> +	mutex_init(&priv->power_mutex);
> +
> +	return 0;
> +}

[...]
> diff --git a/drivers/gpu/drm/mxc-epdc/epdc_waveform.h b/drivers/gpu/drm/mxc-epdc/epdc_waveform.h
> new file mode 100644
> index 000000000000..c5c461b975cb
> --- /dev/null
> +++ b/drivers/gpu/drm/mxc-epdc/epdc_waveform.h
> @@ -0,0 +1,7 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/* Copyright (C) 2022 Andreas Kemnade */
> +int mxc_epdc_fb_get_temp_index(struct mxc_epdc *priv, int temp);
> +int mxc_epdc_prepare_waveform(struct mxc_epdc *priv,
> +			      const u8 *waveform, size_t size);
> +void mxc_epdc_set_update_waveform(struct mxc_epdc *priv,
> +				  struct mxcfb_waveform_modes *wv_modes);
> diff --git a/drivers/gpu/drm/mxc-epdc/mxc_epdc.h b/drivers/gpu/drm/mxc-epdc/mxc_epdc.h
> index c5f5280b574f..f7b1cbc4cc4e 100644
> --- a/drivers/gpu/drm/mxc-epdc/mxc_epdc.h
> +++ b/drivers/gpu/drm/mxc-epdc/mxc_epdc.h
> @@ -8,6 +8,32 @@
>  #include <drm/drm_drv.h>
>  #include <drm/drm_connector.h>
>  #include <drm/drm_simple_kms_helper.h>
> +#include <linux/thermal.h>
> +#include "epdc_regs.h"
> +
> +#define TEMP_USE_AMBIENT			0x1000

What's the significance of 0x1000 here? Is it a register value?


>  static void mxc_epdc_pipe_update(struct drm_simple_display_pipe *pipe,
> @@ -187,6 +267,7 @@ static struct drm_driver mxc_epdc_driver = {
>  static int mxc_epdc_probe(struct platform_device *pdev)
>  {
>  	struct mxc_epdc *priv;
> +	const struct firmware *firmware;
>  	int ret;
>  
>  	priv = devm_drm_dev_alloc(&pdev->dev, &mxc_epdc_driver, struct mxc_epdc, drm);
> @@ -195,6 +276,19 @@ static int mxc_epdc_probe(struct platform_device *pdev)
>  
>  	platform_set_drvdata(pdev, priv);
>  
> +	ret = mxc_epdc_init_hw(priv);
> +	if (ret)
> +		return ret;
> +
> +	ret = request_firmware(&firmware, "imx/epdc/epdc.fw", priv->drm.dev);

Thinking ahead to the point when we'll have multiple waveforms for
different modes...  What's your idea for a naming scheme to distinguish
the different waveform files, and should the default name be epdc.fw, or
perhaps something more specific?

> +	if (ret)
> +		return ret;
> +
> +	ret = mxc_epdc_prepare_waveform(priv, firmware->data, firmware->size);
> +	release_firmware(firmware);
> +	if (ret)
> +		return ret;
> +
>  	mxc_epdc_setup_mode_config(&priv->drm);
>  
>  	ret = mxc_epdc_output(&priv->drm);


Jonathan

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

WARNING: multiple messages have this Message-ID (diff)
From: "Jonathan Neuschäfer" <j.neuschaefer@gmx.net>
To: Andreas Kemnade <andreas@kemnade.info>
Cc: p.zabel@pengutronix.de, airlied@linux.ie, daniel@ffwll.ch,
	robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de,
	kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com,
	maarten.lankhorst@linux.intel.com, mripard@kernel.org,
	tzimmermann@suse.de, dri-devel@lists.freedesktop.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, alistair@alistair23.me,
	samuel@sholland.org, josua.mayer@jm0.eu,
	letux-kernel@openphoenux.org
Subject: Re: [RFC PATCH 3/6] drm: mxc-epdc: Add display and waveform initialisation
Date: Sat, 12 Mar 2022 21:12:46 +0100	[thread overview]
Message-ID: <Yiz+vvnkfn9hemJg@latitude> (raw)
In-Reply-To: <20220206080016.796556-4-andreas@kemnade.info>


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

On Sun, Feb 06, 2022 at 09:00:13AM +0100, Andreas Kemnade wrote:
> Adds display parameter initialisation, display power up/down and
> waveform loading
> 
> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> ---
[...]
> +	/* Enable the v3p3 regulator */
> +	ret = regulator_enable(priv->v3p3_regulator);
> +	if (IS_ERR((void *)ret)) {

	if (ret < 0)   is common enough to be understood.

> +		dev_err(priv->drm.dev,
> +			"Unable to enable V3P3 regulator. err = 0x%x\n",
> +			ret);
> +		mutex_unlock(&priv->power_mutex);
> +		return;
> +	}
> +
> +	usleep_range(1000, 2000);
> +
> +	pm_runtime_get_sync(priv->drm.dev);
> +
> +	/* Enable clocks to EPDC */
> +	clk_prepare_enable(priv->epdc_clk_axi);
> +	clk_prepare_enable(priv->epdc_clk_pix);
> +
> +	epdc_write(priv, EPDC_CTRL_CLEAR, EPDC_CTRL_CLKGATE);
> +
> +	/* Enable power to the EPD panel */
> +	ret = regulator_enable(priv->display_regulator);
> +	if (IS_ERR((void *)ret)) {

dito

> +		dev_err(priv->drm.dev,
> +			"Unable to enable DISPLAY regulator. err = 0x%x\n",
> +			ret);
> +		mutex_unlock(&priv->power_mutex);
> +		return;
> +	}
> +
> +	ret = regulator_enable(priv->vcom_regulator);
> +	if (IS_ERR((void *)ret)) {

dito

> +		dev_err(priv->drm.dev,
> +			"Unable to enable VCOM regulator. err = 0x%x\n",
> +			ret);
> +		mutex_unlock(&priv->power_mutex);
> +		return;
> +	}
> +
> +	priv->powered = true;
> +
> +	mutex_unlock(&priv->power_mutex);
> +}

[...]
> +	priv->rev = ((val & EPDC_VERSION_MAJOR_MASK) >>
> +				EPDC_VERSION_MAJOR_OFFSET) * 10
> +			+ ((val & EPDC_VERSION_MINOR_MASK) >>
> +				EPDC_VERSION_MINOR_OFFSET);

Instead of this transformation it might be (1) safer against unexpected
versions and (2) simpler, to store the EPDC_VERSION register content
directly.

Instead of

	if (priv->rev == 20) { ... }

we'd have

	if (priv->rev == 0x02000000) { ... }

or perhaps something along the lines of

	if (priv->rev == EPDC_REV(2, 0, 0)) { ... }

(using a macro that does the proper bitshifts).

> +	dev_dbg(priv->drm.dev, "EPDC version = %d\n", priv->rev);
> +
> +	if (priv->rev <= 20) {
> +		dev_err(priv->drm.dev, "Unsupported version (%d)\n", priv->rev);
> +		return -ENODEV;
> +	}
> +
> +	/* Initialize EPDC pins */
> +	pinctrl = devm_pinctrl_get_select_default(priv->drm.dev);
> +	if (IS_ERR(pinctrl)) {
> +		dev_err(priv->drm.dev, "can't get/select pinctrl\n");
> +		return PTR_ERR(pinctrl);
> +	}
> +
> +	mutex_init(&priv->power_mutex);
> +
> +	return 0;
> +}

[...]
> diff --git a/drivers/gpu/drm/mxc-epdc/epdc_waveform.h b/drivers/gpu/drm/mxc-epdc/epdc_waveform.h
> new file mode 100644
> index 000000000000..c5c461b975cb
> --- /dev/null
> +++ b/drivers/gpu/drm/mxc-epdc/epdc_waveform.h
> @@ -0,0 +1,7 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/* Copyright (C) 2022 Andreas Kemnade */
> +int mxc_epdc_fb_get_temp_index(struct mxc_epdc *priv, int temp);
> +int mxc_epdc_prepare_waveform(struct mxc_epdc *priv,
> +			      const u8 *waveform, size_t size);
> +void mxc_epdc_set_update_waveform(struct mxc_epdc *priv,
> +				  struct mxcfb_waveform_modes *wv_modes);
> diff --git a/drivers/gpu/drm/mxc-epdc/mxc_epdc.h b/drivers/gpu/drm/mxc-epdc/mxc_epdc.h
> index c5f5280b574f..f7b1cbc4cc4e 100644
> --- a/drivers/gpu/drm/mxc-epdc/mxc_epdc.h
> +++ b/drivers/gpu/drm/mxc-epdc/mxc_epdc.h
> @@ -8,6 +8,32 @@
>  #include <drm/drm_drv.h>
>  #include <drm/drm_connector.h>
>  #include <drm/drm_simple_kms_helper.h>
> +#include <linux/thermal.h>
> +#include "epdc_regs.h"
> +
> +#define TEMP_USE_AMBIENT			0x1000

What's the significance of 0x1000 here? Is it a register value?


>  static void mxc_epdc_pipe_update(struct drm_simple_display_pipe *pipe,
> @@ -187,6 +267,7 @@ static struct drm_driver mxc_epdc_driver = {
>  static int mxc_epdc_probe(struct platform_device *pdev)
>  {
>  	struct mxc_epdc *priv;
> +	const struct firmware *firmware;
>  	int ret;
>  
>  	priv = devm_drm_dev_alloc(&pdev->dev, &mxc_epdc_driver, struct mxc_epdc, drm);
> @@ -195,6 +276,19 @@ static int mxc_epdc_probe(struct platform_device *pdev)
>  
>  	platform_set_drvdata(pdev, priv);
>  
> +	ret = mxc_epdc_init_hw(priv);
> +	if (ret)
> +		return ret;
> +
> +	ret = request_firmware(&firmware, "imx/epdc/epdc.fw", priv->drm.dev);

Thinking ahead to the point when we'll have multiple waveforms for
different modes...  What's your idea for a naming scheme to distinguish
the different waveform files, and should the default name be epdc.fw, or
perhaps something more specific?

> +	if (ret)
> +		return ret;
> +
> +	ret = mxc_epdc_prepare_waveform(priv, firmware->data, firmware->size);
> +	release_firmware(firmware);
> +	if (ret)
> +		return ret;
> +
>  	mxc_epdc_setup_mode_config(&priv->drm);
>  
>  	ret = mxc_epdc_output(&priv->drm);


Jonathan

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

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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2022-03-12 20:13 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-06  8:00 [RFC PATCH 0/6] drm: EPDC driver for i.MX6 Andreas Kemnade
2022-02-06  8:00 ` Andreas Kemnade
2022-02-06  8:00 ` [RFC PATCH 1/6] dt-bindings: display: imx: Add EPDC Andreas Kemnade
2022-02-06  8:00   ` Andreas Kemnade
2022-02-11 15:46   ` Rob Herring
2022-02-11 15:46     ` Rob Herring
2022-02-11 15:46     ` Rob Herring
2022-02-14 22:45     ` Andreas Kemnade
2022-02-14 22:45       ` Andreas Kemnade
2022-02-14 22:45       ` Andreas Kemnade
2022-02-16 23:52       ` Rob Herring
2022-02-16 23:52         ` Rob Herring
2022-02-16 23:52         ` Rob Herring
2022-02-17  9:21   ` Krzysztof Kozlowski
2022-02-17  9:21     ` Krzysztof Kozlowski
2022-02-17 11:31     ` Andreas Kemnade
2022-02-17 11:31       ` Andreas Kemnade
2022-02-17 11:31       ` Andreas Kemnade
2022-02-17 11:43       ` Krzysztof Kozlowski
2022-02-17 11:43         ` Krzysztof Kozlowski
2022-02-17 11:43         ` Krzysztof Kozlowski
2022-03-12 19:23   ` Jonathan Neuschäfer
2022-03-12 19:23     ` Jonathan Neuschäfer
2022-03-12 19:23     ` Jonathan Neuschäfer
2022-03-14 22:04     ` Andreas Kemnade
2022-03-14 22:04       ` Andreas Kemnade
2022-03-14 22:04       ` Andreas Kemnade
2022-02-06  8:00 ` [RFC PATCH 2/6] drm: Add skeleton for EPDC driver Andreas Kemnade
2022-02-06  8:00   ` Andreas Kemnade
2022-02-06 10:08   ` kernel test robot
2022-03-12 19:41   ` Jonathan Neuschäfer
2022-03-12 19:41     ` Jonathan Neuschäfer
2022-03-12 19:41     ` Jonathan Neuschäfer
2022-02-06  8:00 ` [RFC PATCH 3/6] drm: mxc-epdc: Add display and waveform initialisation Andreas Kemnade
2022-02-06  8:00   ` Andreas Kemnade
2022-02-06 10:08   ` kernel test robot
2022-02-06 10:18   ` kernel test robot
2022-03-12 20:12   ` Jonathan Neuschäfer [this message]
2022-03-12 20:12     ` Jonathan Neuschäfer
2022-03-12 20:12     ` Jonathan Neuschäfer
2022-02-06  8:00 ` [RFC PATCH 4/6] drm: mxc-epdc: Add update management Andreas Kemnade
2022-02-06  8:00   ` Andreas Kemnade
2022-02-06 11:09   ` kernel test robot
2022-03-12 20:21   ` Jonathan Neuschäfer
2022-03-12 20:21     ` Jonathan Neuschäfer
2022-03-12 20:21     ` Jonathan Neuschäfer
2022-02-06  8:00 ` [RFC PATCH 5/6] ARM: dts: imx6sll: add EPDC Andreas Kemnade
2022-02-06  8:00   ` Andreas Kemnade
2022-02-06  8:00 ` [RFC PATCH 6/6] arm: dts: imx6sl: Add EPDC Andreas Kemnade
2022-02-06  8:00   ` Andreas Kemnade

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=Yiz+vvnkfn9hemJg@latitude \
    --to=j.neuschaefer@gmx.net \
    --cc=airlied@linux.ie \
    --cc=alistair@alistair23.me \
    --cc=andreas@kemnade.info \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=festevam@gmail.com \
    --cc=josua.mayer@jm0.eu \
    --cc=kernel@pengutronix.de \
    --cc=letux-kernel@openphoenux.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=robh+dt@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=samuel@sholland.org \
    --cc=shawnguo@kernel.org \
    --cc=tzimmermann@suse.de \
    /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.