* more details.
*/
+#include <linux/config.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/mm.h>
+#include <linux/tty.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/delay.h>
static int chipsfb_blank(int blank, struct fb_info *info)
{
#ifdef CONFIG_PMAC_BACKLIGHT
- mutex_lock(&pmac_backlight_mutex);
-
- if (pmac_backlight) {
- /* used to disable backlight only for blank > 1, but it seems
- * useful at blank = 1 too (saves battery, extends backlight
- * life)
- */
- down(&pmac_backlight->sem);
- if (blank)
- pmac_backlight->props->power = FB_BLANK_POWERDOWN;
- else
- pmac_backlight->props->power = FB_BLANK_UNBLANK;
- pmac_backlight->props->update_status(pmac_backlight);
- up(&pmac_backlight->sem);
- }
-
- mutex_unlock(&pmac_backlight_mutex);
+ // used to disable backlight only for blank > 1, but it seems
+ // useful at blank = 1 too (saves battery, extends backlight life)
+ set_backlight_enable(!blank);
#endif /* CONFIG_PMAC_BACKLIGHT */
return 1; /* get fb_blank to set the colormap to all black */
unsigned char data;
};
+#define N_ELTS(x) (sizeof(x) / sizeof(x[0]))
+
static struct chips_init_reg chips_init_sr[] = {
{ 0x00, 0x03 },
{ 0x01, 0x01 },
{
int i;
- for (i = 0; i < ARRAY_SIZE(chips_init_xr); ++i)
+ for (i = 0; i < N_ELTS(chips_init_xr); ++i)
write_xr(chips_init_xr[i].addr, chips_init_xr[i].data);
outb(0x29, 0x3c2); /* set misc output reg */
- for (i = 0; i < ARRAY_SIZE(chips_init_sr); ++i)
+ for (i = 0; i < N_ELTS(chips_init_sr); ++i)
write_sr(chips_init_sr[i].addr, chips_init_sr[i].data);
- for (i = 0; i < ARRAY_SIZE(chips_init_gr); ++i)
+ for (i = 0; i < N_ELTS(chips_init_gr); ++i)
write_gr(chips_init_gr[i].addr, chips_init_gr[i].data);
- for (i = 0; i < ARRAY_SIZE(chips_init_ar); ++i)
+ for (i = 0; i < N_ELTS(chips_init_ar); ++i)
write_ar(chips_init_ar[i].addr, chips_init_ar[i].data);
- for (i = 0; i < ARRAY_SIZE(chips_init_cr); ++i)
+ for (i = 0; i < N_ELTS(chips_init_cr); ++i)
write_cr(chips_init_cr[i].addr, chips_init_cr[i].data);
- for (i = 0; i < ARRAY_SIZE(chips_init_fr); ++i)
+ for (i = 0; i < N_ELTS(chips_init_fr); ++i)
write_fr(chips_init_fr[i].addr, chips_init_fr[i].data);
}
#ifdef CONFIG_PMAC_BACKLIGHT
/* turn on the backlight */
- mutex_lock(&pmac_backlight_mutex);
- if (pmac_backlight) {
- down(&pmac_backlight->sem);
- pmac_backlight->props->power = FB_BLANK_UNBLANK;
- pmac_backlight->props->update_status(pmac_backlight);
- up(&pmac_backlight->sem);
- }
- mutex_unlock(&pmac_backlight_mutex);
+ set_backlight_enable(1);
#endif /* CONFIG_PMAC_BACKLIGHT */
#ifdef CONFIG_PPC