@@ -2764,6 +2764,7 @@ static void dsi_te_timeout(unsigned long arg)
static void dsi_handle_framedone(int error)
{
const int channel = dsi.update_channel;
+ struct omap_dss_device *device = dsi.vc[channel].dssdev;
cancel_delayed_work(&dsi.framedone_timeout_work);
@@ -2774,6 +2775,9 @@ static void dsi_handle_framedone(int error)
dsi.bta_callback = NULL;
+ if (error == -ETIMEDOUT)
+ device->manager->disable(device->manager);
+
if (dsi.te_enabled) {
/* enable LP_RX_TO again after the TE */
REG_FLD_MOD(DSI_TIMING2, 1, 15, 15); /* LP_RX_TO */