X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fvideo%2Fchipsfb.c;fp=drivers%2Fvideo%2Fchipsfb.c;h=bc061d4ec78695f70369f1276bb45b50cdd6f04f;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=73cb426bf2d7db5428ecb348da4b3fc112d2704c;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/drivers/video/chipsfb.c b/drivers/video/chipsfb.c index 73cb426bf..bc061d4ec 100644 --- a/drivers/video/chipsfb.c +++ b/drivers/video/chipsfb.c @@ -14,11 +14,13 @@ * more details. */ +#include #include #include #include #include #include +#include #include #include #include @@ -146,23 +148,9 @@ static int chipsfb_set_par(struct fb_info *info) 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 */ @@ -190,6 +178,8 @@ struct chips_init_reg { unsigned char data; }; +#define N_ELTS(x) (sizeof(x) / sizeof(x[0])) + static struct chips_init_reg chips_init_sr[] = { { 0x00, 0x03 }, { 0x01, 0x01 }, @@ -297,18 +287,18 @@ static void __init chips_hw_init(void) { 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); } @@ -413,14 +403,7 @@ chipsfb_pci_init(struct pci_dev *dp, const struct pci_device_id *ent) #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