Linux Samsung SOC development
 help / color / mirror / Atom feed
From: Inki Dae <inki.dae@samsung.com>
To: 'Rahul Sharma' <rahul.sharma@samsung.com>,
	linux-samsung-soc@vger.kernel.org,
	dri-devel@lists.freedesktop.org
Cc: kgene.kim@samsung.com, sw0312.kim@samsung.com,
	seanpaul@chromium.org, l.stach@pengutronix.de,
	tomasz.figa@gmail.com, s.nawrocki@samsung.com, joshi@samsung.com,
	r.sh.open@gmail.com
Subject: RE: [PATCH 0/7] drm/exynos: move hdmiphy related code to hdmiphy driver
Date: Fri, 30 Aug 2013 17:33:26 +0900	[thread overview]
Message-ID: <02dd01cea55b$98d117d0$ca734770$%dae@samsung.com> (raw)
In-Reply-To: <1377845974-28373-1-git-send-email-rahul.sharma@samsung.com>

Hi Rahul.

Thanks for your patch set.

I had just quick review to all patch series. And I think we could fully hide
hdmiphy interfaces,
exynos_hdmiphy_enable/disable/check_mode/set_mode/conf_apply, from hdmi
driver.
That may be prototyped like below,

at exynos_hdmi.h

/* Define hdmiphy callbacks. */
struct exynos_hdmiphy_ops {
	void (*enable)(struct device *dev);
	void (*disable)(struct device *dev);
	int (*check_mode)(struct device *dev, struct drm_display_mode
*mode);
	int (*set_mode)(struct device *dev, struct drm_display_mode *mode);
	int (*apply)(struct device *dev);
};


at exynos_hdmi.c

/*
  * Add a new structure for hdmi driver data.
  * type could be HDMI_TYPE13 or HDMI_TYPE14.
  * i2c_hdmiphy could be true or false: true means that current hdmi device
uses i2c
  * based hdmiphy device, otherwise platform device based one.
  */
struct hdmi_drv_data {
	unsigned int type;
	unsigned int i2c_hdmiphy;
};

...

/* Add new members to hdmi context. */
struct hdmi_context {
	...
	struct hdmi_drv_data *drv_data;
	struct hdmiphy_ops *ops;
	...
};


/* Add hdmi device data according Exynos SoC. */
static struct hdmi_drv_data exynos4212_hdmi_drv_data = {
	.type = HDMI_TYPE14,
	.i2c_hdmiphy = true
};

static struct hdmi_drv_data exynos5420_hdmi_drv_data = {
	.type = HDMI_TYPE14,
	.i2c_hdmiphy = false
};


static struct of_device_id hdmi_match_types[] = {
	{
		.compatible = "samsung,exynos4212-hdmi",
		.data		= (void *)&exynos4212_hdmi_drv_data,
	}, {
	...

		.compatible = "samsung,exynos5420-hdmi",
		.data		= (void *)&exynos5420_hdmi_drv_data,
	}, {
	}
};

/* the below example function shows how hdmiphy interfaces can be hided from
hdmi driver. */
static void hdmi_mode_set(...)
{
	...
	hdata->ops->set_mode(hdata->hdmiphy_dev, mode);
}

static int hdmi_get_phy_device(struct hdmi_context *hdata)
{
	struct hdmi_drv_data *data = hdata->drv_data;

	...
	/* Register hdmiphy driver according to i2c_hdmiphy value. */
	ret = exynos_hdmiphy_driver_register(data->i2c_hdmiphy);
	...
	/* Get hdmiphy driver ops according to i2c_hdmiphy value. */
	hdata->ops = exynos_hdmiphy_get_ops(data->i2c_hdmiphy);
	...
}


at exynos_hdmiphy.c

/* Define hdmiphy ops respectively. */
struct exynos_hdmiphy_ops hdmiphy_i2c_ops = {
	.enable = exynos_hdmiphy_i2c_enable,
	.disable = exynos_hdmiphy_i2c_disable,
	...
};

