Re: [Intel-gfx] [PATCH] drm/i915: Use RCS flips on Ivybridge+

2013-08-23 Thread Stéphane Marchesin
On Tue, Aug 20, 2013 at 1:34 AM, Chris Wilson wrote: > RCS flips do work on Iybridge+ so long as we can unmask the messages > through DERRMR. However, there are quite a few workarounds mentioned > regarding unmasking more than one event or triggering more than one > message through DERRMR. Those w

Re: [Intel-gfx] [PATCH] drm/i915: Restore the preliminary HW check.

2013-08-23 Thread Jesse Barnes
On Fri, 23 Aug 2013 16:00:07 -0700 Ben Widawsky wrote: > We still maintain code internally that cares about preliminary support. > Leaving the check here doesn't hurt anyone, and should keep things more > in line. > > This time around, stick the info in the intel_info structure, and also > chang

[Intel-gfx] [PATCH] drm/i915: Restore the preliminary HW check.

2013-08-23 Thread Ben Widawsky
We still maintain code internally that cares about preliminary support. Leaving the check here doesn't hurt anyone, and should keep things more in line. This time around, stick the info in the intel_info structure, and also change the error from DRM_ERROR->DRM_INFO. This is a partial revert of: c

[Intel-gfx] [PATCH] drm/i915: enable trickle feed on Haswell

2013-08-23 Thread Paulo Zanoni
From: Paulo Zanoni We shouldn't disable the trickle feed bits on Haswell. Our documentation explicitly says the trickle feed bits of PRI_CTL and CUR_CTL should not be programmed to 1, and the hardware engineer also asked us to not program the SPR_CTL field to 1. Leaving the bits as 1 could cause

Re: [Intel-gfx] [PATCH] drm/i915: Don't mask EI UP interrupt on IVB|SNB

2013-08-23 Thread Daniel Vetter
On Fri, Aug 23, 2013 at 10:18:39PM +, Azad, Vinit wrote: > Thanks Mika. It looks good to me. > > Reviewed-by: Vinit Azad > -Original Message- > From: Mika Kuoppala [mailto:mika.kuopp...@linux.intel.com] > Sent: Thursday, August 22, 2013 11:09 > To: intel-gfx@lists.freedesktop.org > C

Re: [Intel-gfx] [PATCH] drm/i915: Don't mask EI UP interrupt on IVB|SNB

2013-08-23 Thread Azad, Vinit
Thanks Mika. It looks good to me. Reviewed-by: Vinit Azad -Original Message- From: Mika Kuoppala [mailto:mika.kuopp...@linux.intel.com] Sent: Thursday, August 22, 2013 11:09 To: intel-gfx@lists.freedesktop.org Cc: Mika Kuoppala; Azad, Vinit Subject: [PATCH] drm/i915: Don't mask EI UP int

Re: [Intel-gfx] [PATCH] i915: Update VGA arbiter support for newer devices

2013-08-23 Thread Alex Williamson
On Fri, 2013-08-23 at 15:18 -0600, Alex Williamson wrote: > On Fri, 2013-08-23 at 21:21 +0300, Ville Syrjälä wrote: > > On Tue, Aug 20, 2013 at 10:46:45PM +0300, Ville Syrjälä wrote: > > > On Fri, Aug 16, 2013 at 12:22:14PM -0600, Alex Williamson wrote: > > > > On Fri, 2013-08-16 at 13:20 +0300, Vi

Re: [Intel-gfx] [PATCH] i915: Update VGA arbiter support for newer devices

2013-08-23 Thread Alex Williamson
On Fri, 2013-08-23 at 21:21 +0300, Ville Syrjälä wrote: > On Tue, Aug 20, 2013 at 10:46:45PM +0300, Ville Syrjälä wrote: > > On Fri, Aug 16, 2013 at 12:22:14PM -0600, Alex Williamson wrote: > > > On Fri, 2013-08-16 at 13:20 +0300, Ville Syrjälä wrote: > > > > On Thu, Aug 15, 2013 at 04:54:15PM -060

Re: [Intel-gfx] [PATCH v2] drm/i915: ivb: fix typo in dp voltage swing reg val

