greybus: don't let i2c code assume non-null payload pointer
This is in preparation for an upcoming patch, which makes the
payload pointer be NULL when a message has zero bytes of payload.
It ensures a null payload pointer never gets dereferenced. To do
this we pass the response structure to gb_i2c_transfer_response()
rather than just its data, and if it's null, returning immediately.
Rearrange the logic in gb_i2c_transfer_operation() a bit.
Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>