struct exynos_hdmiphy_ops hdmiphy_platdev_ops = {
	.enable = exynos_hdmiphy_platdev_enable,
	.disable = exynos_hdmiphy_platdev_disable,
	...
};

struct exynos_hdmiphy_ops *exynos_hdmiphy_get_ops(unsigned int i2c_hdmiphy)
{
	/* Return hdmiphy ops appropriately according to i2c_hdmiphy. */
	if (i2c_hdmiphy)
		return &hdmiphy_i2c_ops;

	return &hdmiphy_platdev_ops;
}

int exynos_hdmiphy_driver_register(unsigned int i2c_hdmiphy)
{
	...
	/* Register hdmiphy driver appropriately according to i2c_hdmiphy.
*/
	if (i2c_hdmiphy) {
		ret = i2c_add_driver(&hdmiphy_i2c_driver);
		...
	} else {
		ret = platform_driver_register(&hdmiphy_platform_driver);
		...
	}

	return ret;		
}

Thanks,
Inki Dae

> -----Original Message-----
> From: Rahul Sharma [mailto:rahul.sharma@samsung.com]
> Sent: Friday, August 30, 2013 3:59 PM
> To: linux-samsung-soc@vger.kernel.org; dri-devel@lists.freedesktop.org
> Cc: kgene.kim@samsung.com; sw0312.kim@samsung.com; inki.dae@samsung.com;
> seanpaul@chromium.org; l.stach@pengutronix.de; tomasz.figa@gmail.com;
> s.nawrocki@samsung.com; joshi@samsung.com; r.sh.open@gmail.com; Rahul
> Sharma
> Subject: [PATCH 0/7] drm/exynos: move hdmiphy related code to hdmiphy
> driver
> 
> Currently, exynos hdmiphy operations and configs are kept
> inside the hdmi driver. Hdmiphy related code is tightly
> coupled with hdmi IP driver.
> 
> This series also removes hdmiphy dummy clock for hdmiphy
> and replace it with Phy PMU Control from the hdmiphy driver.
> 
> At the end, support for exynos5420 hdmiphy is added to the
> hdmiphy driver which is a platform device.
> 
> Drm related paches are based on exynos-drm-next branch at
> git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git
> 
> Arch patches are dependent on
> http://www.mail-archive.com/linux-samsung-
> soc@vger.kernel.org/msg22195.html
> 
> Rahul Sharma (7):
>   drm/exynos: move hdmiphy related code to hdmiphy driver
>   drm/exynos: remove dummy hdmiphy clock
>   drm/exynos: add hdmiphy pmu bit control in hdmiphy driver
>   drm/exynos: add support for exynos5420 hdmiphy
>   exynos/drm: fix ddc i2c device probe failure
>   ARM: dts: update hdmiphy dt node for exynos5250
>   ARM: dts: update hdmiphy dt node for exynos5420
> 
>  .../devicetree/bindings/video/exynos_hdmi.txt      |    2 +
>  .../devicetree/bindings/video/exynos_hdmiphy.txt   |    6 +
>  arch/arm/boot/dts/exynos5250-smdk5250.dts          |    9 +-
>  arch/arm/boot/dts/exynos5420.dtsi                  |   12 +
>  drivers/gpu/drm/exynos/exynos_ddc.c                |    5 +
>  drivers/gpu/drm/exynos/exynos_drm_hdmi.h           |   13 +
>  drivers/gpu/drm/exynos/exynos_hdmi.c               |  353 ++--------
>  drivers/gpu/drm/exynos/exynos_hdmiphy.c            |  738
> +++++++++++++++++++-
>  drivers/gpu/drm/exynos/regs-hdmiphy.h              |   35 +
>  9 files changed, 868 insertions(+), 305 deletions(-)
>  create mode 100644 drivers/gpu/drm/exynos/regs-hdmiphy.h
> 
> --
> 1.7.10.4

  parent reply	other threads:[~2013-08-30  8:33 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-30  6:59 [PATCH 0/7] drm/exynos: move hdmiphy related code to hdmiphy driver Rahul Sharma
2013-08-30  6:59 ` [PATCH 1/7] " Rahul Sharma
2013-09-03 14:45   ` Sean Paul
2013-09-04  5:47     ` Rahul Sharma
2013-09-04  7:37       ` Inki Dae
2013-09-04 14:51         ` Sean Paul
2013-09-05  4:16           ` Inki Dae
2013-09-05  4:43             ` Rahul Sharma
2013-09-05  5:22               ` Inki Dae
2013-09-05  6:03                 ` Rahul Sharma
2013-09-05  6:19                   ` Inki Dae
2013-09-05 13:19                     ` Sean Paul
2013-09-05 13:50                       ` Inki Dae
2013-09-05 16:31                         ` Sylwester Nawrocki
2013-09-06  3:37                         ` Rahul Sharma
2013-09-06 13:51                           ` Sean Paul
2013-09-10  8:27                             ` Rahul Sharma
2013-09-16 12:40                               ` Inki Dae
2013-09-27  4:53                                 ` Rahul Sharma
2013-09-28 16:10                                   ` Inki Dae
     [not found]                                     ` <CAAQKjZPtxLAJOz6573+hEPZokEnvGF8BTMXoxcYUQ8zySAn-OA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-29 22:08                                       ` Sylwester Nawrocki
2013-09-29 23:13                                         ` Tomasz Figa
2013-10-01  4:40                                           ` Inki Dae
     [not found]                                     ` <5248A4EE.9000708@samsung.com>
     [not found]                                       ` <gmail.com@samsung.com>
     [not found]                                         ` <5248A4EE.9000708-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-10-01  4:39                                           ` Inki Dae
2013-10-03  2:28                                             ` Shirish S
2013-10-28  6:06                                               ` Shirish S
2013-09-04 14:33       ` Sean Paul
2013-09-30 10:50   ` Tushar Behera
2013-08-30  6:59 ` [PATCH 2/7] drm/exynos: remove dummy hdmiphy clock Rahul Sharma
2013-09-03 15:58   ` Sean Paul
2013-08-30  6:59 ` [PATCH 3/7] drm/exynos: add hdmiphy pmu bit control in hdmiphy driver Rahul Sharma
2013-09-03 16:10   ` Sean Paul
2013-08-30  6:59 ` [PATCH 4/7] drm/exynos: add support for exynos5420 hdmiphy Rahul Sharma
2013-09-03 16:15   ` Sean Paul
2013-08-30  6:59 ` [PATCH 5/7] exynos/drm: fix ddc i2c device probe failure Rahul Sharma
2013-08-30  6:59 ` [PATCH 6/7] ARM: dts: update hdmiphy dt node for exynos5250 Rahul Sharma
2013-08-30  6:59 ` [PATCH 7/7] ARM: dts: update hdmiphy dt node for exynos5420 Rahul Sharma
2013-08-30  8:33 ` Inki Dae [this message]
2013-08-30  9:06   ` [PATCH 0/7] drm/exynos: move hdmiphy related code to hdmiphy driver Inki Dae
2013-08-30 10:05   ` Rahul Sharma
2013-09-02  5:08     ` Inki Dae
2013-09-02  6:28       ` Rahul Sharma
2013-09-02  7:22         ` Inki Dae
2013-09-02  9:06           ` Rahul Sharma
2013-09-02 10:06             ` Inki Dae

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='02dd01cea55b$98d117d0$ca734770$%dae@samsung.com' \
    --to=inki.dae@samsung.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=joshi@samsung.com \
    --cc=kgene.kim@samsung.com \
    --cc=l.stach@pengutronix.de \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=r.sh.open@gmail.com \
    --cc=rahul.sharma@samsung.com \
    --cc=s.nawrocki@samsung.com \
    --cc=seanpaul@chromium.org \
    --cc=sw0312.kim@samsung.com \
    --cc=tomasz.figa@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox