mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-14 01:56:45 +07:00
usb: dwc2: gadget: add device tree property to enable dma
* Add an of specific function to parse device node properties. * Enable dma usage only if device tree property 'g_use_dma' is present. Tested-by: Robert Baldyga <r.baldyga@samsung.com> Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Gregory Herrero <gregory.herrero@intel.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
f509004476
commit
edd74be830
@ -563,6 +563,7 @@ struct dwc2_hw_params {
|
||||
* @setup: NAK management for EP0 SETUP
|
||||
* @last_rst: Time of last reset
|
||||
* @eps: The endpoints being supplied to the gadget framework
|
||||
* @g_using_dma: Indicate if dma usage is enabled
|
||||
*/
|
||||
struct dwc2_hsotg {
|
||||
struct device *dev;
|
||||
@ -696,6 +697,7 @@ struct dwc2_hsotg {
|
||||
unsigned int setup:1;
|
||||
unsigned long last_rst;
|
||||
struct s3c_hsotg_ep *eps;
|
||||
u32 g_using_dma;
|
||||
#endif /* CONFIG_USB_DWC2_PERIPHERAL || CONFIG_USB_DWC2_DUAL_ROLE */
|
||||
};
|
||||
|
||||
|
@ -85,11 +85,11 @@ static void s3c_hsotg_dump(struct dwc2_hsotg *hsotg);
|
||||
* a core reset. This means we either need to fix the gadgets to take
|
||||
* account of DMA alignment, or add bounce buffers (yuerk).
|
||||
*
|
||||
* Until this issue is sorted out, we always return 'false'.
|
||||
* g_using_dma is set depending on dts flag.
|
||||
*/
|
||||
static inline bool using_dma(struct dwc2_hsotg *hsotg)
|
||||
{
|
||||
return false; /* support is not complete */
|
||||
return hsotg->g_using_dma;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -3402,6 +3402,18 @@ static void s3c_hsotg_delete_debug(struct dwc2_hsotg *hsotg)
|
||||
debugfs_remove(hsotg->debug_root);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static void s3c_hsotg_of_probe(struct dwc2_hsotg *hsotg)
|
||||
{
|
||||
struct device_node *np = hsotg->dev->of_node;
|
||||
|
||||
/* Enable dma if requested in device tree */
|
||||
hsotg->g_using_dma = of_property_read_bool(np, "g-use-dma");
|
||||
}
|
||||
#else
|
||||
static inline void s3c_hsotg_of_probe(struct dwc2_hsotg *hsotg) { }
|
||||
#endif
|
||||
|
||||
/**
|
||||
* dwc2_gadget_init - init function for gadget
|
||||
* @dwc2: The data structure for the DWC2 driver.
|
||||
@ -3419,6 +3431,8 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg, int irq)
|
||||
/* Set default UTMI width */
|
||||
hsotg->phyif = GUSBCFG_PHYIF16;
|
||||
|
||||
s3c_hsotg_of_probe(hsotg);
|
||||
|
||||
/*
|
||||
* If platform probe couldn't find a generic PHY or an old style
|
||||
* USB PHY, fall back to pdata
|
||||
|
Loading…
Reference in New Issue
Block a user