static int framebuffer_probe(struct coreboot_device *dev)
{
int i;
- u32 length;
struct lb_framebuffer *fb = &dev->framebuffer;
struct platform_device *pdev;
struct resource res;
if (!fb->physical_address)
return -ENODEV;
+ res = DEFINE_RES_MEM(fb->physical_address,
+ PAGE_ALIGN(fb->y_resolution * fb->bytes_per_line));
+ if (res.end <= res.start)
+ return -EINVAL;
+
for (i = 0; i < ARRAY_SIZE(formats); ++i) {
if (fb->bits_per_pixel == formats[i].bits_per_pixel &&
fb->red_mask_pos == formats[i].red.offset &&
if (!pdata.format)
return -ENODEV;
- memset(&res, 0, sizeof(res));
- res.flags = IORESOURCE_MEM;
- res.name = "Coreboot Framebuffer";
- res.start = fb->physical_address;
- length = PAGE_ALIGN(fb->y_resolution * fb->bytes_per_line);
- res.end = res.start + length - 1;
- if (res.end <= res.start)
- return -EINVAL;
-
pdev = platform_device_register_resndata(&dev->dev,
"simple-framebuffer", 0,
&res, 1, &pdata,