2013-08-23 Thread Daniel Vetter
On Fri, Aug 23, 2013 at 11:50:23PM +0300, Imre Deak wrote: > Fix the typo introduced in > > commit 1a2eb4604b85c5efb343da8a4dcf41288fcfca85 > Author: Keith Packard > Date: Wed Nov 16 16:26:07 2011 -0800 > > drm/i915: Hook up Ivybridge eDP > > This fixes eDP link-training failures and case

[Intel-gfx] [PATCH v2] drm/i915: ivb: fix typo in dp voltage swing reg val

2013-08-23 Thread Imre Deak
Fix the typo introduced in commit 1a2eb4604b85c5efb343da8a4dcf41288fcfca85 Author: Keith Packard Date: Wed Nov 16 16:26:07 2011 -0800 drm/i915: Hook up Ivybridge eDP This fixes eDP link-training failures and cases where all voltage swing /pre-emphasis levels were tried and failed during c

Re: [Intel-gfx] [PATCH 6/6] DRAFT: drm/i915: do adapter power state notification on PC8+ enable/disable

2013-08-23 Thread Paulo Zanoni
2013/8/23 Ville Syrjälä : > On Fri, Aug 23, 2013 at 04:41:57PM -0300, Paulo Zanoni wrote: >> 2013/8/23 Kristen Carlson Accardi : >> > On Fri, 23 Aug 2013 13:44:17 -0300 >> > Paulo Zanoni wrote: >> > >> >> 2013/8/23 Jani Nikula : >> >> >> >> /* Please insert explanation on why we need this and what

Re: [Intel-gfx] [PATCH] drm/i915: ivb: fix typo in dp voltage swing reg val

2013-08-23 Thread Daniel Vetter
On Fri, Aug 23, 2013 at 10:01:27PM +0200, Daniel Vetter wrote: > On Fri, Aug 23, 2013 at 04:01:17PM -0300, Paulo Zanoni wrote: > > 2013/8/23 Imre Deak : > > > Fix the typo introduced in > > > > > > commit 1a2eb4604b85c5efb343da8a4dcf41288fcfca85 > > > Author: Keith Packard > > > Date: Wed Nov 16

Re: [Intel-gfx] [PATCH 6/6] DRAFT: drm/i915: do adapter power state notification on PC8+ enable/disable

2013-08-23 Thread Ville Syrjälä
On Fri, Aug 23, 2013 at 04:41:57PM -0300, Paulo Zanoni wrote: > 2013/8/23 Kristen Carlson Accardi : > > On Fri, 23 Aug 2013 13:44:17 -0300 > > Paulo Zanoni wrote: > > > >> 2013/8/23 Jani Nikula : > >> > >> /* Please insert explanation on why we need this and what changes if > >> we do this. */ > >

Re: [Intel-gfx] [PATCH] drm/i915: ivb: fix typo in dp voltage swing reg val

2013-08-23 Thread Daniel Vetter
On Fri, Aug 23, 2013 at 04:01:17PM -0300, Paulo Zanoni wrote: > 2013/8/23 Imre Deak : > > Fix the typo introduced in > > > > commit 1a2eb4604b85c5efb343da8a4dcf41288fcfca85 > > Author: Keith Packard > > Date: Wed Nov 16 16:26:07 2011 -0800 > > > > drm/i915: Hook up Ivybridge eDP > > > > Bugz

[Intel-gfx] [PATCH] drm/i915: write D_COMP using the mailbox

2013-08-23 Thread Paulo Zanoni
From: Paulo Zanoni You can't write it using the MCHBAR mirror, the write will just get dropped. This should make us BSpec-compliant, but there's no real bug I could reproduce that is fixed by this patch. Signed-off-by: Paulo Zanoni --- drivers/gpu/drm/i915/i915_reg.h | 4 drivers/g

Re: [Intel-gfx] [PATCH 6/6] DRAFT: drm/i915: do adapter power state notification on PC8+ enable/disable

2013-08-23 Thread Paulo Zanoni
2013/8/23 Kristen Carlson Accardi : > On Fri, 23 Aug 2013 13:44:17 -0300 > Paulo Zanoni wrote: > >> 2013/8/23 Jani Nikula : >> >> /* Please insert explanation on why we need this and what changes if >> we do this. */ >> >> I applied your patches and booted them. I got into PC8, did the PC8 >> test

