@@ -351,7 +351,7 @@ struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
351
351
}
352
352
}
353
353
354
- fb = omap_framebuffer_init (dev , mode_cmd , bos );
354
+ fb = omap_framebuffer_init (dev , info , mode_cmd , bos );
355
355
if (IS_ERR (fb ))
356
356
goto error ;
357
357
@@ -365,9 +365,9 @@ struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
365
365
}
366
366
367
367
struct drm_framebuffer * omap_framebuffer_init (struct drm_device * dev ,
368
+ const struct drm_format_info * info ,
368
369
const struct drm_mode_fb_cmd2 * mode_cmd , struct drm_gem_object * * bos )
369
370
{
370
- const struct drm_format_info * format = NULL ;
371
371
struct omap_framebuffer * omap_fb = NULL ;
372
372
struct drm_framebuffer * fb = NULL ;
373
373
unsigned int pitch = mode_cmd -> pitches [0 ];
@@ -377,15 +377,12 @@ struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
377
377
dev , mode_cmd , mode_cmd -> width , mode_cmd -> height ,
378
378
(char * )& mode_cmd -> pixel_format );
379
379
380
- format = drm_get_format_info (dev , mode_cmd -> pixel_format ,
381
- mode_cmd -> modifier [0 ]);
382
-
383
380
for (i = 0 ; i < ARRAY_SIZE (formats ); i ++ ) {
384
381
if (formats [i ] == mode_cmd -> pixel_format )
385
382
break ;
386
383
}
387
384
388
- if (! format || i == ARRAY_SIZE (formats )) {
385
+ if (i == ARRAY_SIZE (formats )) {
389
386
dev_dbg (dev -> dev , "unsupported pixel format: %4.4s\n" ,
390
387
(char * )& mode_cmd -> pixel_format );
391
388
ret = - EINVAL ;
@@ -399,31 +396,31 @@ struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
399
396
}
400
397
401
398
fb = & omap_fb -> base ;
402
- omap_fb -> format = format ;
399
+ omap_fb -> format = info ;
403
400
mutex_init (& omap_fb -> lock );
404
401
405
402
/*
406
403
* The code below assumes that no format use more than two planes, and
407
404
* that the two planes of multiplane formats need the same number of
408
405
* bytes per pixel.
409
406
*/
410
- if (format -> num_planes == 2 && pitch != mode_cmd -> pitches [1 ]) {
407
+ if (info -> num_planes == 2 && pitch != mode_cmd -> pitches [1 ]) {
411
408
dev_dbg (dev -> dev , "pitches differ between planes 0 and 1\n" );
412
409
ret = - EINVAL ;
413
410
goto fail ;
414
411
}
415
412
416
- if (pitch % format -> cpp [0 ]) {
413
+ if (pitch % info -> cpp [0 ]) {
417
414
dev_dbg (dev -> dev ,
418
415
"buffer pitch (%u bytes) is not a multiple of pixel size (%u bytes)\n" ,
419
- pitch , format -> cpp [0 ]);
416
+ pitch , info -> cpp [0 ]);
420
417
ret = - EINVAL ;
421
418
goto fail ;
422
419
}
423
420
424
- for (i = 0 ; i < format -> num_planes ; i ++ ) {
421
+ for (i = 0 ; i < info -> num_planes ; i ++ ) {
425
422
struct plane * plane = & omap_fb -> planes [i ];
426
- unsigned int vsub = i == 0 ? 1 : format -> vsub ;
423
+ unsigned int vsub = i == 0 ? 1 : info -> vsub ;
427
424
unsigned int size ;
428
425
429
426
size = pitch * mode_cmd -> height / vsub ;
@@ -440,7 +437,7 @@ struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
440
437
plane -> dma_addr = 0 ;
441
438
}
442
439
443
- drm_helper_mode_fill_fb_struct (dev , fb , NULL , mode_cmd );
440
+ drm_helper_mode_fill_fb_struct (dev , fb , info , mode_cmd );
444
441
445
442
ret = drm_framebuffer_init (dev , fb , & omap_framebuffer_funcs );
446
443
if (ret ) {
0 commit comments