]> Pileus Git - ~andy/linux/blobdiff - drivers/video/exynos/exynos_mipi_dsi_common.c
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[~andy/linux] / drivers / video / exynos / exynos_mipi_dsi_common.c
index 520fc9bd887b46356f8819ff3c215a674675a93d..85edabfdef5acb6e561ced3a0411bc0e44ad8bf9 100644 (file)
@@ -220,7 +220,7 @@ int exynos_mipi_dsi_wr_data(struct mipi_dsim_device *dsim, unsigned int data_id,
        case MIPI_DSI_DCS_LONG_WRITE:
        {
                unsigned int size, payload = 0;
-               INIT_COMPLETION(dsim_wr_comp);
+               reinit_completion(&dsim_wr_comp);
 
                size = data_size * 4;
 
@@ -356,7 +356,7 @@ int exynos_mipi_dsi_rd_data(struct mipi_dsim_device *dsim, unsigned int data_id,
        msleep(20);
 
        mutex_lock(&dsim->lock);
-       INIT_COMPLETION(dsim_rd_comp);
+       reinit_completion(&dsim_rd_comp);
        exynos_mipi_dsi_rd_tx_header(dsim,
                MIPI_DSI_SET_MAXIMUM_RETURN_PACKET_SIZE, req_size);
 
@@ -376,6 +376,7 @@ int exynos_mipi_dsi_rd_data(struct mipi_dsim_device *dsim, unsigned int data_id,
                        "data id %x is not supported current DSI spec.\n",
                        data_id);
 
+               mutex_unlock(&dsim->lock);
                return -EINVAL;
        }
 
@@ -667,7 +668,7 @@ int exynos_mipi_dsi_init_dsim(struct mipi_dsim_device *dsim)
        default:
                dev_info(dsim->dev, "data lane is invalid.\n");
                return -EINVAL;
-       };
+       }
 
        exynos_mipi_dsi_sw_reset(dsim);
        exynos_mipi_dsi_func_reset(dsim);