All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Konno <joe.konno@linux.intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/7] drm/i915: move opregion asle request handling to a work queue
Date: Wed, 06 Nov 2013 09:07:55 -0800	[thread overview]
Message-ID: <527A776B.7070206@linux.intel.com> (raw)
In-Reply-To: <544545028263a10abd00a8fe84e370a5deb29794.1383237868.git.jani.nikula@intel.com>

On 10/31/2013 09:55 AM, Jani Nikula wrote:
> Doing this has been long overdue anyway, but now we really need it in
> preparation for per connector backlight handling.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>   drivers/gpu/drm/i915/i915_drv.h       |    1 +
>   drivers/gpu/drm/i915/intel_opregion.c |   20 ++++++++++++++++++--
>   2 files changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 2c1921d..6308711 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -242,6 +242,7 @@ struct intel_opregion {
>   	struct opregion_asle __iomem *asle;
>   	void __iomem *vbt;
>   	u32 __iomem *lid_state;
> +	struct work_struct asle_work;
>   };
>   #define OPREGION_SIZE            (8*1024)
>
> diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
> index b82050c..892d520 100644
> --- a/drivers/gpu/drm/i915/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/intel_opregion.c
> @@ -486,9 +486,13 @@ static u32 asle_isct_state(struct drm_device *dev)
>   	return ASLC_ISCT_STATE_FAILED;
>   }
>
> -void intel_opregion_asle_intr(struct drm_device *dev)
> +static void asle_work(struct work_struct *work)
>   {
> -	struct drm_i915_private *dev_priv = dev->dev_private;
> +	struct intel_opregion *opregion =
> +		container_of(work, struct intel_opregion, asle_work);
> +	struct drm_i915_private *dev_priv =
> +		container_of(opregion, struct drm_i915_private, opregion);
> +	struct drm_device *dev = dev_priv->dev;
>   	struct opregion_asle __iomem *asle = dev_priv->opregion.asle;
>   	u32 aslc_stat = 0;
>   	u32 aslc_req;
> @@ -535,6 +539,14 @@ void intel_opregion_asle_intr(struct drm_device *dev)
>   	iowrite32(aslc_stat, &asle->aslc);
>   }
>
> +void intel_opregion_asle_intr(struct drm_device *dev)
> +{
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +
> +	if (dev_priv->opregion.asle)
> +		schedule_work(&dev_priv->opregion.asle_work);
> +}
> +
>   #define ACPI_EV_DISPLAY_SWITCH (1<<0)
>   #define ACPI_EV_LID            (1<<1)
>   #define ACPI_EV_DOCK           (1<<2)
> @@ -735,6 +747,8 @@ void intel_opregion_fini(struct drm_device *dev)
>   	if (opregion->asle)
>   		iowrite32(ASLE_ARDY_NOT_READY, &opregion->asle->ardy);
>
> +	cancel_work_sync(&dev_priv->opregion.asle_work);
> +
>   	if (opregion->acpi) {
>   		iowrite32(0, &opregion->acpi->drdy);
>
> @@ -828,6 +842,8 @@ int intel_opregion_setup(struct drm_device *dev)
>   		return -ENOTSUPP;
>   	}
>
> +	INIT_WORK(&opregion->asle_work, asle_work);
> +
>   	base = acpi_os_ioremap(asls, OPREGION_SIZE);
>   	if (!base)
>   		return -ENOMEM;
>

Tested-by: Joe Konno <joe.konno@intel.com>

  parent reply	other threads:[~2013-11-06 17:08 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-31 16:55 [PATCH 0/7] drm/i915: per connector backlight, per chip vfuncs Jani Nikula
2013-10-31 16:55 ` [PATCH 1/7] drm/i915: move opregion asle request handling to a work queue Jani Nikula
2013-11-05 17:50   ` Jesse Barnes
2013-11-06 17:07   ` Joe Konno [this message]
2013-10-31 16:55 ` [PATCH 2/7] drm/i915: make backlight functions take a connector Jani Nikula
2013-11-06 17:08   ` Joe Konno
2013-10-31 16:55 ` [PATCH 3/7] drm/i915/vlv: use per-pipe backlight controls v2 Jani Nikula
2013-11-06 17:09   ` Joe Konno
2013-10-31 16:55 ` [PATCH 4/7] drm/i915: clean up backlight conditional build Jani Nikula
2013-11-06 17:11   ` Joe Konno
2013-10-31 16:55 ` [PATCH 5/7] drm/i915: make backlight info per-connector Jani Nikula
2013-11-06 17:12   ` Joe Konno
2013-10-31 16:55 ` [PATCH 6/7] drm/i915: handle backlight through chip specific functions Jani Nikula
2013-11-06 17:12   ` Joe Konno
2013-10-31 16:55 ` [PATCH 7/7] drm/i915: make asle notifications update backlight on all connectors Jani Nikula
2013-11-06 17:12   ` Joe Konno
2013-10-31 21:34 ` [PATCH 0/7] drm/i915: per connector backlight, per chip vfuncs Joe Konno
2013-11-01 13:28   ` Jani Nikula
2013-11-01 14:30     ` Joe Konno

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=527A776B.7070206@linux.intel.com \
    --to=joe.konno@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /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.