summaryrefslogtreecommitdiff
path: root/include/uapi
diff options
context:
space:
mode:
authorGeoffrey D. Bennett <g@b4.vu>2023-12-19 20:50:29 +0300
committerTakashi Iwai <tiwai@suse.de>2023-12-29 17:39:27 +0300
commit6a7508e64ee3e8320c886020bcdcd70f7fcbff2c (patch)
treec178209a35f7290a5de9f0837db883c2f0fc7cf1 /include/uapi
parent337b2f0e778f78f61972497994b70a05e8f6447d (diff)
downloadlinux-6a7508e64ee3e8320c886020bcdcd70f7fcbff2c.tar.xz
ALSA: scarlett2: Add ioctl commands to erase flash segments
Add ioctls: - SCARLETT2_IOCTL_SELECT_FLASH_SEGMENT - SCARLETT2_IOCTL_ERASE_FLASH_SEGMENT - SCARLETT2_IOCTL_GET_ERASE_PROGRESS The settings or the firmware flash segment can be selected and then erased (asynchronous operation), and the erase progress can be monitored. If the erase progress is not monitored, then subsequent hwdep operations will block until the erase is complete. Once the erase is started, ALSA controls that communicate with the device will all return -EBUSY, and the device must be rebooted. Signed-off-by: Geoffrey D. Bennett <g@b4.vu> Link: https://lore.kernel.org/r/227409adb672f174bf3db211e9bda016fb4646ea.1703001053.git.g@b4.vu Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/sound/scarlett2.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/uapi/sound/scarlett2.h b/include/uapi/sound/scarlett2.h
index ec0b7da335ff..d0ff38ffa154 100644
--- a/include/uapi/sound/scarlett2.h
+++ b/include/uapi/sound/scarlett2.h
@@ -31,4 +31,24 @@
/* Reboot */
#define SCARLETT2_IOCTL_REBOOT _IO('S', 0x61)
+/* Select flash segment */
+#define SCARLETT2_SEGMENT_ID_SETTINGS 0
+#define SCARLETT2_SEGMENT_ID_FIRMWARE 1
+#define SCARLETT2_SEGMENT_ID_COUNT 2
+
+#define SCARLETT2_IOCTL_SELECT_FLASH_SEGMENT _IOW('S', 0x62, int)
+
+/* Erase selected flash segment */
+#define SCARLETT2_IOCTL_ERASE_FLASH_SEGMENT _IO('S', 0x63)
+
+/* Get selected flash segment erase progress
+ * 1 through to num_blocks, or 255 for complete
+ */
+struct scarlett2_flash_segment_erase_progress {
+ unsigned char progress;
+ unsigned char num_blocks;
+};
+#define SCARLETT2_IOCTL_GET_ERASE_PROGRESS \
+ _IOR('S', 0x64, struct scarlett2_flash_segment_erase_progress)
+
#endif /* __UAPI_SOUND_SCARLETT2_H */