Re: [PATCH 2/8] drm/udl: Change drm_fb_helper_sys_*() calls to sys_*()

Noralf Trønnes
2016-04-20T18:15:30Z

Den 20.04.2016 19:42, skrev Daniel Vetter:
> On Wed, Apr 20, 2016 at 05:25:23PM +0200, Noralf Trønnes wrote:
>> Now that drm_fb_helper gets deferred io support, the
>> drm_fb_helper_sys_{fillrect,copyarea,imageblit} functions will schedule
>> the worker that calls the deferred_io callback. This will break this
>> driver so use the sys_{fillrect,copyarea,imageblit} functions directly.
>>
>> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
> I think this intermediately breaks the build, if you disable fbdev
> support. That's now supported in the fbdev helpers core generically across
> all drivers.
>
> Not sure how to best fix this up, since the only way would be to squash
> these patches, plus generic deferred io plus the conversion patches for
> udl/qxl all into one. Tricky.

Yes you're right, I missed that.
How about this:
#ifdef CONFIG_FB
sys_fillrect(info, rect);
#endif

The later patch will then remove this ugliness...

> -Daniel
>
>> ---
>> drivers/gpu/drm/udl/udl_fb.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
>> index fd1eb9d..a52de2f 100644
>> --- a/drivers/gpu/drm/udl/udl_fb.c
>> +++ b/drivers/gpu/drm/udl/udl_fb.c
>> @@ -287,7 +287,7 @@ static void udl_fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect
>> {
>> struct udl_fbdev *ufbdev = info->par;
>>
>> - drm_fb_helper_sys_fillrect(info, rect);
>> + sys_fillrect(info, rect);
>>
>> udl_handle_damage(&ufbdev->ufb, rect->dx, rect->dy, rect->width,
>> rect->height);
>> @@ -297,7 +297,7 @@ static void udl_fb_copyarea(struct fb_info *info, const struct fb_copyarea *regi
>> {
>> struct udl_fbdev *ufbdev = info->par;
>>
>> - drm_fb_helper_sys_copyarea(info, region);
>> + sys_copyarea(info, region);
>>
>> udl_handle_damage(&ufbdev->ufb, region->dx, region->dy, region->width,
>> region->height);
>> @@ -307,7 +307,7 @@ static void udl_fb_imageblit(struct fb_info *info, const struct fb_image *image)
>> {
>> struct udl_fbdev *ufbdev = info->par;
>>
>> - drm_fb_helper_sys_imageblit(info, image);
>> + sys_imageblit(info, image);
>>
>> udl_handle_damage(&ufbdev->ufb, image->dx, image->dy, image->width,
>> image->height);
>> --
>> 2.2.2
>>