diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-01-28 16:23:56 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-02-11 05:16:04 -0500 |
commit | 052a7f5c496b7d2966edea0f576ec39f41703992 (patch) | |
tree | cf861473d9a09e82c667a3a76ea404e40453946a | |
parent | e5dedf8d561fb309ba37003546025300678da549 (diff) |
VIDEO: cyberpro: make 'reg_b0_lock' always present
Rather than conditionally compiling out reg_b0_lock, always keep it
available, and always take it when changing the PLL rates.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | drivers/video/cyber2000fb.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/video/cyber2000fb.c b/drivers/video/cyber2000fb.c index 87d2aafa92fe..eeccdb8f4848 100644 --- a/drivers/video/cyber2000fb.c +++ b/drivers/video/cyber2000fb.c | |||
@@ -91,11 +91,13 @@ struct cfb_info { | |||
91 | u_char ramdac_powerdown; | 91 | u_char ramdac_powerdown; |
92 | 92 | ||
93 | u32 pseudo_palette[16]; | 93 | u32 pseudo_palette[16]; |
94 | |||
95 | spinlock_t reg_b0_lock; | ||
96 | |||
94 | #ifdef CONFIG_FB_CYBER2000_DDC | 97 | #ifdef CONFIG_FB_CYBER2000_DDC |
95 | bool ddc_registered; | 98 | bool ddc_registered; |
96 | struct i2c_adapter ddc_adapter; | 99 | struct i2c_adapter ddc_adapter; |
97 | struct i2c_algo_bit_data ddc_algo; | 100 | struct i2c_algo_bit_data ddc_algo; |
98 | spinlock_t reg_b0_lock; | ||
99 | #endif | 101 | #endif |
100 | }; | 102 | }; |
101 | 103 | ||
@@ -503,9 +505,7 @@ static void cyber2000fb_set_timing(struct cfb_info *cfb, struct par_info *hw) | |||
503 | cyber2000_attrw(0x14, 0x00, cfb); | 505 | cyber2000_attrw(0x14, 0x00, cfb); |
504 | 506 | ||
505 | /* PLL registers */ | 507 | /* PLL registers */ |
506 | #ifdef CONFIG_FB_CYBER2000_DDC | ||
507 | spin_lock(&cfb->reg_b0_lock); | 508 | spin_lock(&cfb->reg_b0_lock); |
508 | #endif | ||
509 | cyber2000_grphw(EXT_DCLK_MULT, hw->clock_mult, cfb); | 509 | cyber2000_grphw(EXT_DCLK_MULT, hw->clock_mult, cfb); |
510 | cyber2000_grphw(EXT_DCLK_DIV, hw->clock_div, cfb); | 510 | cyber2000_grphw(EXT_DCLK_DIV, hw->clock_div, cfb); |
511 | cyber2000_grphw(EXT_MCLK_MULT, cfb->mclk_mult, cfb); | 511 | cyber2000_grphw(EXT_MCLK_MULT, cfb->mclk_mult, cfb); |
@@ -513,9 +513,7 @@ static void cyber2000fb_set_timing(struct cfb_info *cfb, struct par_info *hw) | |||
513 | cyber2000_grphw(0x90, 0x01, cfb); | 513 | cyber2000_grphw(0x90, 0x01, cfb); |
514 | cyber2000_grphw(0xb9, 0x80, cfb); | 514 | cyber2000_grphw(0xb9, 0x80, cfb); |
515 | cyber2000_grphw(0xb9, 0x00, cfb); | 515 | cyber2000_grphw(0xb9, 0x00, cfb); |
516 | #ifdef CONFIG_FB_CYBER2000_DDC | ||
517 | spin_unlock(&cfb->reg_b0_lock); | 516 | spin_unlock(&cfb->reg_b0_lock); |
518 | #endif | ||
519 | 517 | ||
520 | cfb->ramdac_ctrl = hw->ramdac; | 518 | cfb->ramdac_ctrl = hw->ramdac; |
521 | cyber2000fb_write_ramdac_ctrl(cfb); | 519 | cyber2000fb_write_ramdac_ctrl(cfb); |
@@ -1233,8 +1231,6 @@ static int cyber2000fb_ddc_getsda(void *data) | |||
1233 | 1231 | ||
1234 | static int __devinit cyber2000fb_setup_ddc_bus(struct cfb_info *cfb) | 1232 | static int __devinit cyber2000fb_setup_ddc_bus(struct cfb_info *cfb) |
1235 | { | 1233 | { |
1236 | spin_lock_init(&cfb->reg_b0_lock); | ||
1237 | |||
1238 | strlcpy(cfb->ddc_adapter.name, cfb->fb.fix.id, | 1234 | strlcpy(cfb->ddc_adapter.name, cfb->fb.fix.id, |
1239 | sizeof(cfb->ddc_adapter.name)); | 1235 | sizeof(cfb->ddc_adapter.name)); |
1240 | cfb->ddc_adapter.owner = THIS_MODULE; | 1236 | cfb->ddc_adapter.owner = THIS_MODULE; |
@@ -1389,6 +1385,8 @@ static struct cfb_info __devinit *cyberpro_alloc_fb_info(unsigned int id, | |||
1389 | cfb->fb.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN; | 1385 | cfb->fb.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN; |
1390 | cfb->fb.pseudo_palette = cfb->pseudo_palette; | 1386 | cfb->fb.pseudo_palette = cfb->pseudo_palette; |
1391 | 1387 | ||
1388 | spin_lock_init(&cfb->reg_b0_lock); | ||
1389 | |||
1392 | fb_alloc_cmap(&cfb->fb.cmap, NR_PALETTE, 0); | 1390 | fb_alloc_cmap(&cfb->fb.cmap, NR_PALETTE, 0); |
1393 | 1391 | ||
1394 | return cfb; | 1392 | return cfb; |