Lines Matching refs:mcu

20 #include <linux/turris-omnia-mcu-interface.h>
22 #include "turris-omnia-mcu.h"
27 struct omnia_mcu *mcu = dev_id;
30 err = omnia_cmd_read(mcu->client, OMNIA_CMD_CRYPTO_COLLECT_SIGNATURE,
35 guard(mutex)(&mcu->sign_lock);
37 if (mcu->sign_requested) {
38 mcu->sign_err = err;
40 memcpy(mcu->signature, &reply[1],
42 mcu->sign_requested = false;
43 complete(&mcu->msg_signed);
52 struct omnia_mcu *mcu = dev_get_drvdata(turris_signing_key_get_dev(key));
56 scoped_guard(mutex, &mcu->sign_lock) {
57 if (mcu->sign_requested)
63 err = omnia_cmd_write_read(mcu->client, cmd, sizeof(cmd),
71 mcu->sign_requested = true;
74 if (wait_for_completion_interruptible(&mcu->msg_signed))
77 guard(mutex)(&mcu->sign_lock);
79 if (mcu->sign_err)
80 return mcu->sign_err;
82 memcpy(signature, mcu->signature, OMNIA_MCU_CRYPTO_SIGNATURE_LEN);
85 memzero_explicit(mcu->signature, sizeof(mcu->signature));
92 struct omnia_mcu *mcu = dev_get_drvdata(turris_signing_key_get_dev(key));
94 return mcu->board_public_key;
107 static int omnia_mcu_read_public_key(struct omnia_mcu *mcu)
112 err = omnia_cmd_read(mcu->client, OMNIA_CMD_CRYPTO_GET_PUBLIC_KEY,
120 memcpy(mcu->board_public_key, &reply[1],
126 int omnia_mcu_register_keyctl(struct omnia_mcu *mcu)
128 struct device *dev = &mcu->client->dev;
132 if (!(mcu->features & OMNIA_FEAT_CRYPTO))
135 err = omnia_mcu_read_public_key(mcu);
140 err = devm_mutex_init(dev, &mcu->sign_lock);
144 init_completion(&mcu->msg_signed);
146 err = omnia_mcu_request_irq(mcu, OMNIA_INT_MESSAGE_SIGNED,
148 "turris-omnia-mcu-keyctl");
154 mcu->board_serial_number);