Display Data Channel Command Interface (DDC/CI) ioctls [PSARC/2007/695 FastTrack timeout 01/02/2008]
Garrett D'Amore
gdamore at sun.com
Fri Dec 14 17:05:15 PST 2007
Eric Sultan wrote:
> Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
> This information is Copyright 2007 Sun Microsystems
> 1. Introduction
> 1.1. Project/Component Working Name:
> Display Data Channel Command Interface (DDC/CI) ioctls
> 1.2. Name of Document Author/Supplier:
> Author: Eric Sultan
> 1.3 Date of This Document:
> 14 December, 2007
> 4. Technical Description
>
> I'm sponsoring this fasttrack proposal for myself, the timer to
> expire Jan 2, 2008.
>
> The requested binding is patch.
>
> This case proposes to add three ioctls and a supporting struct to the
> visual_io.h file. These ioctls provide access to the VESA DDC/CI
> features supported by some display devices.
>
> Acronyms:
> VESA Video Electronics Standards Association
> DDC/CI Display Data Channel Command Interface
> EDID Extended Display Identification Data
> MCCS Monitor Control Command Set
> i2c Inter-Integrated Circuit (pronounced I-squared-C)
>
> Currently, the DDC is used in Sun SPARC graphics devices only to fetch
> EDID blocks from display devices attached to graphics cards. EDID is
> made available via a standard i2c device address in virtually all modern
> display devices.
>
> Some devices also implement a DDC/CI i2c device, and use this to
> read/write MCCS commands. These commands offer software control of the
> display device, for example by allowing one to set the luminance or the
> gamma adjustment.
>
> Each instance of a display device may require unique settings. An app
> concerned with calibrating and setting up a device might maintain a
> database of devices, using EDID to obtain model and serial number, and
> DDC/CI to adjust the device.
>
> This proposal adds three ioctls and the supporting struct to visual_io.h.
>
> The proposed definitions are:
>
> #define VIS_READ_DDCCI (('V' << 8) | 20)
> #define VIS_WRITE_DDCCI (('V' << 8) | 21)
> #define VIS_INIT_DDCCI (('V' << 8) | 22)
>
> struct vis_ddcci {
> uint_t port;
> int length;
> caddr_t buffer;
> };
>
> #if defined(_SYSCALL32)
> struct vis_ddcci32 {
> uint_t port;
> int length;
> caddr32_t buffer;
> };
> #endif /* _SYSCALL32 */
>
> Port identifies the video port on the graphics card. Most modern graphics
> cards can drive two display devices, and this provides the selection.
>
> Length is the length of the buffer.
>
> Buffer is a pointer to a message buffer allocated by the app. The message
> format is specified by the DDC/CI and the MCCS standards. The message
> length is part of the message header.
>
> This proposal does not include the implementation of those ioctls in
> the device driver code. Subsequent projects will provide
> driver-specific implementations of these interfaces.
>
> 6. Resources and Schedule
> 6.4. Steering Committee requested information
> 6.4.1. Consolidation C-team Name:
> unknown
> 6.5. ARC review type: FastTrack
> 6.6. ARC Exposure: open
>
>
How will a client know which port is which? Are these exclusively for
control interfaces, or is here an intent to be able to use these ioctls
to access EDID data?
-- Garrett
More information about the opensolaris-arc
mailing list