fbcon: remove broken mac vbl handler

Remove the Mac VBL interrupt code as it doesn't work properly and
doesn't bring any benefit when fixed. Also remove unused
DEFAULT_CURSOR_BLINK_RATE macro and irqres variable.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
This commit is contained in:
Finn Thain 2008-11-18 20:45:23 +01:00 committed by Geert Uytterhoeven
parent 646819e862
commit 79f0c9a047

View file

@ -81,9 +81,6 @@
#ifdef CONFIG_ATARI #ifdef CONFIG_ATARI
#include <asm/atariints.h> #include <asm/atariints.h>
#endif #endif
#ifdef CONFIG_MAC
#include <asm/macints.h>
#endif
#if defined(__mc68000__) #if defined(__mc68000__)
#include <asm/machdep.h> #include <asm/machdep.h>
#include <asm/setup.h> #include <asm/setup.h>
@ -160,8 +157,6 @@ static int fbcon_set_origin(struct vc_data *);
/* # VBL ints between cursor state changes */ /* # VBL ints between cursor state changes */
#define ATARI_CURSOR_BLINK_RATE (42) #define ATARI_CURSOR_BLINK_RATE (42)
#define MAC_CURSOR_BLINK_RATE (32)
#define DEFAULT_CURSOR_BLINK_RATE (20)
static int vbl_cursor_cnt; static int vbl_cursor_cnt;
static int fbcon_cursor_noblink; static int fbcon_cursor_noblink;
@ -210,19 +205,6 @@ static void fbcon_start(void);
static void fbcon_exit(void); static void fbcon_exit(void);
static struct device *fbcon_device; static struct device *fbcon_device;
#ifdef CONFIG_MAC
/*
* On the Macintoy, there may or may not be a working VBL int. We need to probe
*/
static int vbl_detected;
static irqreturn_t fb_vbl_detect(int irq, void *dummy)
{
vbl_detected++;
return IRQ_HANDLED;
}
#endif
#ifdef CONFIG_FRAMEBUFFER_CONSOLE_ROTATION #ifdef CONFIG_FRAMEBUFFER_CONSOLE_ROTATION
static inline void fbcon_set_rotation(struct fb_info *info) static inline void fbcon_set_rotation(struct fb_info *info)
{ {
@ -421,7 +403,7 @@ static void fb_flashcursor(struct work_struct *work)
release_console_sem(); release_console_sem();
} }
#if defined(CONFIG_ATARI) || defined(CONFIG_MAC) #ifdef CONFIG_ATARI
static int cursor_blink_rate; static int cursor_blink_rate;
static irqreturn_t fb_vbl_handler(int irq, void *dev_id) static irqreturn_t fb_vbl_handler(int irq, void *dev_id)
{ {
@ -949,9 +931,7 @@ static const char *fbcon_startup(void)
struct fb_info *info = NULL; struct fb_info *info = NULL;
struct fbcon_ops *ops; struct fbcon_ops *ops;
int rows, cols; int rows, cols;
int irqres;
irqres = 1;
/* /*
* If num_registered_fb is zero, this is a call for the dummy part. * If num_registered_fb is zero, this is a call for the dummy part.
* The frame buffer devices weren't initialized yet. * The frame buffer devices weren't initialized yet.
@ -1040,57 +1020,12 @@ static const char *fbcon_startup(void)
#ifdef CONFIG_ATARI #ifdef CONFIG_ATARI
if (MACH_IS_ATARI) { if (MACH_IS_ATARI) {
cursor_blink_rate = ATARI_CURSOR_BLINK_RATE; cursor_blink_rate = ATARI_CURSOR_BLINK_RATE;
irqres = (void)request_irq(IRQ_AUTO_4, fb_vbl_handler,
request_irq(IRQ_AUTO_4, fb_vbl_handler,
IRQ_TYPE_PRIO, "framebuffer vbl", IRQ_TYPE_PRIO, "framebuffer vbl",
info); info);
} }
#endif /* CONFIG_ATARI */ #endif /* CONFIG_ATARI */
#ifdef CONFIG_MAC
/*
* On a Macintoy, the VBL interrupt may or may not be active.
* As interrupt based cursor is more reliable and race free, we
* probe for VBL interrupts.
*/
if (MACH_IS_MAC) {
int ct = 0;
/*
* Probe for VBL: set temp. handler ...
*/
irqres = request_irq(IRQ_MAC_VBL, fb_vbl_detect, 0,
"framebuffer vbl", info);
vbl_detected = 0;
/*
* ... and spin for 20 ms ...
*/
while (!vbl_detected && ++ct < 1000)
udelay(20);
if (ct == 1000)
printk
("fbcon_startup: No VBL detected, using timer based cursor.\n");
free_irq(IRQ_MAC_VBL, fb_vbl_detect);
if (vbl_detected) {
/*
* interrupt based cursor ok
*/
cursor_blink_rate = MAC_CURSOR_BLINK_RATE;
irqres =
request_irq(IRQ_MAC_VBL, fb_vbl_handler, 0,
"framebuffer vbl", info);
} else {
/*
* VBL not detected: fall through, use timer based cursor
*/
irqres = 1;
}
}
#endif /* CONFIG_MAC */
fbcon_add_cursor_timer(info); fbcon_add_cursor_timer(info);
fbcon_has_exited = 0; fbcon_has_exited = 0;
return display_desc; return display_desc;
@ -3522,10 +3457,6 @@ static void fbcon_exit(void)
#ifdef CONFIG_ATARI #ifdef CONFIG_ATARI
free_irq(IRQ_AUTO_4, fb_vbl_handler); free_irq(IRQ_AUTO_4, fb_vbl_handler);
#endif #endif
#ifdef CONFIG_MAC
if (MACH_IS_MAC && vbl_detected)
free_irq(IRQ_MAC_VBL, fb_vbl_handler);
#endif
kfree((void *)softback_buf); kfree((void *)softback_buf);
softback_buf = 0UL; softback_buf = 0UL;