Skip to content

Commit

Permalink
platform/chrome: cros_ec_typec: Check for EC device
Browse files Browse the repository at this point in the history
The Type C ACPI device on older Chromebooks is not generated correctly
(since their EC firmware doesn't support the new commands required). In
such cases, the crafted ACPI device doesn't have an EC parent, and it is
therefore not useful (it shouldn't be generated in the first place since
the EC firmware doesn't support any of the Type C commands).

To handle devices which use these older firmware revisions, check for
the parent EC device handle, and fail the probe if it's not found.

Fixes: fdc6b21 ("platform/chrome: Add Type C connector class driver")
Reported-by: Alyssa Ross <[email protected]>
Reviewed-by: Tzung-Bi Shih <[email protected]>
Signed-off-by: Prashant Malani <[email protected]>
Acked-by: Heikki Krogerus <[email protected]>
Reviewed-by: Alyssa Ross <[email protected]>
Tested-by: Alyssa Ross <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Benson Leung <[email protected]>
  • Loading branch information
Prashant Malani authored and bleungatchromium committed Feb 1, 2022
1 parent 53eeb07 commit ffebd90
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/platform/chrome/cros_ec_typec.c
Original file line number Diff line number Diff line change
Expand Up @@ -1076,7 +1076,13 @@ static int cros_typec_probe(struct platform_device *pdev)
return -ENOMEM;

typec->dev = dev;

typec->ec = dev_get_drvdata(pdev->dev.parent);
if (!typec->ec) {
dev_err(dev, "couldn't find parent EC device\n");
return -ENODEV;
}

platform_set_drvdata(pdev, typec);

ret = cros_typec_get_cmd_version(typec);
Expand Down

0 comments on commit ffebd90

Please sign in to comment.