topaz_priv->topaz_busy = 0;
#else
PSB_DEBUG_GENERAL("Kick command with sequence %x\n", sync_seq);
+ topaz_priv->topaz_busy = 1; /* This may be reset in topaz_setup_fw*/
pnw_topaz_kick_null_cmd(dev_priv, 0,
topaz_priv->topaz_sync_offset,
sync_seq, 1);
if (dev_priv->topaz_ctx == NULL)
return 0;
+ /*HW is stuck. Need to power off TopazSC to reset HW*/
+ if (topaz_priv->topaz_needs_reset)
+ return 0;
+
if (topaz_priv->topaz_busy)
return -EBUSY;
/* remind to reset topaz */
topaz_priv->topaz_needs_reset = 1;
+ topaz_priv->topaz_busy = 0;
- if (list_empty(&topaz_priv->topaz_queue)) {
- topaz_priv->topaz_busy = 0;
+ if (list_empty(&topaz_priv->topaz_queue))
return;
- }
/* flush all command in queue */
list_for_each_entry_safe(entry, next,