[PATCH] drm/i915/intel_dsi: Add acpi_gpio_mapping for the panel-enable GPIO

Hans de Goede j.w.r.degoede at gmail.com
Fri Jun 29 11:32:58 UTC 2018


Add acpi_gpio_mapping for the panel-enable GPIO, this fixes the following
error: "Failed to own gpio for panel control" on BYT/CHT devices where
pwm_blc == PPS_BLC_PMIC.

Note this patch is untested as I don't have hardware to test this,
but it should fix things.

Signed-off-by: Hans de Goede <hdegoede at redhat.com>
---
 drivers/gpu/drm/i915/intel_dsi.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index 3b7acb5a70b3..b2b75ed3cbf9 100644
--- a/drivers/gpu/drm/i915/intel_dsi.c
+++ b/drivers/gpu/drm/i915/intel_dsi.c
@@ -29,6 +29,7 @@
 #include <drm/drm_edid.h>
 #include <drm/i915_drm.h>
 #include <drm/drm_mipi_dsi.h>
+#include <linux/acpi.h>
 #include <linux/slab.h>
 #include <linux/gpio/consumer.h>
 #include "i915_drv.h"
@@ -1713,6 +1714,13 @@ static void intel_dsi_add_properties(struct intel_connector *connector)
 	}
 }
 
+static const struct acpi_gpio_params panel_gpio = { 0, 0, false };
+
+static const struct acpi_gpio_mapping panel_gpios[] = {
+	{ "panel", &panel_gpio, 1 },
+	{ },
+};
+
 void intel_dsi_init(struct drm_i915_private *dev_priv)
 {
 	struct drm_device *dev = &dev_priv->drm;
@@ -1811,6 +1819,7 @@ void intel_dsi_init(struct drm_i915_private *dev_priv)
 	 */
 	if ((IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) &&
 	    (dev_priv->vbt.dsi.config->pwm_blc == PPS_BLC_PMIC)) {
+		devm_acpi_dev_add_driver_gpios(dev->dev, panel_gpios);
 		intel_dsi->gpio_panel =
 			gpiod_get(dev->dev, "panel", GPIOD_OUT_HIGH);
 
-- 
2.17.1



More information about the dri-devel mailing list