From: Johan Hovold Date: Thu, 21 Jan 2016 16:34:26 +0000 (+0100) Subject: greybus: firmware: abort if AP_READY fails X-Git-Tag: v4.14-rc1~2366^2~378^2~21^2~762 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8eff5109616f4fb1784aa311b7544ef29b8deae9;p=platform%2Fkernel%2Flinux-rpi.git greybus: firmware: abort if AP_READY fails Abort if the AP_READY request fails. Also update the comment suggesting that this operation was a temporary one. Reviewed-by: Viresh Kumar Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/greybus/firmware.c b/drivers/staging/greybus/firmware.c index 6d8fd0e..ee239a9 100644 --- a/drivers/staging/greybus/firmware.c +++ b/drivers/staging/greybus/firmware.c @@ -251,25 +251,23 @@ static int gb_firmware_connection_init(struct gb_connection *connection) firmware_es2_fixup_vid_pid(firmware); - /* - * Module's Bootrom needs a way to know (currently), when to start - * sending requests to the AP. The version request is sent before this - * routine is called, and if the module sends the request right after - * receiving version request, the connection->private field will be - * NULL. - * - * Fix this TEMPORARILY by sending an AP_READY request. - */ + /* Tell bootrom we're ready. */ ret = gb_operation_sync(connection, GB_FIRMWARE_TYPE_AP_READY, NULL, 0, NULL, 0); if (ret) { dev_err(&connection->bundle->dev, "failed to send AP READY: %d\n", ret); + goto err_free_firmware; } dev_dbg(&connection->bundle->dev, "%s: AP_READY sent\n", __func__); return 0; + +err_free_firmware: + kfree(firmware); + + return ret; } static void gb_firmware_connection_exit(struct gb_connection *connection)