Add a parameter for descriptor DMA and set it based on hardware
capabilities. This won't actually be used by the gadget until later,
when the descriptor DMA code is in place.
Signed-off-by: Vahram Aharonyan <vahrama@synopsys.com>
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
  *                     0 - No (default)
  *                     1 - Yes
  * @g_dma:              Enables gadget dma usage (default: autodetect).
+ * @g_dma_desc:         Enables gadget descriptor DMA (default: autodetect).
  * @g_rx_fifo_size:    The periodic rx fifo size for the device, in
  *                     DWORDS from 16-32768 (default: 2048 if
  *                     possible, otherwise autodetect).
 
        /* Gadget parameters */
        bool g_dma;
+       bool g_dma_desc;
        u16 g_rx_fifo_size;
        u16 g_np_tx_fifo_size;
        u32 g_tx_fifo_size[MAX_EPS_CHANNELS];
 
        return hsotg->params.g_dma;
 }
 
+/*
+ * using_desc_dma - return the descriptor DMA status of the driver.
+ * @hsotg: The driver state.
+ *
+ * Return true if we're using descriptor DMA.
+ */
+static inline bool using_desc_dma(struct dwc2_hsotg *hsotg)
+{
+       return hsotg->params.g_dma_desc;
+}
+
 /**
  * dwc2_gadget_incr_frame_num - Increments the targeted frame number.
  * @hs_ep: The endpoint
 
                            false, "gadget-dma",
                            true, false,
                            dma_capable);
+
+       /* DMA Descriptor */
+       dwc2_set_param_bool(hsotg, &p->g_dma_desc, false,
+                           "gadget-dma-desc",
+                           p->g_dma, false,
+                           !!hw->dma_desc_enable);
 }
 
 /**