int cros_ec_check_feature(struct udevice *dev, int feature) { struct ec_response_get_features r; int rv; rv = ec_command(dev, EC_CMD_GET_FEATURES, 0, &r, sizeof(r), NULL, 0); if (rv) return rv; if (feature >= 8 * sizeof(r.flags)) return -1; return r.flags[feature / 32] & EC_FEATURE_MASK_0(feature); }
int google_chromeec_check_feature(int feature) { struct chromeec_command cmd; struct ec_response_get_features r; cmd.cmd_code = EC_CMD_GET_FEATURES; cmd.cmd_version = 0; cmd.cmd_size_in = 0; cmd.cmd_data_out = &r; cmd.cmd_size_out = sizeof(r); cmd.cmd_dev_index = 0; if (google_chromeec_command(&cmd) != 0) return -1; if (feature >= 8 * sizeof(r.flags)) return -1; return r.flags[feature / 32] & EC_FEATURE_MASK_0(feature); }