From: Ma, L. <li...@in...> - 2009-07-02 02:39:30
|
>-----Original Message----- >From: Jesse Barnes [mailto:jb...@vi...] >Sent: 2009年7月1日 1:42 >To: David Müller (ELSOFT AG) >Cc: dri...@li...; Ma, Ling >Subject: Re: [Kernel 2.6.30] Only GPIOA is used as CRTDDC bus > >On Tue, 30 Jun 2009 11:46:04 +0200 >"David Müller (ELSOFT AG)" <d.m...@el...> wrote: > >> Hello >> >> While testing Linux kernel 2.6.30 and the i915 driver, i noticed that >> GPIOA is hardwired to be used as the only possible CRTDDC bus. >> >> code snippet from drivers/gpu/drm/i915/intel_crt.c: >> >> 441 /* Set up the DDC bus. */ >> 442 intel_output->ddc_bus = intel_i2c_create(dev, GPIOA, >> "CRTDDC_A"); 443 if (!intel_output->ddc_bus) { >> >> >> Using the VGA BIOS configuration program, the I2C bus used for CRTDDC >> can be changed according to HW requirements (especially if a DVI-I >> connector is present on the board), so the above restriction brakes >> all platforms not using GPIOA as their CRTDDC bus. >> >> The Xorg Intel graphics driver is at least a little bit more flexible >> by probing GPIOD + GPIOE as well for possible attached CRT devices, >> but i'm not sure if this really sufficient in all cases. >> >> Shouldn't the i915 driver use the information provided by the VBT >> ("crt_ddc_gmbus_pin" field in the "bdb_general_definitions" block) to >> figure out which I2C to use for CRTDDC? > >Yes, you're probably right. Cc'ing Ma Ling, who's been working in this >area, for comment. We have one DG45ID board connected VGA by DVI-I port, however bmp_CRT_DDC_Pins from vbt is always 0x02 which means GPIOA, so we can not depend on the value, and have to try GPIOD or GPIOE. It only impact G4X series platform. Thanks Ma Ling crt_ddc_gmbus_pin >Jesse Barnes, Intel Open Source Technology Center |