dri-devel Digest, Vol 49, Issue 251

Bremalatha Ramalingam - ERS, HCL Tech bremalathar at hcl.com
Fri Apr 18 02:28:13 PDT 2014


Hi All,
I tried to run the application  I got the following compilation error message

v4l2_drm
In file included from v4l2_drm.c:16:0:
/usr/include/xf86drm.h:40:17: fatal error: drm.h: No such file or directory
compilation terminated.
make: *** [v4l2_drm] Error 1

I am trying to use this in the USB and intel graphics driver (emgd or i915)
Please help me in this regard


Thanks,

-----Original Message-----
From: dri-devel [mailto:dri-devel-bounces at lists.freedesktop.org] On Behalf Of dri-devel-request at lists.freedesktop.org
Sent: Friday, April 18, 2014 2:56 PM
To: dri-devel at lists.freedesktop.org
Subject: dri-devel Digest, Vol 49, Issue 251

Send dri-devel mailing list submissions to
	dri-devel at lists.freedesktop.org

To subscribe or unsubscribe via the World Wide Web, visit
	http://lists.freedesktop.org/mailman/listinfo/dri-devel
or, via email, send a message with subject or body 'help' to
	dri-devel-request at lists.freedesktop.org

You can reach the person managing the list at
	dri-devel-owner at lists.freedesktop.org

When replying, please edit your Subject line so it is more specific than "Re: Contents of dri-devel digest..."


Today's Topics:

   1. Re: [PATCH 4/7] drm/exynos: add exynos_dp_panel driver
      registration to drm driver (Jingoo Han)
   2. [Bug 77602] Tiling issue with mesa git [radeonsi]
      (bugzilla-daemon at freedesktop.org)
   3. RE: [PATCH 5/7] drm/exynos: dp: modify driver to support
      drm_panel (Jingoo Han)
   4. [PATCH 3.12 20/72] video/fb: Propagate error code from
      failing to unregister conflicting fb (Jiri Slaby)
   5. Re: [PATCH 7/7] drm/bridge: ptn3460: add drm_panel controls
      (Jingoo Han)


----------------------------------------------------------------------

Message: 1
Date: Fri, 18 Apr 2014 17:57:03 +0900
From: Jingoo Han <jg1.han at samsung.com>
To: 'Ajay Kumar' <ajaykumar.rs at samsung.com>
Cc: linux-samsung-soc at vger.kernel.org, seanpaul at google.com,
	abrestic at chromium.org, joshi at samsung.com,
	dri-devel at lists.freedesktop.org, a.hajda at samsung.com,
	kyungmin.park at samsung.com, ajaynumb at gmail.com, treding at nvidia.com,
	prashanth.g at samsung.com, rahul.sharma at samsung.com
Subject: Re: [PATCH 4/7] drm/exynos: add exynos_dp_panel driver
	registration to drm driver
Message-ID: <000201cf5ae4$2b073650$8115a2f0$%han at samsung.com>
Content-Type: text/plain; charset=us-ascii

On Wednesday, April 16, 2014 11:33 PM, Ajay Kumar wrote:
> 
> Register exynos_dp_panel before the list of exynos crtcs and 
> connectors are probed.
> 
> This is needed because exynos_dp_panel should be registered to the 
> drm_panel list via panel-exynos-dp probe, i.e much before 
> exynos_dp_bind calls of_drm_find_panel().
> 
> Signed-off-by: Ajay Kumar <ajaykumar.rs at samsung.com>
> ---
>  drivers/gpu/drm/exynos/exynos_drm_drv.c | 11 +++++++++++  
> drivers/gpu/drm/exynos/exynos_drm_drv.h |  1 +
>  2 files changed, 12 insertions(+)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c 
> b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> index 1d1c604..47266e7 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> @@ -560,12 +560,23 @@ static int exynos_drm_platform_probe(struct platform_device *pdev)
>  		goto err_unregister_ipp;
>  #endif
> 
> +#ifdef CONFIG_DRM_PANEL_EXYNOS_DP
> +	ret = platform_driver_register(&exynos_dp_panel_driver);
> +	if (ret < 0)
> +		goto err_unregister_dp_panel;
> +#endif
> +
>  	ret = component_master_add(&pdev->dev, &exynos_drm_ops);
>  	if (ret < 0)
>  		DRM_DEBUG_KMS("re-tried by last sub driver probed later.\n");
> 
>  	return 0;
> 
> +#ifdef CONFIG_DRM_PANEL_EXYNOS_DP
> +	platform_driver_unregister(&exynos_dp_panel_driver);
> +err_unregister_dp_panel:
> +#endif