[Intel-gfx] Updated drm-intel-testing

2013-08-23 Thread Daniel Vetter
Hi all, New testing round: - pc8+ support from Paulo - more vma patches from Ben. - Kconfig option to enable preliminary support by default (Josh Triplett) - Optimized cpu cache flush handling and support for write-through caching of display planes on Iris (Chris) - rc6 tuning from Stéphane Ma

Re: [Intel-gfx] [PATCH] drm/i915: ivb: fix typo in dp voltage swing reg val

2013-08-23 Thread Paulo Zanoni
2013/8/23 Imre Deak : > Fix the typo introduced in > > commit 1a2eb4604b85c5efb343da8a4dcf41288fcfca85 > Author: Keith Packard > Date: Wed Nov 16 16:26:07 2011 -0800 > > drm/i915: Hook up Ivybridge eDP > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64880 > Tested-by: Jeremy Moles

[Intel-gfx] [PATCH] drm/i915: ivb: fix typo in dp voltage swing reg val

2013-08-23 Thread Imre Deak
Fix the typo introduced in commit 1a2eb4604b85c5efb343da8a4dcf41288fcfca85 Author: Keith Packard Date: Wed Nov 16 16:26:07 2011 -0800 drm/i915: Hook up Ivybridge eDP Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64880 Tested-by: Jeremy Moles Signed-off-by: Imre Deak --- driver

Re: [Intel-gfx] [PATCH] i915: Update VGA arbiter support for newer devices

2013-08-23 Thread Ville Syrjälä
On Tue, Aug 20, 2013 at 10:46:45PM +0300, Ville Syrjälä wrote: > On Fri, Aug 16, 2013 at 12:22:14PM -0600, Alex Williamson wrote: > > On Fri, 2013-08-16 at 13:20 +0300, Ville Syrjälä wrote: > > > On Thu, Aug 15, 2013 at 04:54:15PM -0600, Alex Williamson wrote: > > > > On Fri, 2013-08-16 at 08:49 +1

Re: [Intel-gfx] [PATCH 6/6] DRAFT: drm/i915: do adapter power state notification on PC8+ enable/disable

2013-08-23 Thread Kristen Carlson Accardi
On Fri, 23 Aug 2013 13:44:17 -0300 Paulo Zanoni wrote: > 2013/8/23 Jani Nikula : > > /* Please insert explanation on why we need this and what changes if > we do this. */ > > I applied your patches and booted them. I got into PC8, did the PC8 > test suite and nothing changed. I really don't kno

Re: [Intel-gfx] How will Gfx driver support runtime PM on Haswell?

2013-08-23 Thread Jesse Barnes
On Fri, 23 Aug 2013 13:49:57 -0300 Paulo Zanoni wrote: > 2013/8/22 Jesse Barnes : > > On Wed, 21 Aug 2013 15:29:17 + > > "Lin, Mengdong" wrote: > > > >> Hi Ben, > >> > >> How will Gfx driver support runtime PM on Haswell? Will the Gfx driver > >> trigger "Adapter Power State" notification t

Re: [Intel-gfx] How will Gfx driver support runtime PM on Haswell?

2013-08-23 Thread Paulo Zanoni
2013/8/22 Jesse Barnes : > On Wed, 21 Aug 2013 15:29:17 + > "Lin, Mengdong" wrote: > >> Hi Ben, >> >> How will Gfx driver support runtime PM on Haswell? Will the Gfx driver >> trigger "Adapter Power State" notification to BIOS when GPU switch state >> between D0 and D3? >> >> We need to supp

Re: [Intel-gfx] [PATCH 6/6] DRAFT: drm/i915: do adapter power state notification on PC8+ enable/disable

2013-08-23 Thread Paulo Zanoni
2013/8/23 Jani Nikula : /* Please insert explanation on why we need this and what changes if we do this. */ I applied your patches and booted them. I got into PC8, did the PC8 test suite and nothing changed. I really don't know what to expect from this series and/or how to check what's improving.

