mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 21:22:09 -04:00
Merge "usb: xhci-plat: Add DT parameter to program xhci imod_interval"
This commit is contained in:
commit
7a8fe7f744
3 changed files with 16 additions and 1 deletions
|
|
@ -1323,6 +1323,9 @@ static void dwc3_get_properties(struct dwc3 *dwc)
|
|||
dwc->dis_metastability_quirk = device_property_read_bool(dev,
|
||||
"snps,dis_metastability_quirk");
|
||||
|
||||
device_property_read_u32(dev, "snps,xhci-imod-value",
|
||||
&dwc->xhci_imod_value);
|
||||
|
||||
dwc->lpm_nyet_threshold = lpm_nyet_threshold;
|
||||
dwc->tx_de_emphasis = tx_de_emphasis;
|
||||
|
||||
|
|
|
|||
|
|
@ -1032,6 +1032,7 @@ struct dwc3_scratchpad_array {
|
|||
* @dis_metastability_quirk: set to disable metastability quirk.
|
||||
* @imod_interval: set the interrupt moderation interval in 250ns
|
||||
* increments or 0 to disable.
|
||||
* @xhci_imod_value: imod value to use with xhci
|
||||
*/
|
||||
struct dwc3 {
|
||||
struct work_struct drd_work;
|
||||
|
|
@ -1221,6 +1222,7 @@ struct dwc3 {
|
|||
unsigned dis_metastability_quirk:1;
|
||||
|
||||
u16 imod_interval;
|
||||
u32 xhci_imod_value;
|
||||
};
|
||||
|
||||
#define INCRX_BURST_MODE 0
|
||||
|
|
|
|||
|
|
@ -43,12 +43,13 @@ out:
|
|||
|
||||
int dwc3_host_init(struct dwc3 *dwc)
|
||||
{
|
||||
struct property_entry props[4];
|
||||
struct property_entry props[5];
|
||||
struct platform_device *xhci;
|
||||
int ret, irq;
|
||||
struct resource *res;
|
||||
struct platform_device *dwc3_pdev = to_platform_device(dwc->dev);
|
||||
int prop_idx = 0;
|
||||
struct property_entry imod_prop;
|
||||
|
||||
irq = dwc3_host_get_irq(dwc);
|
||||
if (irq < 0)
|
||||
|
|
@ -93,6 +94,15 @@ int dwc3_host_init(struct dwc3 *dwc)
|
|||
if (dwc->usb2_lpm_disable)
|
||||
props[prop_idx++].name = "usb2-lpm-disable";
|
||||
|
||||
if (dwc->xhci_imod_value) {
|
||||
imod_prop.name = "imod-interval-ns";
|
||||
imod_prop.length = sizeof(u32);
|
||||
imod_prop.is_array = false;
|
||||
imod_prop.type = DEV_PROP_U32;
|
||||
imod_prop.value.u32_data = dwc->xhci_imod_value;
|
||||
props[prop_idx++] = imod_prop;
|
||||
}
|
||||
|
||||
/**
|
||||
* WORKAROUND: dwc3 revisions <=3.00a have a limitation
|
||||
* where Port Disable command doesn't work.
|
||||
|
|
|
|||
Loading…
Reference in a new issue