diff options
Diffstat (limited to 'drivers/video/fbdev/macfb.c')
| -rw-r--r-- | drivers/video/fbdev/macfb.c | 51 |
1 files changed, 10 insertions, 41 deletions
diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c index e707e617bf1c..887fffdccd24 100644 --- a/drivers/video/fbdev/macfb.c +++ b/drivers/video/fbdev/macfb.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0-or-later /* * macfb.c: Generic framebuffer for Macs whose colourmaps/modes we * don't know how to set. @@ -17,10 +18,6 @@ * * The VideoToolbox "Bugs" web page at * http://rajsky.psych.nyu.edu/Tips/VideoBugs.html - * - * This code is free software. You may copy, modify, and distribute - * it subject to the terms and conditions of the GNU General Public - * License, version 2, or any later version, at your convenience. */ #include <linux/module.h> @@ -120,10 +117,7 @@ struct jet_cmap_regs { #define PIXEL_TO_MM(a) (((a)*10)/28) /* width in mm at 72 dpi */ static struct fb_var_screeninfo macfb_defined = { - .bits_per_pixel = 8, .activate = FB_ACTIVATE_NOW, - .width = -1, - .height = -1, .right_margin = 32, .upper_margin = 16, .lower_margin = 4, @@ -139,7 +133,6 @@ static struct fb_fix_screeninfo macfb_fix = { static void *slot_addr; static struct fb_info fb_info; static u32 pseudo_palette[16]; -static int inverse; static int vidtest; /* @@ -152,7 +145,7 @@ static int dafb_setpalette(unsigned int regno, unsigned int red, unsigned int green, unsigned int blue, struct fb_info *info) { - static int lastreg = -1; + static int lastreg = -2; unsigned long flags; local_irq_save(flags); @@ -201,9 +194,6 @@ static int v8_brazil_setpalette(unsigned int regno, unsigned int red, unsigned int bpp = info->var.bits_per_pixel; unsigned long flags; - if (bpp > 8) - return 1; /* failsafe */ - local_irq_save(flags); /* On these chips, the CLUT register numbers are spread out @@ -234,9 +224,6 @@ static int rbv_setpalette(unsigned int regno, unsigned int red, { unsigned long flags; - if (info->var.bits_per_pixel > 8) - return 1; /* failsafe */ - local_irq_save(flags); /* From the VideoToolbox driver. Seems to be saying that @@ -352,9 +339,6 @@ static int civic_setpalette(unsigned int regno, unsigned int red, { unsigned long flags; int clut_status; - - if (info->var.bits_per_pixel > 8) - return 1; /* failsafe */ local_irq_save(flags); @@ -455,7 +439,7 @@ static int macfb_setcolreg(unsigned regno, unsigned red, unsigned green, * (according to the entries in the `var' structure). * Return non-zero for invalid regno. */ - + if (regno >= fb_info->cmap.len) return 1; @@ -494,7 +478,7 @@ static int macfb_setcolreg(unsigned regno, unsigned red, unsigned green, break; /* * 24-bit colour almost doesn't exist on 68k Macs -- - * http://support.apple.com/kb/TA28634 (Old Article: 10992) + * https://support.apple.com/kb/TA28634 (Old Article: 10992) */ case 24: case 32: @@ -512,12 +496,10 @@ static int macfb_setcolreg(unsigned regno, unsigned red, unsigned green, return 0; } -static struct fb_ops macfb_ops = { +static const struct fb_ops macfb_ops = { .owner = THIS_MODULE, + FB_DEFAULT_IOMEM_OPS, .fb_setcolreg = macfb_setcolreg, - .fb_fillrect = cfb_fillrect, - .fb_copyarea = cfb_copyarea, - .fb_imageblit = cfb_imageblit, }; static void __init macfb_setup(char *options) @@ -532,7 +514,7 @@ static void __init macfb_setup(char *options) continue; if (!strcmp(this_opt, "inverse")) - inverse = 1; + fb_invert_cmaps(); else if (!strcmp(this_opt, "vidtest")) vidtest = 1; /* enable experimental CLUT code */ @@ -564,7 +546,7 @@ static int __init macfb_init(void) return -ENODEV; macfb_setup(option); - if (!MACH_IS_MAC) + if (!MACH_IS_MAC) return -ENODEV; if (mac_bi_data.id == MAC_MODEL_Q630 || @@ -660,7 +642,7 @@ static int __init macfb_init(void) err = -EINVAL; goto fail_unmap; } - + /* * We take a wild guess that if the video physical address is * in nubus slot space, that the nubus card is driving video. @@ -688,17 +670,14 @@ static int __init macfb_init(void) case NUBUS_DRHW_APPLE_MDC: strcpy(macfb_fix.id, "Mac Disp. Card"); macfb_setpalette = mdc_setpalette; - macfb_defined.activate = FB_ACTIVATE_NOW; break; case NUBUS_DRHW_APPLE_TFB: strcpy(macfb_fix.id, "Toby"); macfb_setpalette = toby_setpalette; - macfb_defined.activate = FB_ACTIVATE_NOW; break; case NUBUS_DRHW_APPLE_JET: strcpy(macfb_fix.id, "Jet"); macfb_setpalette = jet_setpalette; - macfb_defined.activate = FB_ACTIVATE_NOW; break; default: strcpy(macfb_fix.id, "Generic NuBus"); @@ -731,7 +710,6 @@ static int __init macfb_init(void) strcpy(macfb_fix.id, "DAFB"); macfb_setpalette = dafb_setpalette; dafb_cmap_regs = ioremap(DAFB_BASE, 0x1000); - macfb_defined.activate = FB_ACTIVATE_NOW; break; /* @@ -741,7 +719,6 @@ static int __init macfb_init(void) strcpy(macfb_fix.id, "V8"); macfb_setpalette = v8_brazil_setpalette; v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000); - macfb_defined.activate = FB_ACTIVATE_NOW; break; /* @@ -755,7 +732,6 @@ static int __init macfb_init(void) strcpy(macfb_fix.id, "Brazil"); macfb_setpalette = v8_brazil_setpalette; v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000); - macfb_defined.activate = FB_ACTIVATE_NOW; break; /* @@ -772,7 +748,6 @@ static int __init macfb_init(void) strcpy(macfb_fix.id, "Sonora"); macfb_setpalette = v8_brazil_setpalette; v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000); - macfb_defined.activate = FB_ACTIVATE_NOW; break; /* @@ -785,7 +760,6 @@ static int __init macfb_init(void) strcpy(macfb_fix.id, "RBV"); macfb_setpalette = rbv_setpalette; rbv_cmap_regs = ioremap(DAC_BASE, 0x1000); - macfb_defined.activate = FB_ACTIVATE_NOW; break; /* @@ -796,10 +770,9 @@ static int __init macfb_init(void) strcpy(macfb_fix.id, "Civic"); macfb_setpalette = civic_setpalette; civic_cmap_regs = ioremap(CIVIC_BASE, 0x1000); - macfb_defined.activate = FB_ACTIVATE_NOW; break; - + /* * Assorted weirdos * We think this may be like the LC II @@ -810,7 +783,6 @@ static int __init macfb_init(void) macfb_setpalette = v8_brazil_setpalette; v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000); - macfb_defined.activate = FB_ACTIVATE_NOW; } break; @@ -823,7 +795,6 @@ static int __init macfb_init(void) macfb_setpalette = v8_brazil_setpalette; v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000); - macfb_defined.activate = FB_ACTIVATE_NOW; } break; @@ -892,7 +863,6 @@ static int __init macfb_init(void) strcpy(macfb_fix.id, "CSC"); macfb_setpalette = csc_setpalette; csc_cmap_regs = ioremap(CSC_BASE, 0x1000); - macfb_defined.activate = FB_ACTIVATE_NOW; break; default: @@ -904,7 +874,6 @@ static int __init macfb_init(void) fb_info.var = macfb_defined; fb_info.fix = macfb_fix; fb_info.pseudo_palette = pseudo_palette; - fb_info.flags = FBINFO_DEFAULT; err = fb_alloc_cmap(&fb_info.cmap, video_cmap_len, 0); if (err) |
