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
BugLink: https://bugs.launchpad.net/bugs/1969110

commit ffebd90 upstream.

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]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
(cherry picked from commit 3fc81968625a66ae54db37b7188f32edd0c6752c)
Signed-off-by: Paolo Pisati <[email protected]>
  • Loading branch information
Prashant Malani authored and smb49 committed May 20, 2022
1 parent 20f49f4 commit a976a55
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 @@ -1106,7 +1106,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 a976a55

Please sign in to comment.