From: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com>
To: imre.deak@intel.com
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/3] drm/i915: combine i9xx_get_hpd_pins and pch_get_hpd_pins
Date: Wed, 22 Jul 2015 13:43:49 +0530 [thread overview]
Message-ID: <55AF50BD.9000107@intel.com> (raw)
In-Reply-To: <1437501523.3787.7.camel@intel.com>
On 7/21/2015 11:28 PM, Imre Deak wrote:
> On Tue, 2015-07-21 at 13:50 +0530, Sivakumar Thulasimani wrote:
>> On 7/21/2015 3:13 AM, Imre Deak wrote:
>>> These functions are quite similar, so combine them with the use of a new
>>> argument for a function that detects long pulses. This will be also
>>> needed by an upcoming patch adding support for BXT long pulse detection.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Imre Deak <imre.deak@intel.com>
>>> ---
>>> drivers/gpu/drm/i915/i915_irq.c | 54 ++++++++++++++---------------------------
>>> 1 file changed, 18 insertions(+), 36 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
>>> index a6fbe64..306de78 100644
>>> --- a/drivers/gpu/drm/i915/i915_irq.c
>>> +++ b/drivers/gpu/drm/i915/i915_irq.c
>>> @@ -1256,9 +1256,10 @@ static bool i9xx_port_hotplug_long_detect(enum port port, u32 val)
>>> }
>>>
>>> /* Get a bit mask of pins that have triggered, and which ones may be long. */
>>> -static void pch_get_hpd_pins(u32 *pin_mask, u32 *long_mask,
>>> +static void intel_get_hpd_pins(u32 *pin_mask, u32 *long_mask,
>>> u32 hotplug_trigger, u32 dig_hotplug_reg,
>>> - const u32 hpd[HPD_NUM_PINS])
>>> + const u32 hpd[HPD_NUM_PINS],
>>> + bool long_pulse_detect(enum port port, u32 val))
>>> {
>>> enum port port;
>>> int i;
>>> @@ -1276,7 +1277,7 @@ static void pch_get_hpd_pins(u32 *pin_mask, u32 *long_mask,
>>> *pin_mask |= BIT(i);
>>>
>>> port = intel_hpd_pin_to_port(i);
>>> - if (pch_port_hotplug_long_detect(port, dig_hotplug_reg))
>>> + if (long_pulse_detect(port, dig_hotplug_reg))
>>> *long_mask |= BIT(i);
>>> }
>>>
>>> @@ -1285,34 +1286,6 @@ static void pch_get_hpd_pins(u32 *pin_mask, u32 *long_mask,
>>>
>>> }
>>>
>>> -/* Get a bit mask of pins that have triggered, and which ones may be long. */
>>> -static void i9xx_get_hpd_pins(u32 *pin_mask, u32 *long_mask,
>>> - u32 hotplug_trigger, const u32 hpd[HPD_NUM_PINS])
>>> -{
>>> - enum port port;
>>> - int i;
>>> -
>>> - *pin_mask = 0;
>>> - *long_mask = 0;
>>> -
>>> - if (!hotplug_trigger)
>>> - return;
>>> -
>>> - for_each_hpd_pin(i) {
>>> - if ((hpd[i] & hotplug_trigger) == 0)
>>> - continue;
>>> -
>>> - *pin_mask |= BIT(i);
>>> -
>>> - port = intel_hpd_pin_to_port(i);
>>> - if (i9xx_port_hotplug_long_detect(port, hotplug_trigger))
>>> - *long_mask |= BIT(i);
>>> - }
>>> -
>>> - DRM_DEBUG_DRIVER("hotplug event received, stat 0x%08x, pins 0x%08x\n",
>>> - hotplug_trigger, *pin_mask);
>>> -}
>>> -
>>> static void gmbus_irq_handler(struct drm_device *dev)
>>> {
>>> struct drm_i915_private *dev_priv = dev->dev_private;
>>> @@ -1550,7 +1523,9 @@ static void i9xx_hpd_irq_handler(struct drm_device *dev)
>>> if (IS_G4X(dev) || IS_VALLEYVIEW(dev)) {
>>> u32 hotplug_trigger = hotplug_status & HOTPLUG_INT_STATUS_G4X;
>>>
>>> - i9xx_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger, hpd_status_g4x);
>>> + intel_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger,
>>> + hotplug_trigger, hpd_status_g4x,
>>> + i9xx_port_hotplug_long_detect);
>>> intel_hpd_irq_handler(dev, pin_mask, long_mask);
>>>
>>> if (hotplug_status & DP_AUX_CHANNEL_MASK_INT_STATUS_G4X)
>>> @@ -1558,7 +1533,9 @@ static void i9xx_hpd_irq_handler(struct drm_device *dev)
>>> } else {
>>> u32 hotplug_trigger = hotplug_status & HOTPLUG_INT_STATUS_I915;
>>>
>>> - i9xx_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger, hpd_status_i915);
>>> + intel_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger,
>>> + hotplug_trigger, hpd_status_g4x,
>>> + i9xx_port_hotplug_long_detect);
>>> intel_hpd_irq_handler(dev, pin_mask, long_mask);
>>> }
>>> }
>>> @@ -1664,7 +1641,9 @@ static void ibx_irq_handler(struct drm_device *dev, u32 pch_iir)
>>> dig_hotplug_reg = I915_READ(PCH_PORT_HOTPLUG);
>>> I915_WRITE(PCH_PORT_HOTPLUG, dig_hotplug_reg);
>>>
>>> - pch_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger, dig_hotplug_reg, hpd_ibx);
>>> + intel_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger,
>>> + dig_hotplug_reg, hpd_ibx,
>>> + pch_port_hotplug_long_detect);
>>> intel_hpd_irq_handler(dev, pin_mask, long_mask);
>>>
>>> if (pch_iir & SDE_AUDIO_POWER_MASK) {
>>> @@ -1763,7 +1742,9 @@ static void cpt_irq_handler(struct drm_device *dev, u32 pch_iir)
>>> dig_hotplug_reg = I915_READ(PCH_PORT_HOTPLUG);
>>> I915_WRITE(PCH_PORT_HOTPLUG, dig_hotplug_reg);
>>>
>>> - pch_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger, dig_hotplug_reg, hpd_cpt);
>>> + intel_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger,
>>> + dig_hotplug_reg, hpd_cpt,
>>> + pch_port_hotplug_long_detect);
>>> intel_hpd_irq_handler(dev, pin_mask, long_mask);
>>>
>>> if (pch_iir & SDE_AUDIO_POWER_MASK_CPT) {
>>> @@ -1979,7 +1960,8 @@ static void bxt_hpd_handler(struct drm_device *dev, uint32_t iir_status)
>>> /* Clear sticky bits in hpd status */
>>> I915_WRITE(BXT_HOTPLUG_CTL, hp_control);
>>>
>>> - pch_get_hpd_pins(&pin_mask, &long_mask, hp_trigger, hp_control, hpd_bxt);
>>> + intel_get_hpd_pins(&pin_mask, &long_mask, hp_trigger, hp_control,
>>> + hpd_bxt, pch_port_hotplug_long_detect);
>>> intel_hpd_irq_handler(dev, pin_mask, long_mask);
>>> }
>>>
>> a what if question :), before this change only intel_hpd_irq_handler was
>> platform independent and
>> it was in intel_hotplug.c file. Now we have one more function which is
>> (i am assuming) platform independent
>> and is always called before intel_hpd_irq_handler.
>>
>> can we move the intel_get_hpd_pins to intel_hotplug.c by renmaing it as
>> intel_hpd_get_pins & call the
>> intel_hpd_irq_handler function at the end of this new function ?
> Yes, factoring out intel_get_hpd_pins() and intel_hpd_irq_handler() into
> a new function is a good idea. I think it's best done as follow-up
> though, so maybe you could do this after this patchset is merged?
>
> --Imre
>
Sure :) i'll take it up post this gets merged.
--
regards,
Sivakumar
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-07-22 8:13 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-20 21:43 [PATCH 0/3] drm/i915/bxt: HPD long/short pulse detect support on port A Imre Deak
2015-07-20 21:43 ` [PATCH 1/3] drm/i915: combine i9xx_get_hpd_pins and pch_get_hpd_pins Imre Deak
2015-07-21 8:20 ` Sivakumar Thulasimani
2015-07-21 17:58 ` Imre Deak
2015-07-22 8:13 ` Sivakumar Thulasimani [this message]
2015-07-21 22:32 ` [PATCH v2 " Imre Deak
2015-07-22 8:16 ` Sivakumar Thulasimani
2015-07-20 21:43 ` [PATCH 2/3] drm/i915: don't use HPD_PORT_A as an alias for HPD_NONE Imre Deak
2015-07-21 8:21 ` Sivakumar Thulasimani
2015-07-21 18:03 ` Imre Deak
2015-07-21 22:32 ` [PATCH v2 " Imre Deak
2015-07-22 8:28 ` Sivakumar Thulasimani
2015-07-20 21:43 ` [PATCH 3/3] drm/i915/bxt: add support for HPD long/short pulse detection on HPD_PORT_A pin Imre Deak
2015-07-22 8:31 ` Sivakumar Thulasimani
2015-07-21 6:10 ` [PATCH 0/3] drm/i915/bxt: HPD long/short pulse detect support on port A Jindal, Sonika
2015-07-21 17:42 ` Imre Deak
2015-07-22 8:45 ` Daniel Vetter
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=55AF50BD.9000107@intel.com \
--to=sivakumar.thulasimani@intel.com \
--cc=imre.deak@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.