diff --git a/msm/dsi/dsi_panel.c b/msm/dsi/dsi_panel.c index 1ad44a4914fe..012a797f82b0 100644 --- a/msm/dsi/dsi_panel.c +++ b/msm/dsi/dsi_panel.c @@ -4054,6 +4054,7 @@ static int dsi_panel_get_pwr_mode(struct dsi_panel *panel, u8 *val) struct dsi_display *display = NULL; u32 flags; u8 payload = MIPI_DCS_GET_POWER_MODE; + u32 rx_buf; display = container_of(panel->host, struct dsi_display, host); if (!display) { @@ -4073,7 +4074,7 @@ static int dsi_panel_get_pwr_mode(struct dsi_panel *panel, u8 *val) cmd.msg.tx_len = 1; cmd.msg.tx_buf = &payload; cmd.msg.rx_len = 1; - cmd.msg.rx_buf = val; + cmd.msg.rx_buf = &rx_buf; rc = dsi_display_cmd_mipi_transfer(display, &cmd.msg, flags); if (rc <= 0) { @@ -4081,6 +4082,8 @@ static int dsi_panel_get_pwr_mode(struct dsi_panel *panel, u8 *val) rc = -EIO; } else rc = 0; + + *val = rx_buf & 0xFF; end: return rc;