diff options
author | YH Lin <yueherngl@chromium.org> | 2022-12-03 00:17:55 +0000 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-12-05 17:43:18 +0000 |
commit | dd732876495ed4942d00b9f9ca8dd3b01bad7120 (patch) | |
tree | bdff671e5ad3e71e30ab56f4f084f34a2fd72e28 /chip/ish/dma.c | |
parent | 184d13e77614be3be5374d3fef9d1edf66ec8687 (diff) | |
download | chrome-ec-dd732876495ed4942d00b9f9ca8dd3b01bad7120.tar.gz |
Revert "Merge remote-tracking branch cros/main into factory-brya-14909.124.B-main"factory-brya-14909.124.B-main
This reverts commit 184d13e77614be3be5374d3fef9d1edf66ec8687.
Reason for revert: broken build due to ec-utils.
Original change's description:
> Merge remote-tracking branch cros/main into factory-brya-14909.124.B-main
>
> Generated by: util/update_release_branch.py --baseboard brya --relevant_paths_file
> baseboard/brya/relevant-paths.txt factory-brya-14909.124.B-main
>
> Relevant changes:
>
> git log --oneline 19d4d68ffa..aa40b859b3 -- baseboard/brya board/agah
> board/anahera board/banshee board/brya board/crota board/felwinter
> board/gimble board/kano board/mithrax board/osiris board/primus
> board/redrix board/taeko board/taniks board/vell board/volmar
> driver/bc12/pi3usb9201_public.* driver/charger/bq25710.*
> driver/ppc/nx20p348x.* driver/ppc/syv682x_public.*
> driver/retimer/bb_retimer_public.* driver/tcpm/nct38xx.*
> driver/tcpm/ps8xxx_public.* driver/tcpm/tcpci.* include/power/alderlake*
> include/intel_x86.h power/alderlake* power/intel_x86.c
> util/getversion.sh
>
> e6da633c38 driver: Sort header files
> 234a87ae2d tcpci: Add FRS enable to driver structure
> a56be59ccd tcpm_header: add test for tcpm_dump_registers
> 57b3256963 Rename CONFIG_CHARGER_INPUT_CURRENT to _CHARGER_DEFAULT_CURRENT_LIMIT
> e420c8ff9a marasov: Modify TypeC and TypeA configuration.
> 43b53e0045 Add default implementation of board_set_charge_limit
> b75dc90677 Add CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT
> f1b563c350 baseboard: Sort header files
> 7d01b1e58d driver/retimer/ps8818.h: Add I2C ADDR FLAGS 0x30, 0x58, 0x70
> ec31407993 Add CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT
> 8f89f69a5b crota: disable lid angle sensor for clamshell
>
> BRANCH=None
> BUG=b:260630630 b:163093572 b:259002141 b:255184961 b:259354679
> BUG=b:247100970 b:254328661
> TEST=`emerge-brya chromeos-ec`
>
> Force-Relevant-Builds: all
> Change-Id: I0ecfa0e6af68631283c7a9e8f1afb9d827176c62
> Signed-off-by: YH Lin <yueherngl@google.com>
Bug: b:260630630 b:163093572 b:259002141 b:255184961 b:259354679
Bug: b:247100970 b:254328661
Change-Id: Ia14942d1bd6a502062399d77cb59d1f4b549b2c9
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4077247
Auto-Submit: YH Lin <yueherngl@chromium.org>
Tested-by: YH Lin <yueherngl@chromium.org>
Reviewed-by: Boris Mittelberg <bmbm@google.com>
Commit-Queue: YH Lin <yueherngl@chromium.org>
Diffstat (limited to 'chip/ish/dma.c')
-rw-r--r-- | chip/ish/dma.c | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/chip/ish/dma.c b/chip/ish/dma.c index eae6a850f1..48a27a0463 100644 --- a/chip/ish/dma.c +++ b/chip/ish/dma.c @@ -7,12 +7,34 @@ #include "common.h" #include "console.h" -#include "ish_dma.h" #include "registers.h" +#include "ish_dma.h" #include "util.h" static int dma_init_called; /* If ish_dma_init is called */ +static int dma_poll(uint32_t addr, uint32_t expected, uint32_t mask) +{ + int retval = -1; + uint32_t counter = 0; + + /* + * The timeout is approximately 2.2 seconds according to + * value of UINT32_MAX, 120MHZ ISH clock frequency and + * instruction count which is around 4. + */ + while (counter < (UINT32_MAX / 64)) { + /* test condition */ + if ((REG32(addr) & mask) == expected) { + retval = DMA_RC_OK; + break; + } + counter++; + } + + return retval; +} + void ish_dma_ocp_timeout_disable(void) { if (!IS_ENABLED(CONFIG_ISH_NEW_PM)) { @@ -22,6 +44,24 @@ void ish_dma_ocp_timeout_disable(void) } } +static inline uint32_t interrupt_lock(void) +{ + uint32_t eflags = 0; + __asm__ volatile("pushfl;" /* save eflag value */ + "popl %0;" + "cli;" + : "=r"(eflags)); /* shut off interrupts */ + return eflags; +} + +static inline void interrupt_unlock(uint32_t eflags) +{ + __asm__ volatile("pushl %0;" /* restore elfag values */ + "popfl;" + : + : "r"(eflags)); +} + void dma_configure_psize(void) { /* Give chan0 512 bytes for high performance, and chan1 128 bytes. */ |