/* * Copyright (c) 2015 MediaTek, Shunli Wang * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef _DT_BINDINGS_RESET_CONTROLLER_MT2701 #define _DT_BINDINGS_RESET_CONTROLLER_MT2701 /* INFRACFG resets */ #define MT2701_INFRA_EMI_REG_RST 0 #define MT2701_INFRA_DRAMC0_A0_RST 1 #define MT2701_INFRA_FHCTL_RST 2 #define MT2701_INFRA_APCIRQ_EINT_RST 3 #define MT2701_INFRA_APXGPT_RST 4 #define MT2701_INFRA_SCPSYS_RST 5 #define MT2701_INFRA_KP_RST 6 #define MT2701_INFRA_PMIC_WRAP_RST 7 #define MT2701_INFRA_MIPI_RST 8 #define MT2701_INFRA_IRRX_RST 9 #define MT2701_INFRA_CEC_RST 10 #define MT2701_INFRA_EMI_RST 32 #define MT2701_INFRA_DRAMC0_RST 34 #define MT2701_INFRA_TRNG_RST 37 #define MT2701_INFRA_SYSIRQ_RST 38 /* PERICFG resets */ #define MT2701_PERI_UART0_SW_RST 0 #define MT2701_PERI_UART1_SW_RST 1 #define MT2701_PERI_UART2_SW_RST 2 #define MT2701_PERI_UART3_SW_RST 3 #define MT2701_PERI_GCPU_SW_RST 5 #define MT2701_PERI_BTIF_SW_RST 6 #define MT2701_PERI_PWM_SW_RST 8 #define MT2701_PERI_AUXADC_SW_RST 10 #define MT2701_PERI_DMA_SW_RST 11 #define MT2701_PERI_NFI_SW_RST 14 #define MT2701_PERI_NLI_SW_RST 15 #define MT2701_PERI_THERM_SW_RST 16 #define MT2701_PERI_MSDC2_SW_RST 17 #define MT2701_PERI_MSDC0_SW_RST 19 #define MT2701_PERI_MSDC1_SW_RST 20 #define MT2701_PERI_I2C0_SW_RST 22 #define MT2701_PERI_I2C1_SW_RST 23 #define MT2701_PERI_I2C2_SW_RST 24 #define MT2701_PERI_I2C3_SW_RST 25 #define MT2701_PERI_USB_SW_RST 28 #define MT2701_PERI_ETH_SW_RST 29 #define MT2701_PERI_SPI0_SW_RST 33 /* TOPRGU resets */ #define MT2701_TOPRGU_INFRA_RST 0 #define MT2701_TOPRGU_MM_RST 1 #define MT2701_TOPRGU_MFG_RST 2 #define MT2701_TOPRGU_ETHDMA_RST 3 #define MT2701_TOPRGU_VDEC_RST 4 #define MT2701_TOPRGU_VENC_IMG_RST 5 #define MT2701_TOPRGU_DDRPHY_RST 6 #define MT2701_TOPRGU_MD_RST 7 #define MT2701_TOPRGU_INFRA_AO_RST 8 #define MT2701_TOPRGU_CONN_RST 9 #define MT2701_TOPRGU_APMIXED_RST 10 #define MT2701_TOPRGU_HIFSYS_RST 11 #define MT2701_TOPRGU_CONN_MCU_RST 12 #define MT2701_TOPRGU_BDP_DISP_RST 13 /* HIFSYS resets */ #define MT2701_HIFSYS_UHOST0_RST 3 #define MT2701_HIFSYS_UHOST1_RST 4 #define MT2701_HIFSYS_UPHY0_RST 21 #define MT2701_HIFSYS_UPHY1_RST 22 #define MT2701_HIFSYS_PCIE0_RST 24 #define MT2701_HIFSYS_PCIE1_RST 25 #define MT2701_HIFSYS_PCIE2_RST 26 #endif /* _DT_BINDINGS_RESET_CONTROLLER_MT2701 */ ange'>range
path: root/tools/perf/Documentation/jitdump-specification.txt
alue='15'>15
AgeCommit message (Expand)AuthorFilesLines
space:
mode:
Diffstat (limited to 'net/ipv4/inet_diag.c')
3d885182ce8b'>139fc7e29f97d6bb6c4dca2a97be2dc3f824bd51 /include/net/raw.h
parent49def1853334396f948dcb4cedb9347abb318df5 (diff)
dmaengine: cppi41: Fix runtime PM timeouts with USB mass storage
Commit fdea2d09b997 ("dmaengine: cppi41: Add basic PM runtime support") added runtime PM support for cppi41, but had corner case issues. Some of the issues were fixed with commit 098de42ad670 ("dmaengine: cppi41: Fix unpaired pm runtime when only a USB hub is connected"). That fix however caused a new regression where we can get error -115 messages with USB on BeagleBone when connecting a USB mass storage device to a hub. This is because when connecting a USB mass storage device to a hub, the initial DMA transfers can take over 200ms to complete and cppi41 autosuspend delay times out. To fix the issue, we want to implement refcounting for chan_busy array that contains the active dma transfers. Increasing the autosuspend delay won't help as that the delay could be potentially seconds, and it's best to let the USB subsystem to deal with the timeouts on errors. The earlier attempt for runtime PM was buggy as the pm_runtime_get/put() calls could get unpaired easily as they did not follow the state of the chan_busy array as described in commit 098de42ad670 ("dmaengine: cppi41: Fix unpaired pm runtime when only a USB hub is connected". Let's fix the issue by adding pm_runtime_get() to where a new transfer is added to the chan_busy array, and calls to pm_runtime_put() where chan_busy array entry is cleared. This prevents any autosuspend timeouts from happening while dma transfers are active. Fixes: 098de42ad670 ("dmaengine: cppi41: Fix unpaired pm runtime when only a USB hub is connected") Fixes: fdea2d09b997 ("dmaengine: cppi41: Add basic PM runtime support") Cc: Andy Shevchenko <andy.shevchenko@gmail.com> Cc: Bin Liu <b-liu@ti.com> Cc: Grygorii Strashko <grygorii.strashko@ti.com> Cc: Kevin Hilman <khilman@baylibre.com> Cc: Patrick Titiano <ptitiano@baylibre.com> Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by: Tony Lindgren <tony@atomide.com> Tested-by: Bin Liu <b-liu@ti.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'include/net/raw.h')