diff --git a/epicardium/drivers/display/lcd.c b/epicardium/drivers/display/lcd.c
index ac0e6c30cc62ad4deb800d2347c3a6aecdfe8c35..f144ce83eb33e7f87b0284bcf2834085fc56a5f7 100644
--- a/epicardium/drivers/display/lcd.c
+++ b/epicardium/drivers/display/lcd.c
@@ -161,6 +161,13 @@ static void lcd_hard_reset(void)
 
 void lcd_set_sleep(bool sleep)
 {
+	static int current_sleep = -1;
+
+	if (sleep == current_sleep) {
+		return;
+	}
+	current_sleep = sleep;
+
 	if (sleep) {
 		lcd_send_command(LCD_SLPIN, NULL, 0);
 	} else {