diff options
| author | Finn Thain <fthain@telegraphics.com.au> | 2008-11-18 14:45:23 -0500 |
|---|---|---|
| committer | Geert Uytterhoeven <geert@linux-m68k.org> | 2008-12-28 14:00:06 -0500 |
| commit | 79f0c9a0479060e3a8607d93bc8d81ff962acc87 (patch) | |
| tree | 439a99a7cd202e3edfdac60557bc1dca87ffbe47 | |
| parent | 646819e86222cc06b85ed2a8dafbbb361a05ea2d (diff) | |
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>
| -rw-r--r-- | drivers/video/console/fbcon.c | 75 |
1 files changed, 3 insertions, 72 deletions
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index 0b2adefe9e3d..e99bb7c51798 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c | |||
| @@ -81,9 +81,6 @@ | |||
| 81 | #ifdef CONFIG_ATARI | 81 | #ifdef CONFIG_ATARI |
| 82 | #include <asm/atariints.h> | 82 | #include <asm/atariints.h> |
| 83 | #endif | 83 | #endif |
| 84 | #ifdef CONFIG_MAC | ||
| 85 | #include <asm/macints.h> | ||
| 86 | #endif | ||
| 87 | #if defined(__mc68000__) | 84 | #if defined(__mc68000__) |
| 88 | #include <asm/machdep.h> | 85 | #include <asm/machdep.h> |
| 89 | #include <asm/setup.h> | 86 | #include <asm/setup.h> |
| @@ -160,8 +157,6 @@ static int fbcon_set_origin(struct vc_data *); | |||
| 160 | 157 | ||
| 161 | /* # VBL ints between cursor state changes */ | 158 | /* # VBL ints between cursor state changes */ |
| 162 | #define ATARI_CURSOR_BLINK_RATE (42) | 159 | #define ATARI_CURSOR_BLINK_RATE (42) |
| 163 | #define MAC_CURSOR_BLINK_RATE (32) | ||
| 164 | #define DEFAULT_CURSOR_BLINK_RATE (20) | ||
| 165 | 160 | ||
| 166 | static int vbl_cursor_cnt; | 161 | static int vbl_cursor_cnt; |
| 167 | static int fbcon_cursor_noblink; | 162 | static int fbcon_cursor_noblink; |
| @@ -210,19 +205,6 @@ static void fbcon_start(void); | |||
| 210 | static void fbcon_exit(void); | 205 | static void fbcon_exit(void); |
| 211 | static struct device *fbcon_device; | 206 | static struct device *fbcon_device; |
| 212 | 207 | ||
| 213 | #ifdef CONFIG_MAC | ||
| 214 | /* | ||
| 215 | * On the Macintoy, there may or may not be a working VBL int. We need to probe | ||
| 216 | */ | ||
| 217 | static int vbl_detected; | ||
| 218 | |||
| 219 | static irqreturn_t fb_vbl_detect(int irq, void *dummy) | ||
| 220 | { | ||
| 221 | vbl_detected++; | ||
| 222 | return IRQ_HANDLED; | ||
| 223 | } | ||
| 224 | #endif | ||
| 225 | |||
| 226 | #ifdef CONFIG_FRAMEBUFFER_CONSOLE_ROTATION | 208 | #ifdef CONFIG_FRAMEBUFFER_CONSOLE_ROTATION |
| 227 | static inline void fbcon_set_rotation(struct fb_info *info) | 209 | static inline void fbcon_set_rotation(struct fb_info *info) |
| 228 | { | 210 | { |
| @@ -421,7 +403,7 @@ static void fb_flashcursor(struct work_struct *work) | |||
| 421 | release_console_sem(); | 403 | release_console_sem(); |
| 422 | } | 404 | } |
| 423 | 405 | ||
| 424 | #if defined(CONFIG_ATARI) || defined(CONFIG_MAC) | 406 | #ifdef CONFIG_ATARI |
| 425 | static int cursor_blink_rate; | 407 | static int cursor_blink_rate; |
| 426 | static irqreturn_t fb_vbl_handler(int irq, void *dev_id) | 408 | static irqreturn_t fb_vbl_handler(int irq, void *dev_id) |
| 427 | { | 409 | { |
| @@ -949,9 +931,7 @@ static const char *fbcon_startup(void) | |||
| 949 | struct fb_info *info = NULL; | 931 | struct fb_info *info = NULL; |
| 950 | struct fbcon_ops *ops; | 932 | struct fbcon_ops *ops; |
| 951 | int rows, cols; | 933 | int rows, cols; |
| 952 | int irqres; | ||
| 953 | 934 | ||
| 954 | irqres = 1; | ||
| 955 | /* | 935 | /* |
| 956 | * If num_registered_fb is zero, this is a call for the dummy part. | 936 | * If num_registered_fb is zero, this is a call for the dummy part. |
| 957 | * The frame buffer devices weren't initialized yet. | 937 | * The frame buffer devices weren't initialized yet. |
| @@ -1040,56 +1020,11 @@ static const char *fbcon_startup(void) | |||
| 1040 | #ifdef CONFIG_ATARI | 1020 | #ifdef CONFIG_ATARI |
| 1041 | if (MACH_IS_ATARI) { | 1021 | if (MACH_IS_ATARI) { |
| 1042 | cursor_blink_rate = ATARI_CURSOR_BLINK_RATE; | 1022 | cursor_blink_rate = ATARI_CURSOR_BLINK_RATE; |
| 1043 | irqres = | 1023 | (void)request_irq(IRQ_AUTO_4, fb_vbl_handler, |
| 1044 | request_irq(IRQ_AUTO_4, fb_vbl_handler, | ||
| 1045 | IRQ_TYPE_PRIO, "framebuffer vbl", | 1024 | IRQ_TYPE_PRIO, "framebuffer vbl", |
| 1046 | info); | 1025 | info); |
| 1047 | } | 1026 | } |
| 1048 | #endif /* CONFIG_ATARI */ | 1027 | #endif /* CONFIG_ATARI */ |
| 1049 | |||
| 1050 | #ifdef CONFIG_MAC | ||
| 1051 | /* | ||
| 1052 | * On a Macintoy, the VBL interrupt may or may not be active. | ||
| 1053 | * As interrupt based cursor is more reliable and race free, we | ||
| 1054 | * probe for VBL interrupts. | ||
| 1055 | */ | ||
| 1056 | if (MACH_IS_MAC) { | ||
| 1057 | int ct = 0; | ||
| 1058 | /* | ||
| 1059 | * Probe for VBL: set temp. handler ... | ||
| 1060 | */ | ||
| 1061 | irqres = request_irq(IRQ_MAC_VBL, fb_vbl_detect, 0, | ||
| 1062 | "framebuffer vbl", info); | ||
| 1063 | vbl_detected = 0; | ||
| 1064 | |||
| 1065 | /* | ||
| 1066 | * ... and spin for 20 ms ... | ||
| 1067 | */ | ||
| 1068 | while (!vbl_detected && ++ct < 1000) | ||
| 1069 | udelay(20); | ||
| 1070 | |||
| 1071 | if (ct == 1000) | ||
| 1072 | printk | ||
| 1073 | ("fbcon_startup: No VBL detected, using timer based cursor.\n"); | ||
| 1074 | |||
| 1075 | free_irq(IRQ_MAC_VBL, fb_vbl_detect); | ||
| 1076 | |||
| 1077 | if (vbl_detected) { | ||
| 1078 | /* | ||
| 1079 | * interrupt based cursor ok | ||
| 1080 | */ | ||
| 1081 | cursor_blink_rate = MAC_CURSOR_BLINK_RATE; | ||
| 1082 | irqres = | ||
| 1083 | request_irq(IRQ_MAC_VBL, fb_vbl_handler, 0, | ||
| 1084 | "framebuffer vbl", info); | ||
| 1085 | } else { | ||
| 1086 | /* | ||
| 1087 | * VBL not detected: fall through, use timer based cursor | ||
| 1088 | */ | ||
| 1089 | irqres = 1; | ||
| 1090 | } | ||
| 1091 | } | ||
| 1092 | #endif /* CONFIG_MAC */ | ||
| 1093 | 1028 | ||
| 1094 | fbcon_add_cursor_timer(info); | 1029 | fbcon_add_cursor_timer(info); |
| 1095 | fbcon_has_exited = 0; | 1030 | fbcon_has_exited = 0; |
| @@ -3522,10 +3457,6 @@ static void fbcon_exit(void) | |||
| 3522 | #ifdef CONFIG_ATARI | 3457 | #ifdef CONFIG_ATARI |
| 3523 | free_irq(IRQ_AUTO_4, fb_vbl_handler); | 3458 | free_irq(IRQ_AUTO_4, fb_vbl_handler); |
| 3524 | #endif | 3459 | #endif |
| 3525 | #ifdef CONFIG_MAC | ||
| 3526 | if (MACH_IS_MAC && vbl_detected) | ||
| 3527 | free_irq(IRQ_MAC_VBL, fb_vbl_handler); | ||
| 3528 | #endif | ||
| 3529 | 3460 | ||
| 3530 | kfree((void *)softback_buf); | 3461 | kfree((void *)softback_buf); |
| 3531 | softback_buf = 0UL; | 3462 | softback_buf = 0UL; |