Re: [Intel-gfx] [PATCH v2 12/15] drm/i915: Band Gap WA

2013-08-23 Thread Ville Syrjälä
On Fri, Aug 16, 2013 at 03:36:00PM +0300, Jani Nikula wrote: > From: Shobhit Kumar > > Signed-off-by: Shobhit Kumar > Signed-off-by: ymohanma > Signed-off-by: Jani Nikula > --- > drivers/gpu/drm/i915/intel_dsi.c | 48 > ++ > 1 file changed, 48 insertions

[Intel-gfx] [PATCH 2/2] drm/i915: ban badly behaving contexts

2013-08-23 Thread Mika Kuoppala
Now when we have mechanism in place to track which context was guilty of hanging the gpu, it is possible to punish for bad behaviour. If context has recently submitted a faulty batchbuffers guilty of gpu hang and submits another batch which hangs gpu in a 16 seconds time window, ban it permanently

[Intel-gfx] [PATCH 1/2] drm/i915: increase GPU wedging timeout

2013-08-23 Thread Mika Kuoppala
Currently our wedge timeout is 5 seconds. Hangcheck needs atleast three runs to declare a hang with 1500ms timer tick period. To make sure that gpu can be wedged in the first place, define wedge timeout as multiple of hangcheck timer periods to ensure that it is always greater than hang detection

[Intel-gfx] [PATCH] drm/i915: sanitize forcewake registers on reset

2013-08-23 Thread Mika Kuoppala
In reset we try to restore the forcewake state to pre reset state, using forcewake_count. The reset doesn't seem to clear the forcewake bits so we get warn on forcewake ack register not clearing. Use same mechanism as intel_uncore_sanitize() does when loading driver to reset the forcewake bits, ri

Re: [Intel-gfx] [PATCH] drm/i915: Print seqnos as unsigned in debugfs

2013-08-23 Thread Daniel Vetter
On Fri, Aug 23, 2013 at 12:12:14PM +0100, Damien Lespiau wrote: > On Thu, Aug 22, 2013 at 07:21:30PM +0300, ville.syrj...@linux.intel.com wrote: > > From: Ville Syrjälä > > > > I don't like seeing signed seqnos. Make them unsigned. > > > > Signed-off-by: Ville Syrjälä > > Reviewed-by: Damien L

Re: [Intel-gfx] [PATCH] Fix for the i915_vma_unbind() fix.

2013-08-23 Thread Daniel Vetter
On Fri, Aug 23, 2013 at 10:07:16AM +0100, Chris Wilson wrote: > We need to move the bogus warn out of the way and only do the > vma->vma_link decoupling before destroying the node. > > Fixes gem_evict_everything, gem_evict_alignment > > Squash in with Daniel's fixup to the fix -- I expect that he

[Intel-gfx] [PATCH] drm/i915: Fix __wait_seqno to use true infinite timeouts

2013-08-23 Thread Chris Wilson
When we switched to always using a timeout in conjunction with wait_seqno, we lost the ability to detect missed interrupts. Since, we have had issues with interrupts on a number of generations, and they are required to be delivered in a timely fashion for a smooth UX, it is important that we do log

Re: [Intel-gfx] [PATCH] drm/i915: Print seqnos as unsigned in debugfs

2013-08-23 Thread Damien Lespiau
On Thu, Aug 22, 2013 at 07:21:30PM +0300, ville.syrj...@linux.intel.com wrote: > From: Ville Syrjälä > > I don't like seeing signed seqnos. Make them unsigned. > > Signed-off-by: Ville Syrjälä Reviewed-by: Damien Lespiau -- Damien > --- > drivers/gpu/drm/i915/i915_debugfs.c | 2 +- > 1 fi

[Intel-gfx] [PATCH 5/6] DRAFT: drm/i915: do display power state notification on crtc enable/disable

2013-08-23 Thread Jani Nikula
The spec says to notify prior to power down and after power up. It is unclear whether it makes a difference. Signed-off-by: Jani Nikula --- drivers/gpu/drm/i915/intel_display.c |8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/

[Intel-gfx] [PATCH 6/6] DRAFT: drm/i915: do adapter power state notification on PC8+ enable/disable

2013-08-23 Thread Jani Nikula
Signed-off-by: Jani Nikula --- drivers/gpu/drm/i915/intel_display.c |4 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index a6df68e..7ed2248 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/dr

[Intel-gfx] [PATCH 4/6] drm/i915: add opregion function to notify bios of adapter power state

2013-08-23 Thread Jani Nikula
Notifying the bios lets it enter power saving states. Signed-off-by: Jani Nikula --- drivers/gpu/drm/i915/i915_drv.h |3 +++ drivers/gpu/drm/i915/intel_opregion.c | 27 +++ 2 files changed, 30 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drive

[Intel-gfx] [PATCH 3/6] drm/i915: add opregion function to notify bios of encoder enable/disable

2013-08-23 Thread Jani Nikula
The bios interface seems messy, and it's hard to tell what the bios really wants. At first, only add support for DDI based machines (hsw+), and see how it turns out. The spec says to notify prior to power down and after power up. It is unclear whether it makes a difference. v2: - squash notifica

[Intel-gfx] [PATCH 2/6] drm/i915: add plumbing for SWSCI

2013-08-23 Thread Jani Nikula
SWSCI is a driver to bios call interface. This checks for SWSCI availability and bios requested callbacks, and filters out any calls that shouldn't happen. This way the callers don't need to do the checks all over the place. v2: silence some checkpatch nagging v3: set PCI_SWSCI bit 0 to trigger

[Intel-gfx] [PATCH 1/6] drm/i915: expose intel_ddi_get_encoder_port()

2013-08-23 Thread Jani Nikula
In preparation for followup work. Signed-off-by: Jani Nikula --- drivers/gpu/drm/i915/intel_ddi.c |2 +- drivers/gpu/drm/i915/intel_drv.h |1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index 63aca49.

[Intel-gfx] [PATCH 0/6] drm/i915: BIOS display/adapter power state notifications

2013-08-23 Thread Jani Nikula
Hi all, here are some patches for letting the BIOS do some further power savings on HSW, now based on intel-drm-nightly with Paulo's PC8+ work. Patches 1-4 are the glue code to wrap the BIOS SWSCI calls into a few sensible function calls. Patches 5-6 are for reference only, and I presume they wil

Re: [Intel-gfx] [PATCH] drm/i915: Fix context size calculation on SNB/IVB/VLV

2013-08-23 Thread Ville Syrjälä
On Thu, Aug 22, 2013 at 11:30:55AM -0700, Ben Widawsky wrote: > On Thu, Aug 22, 2013 at 07:23:13PM +0300, ville.syrj...@linux.intel.com wrote: > > From: Ville Syrjälä > > > > All the different context sizes reported in the CXT_SIZE register > > aren't meant to be simply added together. > > > > W

[Intel-gfx] [PATCH] Fix for the i915_vma_unbind() fix.

2013-08-23 Thread Chris Wilson
We need to move the bogus warn out of the way and only do the vma->vma_link decoupling before destroying the node. Fixes gem_evict_everything, gem_evict_alignment Squash in with Daniel's fixup to the fix -- I expect that he has already done so... Signed-off-by: Chris Wilson --- drivers/gpu/drm

Re: [Intel-gfx] linux-next: Tree for Aug 21 [ screen corruption in graphical mode ]

2013-08-23 Thread Sedat Dilek
On Fri, Aug 23, 2013 at 10:34 AM, Chris Wilson wrote: > On Fri, Aug 23, 2013 at 10:04:37AM +0200, Sedat Dilek wrote: >> On Fri, Aug 23, 2013 at 9:55 AM, Sedat Dilek wrote: >> > On Thu, Aug 22, 2013 at 1:32 PM, Daniel Vetter >> > wrote: >> >> On Thu, Aug 22, 2013 at 1:30 PM, Daniel Vetter >> >

Re: [Intel-gfx] [PULL] drm-intel-fixes

2013-08-23 Thread Daniel Vetter
Argh, forgotten to cc lists! On Fri, Aug 23, 2013 at 10:42:37AM +0200, Daniel Vetter wrote: > Hi Dave, > > Just one patch that soaked for quite a bit to fix a resume issue, > resulting in gpu hangs (or worse) due to tlb containing garbage. > > Cheers, Daniel > > > The following changes since c

