drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking
[platform/kernel/linux-starfive.git] / drivers / gpu / drm / bridge / nxp-ptn3460.c
index d819202..9b7eb8c 100644 (file)
@@ -56,13 +56,13 @@ static int ptn3460_read_bytes(struct ptn3460_bridge *ptn_bridge, char addr,
        ret = i2c_master_send(ptn_bridge->client, &addr, 1);
        if (ret <= 0) {
                DRM_ERROR("Failed to send i2c command, ret=%d\n", ret);
-               return ret;
+               return ret ?: -EIO;
        }
 
        ret = i2c_master_recv(ptn_bridge->client, buf, len);
-       if (ret <= 0) {
+       if (ret != len) {
                DRM_ERROR("Failed to recv i2c data, ret=%d\n", ret);
-               return ret;
+               return ret < 0 ? ret : -EIO;
        }
 
        return 0;
@@ -78,9 +78,9 @@ static int ptn3460_write_byte(struct ptn3460_bridge *ptn_bridge, char addr,
        buf[1] = val;
 
        ret = i2c_master_send(ptn_bridge->client, buf, ARRAY_SIZE(buf));
-       if (ret <= 0) {
+       if (ret != ARRAY_SIZE(buf)) {
                DRM_ERROR("Failed to send i2c command, ret=%d\n", ret);
-               return ret;
+               return ret < 0 ? ret : -EIO;
        }
 
        return 0;