viafb: make suspend and resume work (on all machines?)

This patch removes the dangerous suspend and resume code that was
developed for VX855 only. After this the framebuffer is expected to
cause no longer serious (freezing) issues on any machines.
However the hardware acceleration is broken now so only doing resume
with unaccelerated framebuffers is save. This did not work previously
as the 2D engine is not mapped if the framebuffer is not accelerated.
The acceleration issue will be addressed later.
Signed-off-by: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Acked-by: default avatarJonathan Corbet <corbet@lwn.net>
Cc: Joseph Chan <JosephChan@via.com.tw>
parent b75f2c01
...@@ -1674,11 +1674,6 @@ int viafb_suspend(struct pci_dev *pdev, pm_message_t state) ...@@ -1674,11 +1674,6 @@ int viafb_suspend(struct pci_dev *pdev, pm_message_t state)
{ {
if (state.event == PM_EVENT_SUSPEND) { if (state.event == PM_EVENT_SUSPEND) {
acquire_console_sem(); acquire_console_sem();
memcpy_fromio(viaparinfo->shared->saved_regs,
viaparinfo->shared->vdev->engine_mmio + 0x100,
0xff * sizeof(u32));
fb_set_suspend(viafbinfo, 1); fb_set_suspend(viafbinfo, 1);
viafb_sync(viafbinfo); viafb_sync(viafbinfo);
...@@ -1700,11 +1695,6 @@ int viafb_resume(struct pci_dev *pdev) ...@@ -1700,11 +1695,6 @@ int viafb_resume(struct pci_dev *pdev)
if (pci_enable_device(pdev)) if (pci_enable_device(pdev))
goto fail; goto fail;
pci_set_master(pdev); pci_set_master(pdev);
memcpy_toio(viaparinfo->shared->vdev->engine_mmio + 0x100,
viaparinfo->shared->saved_regs,
0x100 * sizeof(u32));
viafb_set_par(viafbinfo); viafb_set_par(viafbinfo);
if (viafb_dual_fb) if (viafb_dual_fb)
viafb_set_par(viafbinfo1); viafb_set_par(viafbinfo1);
......
...@@ -62,9 +62,6 @@ struct viafb_shared { ...@@ -62,9 +62,6 @@ struct viafb_shared {
u8 dst_bpp, u32 dst_addr, u32 dst_pitch, u32 dst_x, u32 dst_y, u8 dst_bpp, u32 dst_addr, u32 dst_pitch, u32 dst_x, u32 dst_y,
u32 *src_mem, u32 src_addr, u32 src_pitch, u32 src_x, u32 src_y, u32 *src_mem, u32 src_addr, u32 src_pitch, u32 src_x, u32 src_y,
u32 fg_color, u32 bg_color, u8 fill_rop); u32 fg_color, u32 bg_color, u8 fill_rop);
/* For suspend/resume */
u32 saved_regs[0x100];
}; };
struct viafb_par { struct viafb_par {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment