Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1986 → Rev 2160

/drivers/video/drm/radeon/radeon_i2c.c
32,10 → 32,10
* radeon_ddc_probe
*
*/
bool radeon_ddc_probe(struct radeon_connector *radeon_connector)
bool radeon_ddc_probe(struct radeon_connector *radeon_connector, bool requires_extended_probe)
{
u8 out_buf[] = { 0x0, 0x0};
u8 buf[2];
u8 out = 0x0;
u8 buf[8];
int ret;
struct i2c_msg msgs[] = {
{
42,7 → 42,7
.addr = 0x50,
.flags = 0,
.len = 1,
.buf = out_buf,
.buf = &out,
},
{
.addr = 0x50,
52,16 → 52,32
}
};
 
/* Read 8 bytes from i2c for extended probe of EDID header */
if (requires_extended_probe)
msgs[1].len = 8;
 
/* on hw with routers, select right port */
if (radeon_connector->router.ddc_valid)
radeon_router_select_ddc_port(radeon_connector);
 
ret = i2c_transfer(&radeon_connector->ddc_bus->adapter, msgs, 2);
if (ret == 2)
return true;
 
if (ret != 2)
/* Couldn't find an accessible DDC on this connector */
return false;
if (requires_extended_probe) {
/* Probe also for valid EDID header
* EDID header starts with:
* 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00.
* Only the first 6 bytes must be valid as
* drm_edid_block_valid() can fix the last 2 bytes */
if (drm_edid_header_is_valid(buf) < 6) {
/* Couldn't find an accessible EDID on this
* connector */
return false;
}
}
return true;
}
 
/* bit banging i2c */