All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: dri-devel@lists.freedesktop.org
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Subject: [PATCH 22/48] drm: omapdrm: dss: Pass DSS private structure to runtime PM functions
Date: Fri, 13 Oct 2017 17:59:18 +0300	[thread overview]
Message-ID: <20171013145944.26557-23-laurent.pinchart@ideasonboard.com> (raw)
In-Reply-To: <20171013145944.26557-1-laurent.pinchart@ideasonboard.com>

To prepare for the removal of the global variable storing DSS private
data, pass its pointer to the dss_runtime_{get,put}() functions.

As this requires getting hold of the DSS private structure in the
callers, we expose the structure through an opaque pointer that can be
retrieved through a new dss_device_get() function. The function
currently returns a pointer to the global data structure, and will later
be updated to get the pointer from device driver data when the DSS
private structure will be allocated dynamically.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/omapdrm/dss/dsi.c       |  7 +++++--
 drivers/gpu/drm/omapdrm/dss/dss.c       | 37 ++++++++++++++++++++-------------
 drivers/gpu/drm/omapdrm/dss/dss.h       | 13 ++++++++----
 drivers/gpu/drm/omapdrm/dss/hdmi.h      |  6 ++++--
 drivers/gpu/drm/omapdrm/dss/hdmi4.c     |  3 ++-
 drivers/gpu/drm/omapdrm/dss/hdmi5.c     |  3 ++-
 drivers/gpu/drm/omapdrm/dss/hdmi_pll.c  | 10 +++++----
 drivers/gpu/drm/omapdrm/dss/video-pll.c | 12 ++++++-----
 8 files changed, 58 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
index a64e6a39ebf1..1dab308c9bc1 100644
--- a/drivers/gpu/drm/omapdrm/dss/dsi.c
+++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
@@ -5333,7 +5333,8 @@ static const struct dss_pll_hw dss_omap5_dsi_pll_hw = {
 	.has_refsel = true,
 };
 
