diff options
author | John Youn <johnyoun@synopsys.com> | 2016-11-04 03:55:55 +0300 |
---|---|---|
committer | Felipe Balbi <felipe.balbi@linux.intel.com> | 2016-11-18 14:54:11 +0300 |
commit | 334bbd4ebe1b34e1640118a5bfcd48f65d96242f (patch) | |
tree | 2be8c7a3f5550204a2685e091e71aeee749adb0f /drivers/usb/dwc2/params.c | |
parent | bea8e86c51cf9cf637e5bf0610d14674e9115783 (diff) | |
download | linux-334bbd4ebe1b34e1640118a5bfcd48f65d96242f.tar.xz |
usb: dwc2: Move parameter initialization into params.c
Consolidate and move all the parameter initialization code from the
probe function to params.c.
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Diffstat (limited to 'drivers/usb/dwc2/params.c')
-rw-r--r-- | drivers/usb/dwc2/params.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c index ff7c844382eb..d6c92d4f53ce 100644 --- a/drivers/usb/dwc2/params.c +++ b/drivers/usb/dwc2/params.c @@ -1123,3 +1123,32 @@ void dwc2_set_all_params(struct dwc2_core_params *params, int value) for (i = 0; i < size; i++) p[i] = value; } + +int dwc2_init_params(struct dwc2_hsotg *hsotg) +{ + const struct of_device_id *match; + const struct dwc2_core_params *params; + struct dwc2_core_params defparams; + + match = of_match_device(dwc2_of_match_table, hsotg->dev); + if (match && match->data) { + params = match->data; + } else { + /* Default all params to autodetect */ + dwc2_set_all_params(&defparams, -1); + params = &defparams; + + /* + * Disable descriptor dma mode by default as the HW can support + * it, but does not support it for SPLIT transactions. + * Disable it for FS devices as well. + */ + defparams.dma_desc_enable = 0; + defparams.dma_desc_fs_enable = 0; + } + + /* Validate parameter values */ + dwc2_set_parameters(hsotg, params); + + return 0; +} |