| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Driver for Aeroflex Gaisler SVGACTRL framebuffer device. |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * 2011 (c) Aeroflex Gaisler AB |
|---|
| 5 | 6 | * |
|---|
| 6 | 7 | * Full documentation of the core can be found here: |
|---|
| 7 | | - * http://www.gaisler.com/products/grlib/grip.pdf |
|---|
| 8 | | - * |
|---|
| 9 | | - * This program is free software; you can redistribute it and/or modify it |
|---|
| 10 | | - * under the terms of the GNU General Public License as published by the |
|---|
| 11 | | - * Free Software Foundation; either version 2 of the License, or (at your |
|---|
| 12 | | - * option) any later version. |
|---|
| 8 | + * https://www.gaisler.com/products/grlib/grip.pdf |
|---|
| 13 | 9 | * |
|---|
| 14 | 10 | * Contributors: Kristoffer Glembo <kristoffer@gaisler.com> |
|---|
| 15 | | - * |
|---|
| 16 | 11 | */ |
|---|
| 17 | 12 | |
|---|
| 18 | 13 | #include <linux/platform_device.h> |
|---|
| .. | .. |
|---|
| 256 | 251 | return 0; |
|---|
| 257 | 252 | } |
|---|
| 258 | 253 | |
|---|
| 259 | | -static struct fb_ops grvga_ops = { |
|---|
| 254 | +static const struct fb_ops grvga_ops = { |
|---|
| 260 | 255 | .owner = THIS_MODULE, |
|---|
| 261 | 256 | .fb_check_var = grvga_check_var, |
|---|
| 262 | 257 | .fb_set_par = grvga_set_par, |
|---|
| .. | .. |
|---|
| 341 | 336 | char *options = NULL, *mode_opt = NULL; |
|---|
| 342 | 337 | |
|---|
| 343 | 338 | info = framebuffer_alloc(sizeof(struct grvga_par), &dev->dev); |
|---|
| 344 | | - if (!info) { |
|---|
| 345 | | - dev_err(&dev->dev, "framebuffer_alloc failed\n"); |
|---|
| 339 | + if (!info) |
|---|
| 346 | 340 | return -ENOMEM; |
|---|
| 347 | | - } |
|---|
| 348 | 341 | |
|---|
| 349 | 342 | /* Expecting: "grvga: modestring, [addr:<framebuffer physical address>], [size:<framebuffer size>] |
|---|
| 350 | 343 | * |
|---|