diff options
author | Alan Hourihane <alanh@fairlite.demon.co.uk> | 2007-04-12 15:10:08 +0100 |
---|---|---|
committer | Alan Hourihane <alanh@fairlite.demon.co.uk> | 2007-04-12 15:10:08 +0100 |
commit | 9420ab4b419458605c678d179de6c80de23b8ee1 (patch) | |
tree | 9fb796bbcc3b80f7e89029bc5fd4668554d698ea /linux-core/intel_modes.c | |
parent | 9b7211dd6793dc62d11ad1ae980b22fa2d61f9dd (diff) | |
parent | b1f0fd6dfbd1495aa08c6358e936582eeca042c8 (diff) |
Merge remote branch 'origin/modesetting-101' into modesetting-101
Diffstat (limited to 'linux-core/intel_modes.c')
-rw-r--r-- | linux-core/intel_modes.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/linux-core/intel_modes.c b/linux-core/intel_modes.c new file mode 100644 index 00000000..601770e1 --- /dev/null +++ b/linux-core/intel_modes.c @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2007 Dave Airlie <airlied@linux.ie> + * Copyright (c) 2007 Intel Corporation + * Jesse Barnes <jesse.barnes@intel.com> + */ + +#include <linux/i2c.h> +#include <linux/fb.h> +#include "drmP.h" +#include "intel_drv.h" + +/** + * intel_ddc_probe + * + */ +bool intel_ddc_probe(struct drm_output *output) +{ + struct intel_output *intel_output = output->driver_private; + u8 out_buf[] = { 0x0, 0x0}; + u8 buf[2]; + int ret; + struct i2c_msg msgs[] = { + { + .addr = 0x50, + .flags = 0, + .len = 1, + .buf = out_buf, + }, + { + .addr = 0x50, + .flags = I2C_M_RD, + .len = 1, + .buf = buf, + } + }; + + ret = i2c_transfer(&intel_output->ddc_bus->adapter, msgs, 2); + if (ret == 2) + return true; + + return false; +} + +/** + * intel_ddc_get_modes - get modelist from monitor + * @output: DRM output device to use + * + * Fetch the EDID information from @output using the DDC bus. + */ +int intel_ddc_get_modes(struct drm_output *output) +{ + struct intel_output *intel_output = output->driver_private; + + return drm_add_edid_modes(output, &intel_output->ddc_bus->adapter); +} |