|
@@ -1702,13 +1702,16 @@ static void viafb_init_proc(struct proc_dir_entry **viafb_entry)
|
|
|
}
|
|
|
static void viafb_remove_proc(struct proc_dir_entry *viafb_entry)
|
|
|
{
|
|
|
- /* no problem if it was not registered */
|
|
|
+ struct chip_information *chip_info = &viaparinfo->shared->chip_info;
|
|
|
+
|
|
|
remove_proc_entry("dvp0", viafb_entry);/* parent dir */
|
|
|
remove_proc_entry("dvp1", viafb_entry);
|
|
|
remove_proc_entry("dfph", viafb_entry);
|
|
|
remove_proc_entry("dfpl", viafb_entry);
|
|
|
- remove_proc_entry("vt1636", viafb_entry);
|
|
|
- remove_proc_entry("vt1625", viafb_entry);
|
|
|
+ if (chip_info->lvds_chip_info.lvds_chip_name == VT1636_LVDS
|
|
|
+ || chip_info->lvds_chip_info2.lvds_chip_name == VT1636_LVDS)
|
|
|
+ remove_proc_entry("vt1636", viafb_entry);
|
|
|
+
|
|
|
remove_proc_entry("viafb", NULL);
|
|
|
}
|
|
|
|
|
@@ -1967,12 +1970,10 @@ void __devexit via_fb_pci_remove(struct pci_dev *pdev)
|
|
|
unregister_framebuffer(viafbinfo);
|
|
|
if (viafb_dual_fb)
|
|
|
unregister_framebuffer(viafbinfo1);
|
|
|
-
|
|
|
+ viafb_remove_proc(viaparinfo->shared->proc_entry);
|
|
|
framebuffer_release(viafbinfo);
|
|
|
if (viafb_dual_fb)
|
|
|
framebuffer_release(viafbinfo1);
|
|
|
-
|
|
|
- viafb_remove_proc(viaparinfo->shared->proc_entry);
|
|
|
}
|
|
|
|
|
|
#ifndef MODULE
|