Re: [Intel-gfx] [PATCH] drm/i915: Fix __wait_seqno to use true infinite timeouts

2013-08-23 Thread Daniel Vetter
On Fri, Aug 23, 2013 at 10:06 AM, Chris Wilson wrote: >> Yeah, I think this approach should work. A few comments: >> - I think we need a debugfs file to shut the safety quirk off - when >> testing on a machine where we actually miss interrupts it might be >> usful to get the warning output every t

Re: [Intel-gfx] linux-next: Tree for Aug 21 [ screen corruption in graphical mode ]

2013-08-23 Thread Chris Wilson
On Fri, Aug 23, 2013 at 10:04:37AM +0200, Sedat Dilek wrote: > On Fri, Aug 23, 2013 at 9:55 AM, Sedat Dilek wrote: > > On Thu, Aug 22, 2013 at 1:32 PM, Daniel Vetter > > wrote: > >> On Thu, Aug 22, 2013 at 1:30 PM, Daniel Vetter > >> wrote: > >>> On Thu, Aug 22, 2013 at 1:13 PM, Sedat Dilek

Re: [Intel-gfx] [PATCH] drm/i915: Fix __wait_seqno to use true infinite timeouts

2013-08-23 Thread Chris Wilson
On Fri, Aug 23, 2013 at 09:27:42AM +0200, Daniel Vetter wrote: > On Fri, Aug 23, 2013 at 3:05 AM, Chris Wilson > wrote: > > Rather than continue to fix up the timeouts to work around the interface > > impedence in wait_event_*(), open code the combination of > > wait_event[_interruptible][_timeou

Re: [Intel-gfx] linux-next: Tree for Aug 21 [ screen corruption in graphical mode ]

2013-08-23 Thread Sedat Dilek
On Fri, Aug 23, 2013 at 9:55 AM, Sedat Dilek wrote: > On Thu, Aug 22, 2013 at 1:32 PM, Daniel Vetter wrote: >> On Thu, Aug 22, 2013 at 1:30 PM, Daniel Vetter >> wrote: >>> On Thu, Aug 22, 2013 at 1:13 PM, Sedat Dilek wrote: dmesg (a lot of traces) and kernel-config attached. UXA

Re: [Intel-gfx] [PATCH] drm/i915: try not to lose backlight CBLV precision

2013-08-23 Thread Aaron Lu
On 08/23/2013 03:50 PM, Jani Nikula wrote: > ACPI has _BCM and _BQC methods to set and query the backlight > brightness, respectively. The ACPI opregion has variables BCLP and CBLV > to hold the requested and current backlight brightness, respectively. > > The BCLP variable has range 0..255 while

Re: [Intel-gfx] linux-next: Tree for Aug 21 [ screen corruption in graphical mode ]

2013-08-23 Thread Sedat Dilek
On Thu, Aug 22, 2013 at 1:32 PM, Daniel Vetter wrote: > On Thu, Aug 22, 2013 at 1:30 PM, Daniel Vetter wrote: >> On Thu, Aug 22, 2013 at 1:13 PM, Sedat Dilek wrote: >>> dmesg (a lot of traces) and kernel-config attached. >>> >>> UXA causes still screen corruption. >> >> Hm, was only a slim chanc

[Intel-gfx] [PATCH] drm/i915: try not to lose backlight CBLV precision

2013-08-23 Thread Jani Nikula
ACPI has _BCM and _BQC methods to set and query the backlight brightness, respectively. The ACPI opregion has variables BCLP and CBLV to hold the requested and current backlight brightness, respectively. The BCLP variable has range 0..255 while the others have range 0..100. This means the _BCM met

Re: [Intel-gfx] [PATCH] drm/i915: Fix __wait_seqno to use true infinite timeouts

2013-08-23 Thread Daniel Vetter
On Fri, Aug 23, 2013 at 3:05 AM, Chris Wilson wrote: > Rather than continue to fix up the timeouts to work around the interface > impedence in wait_event_*(), open code the combination of > wait_event[_interruptible][_timeout]. And note the code size reduction, > and dare say readability?, in doin