[PATCH v1] drm/i915/bxt: use NULL for GPIO connection ID
Jani Nikula
jani.nikula at intel.com
Tue Feb 21 16:26:26 UTC 2017
On Tue, 21 Feb 2017, Andy Shevchenko <andriy.shevchenko at linux.intel.com> wrote:
> The commit 213e08ad60ba ("drm/i915/bxt: add bxt dsi gpio element
> support") enables GPIO support for Broxton based platforms.
>
> While using that API we might get into troubles in the future, because
> we can't rely on label "panel" in the driver since vendor firmware might
> provide any GPIO pin there, e.g. "reset", and even mark it in _DSD (in
> which case the request will fail).
>
> To avoid inconsistency and potential issues we have two options:
> a) generate GPIO ACPI mapping table and supply it via
> acpi_dev_add_driver_gpios(), or
> b) just pass NULL as connection ID.
>
> The b) approach is much simplier and would work since the driver relies
> on GPIO indeces only. Moreover, the _CRS fallback mechanism, when
> requesting GPIO, is going to be stricter, and supplying non-NULL
> connection ID when neither _DSD, nor GPIO ACPI mapping is present, will
> make request fail.
The patch version log in the commit suggests otherwise; we'd tried and
failed with NULL, until Mika realized passing "panel" works:
v2 by Mika: switch *NULL* to *"panel"* when requesting gpio for MIPI/DSI
panel.
See also [1]. What has changed since then that should make this work
now? We shouldn't apply until we get Tested-by's.
BR,
Jani.
[1] http://mid.mail-archive.com/1480597671.26172.82.camel@intel.com
>
> Cc: Mika Kahola <mika.kahola at intel.com>
> Cc: Jani Nikula <jani.nikula at intel.com>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_dsi_panel_vbt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c b/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
> index 8f683b8b1816..493d5ec2b53a 100644
> --- a/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
> +++ b/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
> @@ -315,7 +315,7 @@ static void bxt_exec_gpio(struct drm_i915_private *dev_priv,
>
> if (!gpio_desc) {
> gpio_desc = devm_gpiod_get_index(dev_priv->drm.dev,
> - "panel", gpio_index,
> + NULL, gpio_index,
> value ? GPIOD_OUT_LOW :
> GPIOD_OUT_HIGH);
--
Jani Nikula, Intel Open Source Technology Center
More information about the dri-devel
mailing list