diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/char/hvcs.c | 9 | ||||
| -rw-r--r-- | drivers/char/hvsi.c | 1 | ||||
| -rw-r--r-- | drivers/video/aty/aty128fb.c | 10 | ||||
| -rw-r--r-- | drivers/video/aty/radeon_pm.c | 10 |
4 files changed, 18 insertions, 12 deletions
diff --git a/drivers/char/hvcs.c b/drivers/char/hvcs.c index 6e6eb445d37..c76bccf5354 100644 --- a/drivers/char/hvcs.c +++ b/drivers/char/hvcs.c | |||
| @@ -1139,15 +1139,6 @@ static int hvcs_open(struct tty_struct *tty, struct file *filp) | |||
| 1139 | hvcsd->tty = tty; | 1139 | hvcsd->tty = tty; |
| 1140 | tty->driver_data = hvcsd; | 1140 | tty->driver_data = hvcsd; |
| 1141 | 1141 | ||
| 1142 | /* | ||
| 1143 | * Set this driver to low latency so that we actually have a chance at | ||
| 1144 | * catching a throttled TTY after we flip_buffer_push. Otherwise the | ||
| 1145 | * flush_to_async may not execute until after the kernel_thread has | ||
| 1146 | * yielded and resumed the next flip_buffer_push resulting in data | ||
| 1147 | * loss. | ||
| 1148 | */ | ||
| 1149 | tty->low_latency = 1; | ||
| 1150 | |||
| 1151 | memset(&hvcsd->buffer[0], 0x00, HVCS_BUFF_LEN); | 1142 | memset(&hvcsd->buffer[0], 0x00, HVCS_BUFF_LEN); |
| 1152 | 1143 | ||
| 1153 | /* | 1144 | /* |
diff --git a/drivers/char/hvsi.c b/drivers/char/hvsi.c index 406f8742a26..2989056a9e3 100644 --- a/drivers/char/hvsi.c +++ b/drivers/char/hvsi.c | |||
| @@ -810,7 +810,6 @@ static int hvsi_open(struct tty_struct *tty, struct file *filp) | |||
| 810 | hp = &hvsi_ports[line]; | 810 | hp = &hvsi_ports[line]; |
| 811 | 811 | ||
| 812 | tty->driver_data = hp; | 812 | tty->driver_data = hp; |
| 813 | tty->low_latency = 1; /* avoid throttle/tty_flip_buffer_push race */ | ||
| 814 | 813 | ||
| 815 | mb(); | 814 | mb(); |
| 816 | if (hp->state == HVSI_FSP_DIED) | 815 | if (hp->state == HVSI_FSP_DIED) |
diff --git a/drivers/video/aty/aty128fb.c b/drivers/video/aty/aty128fb.c index 2181ce4d7eb..35e8eb02b9e 100644 --- a/drivers/video/aty/aty128fb.c +++ b/drivers/video/aty/aty128fb.c | |||
| @@ -1853,13 +1853,14 @@ static void aty128_bl_exit(struct backlight_device *bd) | |||
| 1853 | * Initialisation | 1853 | * Initialisation |
| 1854 | */ | 1854 | */ |
| 1855 | 1855 | ||
| 1856 | #ifdef CONFIG_PPC_PMAC | 1856 | #ifdef CONFIG_PPC_PMAC__disabled |
| 1857 | static void aty128_early_resume(void *data) | 1857 | static void aty128_early_resume(void *data) |
| 1858 | { | 1858 | { |
| 1859 | struct aty128fb_par *par = data; | 1859 | struct aty128fb_par *par = data; |
| 1860 | 1860 | ||
| 1861 | if (try_acquire_console_sem()) | 1861 | if (try_acquire_console_sem()) |
| 1862 | return; | 1862 | return; |
| 1863 | pci_restore_state(par->pdev); | ||
| 1863 | aty128_do_resume(par->pdev); | 1864 | aty128_do_resume(par->pdev); |
| 1864 | release_console_sem(); | 1865 | release_console_sem(); |
| 1865 | } | 1866 | } |
| @@ -1907,7 +1908,14 @@ static int __devinit aty128_init(struct pci_dev *pdev, const struct pci_device_i | |||
| 1907 | /* Indicate sleep capability */ | 1908 | /* Indicate sleep capability */ |
| 1908 | if (par->chip_gen == rage_M3) { | 1909 | if (par->chip_gen == rage_M3) { |
| 1909 | pmac_call_feature(PMAC_FTR_DEVICE_CAN_WAKE, NULL, 0, 1); | 1910 | pmac_call_feature(PMAC_FTR_DEVICE_CAN_WAKE, NULL, 0, 1); |
| 1911 | #if 0 /* Disable the early video resume hack for now as it's causing problems, among | ||
| 1912 | * others we now rely on the PCI core restoring the config space for us, which | ||
| 1913 | * isn't the case with that hack, and that code path causes various things to | ||
| 1914 | * be called with interrupts off while they shouldn't. I'm leaving the code in | ||
| 1915 | * as it can be useful for debugging purposes | ||
| 1916 | */ | ||
| 1910 | pmac_set_early_video_resume(aty128_early_resume, par); | 1917 | pmac_set_early_video_resume(aty128_early_resume, par); |
| 1918 | #endif | ||
| 1911 | } | 1919 | } |
| 1912 | 1920 | ||
| 1913 | /* Find default mode */ | 1921 | /* Find default mode */ |
diff --git a/drivers/video/aty/radeon_pm.c b/drivers/video/aty/radeon_pm.c index ca5f0dc2854..81603f85e17 100644 --- a/drivers/video/aty/radeon_pm.c +++ b/drivers/video/aty/radeon_pm.c | |||
| @@ -2762,12 +2762,13 @@ int radeonfb_pci_resume(struct pci_dev *pdev) | |||
| 2762 | return rc; | 2762 | return rc; |
| 2763 | } | 2763 | } |
| 2764 | 2764 | ||
| 2765 | #ifdef CONFIG_PPC_OF | 2765 | #ifdef CONFIG_PPC_OF__disabled |
| 2766 | static void radeonfb_early_resume(void *data) | 2766 | static void radeonfb_early_resume(void *data) |
| 2767 | { | 2767 | { |
| 2768 | struct radeonfb_info *rinfo = data; | 2768 | struct radeonfb_info *rinfo = data; |
| 2769 | 2769 | ||
| 2770 | rinfo->no_schedule = 1; | 2770 | rinfo->no_schedule = 1; |
| 2771 | pci_restore_state(rinfo->pdev); | ||
| 2771 | radeonfb_pci_resume(rinfo->pdev); | 2772 | radeonfb_pci_resume(rinfo->pdev); |
| 2772 | rinfo->no_schedule = 0; | 2773 | rinfo->no_schedule = 0; |
| 2773 | } | 2774 | } |
| @@ -2834,7 +2835,14 @@ void radeonfb_pm_init(struct radeonfb_info *rinfo, int dynclk, int ignore_devlis | |||
| 2834 | */ | 2835 | */ |
| 2835 | if (rinfo->pm_mode != radeon_pm_none) { | 2836 | if (rinfo->pm_mode != radeon_pm_none) { |
| 2836 | pmac_call_feature(PMAC_FTR_DEVICE_CAN_WAKE, rinfo->of_node, 0, 1); | 2837 | pmac_call_feature(PMAC_FTR_DEVICE_CAN_WAKE, rinfo->of_node, 0, 1); |
| 2838 | #if 0 /* Disable the early video resume hack for now as it's causing problems, among | ||
| 2839 | * others we now rely on the PCI core restoring the config space for us, which | ||
| 2840 | * isn't the case with that hack, and that code path causes various things to | ||
| 2841 | * be called with interrupts off while they shouldn't. I'm leaving the code in | ||
| 2842 | * as it can be useful for debugging purposes | ||
| 2843 | */ | ||
| 2837 | pmac_set_early_video_resume(radeonfb_early_resume, rinfo); | 2844 | pmac_set_early_video_resume(radeonfb_early_resume, rinfo); |
| 2845 | #endif | ||
| 2838 | } | 2846 | } |
| 2839 | 2847 | ||
| 2840 | #if 0 | 2848 | #if 0 |