-static int dsi_init_pll_data(struct platform_device *dsidev)
+static int dsi_init_pll_data(struct dss_device *dss,
+			     struct platform_device *dsidev)
 {
 	struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
 	struct dss_pll *pll = &dsi->pll;
@@ -5352,6 +5353,7 @@ static int dsi_init_pll_data(struct platform_device *dsidev)
 	pll->base = dsi->pll_base;
 	pll->hw = dsi->data->pll_hw;
 	pll->ops = &dsi_pll_ops;
+	pll->dss = dss;
 
 	r = dss_pll_register(pll);
 	if (r)
@@ -5428,6 +5430,7 @@ static const struct soc_device_attribute dsi_soc_devices[] = {
 static int dsi_bind(struct device *dev, struct device *master, void *data)
 {
 	struct platform_device *dsidev = to_platform_device(dev);
+	struct dss_device *dss = dss_get_device(master);
 	const struct soc_device_attribute *soc;
 	const struct dsi_module_id_data *d;
 	u32 rev;
@@ -5538,7 +5541,7 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
 	if (r)
 		return r;
 
-	dsi_init_pll_data(dsidev);
+	dsi_init_pll_data(dss, dsidev);
 
 	pm_runtime_enable(&dsidev->dev);
 
diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c b/drivers/gpu/drm/omapdrm/dss/dss.c
index b45641f6a844..a83277ebe1ef 100644
--- a/drivers/gpu/drm/omapdrm/dss/dss.c
+++ b/drivers/gpu/drm/omapdrm/dss/dss.c
@@ -93,7 +93,7 @@ struct dss_features {
 	bool has_lcd_clk_src;
 };
 
-static struct {
+struct dss_device {
 	struct platform_device *pdev;
 	struct omap_drm_private drm;
 
@@ -125,7 +125,9 @@ static struct {
 
 	struct dss_pll	*video1_pll;
 	struct dss_pll	*video2_pll;
-} dss;
+};
+
+static struct dss_device dss;
 
 static const char * const dss_generic_clk_source_names[] = {
 	[DSS_CLK_SRC_FCK]	= "FCK",
@@ -382,7 +384,7 @@ static void dss_dump_clocks(struct seq_file *s)
 	const char *fclk_name;
 	unsigned long fclk_rate;
 
-	if (dss_runtime_get())
+	if (dss_runtime_get(&dss))
 		return;
 
 	seq_printf(s, "- DSS -\n");
@@ -394,7 +396,7 @@ static void dss_dump_clocks(struct seq_file *s)
 			fclk_name,
 			fclk_rate);
 
-	dss_runtime_put();
+	dss_runtime_put(&dss);
 }
 #endif
 
@@ -402,7 +404,7 @@ static int dss_dump_regs(struct seq_file *s, void *p)
 {
 #define DUMPREG(r) seq_printf(s, "%-35s %08x\n", #r, dss_read_reg(r))
 
-	if (dss_runtime_get())
+	if (dss_runtime_get(&dss))
 		return 0;
 
 	DUMPREG(DSS_REVISION);
@@ -416,7 +418,7 @@ static int dss_dump_regs(struct seq_file *s, void *p)
 		DUMPREG(DSS_SDI_STATUS);
 	}
 
-	dss_runtime_put();
+	dss_runtime_put(&dss);
 #undef DUMPREG
 	return 0;
 }
@@ -889,27 +891,32 @@ static void dss_put_clocks(void)
 		clk_put(dss.parent_clk);
 }
 
-int dss_runtime_get(void)
+int dss_runtime_get(struct dss_device *dss)
 {
 	int r;
 
 	DSSDBG("dss_runtime_get\n");
 
-	r = pm_runtime_get_sync(&dss.pdev->dev);
+	r = pm_runtime_get_sync(&dss->pdev->dev);
 	WARN_ON(r < 0);
 	return r < 0 ? r : 0;
 }
 
-void dss_runtime_put(void)
+void dss_runtime_put(struct dss_device *dss)
 {
 	int r;
 
 	DSSDBG("dss_runtime_put\n");
 
-	r = pm_runtime_put_sync(&dss.pdev->dev);
+	r = pm_runtime_put_sync(&dss->pdev->dev);
 	WARN_ON(r < 0 && r != -ENOSYS && r != -EBUSY);
 }
 
+struct dss_device *dss_get_device(struct device *dev)
+{
+	return &dss;
+}
+
 /* DEBUGFS */
 #if defined(CONFIG_OMAP2_DSS_DEBUGFS)
 static int dss_debug_dump_clocks(struct seq_file *s, void *p)
@@ -1297,13 +1304,15 @@ static int dss_video_pll_probe(struct platform_device *pdev)
 	}
 
 	if (of_property_match_string(np, "reg-names", "pll1") >= 0) {
-		dss.video1_pll = dss_video_pll_init(pdev, 0, pll_regulator);
+		dss.video1_pll = dss_video_pll_init(&dss, pdev, 0,
+						    pll_regulator);
 		if (IS_ERR(dss.video1_pll))
 			return PTR_ERR(dss.video1_pll);
 	}
 
 	if (of_property_match_string(np, "reg-names", "pll2") >= 0) {
-		dss.video2_pll = dss_video_pll_init(pdev, 1, pll_regulator);
+		dss.video2_pll = dss_video_pll_init(&dss, pdev, 1,
+						    pll_regulator);
 		if (IS_ERR(dss.video2_pll)) {
 			dss_video_pll_uninit(dss.video1_pll);
 			return PTR_ERR(dss.video2_pll);
@@ -1361,7 +1370,7 @@ static int dss_bind(struct device *dev)
 
 	pm_runtime_enable(&pdev->dev);
 
-	r = dss_runtime_get();
+	r = dss_runtime_get(&dss);
 	if (r)
 		goto err_runtime_get;
 
@@ -1386,7 +1395,7 @@ static int dss_bind(struct device *dev)
 	rev = dss_read_reg(DSS_REVISION);
 	pr_info("OMAP DSS rev %d.%d\n", FLD_GET(rev, 7, 4), FLD_GET(rev, 3, 0));
 
-	dss_runtime_put();
+	dss_runtime_put(&dss);
 
 	r = component_bind_all(&pdev->dev, NULL);
 	if (r)
diff --git a/drivers/gpu/drm/omapdrm/dss/dss.h b/drivers/gpu/drm/omapdrm/dss/dss.h
index e688e937da28..009b7ef200cd 100644
--- a/drivers/gpu/drm/omapdrm/dss/dss.h
+++ b/drivers/gpu/drm/omapdrm/dss/dss.h
@@ -29,6 +29,7 @@
 
 struct dentry;
 struct dss_debugfs_entry;
+struct dss_device;
 struct platform_device;
 struct seq_file;
 
@@ -198,6 +199,7 @@ struct dss_pll_hw {
 struct dss_pll {
 	const char *name;
 	enum dss_pll_id id;
+	struct dss_device *dss;
 
 	struct clk *clkin;
 	struct regulator *regulator;
@@ -277,8 +279,10 @@ static inline void dss_debugfs_remove_file(struct dss_debugfs_entry *entry)
 int dss_init_platform_driver(void) __init;
 void dss_uninit_platform_driver(void);
 
-int dss_runtime_get(void);
-void dss_runtime_put(void);
+struct dss_device *dss_get_device(struct device *dev);
+
+int dss_runtime_get(struct dss_device *dss);
+void dss_runtime_put(struct dss_device *dss);
 
 unsigned long dss_get_dispc_clk_rate(void);
 unsigned long dss_get_max_fck_rate(void);
@@ -289,8 +293,9 @@ enum dss_hdmi_venc_clk_source_select dss_get_hdmi_venc_clk_source(void);
 const char *dss_get_clk_source_name(enum dss_clk_source clk_src);
 
 /* DSS VIDEO PLL */
-struct dss_pll *dss_video_pll_init(struct platform_device *pdev, int id,
-	struct regulator *regulator);
+struct dss_pll *dss_video_pll_init(struct dss_device *dss,
+				   struct platform_device *pdev, int id,
+				   struct regulator *regulator);
 void dss_video_pll_uninit(struct dss_pll *pll);
 
 void dss_ctrl_pll_enable(enum dss_pll_id pll_id, bool enable);
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi.h b/drivers/gpu/drm/omapdrm/dss/hdmi.h
index a66f8ff06c24..4dbc4f3d728c 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi.h
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi.h
@@ -29,6 +29,8 @@
 #include "omapdss.h"
 #include "dss.h"
 
+struct dss_device;
+
 /* HDMI Wrapper */
 
 #define HDMI_WP_REVISION			0x0
@@ -324,8 +326,8 @@ phys_addr_t hdmi_wp_get_audio_dma_addr(struct hdmi_wp_data *wp);
 
 /* HDMI PLL funcs */
 void hdmi_pll_dump(struct hdmi_pll_data *pll, struct seq_file *s);
-int hdmi_pll_init(struct platform_device *pdev, struct hdmi_pll_data *pll,
-	struct hdmi_wp_data *wp);
+int hdmi_pll_init(struct dss_device *dss, struct platform_device *pdev,
+		  struct hdmi_pll_data *pll, struct hdmi_wp_data *wp);
 void hdmi_pll_uninit(struct hdmi_pll_data *hpll);
 
 /* HDMI PHY funcs */
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
index ada4e3a9dba7..d84eba8440c8 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
@@ -717,6 +717,7 @@ static int hdmi_audio_register(struct device *dev)
 static int hdmi4_bind(struct device *dev, struct device *master, void *data)
 {
 	struct platform_device *pdev = to_platform_device(dev);
+	struct dss_device *dss = dss_get_device(master);
 	int r;
 	int irq;
 
@@ -734,7 +735,7 @@ static int hdmi4_bind(struct device *dev, struct device *master, void *data)
 	if (r)
 		return r;
 
-	r = hdmi_pll_init(pdev, &hdmi.pll, &hdmi.wp);
+	r = hdmi_pll_init(dss, pdev, &hdmi.pll, &hdmi.wp);
 	if (r)
 		return r;
 
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi5.c b/drivers/gpu/drm/omapdrm/dss/hdmi5.c
index 00ea975b75f9..64cfed89c79b 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi5.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi5.c
@@ -719,6 +719,7 @@ static int hdmi_audio_register(struct device *dev)
 static int hdmi5_bind(struct device *dev, struct device *master, void *data)
 {
 	struct platform_device *pdev = to_platform_device(dev);
+	struct dss_device *dss = dss_get_device(master);
 	int r;
 	int irq;
 
@@ -736,7 +737,7 @@ static int hdmi5_bind(struct device *dev, struct device *master, void *data)
 	if (r)
 		return r;
 
-	r = hdmi_pll_init(pdev, &hdmi.pll, &hdmi.wp);
+	r = hdmi_pll_init(dss, pdev, &hdmi.pll, &hdmi.wp);
 	if (r)
 		return r;
 
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi_pll.c b/drivers/gpu/drm/omapdrm/dss/hdmi_pll.c
index 55bee81f4dd5..9915354b66c9 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi_pll.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi_pll.c
@@ -128,7 +128,8 @@ static const struct dss_pll_hw dss_omap5_hdmi_pll_hw = {
 	.has_refsel = true,
 };
 
-static int hdmi_init_pll_data(struct platform_device *pdev,
+static int hdmi_init_pll_data(struct dss_device *dss,
+			      struct platform_device *pdev,
 			      struct hdmi_pll_data *hpll)
 {
 	struct dss_pll *pll = &hpll->pll;
@@ -145,6 +146,7 @@ static int hdmi_init_pll_data(struct platform_device *pdev,
 	pll->id = DSS_PLL_HDMI;
 	pll->base = hpll->base;
 	pll->clkin = clk;
+	pll->dss = dss;
 
 	if (hpll->wp->version == 4)
 		pll->hw = &dss_omap4_hdmi_pll_hw;
@@ -160,8 +162,8 @@ static int hdmi_init_pll_data(struct platform_device *pdev,
 	return 0;
 }
 
-int hdmi_pll_init(struct platform_device *pdev, struct hdmi_pll_data *pll,
-	struct hdmi_wp_data *wp)
+int hdmi_pll_init(struct dss_device *dss, struct platform_device *pdev,
+		  struct hdmi_pll_data *pll, struct hdmi_wp_data *wp)
 {
 	int r;
 	struct resource *res;
@@ -174,7 +176,7 @@ int hdmi_pll_init(struct platform_device *pdev, struct hdmi_pll_data *pll,
 	if (IS_ERR(pll->base))
 		return PTR_ERR(pll->base);
 
-	r = hdmi_init_pll_data(pdev, pll);
+	r = hdmi_init_pll_data(dss, pdev, pll);
 	if (r) {
 		DSSERR("failed to init HDMI PLL\n");
 		return r;
diff --git a/drivers/gpu/drm/omapdrm/dss/video-pll.c b/drivers/gpu/drm/omapdrm/dss/video-pll.c
index 38a239cc5e04..7ef30f61c52b 100644
--- a/drivers/gpu/drm/omapdrm/dss/video-pll.c
+++ b/drivers/gpu/drm/omapdrm/dss/video-pll.c
@@ -62,7 +62,7 @@ static int dss_video_pll_enable(struct dss_pll *pll)
 	struct dss_video_pll *vpll = container_of(pll, struct dss_video_pll, pll);
 	int r;
 
-	r = dss_runtime_get();
+	r = dss_runtime_get(pll->dss);
 	if (r)
 		return r;
 
@@ -81,7 +81,7 @@ static int dss_video_pll_enable(struct dss_pll *pll)
 err_reset:
 	dss_dpll_disable_scp_clk(vpll);
 	dss_ctrl_pll_enable(pll->id, false);
-	dss_runtime_put();
+	dss_runtime_put(pll->dss);
 
 	return r;
 }
@@ -96,7 +96,7 @@ static void dss_video_pll_disable(struct dss_pll *pll)
 
 	dss_ctrl_pll_enable(pll->id, false);
 
-	dss_runtime_put();
+	dss_runtime_put(pll->dss);
 }
 
 static const struct dss_pll_ops dss_pll_ops = {
@@ -134,8 +134,9 @@ static const struct dss_pll_hw dss_dra7_video_pll_hw = {
 	.errata_i886 = true,
 };
 
-struct dss_pll *dss_video_pll_init(struct platform_device *pdev, int id,
-	struct regulator *regulator)
+struct dss_pll *dss_video_pll_init(struct dss_device *dss,
+				   struct platform_device *pdev, int id,
+				   struct regulator *regulator)
 {
 	const char * const reg_name[] = { "pll1", "pll2" };
 	const char * const clkctrl_name[] = { "pll1_clkctrl", "pll2_clkctrl" };
@@ -187,6 +188,7 @@ struct dss_pll *dss_video_pll_init(struct platform_device *pdev, int id,
 	pll->base = pll_base;
 	pll->hw = &dss_dra7_video_pll_hw;
 	pll->ops = &dss_pll_ops;
+	pll->dss = dss;
 
 	r = dss_pll_register(pll);
 	if (r)
-- 
Regards,

Laurent Pinchart

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

  parent reply	other threads:[~2017-10-13 14:59 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-13 14:58 [PATCH 00/48] omapdrm: Merge omapdrm and omapdss Laurent Pinchart
2017-10-13 14:58 ` [PATCH 01/48] drm: omapdrm: dpi: Don't treat GPIO probe deferral as an error Laurent Pinchart
2017-10-14 12:11   ` Sebastian Reichel
2017-10-13 14:58 ` [PATCH 02/48] drm: omapdrm: Pass drm_device to omap_gem_resume() Laurent Pinchart
2017-10-14 12:15   ` Sebastian Reichel
2017-10-13 14:58 ` [PATCH 03/48] drm: omapdrm: Remove unused omap_dss_find_device() function Laurent Pinchart
2017-10-14 12:16   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 04/48] drm: omapdrm: Merge the omapdss and omapdss-base modules Laurent Pinchart
2017-10-14 12:22   ` Sebastian Reichel
2017-10-16  9:04     ` Laurent Pinchart
2017-10-18  9:19   ` Tomi Valkeinen
2017-10-18 12:28     ` Laurent Pinchart
2017-10-13 14:59 ` [PATCH 05/48] drm: omapdrm: dss: Set the DMA coherent mask Laurent Pinchart
2017-10-14 12:24   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 06/48] drm: omapdrm: dss: Make dss_dump_clocks() function static Laurent Pinchart
2017-10-14 12:24   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 07/48] drm: omapdrm: dpi: Remove dpi_data port_initialized field Laurent Pinchart
2017-10-14 12:28   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 08/48] drm: omapdrm: venc: Return error code on OF parsing failure Laurent Pinchart
2017-10-14 12:29   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 09/48] drm: omapdrm: Deconstruct the omap_drv.h header Laurent Pinchart
2017-10-17 22:25   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 10/48] drm: omapdrm: Use kernel integer types Laurent Pinchart
2017-10-14 12:34   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 11/48] drm: omapdrm: Use unsigned int type Laurent Pinchart
2017-10-14 12:37   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 12/48] drm: omapdrm: Split init and cleanup from probe and remove functions Laurent Pinchart
2017-10-14 12:41   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 13/48] drm: omapdrm: connector-analog-tv: Remove tvc_of_match forward declaration Laurent Pinchart
2017-10-14 12:42   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 14/48] drm: omapdrm: displays: Remove OF node check in connector drivers Laurent Pinchart
2017-10-14 12:43   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 15/48] drm: omapdrm: displays: Remove OF node check in encoder drivers Laurent Pinchart
2017-10-14 12:44   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 16/48] drm: omapdrm: displays: Remove OF node check in panel drivers Laurent Pinchart
2017-10-14 12:45   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 17/48] drm: omapdrm: displays: Get connector source at connect time Laurent Pinchart
2017-10-14 12:51   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 18/48] drm: omapdrm: displays: Get panel " Laurent Pinchart
2017-10-14 12:55   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 19/48] drm: omapdrm: displays: Get encoder " Laurent Pinchart
2017-10-14 12:58   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 20/48] drm: omapdrm: Merge the omapdrm and omapdss drivers Laurent Pinchart
2017-10-14 13:12   ` Sebastian Reichel
2017-10-16  9:09     ` Laurent Pinchart
2017-10-13 14:59 ` [PATCH 21/48] drm: omapdrm: dss: Support passing private data to debugfs show handlers Laurent Pinchart
2017-10-15 21:10   ` Sebastian Reichel
2017-10-16  9:11     ` Laurent Pinchart
2017-10-13 14:59 ` Laurent Pinchart [this message]
2017-10-16  8:39   ` [PATCH 22/48] drm: omapdrm: dss: Pass DSS private structure to runtime PM functions Sebastian Reichel
2017-10-13 14:59 ` [PATCH 23/48] drm: omapdrm: dss: Pass PLL pointer to dss_ctrl_pll_enable() Laurent Pinchart
2017-10-16  8:42   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 24/48] drm: omapdrm: sdi: Pass DSS pointer to dss_sdi_*() functions Laurent Pinchart
2017-10-16  8:47   ` Sebastian Reichel
2017-10-16  9:03     ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 25/48] drm: omapdrm: dss: Pass DSS pointer to dss_ops operations Laurent Pinchart
2017-10-16  9:05   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 26/48] drm: omapdrm: dss: Pass DSS pointer to dss_get_*_clk_source() Laurent Pinchart
2017-10-16  9:08   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 27/48] drm: omapdrm: dss: Pass DSS pointer to dss clock functions Laurent Pinchart
2017-10-16  9:12   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 28/48] drm: omapdrm: dss: Pass DSS pointer to remaining dss functions Laurent Pinchart
2017-10-16  9:15   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 29/48] drm: omapdrm: dss: Remove dss_get_hdmi_venc_clk_source() function Laurent Pinchart
2017-10-16  9:16   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 30/48] drm: omapdrm: dss: Allocate the DSS private data structure dynamically Laurent Pinchart
2017-10-16  9:39   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 31/48] drm: omapdrm: hdmi4: Allocate the omap_hdmi " Laurent Pinchart
2017-10-16 10:19   ` Sebastian Reichel
2017-10-16 10:27   ` Sebastian Reichel
2017-10-16 11:17     ` Laurent Pinchart
2017-10-13 14:59 ` [PATCH 32/48] drm: omapdrm: hdmi5: " Laurent Pinchart
2017-10-17 18:52   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 33/48] drm: omapdrm: venc: Allocate the venc private " Laurent Pinchart
2017-10-17 18:52   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 34/48] drm: omapdrm: sdi: Allocate the sdi " Laurent Pinchart
2017-10-17 19:09   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 35/48] drm: omapdrm: dsi: Make wait_for_bit_change() return a status Laurent Pinchart
2017-10-17 19:12   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 36/48] drm: omapdrm: dsi: Pass the dsi_data pointer to internal functions Laurent Pinchart
2017-10-17 20:02   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 37/48] drm: omapdrm: dsi: Combine two commonly used inline functions Laurent Pinchart
2017-10-17 20:06   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 38/48] drm: omapdrm: dsi: Use dev pointer directly in dsi_bind() function Laurent Pinchart
2017-10-17 20:08   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 39/48] drm: omapdrm: dsi: Store the struct device pointer in struct dsi_data Laurent Pinchart
2017-10-17 20:11   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 40/48] drm: omapdrm: dsi: Don't pass channel to dispc init/uninit functions Laurent Pinchart
2017-10-17 20:13   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 41/48] drm: omapdrm: dss: Pass omap_dss_device pointer to dss_mgr_*() functions Laurent Pinchart
2017-10-17 20:31   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 42/48] drm: omapdrm: dss: Remove unused functions prototypes Laurent Pinchart
2017-10-17 20:37   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 43/48] drm: omapdrm: dss: Pass omap_drm_private pointer to dss_mgr_ops Laurent Pinchart
2017-10-17 21:23   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 44/48] drm: omapdrm: dispc: Pass DISPC pointer to dispc_ops operations Laurent Pinchart
2017-10-17 21:23   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 45/48] drm: omapdrm: dispc: Pass DISPC pointer to remaining dispc API functions Laurent Pinchart
2017-10-17 21:24   ` Sebastian Reichel
2017-10-17 21:44     ` Laurent Pinchart
2017-10-13 14:59 ` [PATCH 46/48] drm: omapdrm: dispc: Allocate the dispc private data structure dynamically Laurent Pinchart
2017-10-17 22:09   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 47/48] drm: omapdrm: dss: Store the debugfs root directory in struct dss_device Laurent Pinchart
2017-10-17 22:16   ` Sebastian Reichel
2017-10-17 22:34     ` Laurent Pinchart
2017-10-13 14:59 ` [PATCH 48/48] drm: omapdrm: dss: Store the registered plls array " Laurent Pinchart
2017-10-17 22:21   ` Sebastian Reichel
2017-10-17 22:29 ` [PATCH 00/48] omapdrm: Merge omapdrm and omapdss Sebastian Reichel
2017-10-17 22:36   ` Laurent Pinchart
2017-10-18  9:46 ` Tomi Valkeinen
2017-10-18  9:56   ` Tomi Valkeinen
2018-01-19  3:48     ` Laurent Pinchart
2017-10-18 12:56 ` Tomi Valkeinen
2017-12-01 12:55 ` Tomi Valkeinen

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=20171013145944.26557-23-laurent.pinchart@ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=dri-devel@lists.freedesktop.org \
    --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.