Please add platform_driver_unregister() to exynos_drm_platform_remove(), as well as exynos_drm_platform_probe().

Best regards,
Jingoo Han

> +
>  #ifdef CONFIG_DRM_EXYNOS_IPP
>  	exynos_platform_device_ipp_unregister();
>  err_unregister_ipp:
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h 
> b/drivers/gpu/drm/exynos/exynos_drm_drv.h
> index 257ce09..f606290 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h
> @@ -368,4 +368,5 @@ extern struct platform_driver fimc_driver;  extern 
> struct platform_driver rotator_driver;  extern struct platform_driver 
> gsc_driver;  extern struct platform_driver ipp_driver;
> +extern struct platform_driver exynos_dp_panel_driver;
>  #endif
> --
> 1.8.1.2



------------------------------

Message: 2
Date: Fri, 18 Apr 2014 09:07:51 +0000
From: bugzilla-daemon at freedesktop.org
To: dri-devel at lists.freedesktop.org
Subject: [Bug 77602] Tiling issue with mesa git [radeonsi]
Message-ID: <bug-77602-502-LDWjqM5EAA at http.bugs.freedesktop.org/>
Content-Type: text/plain; charset="utf-8"

https://bugs.freedesktop.org/show_bug.cgi?id=77602

--- Comment #2 from Michel D?nzer <michel at daenzer.net> --- Please attach the corresponding Xorg.0.log file and output of dmesg and glxinfo.

This might be a duplicate of bug 77533; if not, can you bisect?

--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20140418/61e2549e/attachment-0001.html>

------------------------------

Message: 3
Date: Fri, 18 Apr 2014 18:08:16 +0900
From: Jingoo Han <jg1.han at samsung.com>
To: 'Ajay Kumar' <ajaykumar.rs at samsung.com>,
	dri-devel at lists.freedesktop.org,  linux-samsung-soc at vger.kernel.org
Cc: seanpaul at google.com, abrestic at chromium.org, joshi at samsung.com,
	a.hajda at samsung.com, kyungmin.park at samsung.com, ajaynumb at gmail.com,
	treding at nvidia.com, prashanth.g at samsung.com, rahul.sharma at samsung.com
Subject: RE: [PATCH 5/7] drm/exynos: dp: modify driver to support
	drm_panel
Message-ID: <000401cf5ae5$bbea0340$33be09c0$%han at samsung.com>
Content-Type: text/plain; charset=us-ascii

