mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
Merge branches 'aaci', 'mmci-dma', 'pl' and 'pl011' into drivers
This commit is contained in:
commit
9c9585e0e9
1461 changed files with 19547 additions and 10879 deletions
|
|
@ -461,7 +461,7 @@ static int clcdfb_register(struct clcd_fb *fb)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int clcdfb_probe(struct amba_device *dev, struct amba_id *id)
|
||||
static int clcdfb_probe(struct amba_device *dev, const struct amba_id *id)
|
||||
{
|
||||
struct clcd_board *board = dev->dev.platform_data;
|
||||
struct clcd_fb *fb;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
#include <linux/svga.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/console.h> /* Why should fb driver call console functions? because acquire_console_sem() */
|
||||
#include <linux/console.h> /* Why should fb driver call console functions? because console_lock() */
|
||||
#include <video/vga.h>
|
||||
|
||||
#ifdef CONFIG_MTRR
|
||||
|
|
@ -1091,12 +1091,12 @@ static int ark_pci_suspend (struct pci_dev* dev, pm_message_t state)
|
|||
|
||||
dev_info(info->device, "suspend\n");
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
mutex_lock(&(par->open_lock));
|
||||
|
||||
if ((state.event == PM_EVENT_FREEZE) || (par->ref_count == 0)) {
|
||||
mutex_unlock(&(par->open_lock));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1107,7 +1107,7 @@ static int ark_pci_suspend (struct pci_dev* dev, pm_message_t state)
|
|||
pci_set_power_state(dev, pci_choose_state(dev, state));
|
||||
|
||||
mutex_unlock(&(par->open_lock));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1122,7 +1122,7 @@ static int ark_pci_resume (struct pci_dev* dev)
|
|||
|
||||
dev_info(info->device, "resume\n");
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
mutex_lock(&(par->open_lock));
|
||||
|
||||
if (par->ref_count == 0)
|
||||
|
|
@ -1141,7 +1141,7 @@ static int ark_pci_resume (struct pci_dev* dev)
|
|||
|
||||
fail:
|
||||
mutex_unlock(&(par->open_lock));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -1860,11 +1860,11 @@ static void aty128_early_resume(void *data)
|
|||
{
|
||||
struct aty128fb_par *par = data;
|
||||
|
||||
if (try_acquire_console_sem())
|
||||
if (!console_trylock())
|
||||
return;
|
||||
pci_restore_state(par->pdev);
|
||||
aty128_do_resume(par->pdev);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
}
|
||||
#endif /* CONFIG_PPC_PMAC */
|
||||
|
||||
|
|
@ -2438,7 +2438,7 @@ static int aty128_pci_suspend(struct pci_dev *pdev, pm_message_t state)
|
|||
|
||||
printk(KERN_DEBUG "aty128fb: suspending...\n");
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
|
||||
fb_set_suspend(info, 1);
|
||||
|
||||
|
|
@ -2470,7 +2470,7 @@ static int aty128_pci_suspend(struct pci_dev *pdev, pm_message_t state)
|
|||
if (state.event != PM_EVENT_ON)
|
||||
aty128_set_suspend(par, 1);
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
pdev->dev.power.power_state = state;
|
||||
|
||||
|
|
@ -2527,9 +2527,9 @@ static int aty128_pci_resume(struct pci_dev *pdev)
|
|||
{
|
||||
int rc;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
rc = aty128_do_resume(pdev);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2069,7 +2069,7 @@ static int atyfb_pci_suspend(struct pci_dev *pdev, pm_message_t state)
|
|||
if (state.event == pdev->dev.power.power_state.event)
|
||||
return 0;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
|
||||
fb_set_suspend(info, 1);
|
||||
|
||||
|
|
@ -2097,14 +2097,14 @@ static int atyfb_pci_suspend(struct pci_dev *pdev, pm_message_t state)
|
|||
par->lock_blank = 0;
|
||||
atyfb_blank(FB_BLANK_UNBLANK, info);
|
||||
fb_set_suspend(info, 0);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return -EIO;
|
||||
}
|
||||
#else
|
||||
pci_set_power_state(pdev, pci_choose_state(pdev, state));
|
||||
#endif
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
pdev->dev.power.power_state = state;
|
||||
|
||||
|
|
@ -2133,7 +2133,7 @@ static int atyfb_pci_resume(struct pci_dev *pdev)
|
|||
if (pdev->dev.power.power_state.event == PM_EVENT_ON)
|
||||
return 0;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
|
||||
/*
|
||||
* PCI state will have been restored by the core, so
|
||||
|
|
@ -2161,7 +2161,7 @@ static int atyfb_pci_resume(struct pci_dev *pdev)
|
|||
par->lock_blank = 0;
|
||||
atyfb_blank(FB_BLANK_UNBLANK, info);
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
pdev->dev.power.power_state = PMSG_ON;
|
||||
|
||||
|
|
|
|||
|
|
@ -2626,7 +2626,7 @@ int radeonfb_pci_suspend(struct pci_dev *pdev, pm_message_t mesg)
|
|||
goto done;
|
||||
}
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
|
||||
fb_set_suspend(info, 1);
|
||||
|
||||
|
|
@ -2690,7 +2690,7 @@ int radeonfb_pci_suspend(struct pci_dev *pdev, pm_message_t mesg)
|
|||
if (rinfo->pm_mode & radeon_pm_d2)
|
||||
radeon_set_suspend(rinfo, 1);
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
done:
|
||||
pdev->dev.power.power_state = mesg;
|
||||
|
|
@ -2715,10 +2715,10 @@ int radeonfb_pci_resume(struct pci_dev *pdev)
|
|||
return 0;
|
||||
|
||||
if (rinfo->no_schedule) {
|
||||
if (try_acquire_console_sem())
|
||||
if (!console_trylock())
|
||||
return 0;
|
||||
} else
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
|
||||
printk(KERN_DEBUG "radeonfb (%s): resuming from state: %d...\n",
|
||||
pci_name(pdev), pdev->dev.power.power_state.event);
|
||||
|
|
@ -2783,7 +2783,7 @@ int radeonfb_pci_resume(struct pci_dev *pdev)
|
|||
pdev->dev.power.power_state = PMSG_ON;
|
||||
|
||||
bail:
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -239,11 +239,15 @@ static int __devinit ltv350qv_probe(struct spi_device *spi)
|
|||
lcd->spi = spi;
|
||||
lcd->power = FB_BLANK_POWERDOWN;
|
||||
lcd->buffer = kzalloc(8, GFP_KERNEL);
|
||||
if (!lcd->buffer) {
|
||||
ret = -ENOMEM;
|
||||
goto out_free_lcd;
|
||||
}
|
||||
|
||||
ld = lcd_device_register("ltv350qv", &spi->dev, lcd, <v_ops);
|
||||
if (IS_ERR(ld)) {
|
||||
ret = PTR_ERR(ld);
|
||||
goto out_free_lcd;
|
||||
goto out_free_buffer;
|
||||
}
|
||||
lcd->ld = ld;
|
||||
|
||||
|
|
@ -257,6 +261,8 @@ static int __devinit ltv350qv_probe(struct spi_device *spi)
|
|||
|
||||
out_unregister:
|
||||
lcd_device_unregister(ld);
|
||||
out_free_buffer:
|
||||
kfree(lcd->buffer);
|
||||
out_free_lcd:
|
||||
kfree(lcd);
|
||||
return ret;
|
||||
|
|
@ -268,6 +274,7 @@ static int __devexit ltv350qv_remove(struct spi_device *spi)
|
|||
|
||||
ltv350qv_power(lcd, FB_BLANK_POWERDOWN);
|
||||
lcd_device_unregister(lcd->ld);
|
||||
kfree(lcd->buffer);
|
||||
kfree(lcd);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -696,6 +696,7 @@ static int __devinit bfin_lq035_probe(struct platform_device *pdev)
|
|||
{
|
||||
struct backlight_properties props;
|
||||
dma_addr_t dma_handle;
|
||||
int ret;
|
||||
|
||||
if (request_dma(CH_PPI, KBUILD_MODNAME)) {
|
||||
pr_err("couldn't request PPI DMA\n");
|
||||
|
|
@ -704,17 +705,16 @@ static int __devinit bfin_lq035_probe(struct platform_device *pdev)
|
|||
|
||||
if (request_ports()) {
|
||||
pr_err("couldn't request gpio port\n");
|
||||
free_dma(CH_PPI);
|
||||
return -EFAULT;
|
||||
ret = -EFAULT;
|
||||
goto out_ports;
|
||||
}
|
||||
|
||||
fb_buffer = dma_alloc_coherent(NULL, TOTAL_VIDEO_MEM_SIZE,
|
||||
&dma_handle, GFP_KERNEL);
|
||||
if (fb_buffer == NULL) {
|
||||
pr_err("couldn't allocate dma buffer\n");
|
||||
free_dma(CH_PPI);
|
||||
free_ports();
|
||||
return -ENOMEM;
|
||||
ret = -ENOMEM;
|
||||
goto out_dma_coherent;
|
||||
}
|
||||
|
||||
if (L1_DATA_A_LENGTH)
|
||||
|
|
@ -725,10 +725,8 @@ static int __devinit bfin_lq035_probe(struct platform_device *pdev)
|
|||
|
||||
if (dma_desc_table == NULL) {
|
||||
pr_err("couldn't allocate dma descriptor\n");
|
||||
free_dma(CH_PPI);
|
||||
free_ports();
|
||||
dma_free_coherent(NULL, TOTAL_VIDEO_MEM_SIZE, fb_buffer, 0);
|
||||
return -ENOMEM;
|
||||
ret = -ENOMEM;
|
||||
goto out_table;
|
||||
}
|
||||
|
||||
bfin_lq035_fb.screen_base = (void *)fb_buffer;
|
||||
|
|
@ -771,31 +769,21 @@ static int __devinit bfin_lq035_probe(struct platform_device *pdev)
|
|||
bfin_lq035_fb.pseudo_palette = kzalloc(sizeof(u32) * 16, GFP_KERNEL);
|
||||
if (bfin_lq035_fb.pseudo_palette == NULL) {
|
||||
pr_err("failed to allocate pseudo_palette\n");
|
||||
free_dma(CH_PPI);
|
||||
free_ports();
|
||||
dma_free_coherent(NULL, TOTAL_VIDEO_MEM_SIZE, fb_buffer, 0);
|
||||
return -ENOMEM;
|
||||
ret = -ENOMEM;
|
||||
goto out_palette;
|
||||
}
|
||||
|
||||
if (fb_alloc_cmap(&bfin_lq035_fb.cmap, NBR_PALETTE, 0) < 0) {
|
||||
pr_err("failed to allocate colormap (%d entries)\n",
|
||||
NBR_PALETTE);
|
||||
free_dma(CH_PPI);
|
||||
free_ports();
|
||||
dma_free_coherent(NULL, TOTAL_VIDEO_MEM_SIZE, fb_buffer, 0);
|
||||
kfree(bfin_lq035_fb.pseudo_palette);
|
||||
return -EFAULT;
|
||||
ret = -EFAULT;
|
||||
goto out_cmap;
|
||||
}
|
||||
|
||||
if (register_framebuffer(&bfin_lq035_fb) < 0) {
|
||||
pr_err("unable to register framebuffer\n");
|
||||
free_dma(CH_PPI);
|
||||
free_ports();
|
||||
dma_free_coherent(NULL, TOTAL_VIDEO_MEM_SIZE, fb_buffer, 0);
|
||||
fb_buffer = NULL;
|
||||
kfree(bfin_lq035_fb.pseudo_palette);
|
||||
fb_dealloc_cmap(&bfin_lq035_fb.cmap);
|
||||
return -EINVAL;
|
||||
ret = -EINVAL;
|
||||
goto out_reg;
|
||||
}
|
||||
|
||||
i2c_add_driver(&ad5280_driver);
|
||||
|
|
@ -807,11 +795,31 @@ static int __devinit bfin_lq035_probe(struct platform_device *pdev)
|
|||
|
||||
lcd_dev = lcd_device_register(KBUILD_MODNAME, &pdev->dev, NULL,
|
||||
&bfin_lcd_ops);
|
||||
if (IS_ERR(lcd_dev)) {
|
||||
pr_err("unable to register lcd\n");
|
||||
ret = PTR_ERR(lcd_dev);
|
||||
goto out_lcd;
|
||||
}
|
||||
lcd_dev->props.max_contrast = 255,
|
||||
|
||||
pr_info("initialized");
|
||||
|
||||
return 0;
|
||||
out_lcd:
|
||||
unregister_framebuffer(&bfin_lq035_fb);
|
||||
out_reg:
|
||||
fb_dealloc_cmap(&bfin_lq035_fb.cmap);
|
||||
out_cmap:
|
||||
kfree(bfin_lq035_fb.pseudo_palette);
|
||||
out_palette:
|
||||
out_table:
|
||||
dma_free_coherent(NULL, TOTAL_VIDEO_MEM_SIZE, fb_buffer, 0);
|
||||
fb_buffer = NULL;
|
||||
out_dma_coherent:
|
||||
free_ports();
|
||||
out_ports:
|
||||
free_dma(CH_PPI);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int __devexit bfin_lq035_remove(struct platform_device *pdev)
|
||||
|
|
|
|||
|
|
@ -460,10 +460,10 @@ static int chipsfb_pci_suspend(struct pci_dev *pdev, pm_message_t state)
|
|||
if (!(state.event & PM_EVENT_SLEEP))
|
||||
goto done;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
chipsfb_blank(1, p);
|
||||
fb_set_suspend(p, 1);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
done:
|
||||
pdev->dev.power.power_state = state;
|
||||
return 0;
|
||||
|
|
@ -473,10 +473,10 @@ static int chipsfb_pci_resume(struct pci_dev *pdev)
|
|||
{
|
||||
struct fb_info *p = pci_get_drvdata(pdev);
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_set_suspend(p, 0);
|
||||
chipsfb_blank(0, p);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
pdev->dev.power.power_state = PMSG_ON;
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -375,14 +375,14 @@ static void fb_flashcursor(struct work_struct *work)
|
|||
int c;
|
||||
int mode;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
if (ops && ops->currcon != -1)
|
||||
vc = vc_cons[ops->currcon].d;
|
||||
|
||||
if (!vc || !CON_IS_VISIBLE(vc) ||
|
||||
registered_fb[con2fb_map[vc->vc_num]] != info ||
|
||||
vc->vc_deccm != 1) {
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -392,7 +392,7 @@ static void fb_flashcursor(struct work_struct *work)
|
|||
CM_ERASE : CM_DRAW;
|
||||
ops->cursor(vc, info, mode, softback_lines, get_color(vc, info, c, 1),
|
||||
get_color(vc, info, c, 0));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
}
|
||||
|
||||
static void cursor_timer_handler(unsigned long dev_addr)
|
||||
|
|
@ -836,7 +836,7 @@ static int set_con2fb_map(int unit, int newidx, int user)
|
|||
|
||||
found = search_fb_in_map(newidx);
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
con2fb_map[unit] = newidx;
|
||||
if (!err && !found)
|
||||
err = con2fb_acquire_newinfo(vc, info, unit, oldidx);
|
||||
|
|
@ -863,7 +863,7 @@ static int set_con2fb_map(int unit, int newidx, int user)
|
|||
if (!search_fb_in_map(info_idx))
|
||||
info_idx = newidx;
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
@ -3321,7 +3321,7 @@ static ssize_t store_rotate(struct device *device,
|
|||
if (fbcon_has_exited)
|
||||
return count;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
idx = con2fb_map[fg_console];
|
||||
|
||||
if (idx == -1 || registered_fb[idx] == NULL)
|
||||
|
|
@ -3331,7 +3331,7 @@ static ssize_t store_rotate(struct device *device,
|
|||
rotate = simple_strtoul(buf, last, 0);
|
||||
fbcon_rotate(info, rotate);
|
||||
err:
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return count;
|
||||
}
|
||||
|
||||
|
|
@ -3346,7 +3346,7 @@ static ssize_t store_rotate_all(struct device *device,
|
|||
if (fbcon_has_exited)
|
||||
return count;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
idx = con2fb_map[fg_console];
|
||||
|
||||
if (idx == -1 || registered_fb[idx] == NULL)
|
||||
|
|
@ -3356,7 +3356,7 @@ static ssize_t store_rotate_all(struct device *device,
|
|||
rotate = simple_strtoul(buf, last, 0);
|
||||
fbcon_rotate_all(info, rotate);
|
||||
err:
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return count;
|
||||
}
|
||||
|
||||
|
|
@ -3369,7 +3369,7 @@ static ssize_t show_rotate(struct device *device,
|
|||
if (fbcon_has_exited)
|
||||
return 0;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
idx = con2fb_map[fg_console];
|
||||
|
||||
if (idx == -1 || registered_fb[idx] == NULL)
|
||||
|
|
@ -3378,7 +3378,7 @@ static ssize_t show_rotate(struct device *device,
|
|||
info = registered_fb[idx];
|
||||
rotate = fbcon_get_rotate(info);
|
||||
err:
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return snprintf(buf, PAGE_SIZE, "%d\n", rotate);
|
||||
}
|
||||
|
||||
|
|
@ -3392,7 +3392,7 @@ static ssize_t show_cursor_blink(struct device *device,
|
|||
if (fbcon_has_exited)
|
||||
return 0;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
idx = con2fb_map[fg_console];
|
||||
|
||||
if (idx == -1 || registered_fb[idx] == NULL)
|
||||
|
|
@ -3406,7 +3406,7 @@ static ssize_t show_cursor_blink(struct device *device,
|
|||
|
||||
blink = (ops->flags & FBCON_FLAGS_CURSOR_TIMER) ? 1 : 0;
|
||||
err:
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return snprintf(buf, PAGE_SIZE, "%d\n", blink);
|
||||
}
|
||||
|
||||
|
|
@ -3421,7 +3421,7 @@ static ssize_t store_cursor_blink(struct device *device,
|
|||
if (fbcon_has_exited)
|
||||
return count;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
idx = con2fb_map[fg_console];
|
||||
|
||||
if (idx == -1 || registered_fb[idx] == NULL)
|
||||
|
|
@ -3443,7 +3443,7 @@ static ssize_t store_cursor_blink(struct device *device,
|
|||
}
|
||||
|
||||
err:
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return count;
|
||||
}
|
||||
|
||||
|
|
@ -3482,7 +3482,7 @@ static void fbcon_start(void)
|
|||
if (num_registered_fb) {
|
||||
int i;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
|
||||
for (i = 0; i < FB_MAX; i++) {
|
||||
if (registered_fb[i] != NULL) {
|
||||
|
|
@ -3491,7 +3491,7 @@ static void fbcon_start(void)
|
|||
}
|
||||
}
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
fbcon_takeover(0);
|
||||
}
|
||||
}
|
||||
|
|
@ -3552,7 +3552,7 @@ static int __init fb_console_init(void)
|
|||
{
|
||||
int i;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_register_client(&fbcon_event_notifier);
|
||||
fbcon_device = device_create(fb_class, NULL, MKDEV(0, 0), NULL,
|
||||
"fbcon");
|
||||
|
|
@ -3568,7 +3568,7 @@ static int __init fb_console_init(void)
|
|||
for (i = 0; i < MAX_NR_CONSOLES; i++)
|
||||
con2fb_map[i] = -1;
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
fbcon_start();
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -3591,12 +3591,12 @@ static void __exit fbcon_deinit_device(void)
|
|||
|
||||
static void __exit fb_console_exit(void)
|
||||
{
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_unregister_client(&fbcon_event_notifier);
|
||||
fbcon_deinit_device();
|
||||
device_destroy(fb_class, MKDEV(0, 0));
|
||||
fbcon_exit();
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
unregister_con_driver(&fb_con);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -202,11 +202,7 @@ static void vgacon_scrollback_init(int pitch)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Called only duing init so call of alloc_bootmen is ok.
|
||||
* Marked __init_refok to silence modpost.
|
||||
*/
|
||||
static void __init_refok vgacon_scrollback_startup(void)
|
||||
static void vgacon_scrollback_startup(void)
|
||||
{
|
||||
vgacon_scrollback = kcalloc(CONFIG_VGACON_SOFT_SCROLLBACK_SIZE, 1024, GFP_NOWAIT);
|
||||
vgacon_scrollback_init(vga_video_num_columns * 2);
|
||||
|
|
|
|||
|
|
@ -1092,9 +1092,10 @@ static int __init fb_probe(struct platform_device *device)
|
|||
|
||||
irq_freq:
|
||||
#ifdef CONFIG_CPU_FREQ
|
||||
lcd_da8xx_cpufreq_deregister(par);
|
||||
#endif
|
||||
err_cpu_freq:
|
||||
unregister_framebuffer(da8xx_fb_info);
|
||||
#endif
|
||||
|
||||
err_dealloc_cmap:
|
||||
fb_dealloc_cmap(&da8xx_fb_info->cmap);
|
||||
|
|
@ -1130,14 +1131,14 @@ static int fb_suspend(struct platform_device *dev, pm_message_t state)
|
|||
struct fb_info *info = platform_get_drvdata(dev);
|
||||
struct da8xx_fb_par *par = info->par;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
if (par->panel_power_ctrl)
|
||||
par->panel_power_ctrl(0);
|
||||
|
||||
fb_set_suspend(info, 1);
|
||||
lcd_disable_raster();
|
||||
clk_disable(par->lcdc_clk);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1146,14 +1147,14 @@ static int fb_resume(struct platform_device *dev)
|
|||
struct fb_info *info = platform_get_drvdata(dev);
|
||||
struct da8xx_fb_par *par = info->par;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
if (par->panel_power_ctrl)
|
||||
par->panel_power_ctrl(1);
|
||||
|
||||
clk_enable(par->lcdc_clk);
|
||||
lcd_enable_raster();
|
||||
fb_set_suspend(info, 0);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1036,11 +1036,11 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
|
|||
return -EFAULT;
|
||||
if (!lock_fb_info(info))
|
||||
return -ENODEV;
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
info->flags |= FBINFO_MISC_USEREVENT;
|
||||
ret = fb_set_var(info, &var);
|
||||
info->flags &= ~FBINFO_MISC_USEREVENT;
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
unlock_fb_info(info);
|
||||
if (!ret && copy_to_user(argp, &var, sizeof(var)))
|
||||
ret = -EFAULT;
|
||||
|
|
@ -1072,9 +1072,9 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
|
|||
return -EFAULT;
|
||||
if (!lock_fb_info(info))
|
||||
return -ENODEV;
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
ret = fb_pan_display(info, &var);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
unlock_fb_info(info);
|
||||
if (ret == 0 && copy_to_user(argp, &var, sizeof(var)))
|
||||
return -EFAULT;
|
||||
|
|
@ -1119,11 +1119,11 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
|
|||
case FBIOBLANK:
|
||||
if (!lock_fb_info(info))
|
||||
return -ENODEV;
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
info->flags |= FBINFO_MISC_USEREVENT;
|
||||
ret = fb_blank(info, arg);
|
||||
info->flags &= ~FBINFO_MISC_USEREVENT;
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
unlock_fb_info(info);
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -90,11 +90,11 @@ static int activate(struct fb_info *fb_info, struct fb_var_screeninfo *var)
|
|||
int err;
|
||||
|
||||
var->activate |= FB_ACTIVATE_FORCE;
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_info->flags |= FBINFO_MISC_USEREVENT;
|
||||
err = fb_set_var(fb_info, var);
|
||||
fb_info->flags &= ~FBINFO_MISC_USEREVENT;
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
if (err)
|
||||
return err;
|
||||
return 0;
|
||||
|
|
@ -175,7 +175,7 @@ static ssize_t store_modes(struct device *device,
|
|||
if (i * sizeof(struct fb_videomode) != count)
|
||||
return -EINVAL;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
list_splice(&fb_info->modelist, &old_list);
|
||||
fb_videomode_to_modelist((const struct fb_videomode *)buf, i,
|
||||
&fb_info->modelist);
|
||||
|
|
@ -185,7 +185,7 @@ static ssize_t store_modes(struct device *device,
|
|||
} else
|
||||
fb_destroy_modelist(&old_list);
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -301,11 +301,11 @@ static ssize_t store_blank(struct device *device,
|
|||
char *last = NULL;
|
||||
int err;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_info->flags |= FBINFO_MISC_USEREVENT;
|
||||
err = fb_blank(fb_info, simple_strtoul(buf, &last, 0));
|
||||
fb_info->flags &= ~FBINFO_MISC_USEREVENT;
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
if (err < 0)
|
||||
return err;
|
||||
return count;
|
||||
|
|
@ -364,9 +364,9 @@ static ssize_t store_pan(struct device *device,
|
|||
return -EINVAL;
|
||||
var.yoffset = simple_strtoul(last, &last, 0);
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
err = fb_pan_display(fb_info, &var);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
|
@ -399,9 +399,9 @@ static ssize_t store_fbstate(struct device *device,
|
|||
|
||||
state = simple_strtoul(buf, &last, 0);
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_set_suspend(fb_info, (int)state);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return count;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -344,10 +344,10 @@ static int gxfb_suspend(struct pci_dev *pdev, pm_message_t state)
|
|||
struct fb_info *info = pci_get_drvdata(pdev);
|
||||
|
||||
if (state.event == PM_EVENT_SUSPEND) {
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
gx_powerdown(info);
|
||||
fb_set_suspend(info, 1);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
}
|
||||
|
||||
/* there's no point in setting PCI states; we emulate PCI, so
|
||||
|
|
@ -361,7 +361,7 @@ static int gxfb_resume(struct pci_dev *pdev)
|
|||
struct fb_info *info = pci_get_drvdata(pdev);
|
||||
int ret;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
ret = gx_powerup(info);
|
||||
if (ret) {
|
||||
printk(KERN_ERR "gxfb: power up failed!\n");
|
||||
|
|
@ -369,7 +369,7 @@ static int gxfb_resume(struct pci_dev *pdev)
|
|||
}
|
||||
|
||||
fb_set_suspend(info, 0);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -465,10 +465,10 @@ static int lxfb_suspend(struct pci_dev *pdev, pm_message_t state)
|
|||
struct fb_info *info = pci_get_drvdata(pdev);
|
||||
|
||||
if (state.event == PM_EVENT_SUSPEND) {
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
lx_powerdown(info);
|
||||
fb_set_suspend(info, 1);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
}
|
||||
|
||||
/* there's no point in setting PCI states; we emulate PCI, so
|
||||
|
|
@ -482,7 +482,7 @@ static int lxfb_resume(struct pci_dev *pdev)
|
|||
struct fb_info *info = pci_get_drvdata(pdev);
|
||||
int ret;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
ret = lx_powerup(info);
|
||||
if (ret) {
|
||||
printk(KERN_ERR "lxfb: power up failed!\n");
|
||||
|
|
@ -490,7 +490,7 @@ static int lxfb_resume(struct pci_dev *pdev)
|
|||
}
|
||||
|
||||
fb_set_suspend(info, 0);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -1574,7 +1574,7 @@ static int i810fb_suspend(struct pci_dev *dev, pm_message_t mesg)
|
|||
return 0;
|
||||
}
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_set_suspend(info, 1);
|
||||
|
||||
if (info->fbops->fb_sync)
|
||||
|
|
@ -1587,7 +1587,7 @@ static int i810fb_suspend(struct pci_dev *dev, pm_message_t mesg)
|
|||
pci_save_state(dev);
|
||||
pci_disable_device(dev);
|
||||
pci_set_power_state(dev, pci_choose_state(dev, mesg));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1605,7 +1605,7 @@ static int i810fb_resume(struct pci_dev *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
pci_set_power_state(dev, PCI_D0);
|
||||
pci_restore_state(dev);
|
||||
|
||||
|
|
@ -1621,7 +1621,7 @@ static int i810fb_resume(struct pci_dev *dev)
|
|||
fb_set_suspend (info, 0);
|
||||
info->fbops->fb_blank(VESA_NO_BLANKING, info);
|
||||
fail:
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return 0;
|
||||
}
|
||||
/***********************************************************************
|
||||
|
|
|
|||
|
|
@ -778,9 +778,9 @@ static int jzfb_suspend(struct device *dev)
|
|||
{
|
||||
struct jzfb *jzfb = dev_get_drvdata(dev);
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_set_suspend(jzfb->fb, 1);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
mutex_lock(&jzfb->lock);
|
||||
if (jzfb->is_enabled)
|
||||
|
|
@ -800,9 +800,9 @@ static int jzfb_resume(struct device *dev)
|
|||
jzfb_enable(jzfb);
|
||||
mutex_unlock(&jzfb->lock);
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_set_suspend(jzfb->fb, 0);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1177,9 +1177,9 @@ static int mx3fb_suspend(struct platform_device *pdev, pm_message_t state)
|
|||
struct mx3fb_data *mx3fb = platform_get_drvdata(pdev);
|
||||
struct mx3fb_info *mx3_fbi = mx3fb->fbi->par;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_set_suspend(mx3fb->fbi, 1);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
if (mx3_fbi->blank == FB_BLANK_UNBLANK) {
|
||||
sdc_disable_channel(mx3_fbi);
|
||||
|
|
@ -1202,9 +1202,9 @@ static int mx3fb_resume(struct platform_device *pdev)
|
|||
sdc_set_brightness(mx3fb, mx3fb->backlight_level);
|
||||
}
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_set_suspend(mx3fb->fbi, 0);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -696,6 +696,8 @@ static int nuc900fb_remove(struct platform_device *pdev)
|
|||
nuc900fb_stop_lcd(fbinfo);
|
||||
msleep(1);
|
||||
|
||||
unregister_framebuffer(fbinfo);
|
||||
nuc900fb_cpufreq_deregister(fbi);
|
||||
nuc900fb_unmap_video_memory(fbinfo);
|
||||
|
||||
iounmap(fbi->io);
|
||||
|
|
@ -723,7 +725,7 @@ static int nuc900fb_suspend(struct platform_device *dev, pm_message_t state)
|
|||
struct fb_info *fbinfo = platform_get_drvdata(dev);
|
||||
struct nuc900fb_info *info = fbinfo->par;
|
||||
|
||||
nuc900fb_stop_lcd();
|
||||
nuc900fb_stop_lcd(fbinfo);
|
||||
msleep(1);
|
||||
clk_disable(info->clk);
|
||||
return 0;
|
||||
|
|
@ -740,7 +742,7 @@ static int nuc900fb_resume(struct platform_device *dev)
|
|||
msleep(1);
|
||||
|
||||
nuc900fb_init_registers(fbinfo);
|
||||
nuc900fb_activate_var(bfinfo);
|
||||
nuc900fb_activate_var(fbinfo);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1057,7 +1057,7 @@ static int nvidiafb_suspend(struct pci_dev *dev, pm_message_t mesg)
|
|||
|
||||
if (mesg.event == PM_EVENT_PRETHAW)
|
||||
mesg.event = PM_EVENT_FREEZE;
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
par->pm_state = mesg.event;
|
||||
|
||||
if (mesg.event & PM_EVENT_SLEEP) {
|
||||
|
|
@ -1070,7 +1070,7 @@ static int nvidiafb_suspend(struct pci_dev *dev, pm_message_t mesg)
|
|||
}
|
||||
dev->dev.power.power_state = mesg;
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1079,7 +1079,7 @@ static int nvidiafb_resume(struct pci_dev *dev)
|
|||
struct fb_info *info = pci_get_drvdata(dev);
|
||||
struct nvidia_par *par = info->par;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
pci_set_power_state(dev, PCI_D0);
|
||||
|
||||
if (par->pm_state != PM_EVENT_FREEZE) {
|
||||
|
|
@ -1097,7 +1097,7 @@ static int nvidiafb_resume(struct pci_dev *dev)
|
|||
nvidiafb_blank(FB_BLANK_UNBLANK, info);
|
||||
|
||||
fail:
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -513,9 +513,9 @@ static int ps3fb_release(struct fb_info *info, int user)
|
|||
if (atomic_dec_and_test(&ps3fb.f_count)) {
|
||||
if (atomic_read(&ps3fb.ext_flip)) {
|
||||
atomic_set(&ps3fb.ext_flip, 0);
|
||||
if (!try_acquire_console_sem()) {
|
||||
if (console_trylock()) {
|
||||
ps3fb_sync(info, 0); /* single buffer */
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -830,14 +830,14 @@ static int ps3fb_ioctl(struct fb_info *info, unsigned int cmd,
|
|||
if (vmode) {
|
||||
var = info->var;
|
||||
fb_videomode_to_var(&var, vmode);
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
info->flags |= FBINFO_MISC_USEREVENT;
|
||||
/* Force, in case only special bits changed */
|
||||
var.activate |= FB_ACTIVATE_FORCE;
|
||||
par->new_mode_id = val;
|
||||
retval = fb_set_var(info, &var);
|
||||
info->flags &= ~FBINFO_MISC_USEREVENT;
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -881,9 +881,9 @@ static int ps3fb_ioctl(struct fb_info *info, unsigned int cmd,
|
|||
break;
|
||||
|
||||
dev_dbg(info->device, "PS3FB_IOCTL_FSEL:%d\n", val);
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
retval = ps3fb_sync(info, val);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
@ -903,9 +903,9 @@ static int ps3fbd(void *arg)
|
|||
set_current_state(TASK_INTERRUPTIBLE);
|
||||
if (ps3fb.is_kicked) {
|
||||
ps3fb.is_kicked = 0;
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
ps3fb_sync(info, 0); /* single buffer */
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
}
|
||||
schedule();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -701,16 +701,12 @@ static int __devinit pxa168fb_probe(struct platform_device *pdev)
|
|||
*/
|
||||
pxa168fb_init_mode(info, mi);
|
||||
|
||||
ret = pxa168fb_check_var(&info->var, info);
|
||||
if (ret)
|
||||
goto failed_free_fbmem;
|
||||
|
||||
/*
|
||||
* Fill in sane defaults.
|
||||
*/
|
||||
ret = pxa168fb_check_var(&info->var, info);
|
||||
if (ret)
|
||||
goto failed;
|
||||
goto failed_free_fbmem;
|
||||
|
||||
/*
|
||||
* enable controller clock
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* pxa3xx-gc.c - Linux kernel module for PXA3xx graphics controllers
|
||||
* pxa3xx-gcu.c - Linux kernel module for PXA3xx graphics controllers
|
||||
*
|
||||
* This driver needs a DirectFB counterpart in user space, communication
|
||||
* is handled via mmap()ed memory areas and an ioctl.
|
||||
|
|
@ -421,7 +421,7 @@ pxa3xx_gcu_misc_write(struct file *filp, const char *buff,
|
|||
buffer->next = priv->free;
|
||||
priv->free = buffer;
|
||||
spin_unlock_irqrestore(&priv->spinlock, flags);
|
||||
return ret;
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
buffer->length = words;
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
#include <linux/svga.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/console.h> /* Why should fb driver call console functions? because acquire_console_sem() */
|
||||
#include <linux/console.h> /* Why should fb driver call console functions? because console_lock() */
|
||||
#include <video/vga.h>
|
||||
|
||||
#ifdef CONFIG_MTRR
|
||||
|
|
@ -1113,12 +1113,12 @@ static int s3_pci_suspend(struct pci_dev* dev, pm_message_t state)
|
|||
|
||||
dev_info(info->device, "suspend\n");
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
mutex_lock(&(par->open_lock));
|
||||
|
||||
if ((state.event == PM_EVENT_FREEZE) || (par->ref_count == 0)) {
|
||||
mutex_unlock(&(par->open_lock));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1129,7 +1129,7 @@ static int s3_pci_suspend(struct pci_dev* dev, pm_message_t state)
|
|||
pci_set_power_state(dev, pci_choose_state(dev, state));
|
||||
|
||||
mutex_unlock(&(par->open_lock));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1145,12 +1145,12 @@ static int s3_pci_resume(struct pci_dev* dev)
|
|||
|
||||
dev_info(info->device, "resume\n");
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
mutex_lock(&(par->open_lock));
|
||||
|
||||
if (par->ref_count == 0) {
|
||||
mutex_unlock(&(par->open_lock));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1159,7 +1159,7 @@ static int s3_pci_resume(struct pci_dev* dev)
|
|||
err = pci_enable_device(dev);
|
||||
if (err) {
|
||||
mutex_unlock(&(par->open_lock));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
dev_err(info->device, "error %d enabling device for resume\n", err);
|
||||
return err;
|
||||
}
|
||||
|
|
@ -1169,7 +1169,7 @@ static int s3_pci_resume(struct pci_dev* dev)
|
|||
fb_set_suspend(info, 0);
|
||||
|
||||
mutex_unlock(&(par->open_lock));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2373,7 +2373,7 @@ static int savagefb_suspend(struct pci_dev *dev, pm_message_t mesg)
|
|||
if (mesg.event == PM_EVENT_FREEZE)
|
||||
return 0;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_set_suspend(info, 1);
|
||||
|
||||
if (info->fbops->fb_sync)
|
||||
|
|
@ -2385,7 +2385,7 @@ static int savagefb_suspend(struct pci_dev *dev, pm_message_t mesg)
|
|||
pci_save_state(dev);
|
||||
pci_disable_device(dev);
|
||||
pci_set_power_state(dev, pci_choose_state(dev, mesg));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -2409,7 +2409,7 @@ static int savagefb_resume(struct pci_dev* dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
|
||||
pci_set_power_state(dev, PCI_D0);
|
||||
pci_restore_state(dev);
|
||||
|
|
@ -2423,7 +2423,7 @@ static int savagefb_resume(struct pci_dev* dev)
|
|||
savagefb_set_par(info);
|
||||
fb_set_suspend(info, 0);
|
||||
savagefb_blank(FB_BLANK_UNBLANK, info);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1151,7 +1151,7 @@ static void sh_hdmi_edid_work_fn(struct work_struct *work)
|
|||
|
||||
ch = info->par;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
|
||||
/* HDMI plug in */
|
||||
if (!sh_hdmi_must_reconfigure(hdmi) &&
|
||||
|
|
@ -1171,7 +1171,7 @@ static void sh_hdmi_edid_work_fn(struct work_struct *work)
|
|||
fb_set_suspend(info, 0);
|
||||
}
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
} else {
|
||||
ret = 0;
|
||||
if (!hdmi->info)
|
||||
|
|
@ -1181,12 +1181,12 @@ static void sh_hdmi_edid_work_fn(struct work_struct *work)
|
|||
fb_destroy_modedb(hdmi->monspec.modedb);
|
||||
hdmi->monspec.modedb = NULL;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
|
||||
/* HDMI disconnect */
|
||||
fb_set_suspend(hdmi->info, 1);
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
pm_runtime_put(hdmi->dev);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -912,9 +912,9 @@ static int sh_mobile_release(struct fb_info *info, int user)
|
|||
|
||||
/* Nothing to reconfigure, when called from fbcon */
|
||||
if (user) {
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
sh_mobile_fb_reconfig(info);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
}
|
||||
|
||||
mutex_unlock(&ch->open_lock);
|
||||
|
|
|
|||
|
|
@ -2010,9 +2010,9 @@ static int sm501fb_suspend_fb(struct sm501fb_info *info,
|
|||
|
||||
/* tell console/fb driver we are suspending */
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_set_suspend(fbi, 1);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
/* backup copies in case chip is powered down over suspend */
|
||||
|
||||
|
|
@ -2069,9 +2069,9 @@ static void sm501fb_resume_fb(struct sm501fb_info *info,
|
|||
memcpy_toio(par->cursor.k_addr, par->store_cursor,
|
||||
par->cursor.size);
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_set_suspend(fbi, 0);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
vfree(par->store_fb);
|
||||
vfree(par->store_cursor);
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
#include <linux/fb.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/delay.h>
|
||||
/* Why should fb driver call console functions? because acquire_console_sem() */
|
||||
/* Why should fb driver call console functions? because console_lock() */
|
||||
#include <linux/console.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/tmio.h>
|
||||
|
|
@ -944,7 +944,7 @@ static int tmiofb_suspend(struct platform_device *dev, pm_message_t state)
|
|||
struct mfd_cell *cell = dev->dev.platform_data;
|
||||
int retval = 0;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
|
||||
fb_set_suspend(info, 1);
|
||||
|
||||
|
|
@ -965,7 +965,7 @@ static int tmiofb_suspend(struct platform_device *dev, pm_message_t state)
|
|||
if (cell->suspend)
|
||||
retval = cell->suspend(dev);
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
|
@ -976,7 +976,7 @@ static int tmiofb_resume(struct platform_device *dev)
|
|||
struct mfd_cell *cell = dev->dev.platform_data;
|
||||
int retval = 0;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
|
||||
if (cell->resume) {
|
||||
retval = cell->resume(dev);
|
||||
|
|
@ -992,7 +992,7 @@ static int tmiofb_resume(struct platform_device *dev)
|
|||
|
||||
fb_set_suspend(info, 0);
|
||||
out:
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return retval;
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -1674,17 +1674,17 @@ static int parse_mode(const char *str, u32 *xres, u32 *yres)
|
|||
#ifdef CONFIG_PM
|
||||
static int viafb_suspend(void *unused)
|
||||
{
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
fb_set_suspend(viafbinfo, 1);
|
||||
viafb_sync(viafbinfo);
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int viafb_resume(void *unused)
|
||||
{
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
if (viaparinfo->shared->vdev->engine_mmio)
|
||||
viafb_reset_engine(viaparinfo);
|
||||
viafb_set_par(viafbinfo);
|
||||
|
|
@ -1692,7 +1692,7 @@ static int viafb_resume(void *unused)
|
|||
viafb_set_par(viafbinfo1);
|
||||
fb_set_suspend(viafbinfo, 0);
|
||||
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
#include <linux/svga.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/console.h> /* Why should fb driver call console functions? because acquire_console_sem() */
|
||||
#include <linux/console.h> /* Why should fb driver call console functions? because console_lock() */
|
||||
#include <video/vga.h>
|
||||
|
||||
#ifdef CONFIG_MTRR
|
||||
|
|
@ -819,12 +819,12 @@ static int vt8623_pci_suspend(struct pci_dev* dev, pm_message_t state)
|
|||
|
||||
dev_info(info->device, "suspend\n");
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
mutex_lock(&(par->open_lock));
|
||||
|
||||
if ((state.event == PM_EVENT_FREEZE) || (par->ref_count == 0)) {
|
||||
mutex_unlock(&(par->open_lock));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -835,7 +835,7 @@ static int vt8623_pci_suspend(struct pci_dev* dev, pm_message_t state)
|
|||
pci_set_power_state(dev, pci_choose_state(dev, state));
|
||||
|
||||
mutex_unlock(&(par->open_lock));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -850,7 +850,7 @@ static int vt8623_pci_resume(struct pci_dev* dev)
|
|||
|
||||
dev_info(info->device, "resume\n");
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
mutex_lock(&(par->open_lock));
|
||||
|
||||
if (par->ref_count == 0)
|
||||
|
|
@ -869,7 +869,7 @@ static int vt8623_pci_resume(struct pci_dev* dev)
|
|||
|
||||
fail:
|
||||
mutex_unlock(&(par->open_lock));
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -491,12 +491,12 @@ xenfb_make_preferred_console(void)
|
|||
if (console_set_on_cmdline)
|
||||
return;
|
||||
|
||||
acquire_console_sem();
|
||||
console_lock();
|
||||
for_each_console(c) {
|
||||
if (!strcmp(c->name, "tty") && c->index == 0)
|
||||
break;
|
||||
}
|
||||
release_console_sem();
|
||||
console_unlock();
|
||||
if (c) {
|
||||
unregister_console(c);
|
||||
c->flags |= CON_CONSDEV;
|
||||
|
|
|
|||
Loading…
Reference in a new issue