if (!haptics->arizona->dapm) {
dev_err(arizona->dev, "No DAPM context\n"); return;
}
if (haptics->intensity) {
ret = regmap_update_bits(arizona->regmap,
ARIZONA_HAPTICS_PHASE_2_INTENSITY,
ARIZONA_PHASE2_INTENSITY_MASK,
haptics->intensity); if (ret != 0) {
dev_err(arizona->dev, "Failed to set intensity: %d\n",
ret); return;
}
/* This enable sequence will be a noop if already enabled */
ret = regmap_update_bits(arizona->regmap,
ARIZONA_HAPTICS_CONTROL_1,
ARIZONA_HAP_CTRL_MASK,
1 << ARIZONA_HAP_CTRL_SHIFT); if (ret != 0) {
dev_err(arizona->dev, "Failed to start haptics: %d\n",
ret); return;
}
ret = snd_soc_component_enable_pin(component, "HAPTICS"); if (ret != 0) {
dev_err(arizona->dev, "Failed to start HAPTICS: %d\n",
ret); return;
}
ret = snd_soc_dapm_sync(arizona->dapm); if (ret != 0) {
dev_err(arizona->dev, "Failed to sync DAPM: %d\n",
ret); return;
}
} else { /* This disable sequence will be a noop if already enabled */
ret = snd_soc_component_disable_pin(component, "HAPTICS"); if (ret != 0) {
dev_err(arizona->dev, "Failed to disable HAPTICS: %d\n",
ret); return;
}
ret = snd_soc_dapm_sync(arizona->dapm); if (ret != 0) {
dev_err(arizona->dev, "Failed to sync DAPM: %d\n",
ret); return;
}
ret = regmap_update_bits(arizona->regmap,
ARIZONA_HAPTICS_CONTROL_1,
ARIZONA_HAP_CTRL_MASK, 0); if (ret != 0) {
dev_err(arizona->dev, "Failed to stop haptics: %d\n",
ret); return;
}
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.