static int qede_stop_txq(struct qede_dev *edev,
                         struct qede_tx_queue *txq, int rss_id)
 {
+       /* delete doorbell from doorbell recovery mechanism */
+       edev->ops->common->db_recovery_del(edev->cdev, txq->doorbell_addr,
+                                          &txq->tx_db);
+
        return edev->ops->q_tx_stop(edev->cdev, rss_id, txq->handle);
 }
 
                  DQ_XCM_ETH_TX_BD_PROD_CMD);
        txq->tx_db.data.agg_flags = DQ_XCM_ETH_DQ_CF_CMD;
 
+       /* register doorbell with doorbell recovery mechanism */
+       rc = edev->ops->common->db_recovery_add(edev->cdev, txq->doorbell_addr,
+                                               &txq->tx_db, DB_REC_WIDTH_32B,
+                                               DB_REC_KERNEL);
+
        return rc;
 }