|
@@ -712,6 +712,7 @@ void cdv_intel_lvds_init(struct drm_device *dev,
|
|
* Attempt to get the fixed panel mode from DDC. Assume that the
|
|
* Attempt to get the fixed panel mode from DDC. Assume that the
|
|
* preferred mode is the right one.
|
|
* preferred mode is the right one.
|
|
*/
|
|
*/
|
|
|
|
+ mutex_lock(&dev->mode_config.mutex);
|
|
psb_intel_ddc_get_modes(connector,
|
|
psb_intel_ddc_get_modes(connector,
|
|
&gma_encoder->ddc_bus->adapter);
|
|
&gma_encoder->ddc_bus->adapter);
|
|
list_for_each_entry(scan, &connector->probed_modes, head) {
|
|
list_for_each_entry(scan, &connector->probed_modes, head) {
|
|
@@ -772,10 +773,12 @@ void cdv_intel_lvds_init(struct drm_device *dev,
|
|
}
|
|
}
|
|
|
|
|
|
out:
|
|
out:
|
|
|
|
+ mutex_unlock(&dev->mode_config.mutex);
|
|
drm_sysfs_connector_add(connector);
|
|
drm_sysfs_connector_add(connector);
|
|
return;
|
|
return;
|
|
|
|
|
|
failed_find:
|
|
failed_find:
|
|
|
|
+ mutex_unlock(&dev->mode_config.mutex);
|
|
printk(KERN_ERR "Failed find\n");
|
|
printk(KERN_ERR "Failed find\n");
|
|
if (gma_encoder->ddc_bus)
|
|
if (gma_encoder->ddc_bus)
|
|
psb_intel_i2c_destroy(gma_encoder->ddc_bus);
|
|
psb_intel_i2c_destroy(gma_encoder->ddc_bus);
|