[Intel-gfx] [PATCH 4/4] drm/i915: Enable querying offset of UV plane with intel_plane_obj_offset

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Mon Aug 3 05:20:02 PDT 2015


On 08/03/2015 12:56 PM, Chris Wilson wrote:
> On Mon, Aug 03, 2015 at 11:54:08AM +0100, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>
>> v2: Rebase.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>> ---
>>   drivers/gpu/drm/i915/i915_gem_gtt.c  |  2 ++
>>   drivers/gpu/drm/i915/i915_gem_gtt.h  |  1 +
>>   drivers/gpu/drm/i915/intel_display.c | 26 +++++++++++++++++++++-----
>>   drivers/gpu/drm/i915/intel_drv.h     |  4 +++-
>>   drivers/gpu/drm/i915/intel_sprite.c  |  2 +-
>>   5 files changed, 28 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
>> index 6495996c285e..0bae7128845a 100644
>> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
>> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
>> @@ -2810,6 +2810,8 @@ intel_rotate_fb_obj_pages(struct i915_ggtt_view *ggtt_view,
>>   		if (offset_in_page(rot_info->uv_offset))
>>   			uv_start_page--;
>>
>> +		rot_info->uv_start_page = uv_start_page;
>> +
>>   		rotate_pages(page_addr_list, uv_start_page,
>>   			     rot_info->width_pages_uv,
>>   			     rot_info->height_pages_uv,
>> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h
>> index 3daa60332e28..516a72b9b1fd 100644
>> --- a/drivers/gpu/drm/i915/i915_gem_gtt.h
>> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
>> @@ -131,6 +131,7 @@ struct intel_rotation_info {
>>   	uint64_t size;
>>   	unsigned int width_pages_uv, height_pages_uv;
>>   	uint64_t size_uv;
>> +	unsigned int uv_start_page;
>>   };
>>
>>   struct i915_ggtt_view {
>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>> index 342d96553a7b..83dadb4796a4 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -2914,14 +2914,29 @@ u32 intel_fb_stride_alignment(struct drm_device *dev, uint64_t fb_modifier,
>>   }
>>
>>   unsigned long intel_plane_obj_offset(struct intel_plane *intel_plane,
>> -				     struct drm_i915_gem_object *obj)
>> +				     struct drm_i915_gem_object *obj,
>> +				     unsigned int plane)
>
> All callers pass in .plane=0; how is this supposed to work?

I forgot to include a critical piece of information in the cover letter 
this time - this series only deals with GGTT mapping part of the story, 
while Chandra has many more patches on top which implement the actual 
rotated NV12 scanout.

Tvrtko


More information about the Intel-gfx mailing list