diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/sa1100fb.c | 32 | ||||
-rw-r--r-- | drivers/video/sa1100fb.h | 2 |
2 files changed, 11 insertions, 23 deletions
diff --git a/drivers/video/sa1100fb.c b/drivers/video/sa1100fb.c index d645c6d5fd9f..c9f1e7cd95f8 100644 --- a/drivers/video/sa1100fb.c +++ b/drivers/video/sa1100fb.c | |||
@@ -194,9 +194,6 @@ | |||
194 | 194 | ||
195 | #include "sa1100fb.h" | 195 | #include "sa1100fb.h" |
196 | 196 | ||
197 | extern void (*sa1100fb_backlight_power)(int on); | ||
198 | extern void (*sa1100fb_lcd_power)(int on); | ||
199 | |||
200 | static const struct sa1100fb_rgb rgb_4 = { | 197 | static const struct sa1100fb_rgb rgb_4 = { |
201 | .red = { .offset = 0, .length = 4, }, | 198 | .red = { .offset = 0, .length = 4, }, |
202 | .green = { .offset = 0, .length = 4, }, | 199 | .green = { .offset = 0, .length = 4, }, |
@@ -426,22 +423,10 @@ sa1100fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) | |||
426 | return 0; | 423 | return 0; |
427 | } | 424 | } |
428 | 425 | ||
429 | static inline void sa1100fb_set_truecolor(u_int is_true_color) | 426 | static void sa1100fb_set_visual(struct sa1100fb_info *fbi, u32 visual) |
430 | { | 427 | { |
431 | if (machine_is_assabet()) { | 428 | if (fbi->inf->set_visual) |
432 | #if 1 // phase 4 or newer Assabet's | 429 | fbi->inf->set_visual(visual); |
433 | if (is_true_color) | ||
434 | ASSABET_BCR_set(ASSABET_BCR_LCD_12RGB); | ||
435 | else | ||
436 | ASSABET_BCR_clear(ASSABET_BCR_LCD_12RGB); | ||
437 | #else | ||
438 | // older Assabet's | ||
439 | if (is_true_color) | ||
440 | ASSABET_BCR_clear(ASSABET_BCR_LCD_12RGB); | ||
441 | else | ||
442 | ASSABET_BCR_set(ASSABET_BCR_LCD_12RGB); | ||
443 | #endif | ||
444 | } | ||
445 | } | 430 | } |
446 | 431 | ||
447 | /* | 432 | /* |
@@ -483,7 +468,7 @@ static int sa1100fb_set_par(struct fb_info *info) | |||
483 | /* | 468 | /* |
484 | * Set (any) board control register to handle new color depth | 469 | * Set (any) board control register to handle new color depth |
485 | */ | 470 | */ |
486 | sa1100fb_set_truecolor(fbi->fb.fix.visual == FB_VISUAL_TRUECOLOR); | 471 | sa1100fb_set_visual(fbi, fbi->fb.fix.visual); |
487 | sa1100fb_activate_var(var, fbi); | 472 | sa1100fb_activate_var(var, fbi); |
488 | 473 | ||
489 | return 0; | 474 | return 0; |
@@ -740,16 +725,16 @@ static inline void __sa1100fb_backlight_power(struct sa1100fb_info *fbi, int on) | |||
740 | { | 725 | { |
741 | dev_dbg(fbi->dev, "backlight o%s\n", on ? "n" : "ff"); | 726 | dev_dbg(fbi->dev, "backlight o%s\n", on ? "n" : "ff"); |
742 | 727 | ||
743 | if (sa1100fb_backlight_power) | 728 | if (fbi->inf->backlight_power) |
744 | sa1100fb_backlight_power(on); | 729 | fbi->inf->backlight_power(on); |
745 | } | 730 | } |
746 | 731 | ||
747 | static inline void __sa1100fb_lcd_power(struct sa1100fb_info *fbi, int on) | 732 | static inline void __sa1100fb_lcd_power(struct sa1100fb_info *fbi, int on) |
748 | { | 733 | { |
749 | dev_dbg(fbi->dev, "LCD power o%s\n", on ? "n" : "ff"); | 734 | dev_dbg(fbi->dev, "LCD power o%s\n", on ? "n" : "ff"); |
750 | 735 | ||
751 | if (sa1100fb_lcd_power) | 736 | if (fbi->inf->lcd_power) |
752 | sa1100fb_lcd_power(on); | 737 | fbi->inf->lcd_power(on); |
753 | } | 738 | } |
754 | 739 | ||
755 | static void sa1100fb_setup_gpio(struct sa1100fb_info *fbi) | 740 | static void sa1100fb_setup_gpio(struct sa1100fb_info *fbi) |
@@ -1197,6 +1182,7 @@ static struct sa1100fb_info * __devinit sa1100fb_init_fbinfo(struct device *dev) | |||
1197 | fbi->task_state = (u_char)-1; | 1182 | fbi->task_state = (u_char)-1; |
1198 | fbi->fb.fix.smem_len = fbi->max_xres * fbi->max_yres * | 1183 | fbi->fb.fix.smem_len = fbi->max_xres * fbi->max_yres * |
1199 | fbi->max_bpp / 8; | 1184 | fbi->max_bpp / 8; |
1185 | fbi->inf = inf; | ||
1200 | 1186 | ||
1201 | /* Copy the RGB bitfield overrides */ | 1187 | /* Copy the RGB bitfield overrides */ |
1202 | for (i = 0; i < NR_RGB; i++) | 1188 | for (i = 0; i < NR_RGB; i++) |
diff --git a/drivers/video/sa1100fb.h b/drivers/video/sa1100fb.h index 9ff9ba9a281a..3a634abbec14 100644 --- a/drivers/video/sa1100fb.h +++ b/drivers/video/sa1100fb.h | |||
@@ -65,6 +65,8 @@ struct sa1100fb_info { | |||
65 | struct notifier_block freq_transition; | 65 | struct notifier_block freq_transition; |
66 | struct notifier_block freq_policy; | 66 | struct notifier_block freq_policy; |
67 | #endif | 67 | #endif |
68 | |||
69 | const struct sa1100fb_mach_info *inf; | ||
68 | }; | 70 | }; |
69 | 71 | ||
70 | #define TO_INF(ptr,member) container_of(ptr,struct sa1100fb_info,member) | 72 | #define TO_INF(ptr,member) container_of(ptr,struct sa1100fb_info,member) |