|
@@ -5167,10 +5167,14 @@ static int parse_bmp_structure(struct drm_device *dev, struct nvbios *bios, unsi
|
|
bios->legacy.i2c_indices.crt = bios->data[legacy_i2c_offset];
|
|
bios->legacy.i2c_indices.crt = bios->data[legacy_i2c_offset];
|
|
bios->legacy.i2c_indices.tv = bios->data[legacy_i2c_offset + 1];
|
|
bios->legacy.i2c_indices.tv = bios->data[legacy_i2c_offset + 1];
|
|
bios->legacy.i2c_indices.panel = bios->data[legacy_i2c_offset + 2];
|
|
bios->legacy.i2c_indices.panel = bios->data[legacy_i2c_offset + 2];
|
|
- bios->dcb.i2c[0].write = bios->data[legacy_i2c_offset + 4];
|
|
|
|
- bios->dcb.i2c[0].read = bios->data[legacy_i2c_offset + 5];
|
|
|
|
- bios->dcb.i2c[1].write = bios->data[legacy_i2c_offset + 6];
|
|
|
|
- bios->dcb.i2c[1].read = bios->data[legacy_i2c_offset + 7];
|
|
|
|
|
|
+ if (bios->data[legacy_i2c_offset + 4])
|
|
|
|
+ bios->dcb.i2c[0].write = bios->data[legacy_i2c_offset + 4];
|
|
|
|
+ if (bios->data[legacy_i2c_offset + 5])
|
|
|
|
+ bios->dcb.i2c[0].read = bios->data[legacy_i2c_offset + 5];
|
|
|
|
+ if (bios->data[legacy_i2c_offset + 6])
|
|
|
|
+ bios->dcb.i2c[1].write = bios->data[legacy_i2c_offset + 6];
|
|
|
|
+ if (bios->data[legacy_i2c_offset + 7])
|
|
|
|
+ bios->dcb.i2c[1].read = bios->data[legacy_i2c_offset + 7];
|
|
|
|
|
|
if (bmplength > 74) {
|
|
if (bmplength > 74) {
|
|
bios->fmaxvco = ROM32(bmp[67]);
|
|
bios->fmaxvco = ROM32(bmp[67]);
|