[Intel-gfx] [PATCH 13/14] drm/i915: Use binary search when looking for shadowed registers

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Mon Oct 3 08:33:18 UTC 2016


On 03/10/2016 09:05, Joonas Lahtinen wrote:
> On pe, 2016-09-30 at 19:08 +0100, Chris Wilson wrote:
>> On Fri, Sep 30, 2016 at 06:48:48PM +0100, Tvrtko Ursulin wrote:
>>> +static int mmio_reg_cmp(const void *key, const void *elt)
>>> +{
>>> +	u32 offset = (u32)(unsigned long)key;
>>> +	i915_reg_t *reg = (i915_reg_t *)elt;
>>> +
>>> +	if (offset < i915_mmio_reg_offset(*reg))
>>> +		return -1;
>>> +	else if (offset > i915_mmio_reg_offset(*reg))
>>> +		return 1;
>>> +	else
>>> +		return 0;
>> There's no issue with using
>>
>> 	return offset - i915_mmio_reg_offset(*reg)
>>
>> here.
>>
> Why not?
>
>>> +	reg = bsearch((void *)(unsigned long)offset,
>>> +		      (const void *)gen8_shadowed_regs,
>>> +		      ARRAY_SIZE(gen8_shadowed_regs),
>>> +		      sizeof(i915_reg_t),
>>> +		      mmio_reg_cmp);
>>> +
>>> +	return reg;
>> Or just return bseearch() ? (Probably like this for easing future
>> patches.)
> Suggested that too, but obviously he has something in mind.

It becomes a direct return in a following patch. It is just a virtue of 
me wanting to split out the series a lot for easier review, and then not 
picking up all relevant places to tidy when acting on review feedback. 
But this one as I said happens in a following patch.

Regards,

Tvrtko


More information about the Intel-gfx mailing list