#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/fb.h>
+#include <linux/pm.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/console.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);
-#endif /* CONFIG_PMAC_BACKLIGHT */
-
return 1; /* get fb_blank to set the colormap to all black */
}
write_fr(chips_init_fr[i].addr, chips_init_fr[i].data);
}
-static struct fb_fix_screeninfo chipsfb_fix __initdata = {
+static struct fb_fix_screeninfo chipsfb_fix __devinitdata = {
.id = "C&T 65550",
.type = FB_TYPE_PACKED_PIXELS,
.visual = FB_VISUAL_PSEUDOCOLOR,
.smem_len = 0x100000, /* 1MB */
};
-static struct fb_var_screeninfo chipsfb_var __initdata = {
+static struct fb_var_screeninfo chipsfb_var __devinitdata = {
.xres = 800,
.yres = 600,
.xres_virtual = 800,
.vsync_len = 8,
};
-static void __init init_chips(struct fb_info *p, unsigned long addr)
+static void __devinit init_chips(struct fb_info *p, unsigned long addr)
{
memset(p->screen_base, 0, 0x100000);
/* 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);
+ pmac_backlight->props.power = FB_BLANK_UNBLANK;
+ backlight_update_status(pmac_backlight);
}
mutex_unlock(&pmac_backlight_mutex);
#endif /* CONFIG_PMAC_BACKLIGHT */
if (state.event == pdev->dev.power.power_state.event)
return 0;
- if (state.event != PM_SUSPEND_MEM)
+ if (!(state.event & PM_EVENT_SLEEP))
goto done;
acquire_console_sem();