Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: siano: Simplify smscore_load_firmware_from_file

The function is never called with a loadfirmware_handler, so we can
remove some dead code.

We can also use this as a excuse to remove some unused type definitions.

This fixes the following smatch warning:
drivers/media/common/siano/smscoreapi.c:1172 smscore_load_firmware_from_file() error: we previously assumed 'loadfirmware_handler' could be null (see line 1150)

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Reported-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Closes: https://lore.kernel.org/linux-media/99bd75a0-a6f3-4c47-bc89-70ffd87da756@xs4all.nl/T/#t
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

authored by

Ricardo Ribalda and committed by
Hans Verkuil
e7311aa4 812765cd

+5 -14
+5 -10
drivers/media/common/siano/smscoreapi.c
··· 1132 1132 * return: 0 on success, <0 on error. 1133 1133 */ 1134 1134 static int smscore_load_firmware_from_file(struct smscore_device_t *coredev, 1135 - int mode, 1136 - loadfirmware_t loadfirmware_handler) 1135 + int mode) 1137 1136 { 1138 1137 int rc = -ENOENT; 1139 1138 u8 *fw_buf; ··· 1146 1147 } 1147 1148 pr_debug("Firmware name: %s\n", fw_filename); 1148 1149 1149 - if (!loadfirmware_handler && 1150 - !(coredev->device_flags & SMS_DEVICE_FAMILY2)) 1150 + if (!(coredev->device_flags & SMS_DEVICE_FAMILY2)) 1151 1151 return -EINVAL; 1152 1152 1153 1153 rc = request_firmware(&fw, fw_filename, coredev->device); ··· 1164 1166 memcpy(fw_buf, fw->data, fw->size); 1165 1167 fw_buf_size = fw->size; 1166 1168 1167 - rc = (coredev->device_flags & SMS_DEVICE_FAMILY2) ? 1168 - smscore_load_firmware_family2(coredev, fw_buf, fw_buf_size) 1169 - : loadfirmware_handler(coredev->context, fw_buf, 1170 - fw_buf_size); 1169 + rc = smscore_load_firmware_family2(coredev, fw_buf, 1170 + fw_buf_size); 1171 1171 } 1172 1172 1173 1173 kfree(fw_buf); ··· 1349 1353 } 1350 1354 1351 1355 if (!(coredev->modes_supported & (1 << mode))) { 1352 - rc = smscore_load_firmware_from_file(coredev, 1353 - mode, NULL); 1356 + rc = smscore_load_firmware_from_file(coredev, mode); 1354 1357 if (rc >= 0) 1355 1358 pr_debug("firmware download success\n"); 1356 1359 } else {
-4
drivers/media/common/siano/smscoreapi.h
··· 97 97 typedef int (*setmode_t)(void *context, int mode); 98 98 typedef void (*detectmode_t)(void *context, int *mode); 99 99 typedef int (*sendrequest_t)(void *context, void *buffer, size_t size); 100 - typedef int (*loadfirmware_t)(void *context, void *buffer, size_t size); 101 100 typedef int (*preload_t)(void *context); 102 101 typedef int (*postload_t)(void *context); 103 102 ··· 1101 1102 extern void smscore_unregister_device(struct smscore_device_t *coredev); 1102 1103 1103 1104 extern int smscore_start_device(struct smscore_device_t *coredev); 1104 - extern int smscore_load_firmware(struct smscore_device_t *coredev, 1105 - char *filename, 1106 - loadfirmware_t loadfirmware_handler); 1107 1105 1108 1106 extern int smscore_set_device_mode(struct smscore_device_t *coredev, int mode); 1109 1107 extern int smscore_get_device_mode(struct smscore_device_t *coredev);