@@ -62,7 +62,7 @@ static const struct arch_init_data arch_init_data[] __initconst = {
{
.lookup = {
.dev_id = NULL,
- .con_id = NULL,
+ .con_id = "eDP-1",
.provider = "privacy_screen-thinkpad_acpi",
},
.detect = detect_thinkpad_privacy_screen,
@@ -72,7 +72,7 @@ static const struct arch_init_data arch_init_data[] __initconst = {
{
.lookup = {
.dev_id = NULL,
- .con_id = NULL,
+ .con_id = "eDP-1",
.provider = "privacy_screen-GOOG0010:00",
},
.detect = detect_chromeos_privacy_screen,
@@ -3951,7 +3951,7 @@ intel_ddi_init_dp_connector(struct intel_digital_port *dig_port)
struct drm_device *dev = dig_port->base.base.dev;
struct drm_privacy_screen *privacy_screen;
- privacy_screen = drm_privacy_screen_get(dev->dev, NULL);
+ privacy_screen = drm_privacy_screen_get(dev->dev, connector->base.name);
if (!IS_ERR(privacy_screen)) {
drm_connector_attach_privacy_screen_provider(&connector->base,
privacy_screen);
@@ -10825,7 +10825,11 @@ void intel_modeset_driver_remove_nogem(struct drm_i915_private *i915)
bool intel_modeset_probe_defer(struct pci_dev *pdev)
{
+ static const char * const internal_panel_connector_names[] = {
+ "eDP-1",
+ };
struct drm_privacy_screen *privacy_screen;
+ int i;
/*
* apple-gmux is needed on dual GPU MacBook Pro
@@ -10835,11 +10839,14 @@ bool intel_modeset_probe_defer(struct pci_dev *pdev)
return true;
/* If the LCD panel has a privacy-screen, wait for it */
- privacy_screen = drm_privacy_screen_get(&pdev->dev, NULL);
- if (IS_ERR(privacy_screen) && PTR_ERR(privacy_screen) == -EPROBE_DEFER)
- return true;
+ for (i = 0; i < ARRAY_SIZE(internal_panel_connector_names); i++) {
+ privacy_screen = drm_privacy_screen_get(&pdev->dev,
+ internal_panel_connector_names[i]);
+ if (IS_ERR(privacy_screen) && PTR_ERR(privacy_screen) == -EPROBE_DEFER)
+ return true;
- drm_privacy_screen_put(privacy_screen);
+ drm_privacy_screen_put(privacy_screen);
+ }
return false;
}