On Wednesday, April 16, 2014 11:33 PM, Ajay Kumar wrote:
> 
> This patch attaches the dp connector to exynos_dp_panel, and adds 
> calls to drm_panel functions to control panel power sequence.
> 
> Signed-off-by: Ajay Kumar <ajaykumar.rs at samsung.com>
> ---
>  drivers/gpu/drm/exynos/Kconfig          |  1 +
>  drivers/gpu/drm/exynos/exynos_dp_core.c | 19 +++++++++++++++++++  
> drivers/gpu/drm/exynos/exynos_dp_core.h |  1 +
>  3 files changed, 21 insertions(+)
> 
> diff --git a/drivers/gpu/drm/exynos/Kconfig 
> b/drivers/gpu/drm/exynos/Kconfig index 5bf5bca..56af433 100644
> --- a/drivers/gpu/drm/exynos/Kconfig
> +++ b/drivers/gpu/drm/exynos/Kconfig
> @@ -52,6 +52,7 @@ config DRM_EXYNOS_DP
>  	bool "EXYNOS DRM DP driver support"
>  	depends on DRM_EXYNOS && ARCH_EXYNOS
>  	default DRM_EXYNOS
> +	select DRM_PANEL
>  	help
>  	  This enables support for DP device.
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c 
> b/drivers/gpu/drm/exynos/exynos_dp_core.c
> index 18fd9c5..6beeab6 100644
> --- a/drivers/gpu/drm/exynos/exynos_dp_core.c
> +++ b/drivers/gpu/drm/exynos/exynos_dp_core.c
> @@ -28,6 +28,7 @@
>  #include <drm/drmP.h>
>  #include <drm/drm_crtc.h>
>  #include <drm/drm_crtc_helper.h>
> +#include <drm/drm_panel.h>
>  #include <drm/bridge/ptn3460.h>
> 
>  #include "exynos_drm_drv.h"
> @@ -1028,6 +1029,9 @@ static int exynos_dp_create_connector(struct exynos_drm_display *display,
>  	drm_sysfs_connector_add(connector);
>  	drm_mode_connector_attach_encoder(connector, encoder);
> 
> +	if (dp->drm_panel)
> +		drm_panel_attach(dp->drm_panel, &dp->connector);
> +
>  	return 0;
>  }
> 
> @@ -1062,10 +1066,12 @@ static void exynos_dp_poweron(struct exynos_dp_device *dp)
>  	if (dp->dpms_mode == DRM_MODE_DPMS_ON)
>  		return;
> 
> +	drm_panel_pre_enable(dp->drm_panel);
>  	clk_prepare_enable(dp->clock);
>  	exynos_dp_phy_init(dp);
>  	exynos_dp_init_dp(dp);
>  	enable_irq(dp->irq);
> +	drm_panel_enable(dp->drm_panel);
>  }
> 
>  static void exynos_dp_poweroff(struct exynos_dp_device *dp) @@ 
> -1073,6 +1079,7 @@ static void exynos_dp_poweroff(struct exynos_dp_device *dp)
>  	if (dp->dpms_mode != DRM_MODE_DPMS_ON)
>  		return;
> 
> +	drm_panel_disable(dp->drm_panel);
>  	disable_irq(dp->irq);
>  	flush_work(&dp->hotplug_work);
>  	exynos_dp_phy_exit(dp);
> @@ -1225,6 +1232,7 @@ static int exynos_dp_dt_parse_panel(struct 
> exynos_dp_device *dp)  static int exynos_dp_bind(struct device *dev, 
> struct device *master, void *data)  {
>  	struct platform_device *pdev = to_platform_device(dev);
> +	struct device_node *panel_node;
>  	struct drm_device *drm_dev = data;
>  	struct resource *res;
>  	struct exynos_dp_device *dp;
> @@ -1299,6 +1307,17 @@ static int exynos_dp_bind(struct device *dev, 
> struct device *master, void *data)
> 
>  	INIT_WORK(&dp->hotplug_work, exynos_dp_hotplug);
> 
> +	panel_node = of_find_compatible_node(NULL, NULL,
> +						"samsung,exynos-dp-panel");
> +	if (panel_node) {
> +		dp->drm_panel = of_drm_find_panel(panel_node);
> +		if (!dp->drm_panel) {
> +			of_node_put(panel_node);
> +			return -ENODEV;
> +		}
> +		of_node_put(panel_node);
> +	}

The following is simpler.

+	if (panel_node) {
+		dp->drm_panel = of_drm_find_panel(panel_node);
+		of_node_put(panel_node);
+		if (!dp->drm_panel)
+			return -ENODEV;
+	}

Best regards,
Jingoo Han

> +
>  	exynos_dp_phy_init(dp);
> 
>  	exynos_dp_init_dp(dp);
> diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.h 
> b/drivers/gpu/drm/exynos/exynos_dp_core.h
> index 56fa43e..9dc7991 100644
> --- a/drivers/gpu/drm/exynos/exynos_dp_core.h
> +++ b/drivers/gpu/drm/exynos/exynos_dp_core.h
> @@ -148,6 +148,7 @@ struct exynos_dp_device {
>  	struct drm_device	*drm_dev;
>  	struct drm_connector	connector;
>  	struct drm_encoder	*encoder;
> +	struct drm_panel	*drm_panel;
>  	struct clk		*clock;
>  	unsigned int		irq;
>  	void __iomem		*reg_base;
> --
> 1.8.1.2



------------------------------

Message: 4
Date: Fri, 18 Apr 2014 11:21:53 +0200
From: Jiri Slaby <jslaby at suse.cz>
To: stable at vger.kernel.org
Cc: linux-fbdev at vger.kernel.org, Jiri Slaby <jslaby at suse.cz>,
	linux-kernel at vger.kernel.org, dri-devel at lists.freedesktop.org, Tomi
	Valkeinen <tomi.valkeinen at ti.com>, Dave Airlie <airlied at redhat.com>,
	Jean-Christophe Plagniol-Villard <plagnioj at jcrosoft.com>
Subject: [PATCH 3.12 20/72] video/fb: Propagate error code from
	failing to unregister conflicting fb
Message-ID:
	<9419c62ccf280244e27f3007752cfb9818e46479.1397812482.git.jslaby at suse.cz>
	

From: Chris Wilson <chris at chris-wilson.co.uk>

3.12-stable review patch.  If anyone has any objections, please let me know.

===============

commit 46eeb2c144956e88197439b5ee5cf221a91b0a81 upstream.

If we fail to remove a conflicting fb driver, we need to abort the loading of the second driver to avoid likely kernel panics.

Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Jean-Christophe Plagniol-Villard <plagnioj at jcrosoft.com>
Cc: Tomi Valkeinen <tomi.valkeinen at ti.com>
Cc: linux-fbdev at vger.kernel.org
Cc: dri-devel at lists.freedesktop.org
Reviewed-by: Jani Nikula <jani.nikula at intel.com>
Signed-off-by: Dave Airlie <airlied at redhat.com>
Signed-off-by: Jiri Slaby <jslaby at suse.cz>
---
 drivers/video/fbmem.c | 31 +++++++++++++++++++++----------
 include/linux/fb.h    |  4 ++--
 2 files changed, 23 insertions(+), 12 deletions(-)

diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c index cde461932760..7309ac704e26 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -1577,10 +1577,10 @@ static bool fb_do_apertures_overlap(struct apertures_struct *gena,  static int do_unregister_framebuffer(struct fb_info *fb_info);
 
 #define VGA_FB_PHYS 0xA0000
-static void do_remove_conflicting_framebuffers(struct apertures_struct *a,
-				     const char *name, bool primary)
+static int do_remove_conflicting_framebuffers(struct apertures_struct *a,
+					      const char *name, bool primary)
 {
-	int i;
+	int i, ret;
 
 	/* check all firmware fbs and kick off if the base addr overlaps */
 	for (i = 0 ; i < FB_MAX; i++) {
@@ -1599,22 +1599,29 @@ static void do_remove_conflicting_framebuffers(struct apertures_struct *a,
 			printk(KERN_INFO "fb: conflicting fb hw usage "
 			       "%s vs %s - removing generic driver\n",
 			       name, registered_fb[i]->fix.id);
-			do_unregister_framebuffer(registered_fb[i]);
+			ret = do_unregister_framebuffer(registered_fb[i]);
+			if (ret)
+				return ret;
 		}
 	}
+
+	return 0;
 }
 
 static int do_register_framebuffer(struct fb_info *fb_info)  {
-	int i;
+	int i, ret;
 	struct fb_event event;
 	struct fb_videomode mode;
 
 	if (fb_check_foreignness(fb_info))
 		return -ENOSYS;
 
-	do_remove_conflicting_framebuffers(fb_info->apertures, fb_info->fix.id,
-					 fb_is_primary_device(fb_info));
+	ret = do_remove_conflicting_framebuffers(fb_info->apertures,
+						 fb_info->fix.id,
+						 fb_is_primary_device(fb_info));
+	if (ret)
+		return ret;
 
 	if (num_registered_fb == FB_MAX)
 		return -ENXIO;
@@ -1739,12 +1746,16 @@ int unlink_framebuffer(struct fb_info *fb_info)  }  EXPORT_SYMBOL(unlink_framebuffer);
 
-void remove_conflicting_framebuffers(struct apertures_struct *a,
-				     const char *name, bool primary)
+int remove_conflicting_framebuffers(struct apertures_struct *a,
+				    const char *name, bool primary)
 {
+	int ret;
+
 	mutex_lock(&registration_lock);
-	do_remove_conflicting_framebuffers(a, name, primary);
+	ret = do_remove_conflicting_framebuffers(a, name, primary);
 	mutex_unlock(&registration_lock);
+
+	return ret;
 }
 EXPORT_SYMBOL(remove_conflicting_framebuffers);
 
diff --git a/include/linux/fb.h b/include/linux/fb.h index ffac70aab3e9..8439a1600c1a 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -613,8 +613,8 @@ extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf,  extern int register_framebuffer(struct fb_info *fb_info);  extern int unregister_framebuffer(struct fb_info *fb_info);  extern int unlink_framebuffer(struct fb_info *fb_info); -extern void remove_conflicting_framebuffers(struct apertures_struct *a,
-				const char *name, bool primary);
+extern int remove_conflicting_framebuffers(struct apertures_struct *a,
+					   const char *name, bool primary);
 extern int fb_prepare_logo(struct fb_info *fb_info, int rotate);  extern int fb_show_logo(struct fb_info *fb_info, int rotate);  extern char* fb_get_buffer_offset(struct fb_info *info, struct fb_pixmap *buf, u32 size);
--
1.9.2



------------------------------

Message: 5
Date: Fri, 18 Apr 2014 18:25:36 +0900
From: Jingoo Han <jg1.han at samsung.com>
To: 'Ajay Kumar' <ajaykumar.rs at samsung.com>
Cc: linux-samsung-soc at vger.kernel.org, seanpaul at google.com,
	abrestic at chromium.org, joshi at samsung.com,
	dri-devel at lists.freedesktop.org, a.hajda at samsung.com,
	kyungmin.park at samsung.com, ajaynumb at gmail.com, treding at nvidia.com,
	prashanth.g at samsung.com, rahul.sharma at samsung.com
Subject: Re: [PATCH 7/7] drm/bridge: ptn3460: add drm_panel controls
Message-ID: <000501cf5ae8$27f19510$77d4bf30$%han at samsung.com>
Content-Type: text/plain; charset=us-ascii

On Wednesday, April 16, 2014 11:33 PM, Ajay Kumar wrote:
> 
> attach ptn3460 connector to drm_panel and support drm_panel routines,
> if a valid drm_panel object is passed to ptn3460_init.
> 
> Signed-off-by: Ajay Kumar <ajaykumar.rs at samsung.com>
> ---
>  drivers/gpu/drm/bridge/Kconfig          |  1 +
>  drivers/gpu/drm/bridge/ptn3460.c        | 17 ++++++++++++++++-
>  drivers/gpu/drm/exynos/exynos_dp_core.c | 15 +++++++++++----
>  include/drm/bridge/ptn3460.h            |  6 ++++--
>  4 files changed, 32 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
> index 884923f..3bc6845 100644
> --- a/drivers/gpu/drm/bridge/Kconfig
> +++ b/drivers/gpu/drm/bridge/Kconfig
> @@ -2,4 +2,5 @@ config DRM_PTN3460
>  	tristate "PTN3460 DP/LVDS bridge"
>  	depends on DRM
>  	select DRM_KMS_HELPER
> +	select DRM_PANEL
>  	---help---
> diff --git a/drivers/gpu/drm/bridge/ptn3460.c b/drivers/gpu/drm/bridge/ptn3460.c
> index f1d2afc..736c7a8 100644
> --- a/drivers/gpu/drm/bridge/ptn3460.c
> +++ b/drivers/gpu/drm/bridge/ptn3460.c
> @@ -24,6 +24,7 @@
>  #include "drm_edid.h"
>  #include "drm_crtc.h"
>  #include "drm_crtc_helper.h"
> +#include <drm/drm_panel.h>

Move '<drm/drm_panel.h>' as below.

#include <linux/gpio.h>
#include <linux/delay.h>
+#include <drm/drm_panel.h>

#include "drmP.h"


> 
>  #include "bridge/ptn3460.h"
> 
> @@ -38,6 +39,7 @@ struct ptn3460_bridge {
>  	struct i2c_client *client;
>  	struct drm_encoder *encoder;
>  	struct drm_bridge *bridge;
> +	struct drm_panel *panel;
>  	struct edid *edid;
>  	int gpio_pd_n;
>  	int gpio_rst_n;
> @@ -126,6 +128,8 @@ static void ptn3460_pre_enable(struct drm_bridge *bridge)
>  		gpio_set_value(ptn_bridge->gpio_rst_n, 1);
>  	}
> 
> +	drm_panel_pre_enable(ptn_bridge->panel);
> +
>  	/*
>  	 * There's a bug in the PTN chip where it falsely asserts hotplug before
>  	 * it is fully functional. We're forced to wait for the maximum start up
> @@ -142,6 +146,9 @@ static void ptn3460_pre_enable(struct drm_bridge *bridge)
> 
>  static void ptn3460_enable(struct drm_bridge *bridge)
>  {
> +	struct ptn3460_bridge *ptn_bridge = bridge->driver_private;
> +
> +	drm_panel_enable(ptn_bridge->panel);
>  }
> 
>  static void ptn3460_disable(struct drm_bridge *bridge)
> @@ -153,6 +160,8 @@ static void ptn3460_disable(struct drm_bridge *bridge)
> 
>  	ptn_bridge->enabled = false;
> 
> +	drm_panel_disable(ptn_bridge->panel);
> +
>  	if (gpio_is_valid(ptn_bridge->gpio_rst_n))
>  		gpio_set_value(ptn_bridge->gpio_rst_n, 1);
> 
> @@ -265,7 +274,8 @@ struct drm_connector_funcs ptn3460_connector_funcs = {
>  };
> 
>  int ptn3460_init(struct drm_device *dev, struct drm_encoder *encoder,
> -		struct i2c_client *client, struct device_node *node)
> +		struct i2c_client *client, struct device_node *node,
> +		struct drm_panel *panel)
>  {
>  	int ret;
>  	struct drm_bridge *bridge;
> @@ -324,6 +334,11 @@ int ptn3460_init(struct drm_device *dev, struct drm_encoder *encoder,
>  		goto err;
>  	}
> 
> +	if (panel) {
> +		ptn_bridge->panel = panel;
> +		drm_panel_attach(ptn_bridge->panel, &ptn_bridge->connector);
> +	}
> +
>  	bridge->driver_private = ptn_bridge;
>  	encoder->bridge = bridge;
>  	ptn_bridge->connector.polled = DRM_CONNECTOR_POLL_HPD;
> diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c b/drivers/gpu/drm/exynos/exynos_dp_core.c
> index 6beeab6..7f550b6 100644
> --- a/drivers/gpu/drm/exynos/exynos_dp_core.c
> +++ b/drivers/gpu/drm/exynos/exynos_dp_core.c
> @@ -989,13 +989,14 @@ static bool find_bridge(const char *compat, struct bridge_init *bridge)
> 
>  /* returns the number of bridges attached */
>  static int exynos_drm_attach_lcd_bridge(struct drm_device *dev,
> -		struct drm_encoder *encoder)
> +		struct drm_encoder *encoder, struct drm_panel *panel)
>  {
>  	struct bridge_init bridge;
>  	int ret;
> 
>  	if (find_bridge("nxp,ptn3460", &bridge)) {
> -		ret = ptn3460_init(dev, encoder, bridge.client, bridge.node);
> +		ret = ptn3460_init(dev, encoder, bridge.client, bridge.node,
> +									panel);

'panel' is too far. Please fix it as below.

	if (find_bridge("nxp,ptn3460", &bridge)) {
		ret = ptn3460_init(dev, encoder, bridge.client, bridge.node,
				   panel);


>  		if (!ret)
>  			return 1;
>  	}
> @@ -1012,9 +1013,15 @@ static int exynos_dp_create_connector(struct exynos_drm_display *display,
>  	dp->encoder = encoder;
> 
>  	/* Pre-empt DP connector creation if there's a bridge */
> -	ret = exynos_drm_attach_lcd_bridge(dp->drm_dev, encoder);
> -	if (ret)
> +	ret = exynos_drm_attach_lcd_bridge(dp->drm_dev, encoder, dp->drm_panel);
> +	if (ret) {
> +		/* Also set "dp->drm_panel = NULL" so that we don't end up
> +		 * controlling panel power both in exynos_dp and bridge
> +		 * DPMS routines.
> +		 */

Please fix it as below.

 +		/*
 +		 * Also set "dp->drm_panel = NULL" so that we don't end up
 +		 * controlling panel power both in exynos_dp and bridge
 +		 * DPMS routines.
 +		 */

Best regards,
Jingoo Han

> +		dp->drm_panel = NULL;
>  		return 0;
> +	}
> 
>  	connector->polled = DRM_CONNECTOR_POLL_HPD;
> 
> diff --git a/include/drm/bridge/ptn3460.h b/include/drm/bridge/ptn3460.h
> index ff62344..570cebb 100644
> --- a/include/drm/bridge/ptn3460.h
> +++ b/include/drm/bridge/ptn3460.h
> @@ -18,16 +18,18 @@ struct drm_device;
>  struct drm_encoder;
>  struct i2c_client;
>  struct device_node;
> +struct drm_panel;
> 
>  #if defined(CONFIG_DRM_PTN3460) || defined(CONFIG_DRM_PTN3460_MODULE)
> 
>  int ptn3460_init(struct drm_device *dev, struct drm_encoder *encoder,
> -		struct i2c_client *client, struct device_node *node);
> +		struct i2c_client *client, struct device_node *node,
> +		struct drm_panel *panel);
>  #else
> 
>  static inline int ptn3460_init(struct drm_device *dev,
>  		struct drm_encoder *encoder, struct i2c_client *client,
> -		struct device_node *node)
> +		struct device_node *node, struct drm_panel *panel)
>  {
>  	return 0;
>  }
> --
> 1.8.1.2



------------------------------

Subject: Digest Footer

_______________________________________________
dri-devel mailing list
dri-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


------------------------------

End of dri-devel Digest, Vol 49, Issue 251
******************************************


::DISCLAIMER::
----------------------------------------------------------------------------------------------------------------------------------------------------

The contents of this e-mail and any attachment(s) are confidential and intended for the named recipient(s) only.
E-mail transmission is not guaranteed to be secure or error-free as information could be intercepted, corrupted,
lost, destroyed, arrive late or incomplete, or may contain viruses in transmission. The e mail and its contents
(with or without referred errors) shall therefore not attach any liability on the originator or HCL or its affiliates.
Views or opinions, if any, presented in this email are solely those of the author and may not necessarily reflect the
views or opinions of HCL or its affiliates. Any form of reproduction, dissemination, copying, disclosure, modification,
distribution and / or publication of this message without the prior written consent of authorized representative of
HCL is strictly prohibited. If you have received this email in error please delete it and notify the sender immediately.
Before opening any email and/or attachments, please check them for viruses and other defects.

----------------------------------------------------------------------------------------------------------------------------------------------------



More information about the dri-devel mailing list