bugzilla-daemon | 30 May 18:12 2015

[Bug 90534] integrated LVDS displays stays dark (firmware-linux-nonfree-0.43)

Comment # 11 on bug 90534 from This is a very painful bug as notebooks tend to only have one monitor which stays dark here; - and it is a regression. Please, please try to do something about it!!
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
Emil Velikov | 30 May 17:30 2015
Picon

[PATCH libdrm] Revert "Add device enumeration interface (v4)"

This reverts commit fde4969176822fe54197b6baa78f8b0ef900baba.

The commit adds an API that does not seem flexible enough to be used in
current open-source projects. Additionally it adds a hidden dependency
of libudev, which when used in mesa caused grief when combined with
Steam('s runtime).

Let's revert this for now and add a tweaked API later on that can be
used in mesa/xserver.

Cc: Frank Min <frank.min <at> amd.com>
Cc: Christian König <christian.koenig <at> amd.com>
Cc: Alex Deucher <alexander.deucher <at> amd.com>
Cc: Jammy Zhou <Jammy.Zhou <at> amd.com>
---
 Makefile.am |   7 ++---
 xf86drm.c   | 100 ------------------------------------------------------------
 xf86drm.h   |  19 ------------
 3 files changed, 2 insertions(+), 124 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index ffd334a..13df80c 100644
--- a/Makefile.am
+++ b/Makefile.am
 <at>  <at>  -95,15 +95,12  <at>  <at>  SUBDIRS = \
 libdrm_la_LTLIBRARIES = libdrm.la
 libdrm_ladir = $(libdir)
 libdrm_la_LDFLAGS = -version-number 2:4:0 -no-undefined
-libdrm_la_LIBADD = \
-		 <at> CLOCK_LIB <at>  \
-		 <at> LIBUDEV_LIBS <at> 
+libdrm_la_LIBADD =  <at> CLOCK_LIB <at> 

 libdrm_la_CPPFLAGS = -I$(top_srcdir)/include/drm
 AM_CFLAGS = \
 	$(WARN_CFLAGS) \
-	$(VALGRIND_CFLAGS) \
-	$(LIBUDEV_CFLAGS)
+	$(VALGRIND_CFLAGS)

 libdrm_la_SOURCES = $(LIBDRM_FILES)

diff --git a/xf86drm.c b/xf86drm.c
index 49da9c7..2c17d11 100644
--- a/xf86drm.c
+++ b/xf86drm.c
 <at>  <at>  -63,7 +63,6  <at>  <at> 

 #include "xf86drm.h"
 #include "libdrm_macros.h"
-#include "libudev.h"

 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
 #define DRM_MAJOR 145
 <at>  <at>  -2816,102 +2815,3  <at>  <at>  char *drmGetRenderDeviceNameFromFd(int fd)
 {
 	return drmGetMinorNameForFD(fd, DRM_NODE_RENDER);
 }
-
-/**
-* Enumerate the GPU devices on the system
-*
-* \param devs device array set to return the device information
-* (if NULL, the number of device is returned)
-* \param vendor the vendor ID for GPU devices to list
-* (optional, if not specified, all GPU devices are returned)
-*
-* \return the number of GPU devices
-*/
-int drmGetPciDevices(drmPciDevicePtr devSet, uint16_t vendorId)
-{
-	struct udev *udev = NULL;
-	struct udev_enumerate *udev_enumerate;
-	struct udev_list_entry *list_entry;
-	struct udev_device *device;
-	int drmDevCount = 0;
-	int vendor = 0;
-	int devid = 0;
-	int subvendor = 0;
-	int subdevid = 0;
-	int revid = 0xff;
-	int domain = 0;
-	int bus = 0;
-	int dev = 0;
-	int func = 0;
-	char config[64] = {0};
-	char node[128] = {'\0'};
-	char slot[] = "0000:00:00.0";
-	const char *info = NULL;
-	int fd = 0;
-	int ret = 0;
-
-	udev = udev_new();
-	if (udev == NULL) {
-		fprintf(stderr, "no context\n");
-		return -EINVAL;
-	}
-	udev_enumerate = udev_enumerate_new(udev);
-	if (udev_enumerate == NULL)
-		return -EINVAL;
-	udev_enumerate_add_match_subsystem(udev_enumerate, "drm");
-	udev_enumerate_add_match_property(udev_enumerate, "DEVTYPE", "drm_minor");
-
-	udev_enumerate_scan_devices(udev_enumerate);
-
-	udev_list_entry_foreach(list_entry, udev_enumerate_get_list_entry(udev_enumerate)) {
-		device = udev_device_new_from_syspath(udev_enumerate_get_udev(udev_enumerate),
-						      udev_list_entry_get_name(list_entry));
-		if (device != NULL) {
-			info = udev_device_get_property_value(device, "MINOR");
-			if (!strcmp(info, "0")) {
-			strcpy(node, udev_device_get_syspath(device));
-			info = strstr(node, "/drm");
-			strncpy(slot, info - strlen(slot), strlen(slot));
-			if (sscanf(slot, "%4x:%2x:%2x.%1x", &domain, &bus, &dev, &func) != 4) {
-				domain = 0;
-				bus = 0;
-				dev = 0;
-				func = 0;
-			}
-			strcpy(node + strlen(node), "/device/config");
-
-			fd = open(node, O_RDONLY);
-			if (fd >= 0) {
-				ret = read(fd, config, 64);
-				if (ret == 64) {
-					vendor = config[0] + (config[1] << 8);
-					devid = config[2] + (config[3] << 8);
-					revid = config[8];
-					subdevid = config[44] + (config[45] << 8);
-				}
-				close(fd);
-			}
-
-			if((vendorId == 0) || (vendorId == vendor)) {
-				if(devSet != NULL) {
-					devSet[drmDevCount].domain = domain;
-					devSet[drmDevCount].bus = bus;
-					devSet[drmDevCount].dev = dev;
-					devSet[drmDevCount].func = func;
-					devSet[drmDevCount].vendor_id = vendor;
-					devSet[drmDevCount].device_id = devid;
-					devSet[drmDevCount].subdevice_id = subdevid;
-					devSet[drmDevCount].subvendor_id = subvendor;
-					devSet[drmDevCount].revision_id = revid;
-				}
-				drmDevCount++;
-			}
-		}
-		}
-		udev_device_unref(device);
-	}
-	udev_enumerate_unref(udev_enumerate);
-	udev_unref(udev);
-
-	return drmDevCount;
-}
diff --git a/xf86drm.h b/xf86drm.h
index 2610934..40c55c9 100644
--- a/xf86drm.h
+++ b/xf86drm.h
 <at>  <at>  -342,24 +342,6  <at>  <at>  typedef struct _drmSetVersion {
 	int drm_dd_minor;
 } drmSetVersion, *drmSetVersionPtr;

-/**
- * Structure to a general pci gpu device
- *
- * \sa drmGetDevices()
- *
-*/
-typedef struct _drmPciDevice {
-		uint16_t domain;
-		uint8_t bus;
-		uint8_t dev;
-		uint8_t func;
-		uint16_t vendor_id;
-		uint16_t device_id;
-		uint16_t subvendor_id;
-		uint16_t subdevice_id;
-		uint8_t revision_id;
-} drmPciDevice, *drmPciDevicePtr;
-
 #define __drm_dummy_lock(lock) (*(__volatile__ unsigned int *)lock)

 #define DRM_LOCK_HELD  0x80000000U /**≤ Hardware lock is held */
 <at>  <at>  -570,7 +552,6  <at>  <at>  do {	register unsigned int __old __asm("o0");		\
 /* General user-level programmer's API: unprivileged */
 extern int           drmAvailable(void);
 extern int           drmOpen(const char *name, const char *busid);
-extern int           drmGetPciDevices(drmPciDevicePtr devSet, uint16_t vendorId);

 #define DRM_NODE_PRIMARY 0
 #define DRM_NODE_CONTROL 1
--

-- 
2.3.5

_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
bugzilla-daemon | 30 May 14:00 2015

[Bug 86320] Monitor on DisplayPort doesn't wake up

Comment # 11 on bug 86320 from [I hit enter too fast] I mean, does your screen come back on when you enter the bios and then turn it off and on again? It does not for me (with two different mainboards) and it would be interesting to know if this is a common problem or not.
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
bugzilla-daemon | 30 May 13:58 2015

[Bug 86320] Monitor on DisplayPort doesn't wake up

changed bug 86320
What Removed Added
CC   niels_ole <at> salscheider-online.de

Comment # 10 on bug 86320 from (In reply to Wolfgang Rupprecht from comment #9) > I can't tell if comment #8 was addressed to me or not. My bios screen is > fine as is the display during early stages of booting. The display was > also fine under the previous version of fedora. I don't believe it is a > hardware problem. It was addressed to anyone in this report who has this problem...
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
bugzilla-daemon | 30 May 13:46 2015

[Bug 86320] Monitor on DisplayPort doesn't wake up

Comment # 9 on bug 86320 from I can't tell if comment #8 was addressed to me or not. My bios screen is fine as is the display during early stages of booting. The display was also fine under the previous version of fedora. I don't believe it is a hardware problem.
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
bugzilla-daemon | 30 May 09:46 2015

[Bug 86320] Monitor on DisplayPort doesn't wake up

Comment # 8 on bug 86320 from This sounds similar to https://bugs.freedesktop.org/show_bug.cgi?id=90340. Maybe you could try if the problem also occurs in your BIOS screen? I have found similar reports by windows users and it might really be some hw / cable issue. Apart from that it seems that most (all?) setups that cause problems have a screen with a 2560x1600 resolution...
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
bugzilla-daemon | 30 May 01:09 2015

[Bug 86320] Monitor on DisplayPort doesn't wake up

Comment # 7 on bug 86320 from typo. That should be ATI Firepro 2460.
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
bugzilla-daemon | 30 May 01:07 2015

[Bug 86320] Monitor on DisplayPort doesn't wake up

changed bug 86320
What Removed Added
CC   wolfgang.rupprecht <at> gmail.com

Comment # 6 on bug 86320 from Created attachment 116162 [details] xorg log via journalctl -b0 | grep gdm I see a similar failure with two Samsung Syncmaster SA850 monitors on an ATI Firepro 2260 quad displayport framebuffer and 4.x kernels on Fedora-22. Fedora-21 and 3.x kernels worked fine.
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
bugzilla-daemon | 30 May 00:09 2015

[Bug 90777] radeon/audio: Removed CRC control programing broke HDMI audio in Linux 4.0

Bug ID Summary Product Version Hardware OS Status Severity Priority Component Assignee Reporter
90777
radeon/audio: Removed CRC control programing broke HDMI audio in Linux 4.0
DRI
unspecified
x86-64 (AMD64)
Linux (All)
NEW
normal
medium
DRM/Radeon
dri-devel <at> lists.freedesktop.org
chewi <at> gentoo.org

Created attachment 116160 [details] Patch to revert commit against 4.1-rc5 After upgrading to Linux 4.0 or above (latest tried is 4.1-rc5), HDMI audio stopped working from my Radeon HD 4670 to my Yamaha RX-V775 receiver on the second output. Strangely, it continued to work to my Acer monitor on the primary output. I bisected this back to 8ffea8570d5a7e9dd3c10349ebc3bd79487ae30b, which is amusingly titled "removed unnecessary CRC control". I guess it's not so unnecessary, after all! This does not cleanly revert against 4.1-rc5 as the surrounding code has been removed but simply adding these single lines back where they were is enough to get it working again. Please see the attached patch. The change also affects Evergreen, which I cannot test but a Gentoo user reported what appears to be the same issue on his Mobility Radeon HD 5430. https://forums.gentoo.org/viewtopic-p-7755600.html
You are receiving this mail because:
  • You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
Daniel Vetter | 29 May 19:39 2015
Picon

[PULL] drm-intel-next-fixes

Hi Dave,

Fixes for 4.2. Nothing too serious (given that it's still pre merge
window). With that it's off for 2 weeks of vacation for me and taking care
of 4.2 fixes for Jani.

Cheers, Daniel

The following changes since commit 82d5b58f13fcc5459cd9c61a9d6d4a07328a31dc:

  drm/i915: Update DRIVER_DATE to 20150522 (2015-05-22 19:45:27 +0200)

are available in the git repository at:

  git://anongit.freedesktop.org/drm-intel tags/drm-intel-next-fixes-2015-05-29

for you to fetch changes up to 501fd70fcaebc911b6b96a7b331e6960e5af67e7:

  drm/i915: limit PPGTT size to 2GB in 32-bit platforms (2015-05-29 19:08:22 +0200)

----------------------------------------------------------------
Chris Wilson (1):
      drm/i915: Use spinlocks for checking when to waitboost

Damien Lespiau (1):
      drm/i915: Fix the confusing comment about the ioctl limits

Daniel Vetter (2):
      Revert "drm/i915: Force clean compilation with -Werror"
      drm/i915: Disable 12bpc hdmi for now

Michel Thierry (2):
      drm/i915: Remove unnecessary null check in execlists_context_unqueue
      drm/i915: limit PPGTT size to 2GB in 32-bit platforms

Paulo Zanoni (1):
      drm/i915: disable IPS while getting the sink CRCs

Rodrigo Vivi (2):
      drm/i915: Return the frontbuffer flip to enable intel_crtc_enable_planes.
      drm/i915: Another fbdev hack to avoid PSR on fbcon.

Ville Syrjälä (5):
      drm/i915: Use the default 600ns LDO programming sequence delay
      drm/i915: Throw out WIP CHV power well definitions
      drm/i915: Kill intel_flush_primary_plane()
      drm/i915: s/dpio_lock/sb_lock/
      drm/i915: Adjust sideband locking a bit for CHV/VLV

 drivers/gpu/drm/i915/Kconfig               |   8 ---
 drivers/gpu/drm/i915/Kconfig.debug         |   5 --
 drivers/gpu/drm/i915/Makefile              |   2 -
 drivers/gpu/drm/i915/i915_debugfs.c        |  17 +----
 drivers/gpu/drm/i915/i915_dma.c            |   2 +-
 drivers/gpu/drm/i915/i915_drv.h            |  13 ++--
 drivers/gpu/drm/i915/i915_gem.c            |   4 +-
 drivers/gpu/drm/i915/i915_gem_gtt.c        |   7 ++
 drivers/gpu/drm/i915/i915_irq.c            |  19 ++++--
 drivers/gpu/drm/i915/i915_reg.h            |   8 +--
 drivers/gpu/drm/i915/intel_display.c       |  83 ++++++++++++------------
 drivers/gpu/drm/i915/intel_dp.c            |  94 +++++++++++++++++----------
 drivers/gpu/drm/i915/intel_drv.h           |   2 -
 drivers/gpu/drm/i915/intel_dsi.c           |   8 +--
 drivers/gpu/drm/i915/intel_dsi_panel_vbt.c |   4 +-
 drivers/gpu/drm/i915/intel_dsi_pll.c       |  14 ++--
 drivers/gpu/drm/i915/intel_fbdev.c         |  28 +++++++-
 drivers/gpu/drm/i915/intel_hdmi.c          |  27 ++++----
 drivers/gpu/drm/i915/intel_lrc.c           |   2 +-
 drivers/gpu/drm/i915/intel_pm.c            |  41 +++++++-----
 drivers/gpu/drm/i915/intel_runtime_pm.c    | 100 ++---------------------------
 drivers/gpu/drm/i915/intel_sideband.c      |  18 +++---
 drivers/gpu/drm/i915/intel_sprite.c        |  30 ++-------
 include/uapi/drm/i915_drm.h                |   8 ++-
 24 files changed, 247 insertions(+), 297 deletions(-)
 delete mode 100644 drivers/gpu/drm/i915/Kconfig.debug

--

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
Stephane Viau | 29 May 15:49 2015

[PATCH] drm/msm/hdmi: Use pinctrl in HDMI driver

Some targets (eg: msm8994) use the pinctrl framework to configure
interface pins. This change adds support for initialization and
pinctrl active/sleep state control for the HDMI driver.

Signed-off-by: Stephane Viau <sviau <at> codeaurora.org>
---
 drivers/gpu/drm/msm/hdmi/hdmi.c           | 25 +++++++++++++++++++++++++
 drivers/gpu/drm/msm/hdmi/hdmi.h           |  5 +++++
 drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 31 +++++++++++++++++++++++++++++++
 3 files changed, 61 insertions(+)

diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.c b/drivers/gpu/drm/msm/hdmi/hdmi.c
index 8145362..6120666 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi.c
 <at>  <at>  -354,6 +354,20  <at>  <at>  static int get_gpio(struct device *dev, struct device_node *of_node, const char
 	}
 	return gpio;
 }
+
+static struct pinctrl_state *get_pinctrl_state(struct device *dev,
+		struct pinctrl *pinctrl, const char *name)
+{
+	struct pinctrl_state *state = pinctrl_lookup_state(pinctrl, name);
+
+	if (IS_ERR_OR_NULL(state)) {
+		dev_err(dev, "failed to get pinctrl state \"%s\" (%ld)",
+					name, PTR_ERR(state));
+		return NULL;
+	}
+
+	return state;
+}
 #endif

 static int hdmi_bind(struct device *dev, struct device *master, void *data)
 <at>  <at>  -365,6 +379,7  <at>  <at>  static int hdmi_bind(struct device *dev, struct device *master, void *data)
 #ifdef CONFIG_OF
 	struct device_node *of_node = dev->of_node;
 	const struct of_device_id *match;
+	struct pinctrl *pinctrl;

 	match = of_match_node(dt_match, of_node);
 	if (match && match->data) {
 <at>  <at>  -383,6 +398,16  <at>  <at>  static int hdmi_bind(struct device *dev, struct device *master, void *data)
 	hdmi_cfg->mux_sel_gpio  = get_gpio(dev, of_node, "qcom,hdmi-tx-mux-sel");
 	hdmi_cfg->mux_lpm_gpio  = get_gpio(dev, of_node, "qcom,hdmi-tx-mux-lpm");

+	/* not all targets have pinctrl, do not fail in case of error: */
+	pinctrl = devm_pinctrl_get(dev);
+	if (IS_ERR_OR_NULL(pinctrl)) {
+		dev_warn(dev, "cannot get pinctrl: %s\n", of_node->name);
+	} else {
+		hdmi_cfg->active  = get_pinctrl_state(dev, pinctrl, "hdmi_active");
+		hdmi_cfg->sleep   = get_pinctrl_state(dev, pinctrl, "hdmi_sleep");
+		hdmi_cfg->pinctrl = pinctrl;
+		DBG("pinctrl initialized.");
+	}
 #else
 	static struct hdmi_platform_config config = {};
 	static const char *hpd_clk_names[] = {
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.h b/drivers/gpu/drm/msm/hdmi/hdmi.h
index a155c4a..4742df2 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi.h
+++ b/drivers/gpu/drm/msm/hdmi/hdmi.h
 <at>  <at>  -22,6 +22,7  <at>  <at> 
 #include <linux/clk.h>
 #include <linux/platform_device.h>
 #include <linux/regulator/consumer.h>
+#include <linux/pinctrl/consumer.h>
 #include <linux/hdmi.h>

 #include "msm_drv.h"
 <at>  <at>  -95,6 +96,10  <at>  <at>  struct hdmi_platform_config {
 	/* gpio's: */
 	int ddc_clk_gpio, ddc_data_gpio, hpd_gpio, mux_en_gpio, mux_sel_gpio;
 	int mux_lpm_gpio;
+
+	/* pinctrl: */
+	struct pinctrl *pinctrl;
+	struct pinctrl_state *active, *sleep;
 };

 void hdmi_set_mode(struct hdmi *hdmi, bool power_on);
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
index 914bf95..6bbda54 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
 <at>  <at>  -181,6 +181,23  <at>  <at>  error1:
 	return ret;
 }

+static int pinctrl_config(struct hdmi *hdmi, bool on)
+{
+	struct drm_device *dev = hdmi->dev;
+	const struct hdmi_platform_config *config = hdmi->config;
+	struct pinctrl_state *state = on ? config->active : config->sleep;
+	int ret;
+
+	ret = pinctrl_select_state(config->pinctrl, state);
+	if (ret)
+		dev_err(dev->dev, "failed to set pinctrl state to %s: %d\n",
+				on ? "active" : "sleep", ret);
+
+	DBG("pinctrl %s", on ? "on" : "off");
+
+	return ret;
+}
+
 static int hpd_enable(struct hdmi_connector *hdmi_connector)
 {
 	struct hdmi *hdmi = hdmi_connector->hdmi;
 <at>  <at>  -199,6 +216,14  <at>  <at>  static int hpd_enable(struct hdmi_connector *hdmi_connector)
 		}
 	}

+	if (config->pinctrl) {
+		ret = pinctrl_config(hdmi, true);
+		if (ret) {
+			dev_err(dev->dev, "can't configure pinctrl: %d\n", ret);
+			goto fail;
+		}
+	}
+
 	ret = gpio_config(hdmi, true);
 	if (ret) {
 		dev_err(dev->dev, "failed to configure GPIOs: %d\n", ret);
 <at>  <at>  -268,6 +293,12  <at>  <at>  static void hdp_disable(struct hdmi_connector *hdmi_connector)
 	if (ret)
 		dev_warn(dev->dev, "failed to unconfigure GPIOs: %d\n", ret);

+	if (config->pinctrl) {
+		ret = pinctrl_config(hdmi, false);
+		if (ret)
+			dev_warn(dev->dev, "can't configure pinctrl: %d\n", ret);
+	}
+
 	for (i = 0; i < config->hpd_reg_cnt; i++) {
 		ret = regulator_disable(hdmi->hpd_regs[i]);
 		if (ret)
--

-- 
Qualcomm Innovation Center, Inc.

The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation
Collaborative Project

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

Gmane