diff -Nru a/drivers/video/nvidia/nv_setup.c b/drivers/video/nvidia/nv_setup.c --- a/drivers/video/nvidia/nv_setup.c 2004-11-23 22:19:56 +08:00 +++ b/drivers/video/nvidia/nv_setup.c 2004-11-24 01:02:51 +08:00 @@ -400,7 +400,7 @@ printk("nvidiafb: EDID found from BUS1\n"); monA = &monitorA; fb_edid_to_monspecs(edidA, monA); - FlatPanel = (monA->input == FB_DISP_DDI) ? 1 : 0; + FlatPanel = (monA->input & FB_DISP_DDI) ? 1 : 0; /* NV4 doesn't support FlatPanels */ if((par->Chipset & 0x0fff) <= 0x0020) @@ -531,9 +531,9 @@ printk("nvidiafb: CRTC 1 is currently programmed for " "TV\n"); } else if (monA) { - FlatPanel = (monA->input == FB_DISP_DDI) ? 1 : 0; + FlatPanel = (monA->input & FB_DISP_DDI) ? 1 : 0; } else if (monB) { - FlatPanel = (monB->input == FB_DISP_DDI) ? 1 : 0; + FlatPanel = (monB->input & FB_DISP_DDI) ? 1 : 0; } if(par->FlatPanel == -1) { @@ -574,9 +574,9 @@ } if (monA) { - if (((monA->input == FB_DISP_DDI) && + if (((monA->input & FB_DISP_DDI) && par->FlatPanel) || - ((monA->input != FB_DISP_DDI) && + ((!(monA->input & FB_DISP_DDI)) && !par->FlatPanel)) { if (monB) { fb_destroy_modedb(monB->modedb); @@ -589,9 +589,9 @@ } if (monB) { - if (((monB->input == FB_DISP_DDI) && + if (((monB->input & FB_DISP_DDI) && !par->FlatPanel) || - ((monB->input != FB_DISP_DDI) && + ((!(monB->input & FB_DISP_DDI)) && par->FlatPanel)) { fb_destroy_modedb(monB->modedb); monB = NULL;