All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: Vivek Kasireddy <vivek.kasireddy@intel.com>,
	intel-gfx@lists.freedesktop.org
Cc: Hulk Robot <hulkci@huawei.com>, Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
Subject: Re: [Intel-gfx] [PATCH] drm/i915/dsi: Lookup the i2c bus from ACPI NS only if CONFIG_ACPI=y
Date: Tue, 14 Jan 2020 09:55:47 +0200	[thread overview]
Message-ID: <87lfqajwu4.fsf@intel.com> (raw)
In-Reply-To: <20200113221112.576-1-vivek.kasireddy@intel.com>

On Mon, 13 Jan 2020, Vivek Kasireddy <vivek.kasireddy@intel.com> wrote:
> Perform the i2c bus/adapter lookup from ACPI Namespace only if
> ACPI is enabled in the kernel config. If ACPI is not enabled or if
> the lookup fails, we'll fallback to using the VBT for identiying
> the i2c bus.
>
> This fixes commit 8cbf89db2941("drm/i915/dsi: Parse the I2C element
> from the VBT MIPI sequence block (v3).")

IOW,

Fixes: 8cbf89db2941 ("drm/i915/dsi: Parse the I2C element from the VBT MIPI sequence block (v3)")

Also, please post as a fresh patch, not in reply in the middle of a
thread, to not confuse CI.

BR,
Jani.


>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Cc: Nabendu Maiti <nabendu.bikash.maiti@intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Cc: Bob Paauwe <bob.j.paauwe@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
> Reported-by: Hulk Robot <hulkci@huawei.com>
> Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 47 +++++++++++++-------
>  1 file changed, 31 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> index 89fb0d90b694..6ec35d975bd7 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> @@ -384,6 +384,7 @@ static const u8 *mipi_exec_gpio(struct intel_dsi *intel_dsi, const u8 *data)
>  	return data;
>  }
>  
> +#ifdef CONFIG_ACPI
>  static int i2c_adapter_lookup(struct acpi_resource *ares, void *data)
>  {
>  	struct i2c_adapter_lookup *lookup = data;
> @@ -413,14 +414,41 @@ static int i2c_adapter_lookup(struct acpi_resource *ares, void *data)
>  	return 1;
>  }
>  
> -static const u8 *mipi_exec_i2c(struct intel_dsi *intel_dsi, const u8 *data)
> +static void i2c_acpi_find_adapter(struct intel_dsi *intel_dsi,
> +				  const u16 slave_addr)
>  {
>  	struct drm_device *drm_dev = intel_dsi->base.base.dev;
>  	struct device *dev = &drm_dev->pdev->dev;
> -	struct i2c_adapter *adapter;
>  	struct acpi_device *acpi_dev;
>  	struct list_head resource_list;
>  	struct i2c_adapter_lookup lookup;
> +
> +	acpi_dev = ACPI_COMPANION(dev);
> +	if (acpi_dev) {
> +		memset(&lookup, 0, sizeof(lookup));
> +		lookup.slave_addr = slave_addr;
> +		lookup.intel_dsi = intel_dsi;
> +		lookup.dev_handle = acpi_device_handle(acpi_dev);
> +
> +		INIT_LIST_HEAD(&resource_list);
> +		acpi_dev_get_resources(acpi_dev, &resource_list,
> +				       i2c_adapter_lookup,
> +				       &lookup);
> +		acpi_dev_free_resource_list(&resource_list);
> +	}
> +}
> +#else
> +static inline void i2c_acpi_find_adapter(struct intel_dsi *intel_dsi,
> +					 const u16 slave_addr)
> +{
> +}
> +#endif
> +
> +static const u8 *mipi_exec_i2c(struct intel_dsi *intel_dsi, const u8 *data)
> +{
> +	struct drm_device *drm_dev = intel_dsi->base.base.dev;
> +	struct device *dev = &drm_dev->pdev->dev;
> +	struct i2c_adapter *adapter;
>  	struct i2c_msg msg;
>  	int ret;
>  	u8 vbt_i2c_bus_num = *(data + 2);
> @@ -431,20 +459,7 @@ static const u8 *mipi_exec_i2c(struct intel_dsi *intel_dsi, const u8 *data)
>  
>  	if (intel_dsi->i2c_bus_num < 0) {
>  		intel_dsi->i2c_bus_num = vbt_i2c_bus_num;
> -
> -		acpi_dev = ACPI_COMPANION(dev);
> -		if (acpi_dev) {
> -			memset(&lookup, 0, sizeof(lookup));
> -			lookup.slave_addr = slave_addr;
> -			lookup.intel_dsi = intel_dsi;
> -			lookup.dev_handle = acpi_device_handle(acpi_dev);
> -
> -			INIT_LIST_HEAD(&resource_list);
> -			acpi_dev_get_resources(acpi_dev, &resource_list,
> -					       i2c_adapter_lookup,
> -					       &lookup);
> -			acpi_dev_free_resource_list(&resource_list);
> -		}
> +		i2c_acpi_find_adapter(intel_dsi, slave_addr);
>  	}
>  
>  	adapter = i2c_get_adapter(intel_dsi->i2c_bus_num);

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2020-01-14  7:55 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-03  0:00 [Intel-gfx] [PATCH] drm/i915/dsi: Parse the I2C element from the VBT MIPI sequence block Vivek Kasireddy
2020-01-03  0:52 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork
2020-01-03 11:05 ` [Intel-gfx] [PATCH] " Hans de Goede
2020-01-04  0:00   ` Vivek Kasireddy
2020-01-04 16:44     ` Hans de Goede
2020-01-07 16:49     ` Ville Syrjälä
2020-01-07 19:36       ` Matt Roper
2020-01-04  1:09   ` [Intel-gfx] [PATCH] drm/i915/dsi: Parse the I2C element from the VBT MIPI sequence block (v2) Vivek Kasireddy
2020-01-04 16:45     ` Hans de Goede
2020-01-10 18:11       ` [Intel-gfx] [PATCH] drm/i915/dsi: Parse the I2C element from the VBT MIPI sequence block (v3) Vivek Kasireddy
2020-01-10 18:39         ` Matt Roper
2020-01-13 11:27         ` Jani Nikula
2020-01-13 22:11           ` [Intel-gfx] [PATCH] drm/i915/dsi: Lookup the i2c bus from ACPI NS only if CONFIG_ACPI=y Vivek Kasireddy
2020-01-14  7:55             ` Jani Nikula [this message]
2020-01-04  1:22 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dsi: Parse the I2C element from the VBT MIPI sequence block (rev2) Patchwork
2020-01-04  1:47 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-01-04 10:56 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2020-01-10 21:20 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/dsi: Parse the I2C element from the VBT MIPI sequence block (rev3) Patchwork
2020-01-14  0:15 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dsi: Parse the I2C element from the VBT MIPI sequence block (rev4) Patchwork
2020-01-14  0:45 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-01-14  0:45 ` [Intel-gfx] ✗ Fi.CI.BUILD: warning " Patchwork
2020-01-16  6:48 ` [Intel-gfx] ✓ Fi.CI.IGT: success " Patchwork

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=87lfqajwu4.fsf@intel.com \
    --to=jani.nikula@intel.com \
    --cc=hulkci@huawei.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=vivek.kasireddy@intel.com \
    --cc=zhangxiaoxu5@huawei.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.