greybus: firmware: Fix incorrect firmware file's name
authorViresh Kumar <viresh.kumar@linaro.org>
Wed, 9 Sep 2015 15:38:31 +0000 (21:08 +0530)
committerGreg Kroah-Hartman <gregkh@google.com>
Tue, 15 Sep 2015 04:52:16 +0000 (21:52 -0700)
All the id-fields are 32 bit long instead of 16 bits and so we will need
8 characters per field instead of four. Also the stage field is only one
byte long and so needs just two characters to represent it.

Reported-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/firmware.c

index fbc6048..b8f33e7 100644 (file)
@@ -27,7 +27,7 @@ static int download_firmware(struct gb_firmware *firmware, u8 stage)
 {
        struct gb_connection *connection = firmware->connection;
        struct gb_interface *intf = connection->bundle->intf;
-       char firmware_name[32];
+       char firmware_name[46];
 
        /* Already have a firmware, free it */
        if (firmware->fw)
@@ -39,7 +39,7 @@ static int download_firmware(struct gb_firmware *firmware, u8 stage)
         * XXX Name it properly..
         */
        snprintf(firmware_name, sizeof(firmware_name),
-                "ara:%04x:%04x:%04x:%04x:%04x.fw",
+                "ara:%08x:%08x:%08x:%08x:%02x.fw",
                 intf->unipro_mfg_id, intf->unipro_prod_id,
                 intf->ara_vend_id, intf->ara_prod_id, stage);