The patch titled sigma-firmware-loader-for-analog-devices-sigmastudio-fix has been added to the -mm tree. Its filename is sigma-firmware-loader-for-analog-devices-sigmastudio-fix.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: sigma-firmware-loader-for-analog-devices-sigmastudio-fix From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Cc: Mike Frysinger <vapier@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/firmware/sigma.c | 53 +++++++++++++++++++------------------ include/linux/sigma.h | 10 +++--- 2 files changed, 33 insertions(+), 30 deletions(-) diff -puN drivers/firmware/sigma.c~sigma-firmware-loader-for-analog-devices-sigmastudio-fix drivers/firmware/sigma.c --- a/drivers/firmware/sigma.c~sigma-firmware-loader-for-analog-devices-sigmastudio-fix +++ a/drivers/firmware/sigma.c @@ -1,9 +1,9 @@ /* * Load Analog Devices SigmaStudio firmware files * -Â * Copyright 2009 Analog Devices Inc. -Â * -Â * Licensed under the GPL-2 or later. + * Copyright 2009 Analog Devices Inc. + * + * Licensed under the GPL-2 or later. */ #include <linux/crc32.h> @@ -14,7 +14,8 @@ #include <linux/sigma.h> /* Return: 0==OK, <0==error, =1 ==no more actions */ -int process_sigma_action(struct i2c_client *client, struct sigma_firmware *ssfw) +static int process_sigma_action(struct i2c_client *client, + struct sigma_firmware *ssfw) { struct sigma_action *sa = (void *)(ssfw->fw->data + ssfw->pos); size_t len = sigma_action_len(sa); @@ -24,27 +25,27 @@ int process_sigma_action(struct i2c_clie sa->instr, sa->addr, len); switch (sa->instr) { - case SIGMA_ACTION_WRITEXBYTES: - case SIGMA_ACTION_WRITESINGLE: - case SIGMA_ACTION_WRITESAFELOAD: - if (ssfw->fw->size < ssfw->pos + len) - return -EINVAL; - ret = i2c_master_send(client, (void *)&sa->addr, len); - if (ret < 0) - return -EINVAL; - break; - - case SIGMA_ACTION_DELAY: - ret = 0; - udelay(len); - len = 0; - break; + case SIGMA_ACTION_WRITEXBYTES: + case SIGMA_ACTION_WRITESINGLE: + case SIGMA_ACTION_WRITESAFELOAD: + if (ssfw->fw->size < ssfw->pos + len) + return -EINVAL; + ret = i2c_master_send(client, (void *)&sa->addr, len); + if (ret < 0) + return -EINVAL; + break; - case SIGMA_ACTION_END: - return 1; + case SIGMA_ACTION_DELAY: + ret = 0; + udelay(len); + len = 0; + break; - default: - return -EINVAL; + case SIGMA_ACTION_END: + return 1; + + default: + return -EINVAL; } /* when arrive here ret=0 or sent data */ @@ -52,7 +53,8 @@ int process_sigma_action(struct i2c_clie return ssfw->pos == ssfw->fw->size; } -int process_sigma_actions(struct i2c_client *client, struct sigma_firmware *ssfw) +static int process_sigma_actions(struct i2c_client *client, + struct sigma_firmware *ssfw) { pr_debug("%s: processing %p\n", __func__, ssfw); @@ -78,7 +80,8 @@ int process_sigma_firmware(struct i2c_cl /* first load the blob */ ret = request_firmware(&fw, name, &client->dev); if (ret) { - pr_debug("%s: request_firmware() failed with %i\n", __func__, ret); + pr_debug("%s: request_firmware() failed with %i\n", + __func__, ret); return ret; } ssfw.fw = fw; diff -puN include/linux/sigma.h~sigma-firmware-loader-for-analog-devices-sigmastudio-fix include/linux/sigma.h --- a/include/linux/sigma.h~sigma-firmware-loader-for-analog-devices-sigmastudio-fix +++ a/include/linux/sigma.h @@ -1,9 +1,9 @@ /* * Load firmware files from Analog Devices SigmaStudio * -Â * Copyright 2009 Analog Devices Inc. -Â * -Â * Licensed under the GPL-2 or later. + * Copyright 2009 Analog Devices Inc. + * + * Licensed under the GPL-2 or later. */ #ifndef __SIGMA_FIRMWARE_H__ @@ -12,6 +12,8 @@ #include <linux/firmware.h> #include <linux/types.h> +struct i2c_client; + #define SIGMA_MAGIC "ADISIGM" struct sigma_firmware { @@ -53,8 +55,6 @@ static inline size_t sigma_action_size(s return sizeof(*sa) + payload_len + (payload_len % 2); } -struct i2c_client; - extern int process_sigma_firmware(struct i2c_client *client, const char *name); #endif _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are linux-next.patch next-remove-localversion.patch i-need-old-gcc.patch arch-alpha-kernel-systblss-remove-debug-check.patch mm-compaction-prevent-division-by-zero-during-user-requested-compaction-fix.patch fs-direct-ioc-dont-try-to-allocate-more-than-bio_max_pages-in-a-bio-fix.patch arch-alpha-include-asm-ioh-s-extern-inline-static-inline.patch mm-vmap-area-cache.patch drivers-gpu-drm-radeon-atomc-fix-warning.patch leds-route-kbd-leds-through-the-generic-leds-layer.patch drivers-message-fusion-mptsasc-fix-warning.patch mm.patch frv-duplicate-output_buffer-of-e03-checkpatch-fixes.patch hpet-factor-timer-allocate-from-open.patch sigma-firmware-loader-for-analog-devices-sigmastudio-fix.patch epoll-fix-compiler-warning-and-optimize-the-non-blocking-path.patch lib-hexdumpc-make-hex2bin-return-the-updated-src-address.patch fs-binfmt_miscc-use-kernels-hex_to_bin-method-fix.patch fs-binfmt_miscc-use-kernels-hex_to_bin-method-fix-fix.patch exec_domain-establish-a-linux32-domain-on-config_compat-systems.patch scatterlist-new-helper-functions.patch journal_add_journal_head-debug.patch slab-leaks3-default-y.patch put_bh-debug.patch memblock-add-input-size-checking-to-memblock_find_region.patch memblock-add-input-size-checking-to-memblock_find_region-fix.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html