1450N/A * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. 1450N/A * Copyright (c) 2006-2007, 2013, Intel Corporation 1450N/A * Permission is hereby granted, free of charge, to any person obtaining a 1450N/A * copy of this software and associated documentation files (the "Software"), 1450N/A * to deal in the Software without restriction, including without limitation 1450N/A * the rights to use, copy, modify, merge, publish, distribute, sublicense, 1450N/A * and/or sell copies of the Software, and to permit persons to whom the 1450N/A * Software is furnished to do so, subject to the following conditions: 1450N/A * The above copyright notice and this permission notice (including the next 1450N/A * paragraph) shall be included in all copies or substantial portions of the 1450N/A * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1450N/A * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1450N/A * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 1450N/A * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1450N/A * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 1450N/A * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 1450N/A * DEALINGS IN THE SOFTWARE. 1450N/A * Eric Anholt <eric@anholt.net> 1450N/A/* Here's the desired hotplug mode */ 1450N/A /* DPMS state is stored in the connector, which we need in the 1450N/A/* Note: The caller is required to filter out dpms modes not supported by the 1450N/A /* Only need to change hw state when actually enabled */ 1450N/A /* We need the pipe to run for anything but OFF. */ 1450N/A /* We call connector dpms manually below in case pipe dpms doesn't 1450N/A * change due to cloning. */ 1450N/A /* From off to on, enable the pipe first. */ 1450N/A /* The FDI receiver on LPT only supports 8bpc and only has 2 lanes. */ 1450N/A /* LPT FDI RX only supports 8bpc. */ 1450N/A /* For CPT allow 3 pipe config, for others just use A or B */ 1450N/A ;
/* Those bits don't exist here */ 1450N/A /* The first time through, trigger an explicit detection cycle */ 1450N/A /* Check the status to see if both blue and green are on now */ 1450N/A /* Check the status to see if both blue and green are on now */ 1450N/A /* FIXME: debug force function and remove */ 1450N/A * Uses CRT_HOTPLUG_EN and CRT_HOTPLUG_STAT to detect CRT presence. 1450N/A * \return true if CRT is connected. 1450N/A * \return false if CRT is disconnected. 1450N/A * On 4 series desktop, CRT detect sequence need to be done twice 1450N/A * to get a reliable result. 1450N/A /* turn on the FORCE_DETECT */ 1450N/A /* wait for FORCE_DETECT to go off */ 1450N/A /* clear the interrupt we just generated, if any */ 1450N/A /* and put the bits back */ 1450N/A/* local version of intel_ddc_get_modes() to use intel_crt_get_edid() */ 1450N/A * This may be a DVI-I connector with a shared DDC 1450N/A * link between analog and digital outputs, so we 1450N/A * have to check the EDID input spec of the attached device. 1450N/A /* Set the border color to purple. */ 1450N/A /* Wait for next Vblank to substitue 1450N/A * border color for Color info */ 1450N/A * If there isn't any border, add some. 1450N/A /* sample in the vertical border, selecting the larger one */ 1450N/A * Wait for the border to be displayed 1450N/A * Watch ST00 for an entire scanline 1450N/A /* Read the ST00 VGA status register */ 1450N/A /* restore vblank if necessary */ 1450N/A * If more than 3/4 of the scanline detected a monitor, 1450N/A * then it is assumed to be present. This works even on i830, 1450N/A * where there isn't any way to force the border color across 1450N/A /* Restore previous settings */ 1450N/A /* We can not rely on the HPD pin always being correctly wired 1450N/A * up, for example many KVM do not pass it through, and so 1450N/A * only trust an assertion that the monitor is connected. 1450N/A /* Load detection is broken on HPD capable machines. Whoever wants a 1450N/A * broken monitor (without edid) to work behind a broken kvm (that fails 1450N/A * to have the right resistors for HP detection) needs to fix this up. 1450N/A * For now just bail out. */ 1450N/A /* for pre-945g platforms use load detect */ 1450N/A /* OSOL_i915: drm_sysfs_connector_remove(connector); */ 1450N/A /* Try to probe digital port for output in DVI-I -> VGA mode. */ 1450N/A * Routines for controlling stuff on the analog port 1450N/A /* Skip machines without VGA that falsely report hotplug events */ 1450N/A /* OSOL_i915: drm_sysfs_connector_add(connector); */ 1450N/A * Configure the automatic hotplug detection stuff 1450N/A * TODO: find a proper way to discover whether we need to set the the 1450N/A * polarity and link reversal bits or not, instead of relying on the