Home
last modified time | relevance | path

Searched +full:wait +full:- +full:retry +full:- +full:us (Results 1 – 25 of 654) sorted by relevance

12345678910>>...27

/openbmc/linux/Documentation/devicetree/bindings/i2c/
H A Di2c-arb-gpio-challenge.yaml1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
3 ---
4 $id: http://devicetree.org/schemas/i2c/i2c-arb-gpio-challenge.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: GPIO-based I2C Arbitration Using a Challenge & Response Mechanism
10 - Doug Anderson <dianders@chromium.org>
11 - Peter Rosin <peda@axentia.se>
18 standard I2C multi-master rules. Using GPIOs is generally useful in the case
30 others can see. These are all active low with pull-ups enabled. We'll
32 * OUR_CLAIM: output from us signaling to other hosts that we want the bus
[all …]
/openbmc/u-boot/doc/
H A DREADME.i2c4 While I2C supports multi-master buses this is difficult to get right.
6 Clock-stretching and the arbitrary time that an I2C transaction can take
8 When one or more masters can be reset independently part-way through a
11 U-Boot provides a scheme based on two 'claim' GPIOs, one driven by the
18 Since U-Boot runs on the AP, the terminology used is 'our' claim GPIO,
23 i2c-arb-gpio-challenge for the implementation.
28 - AP_CLAIM: output from AP, signalling to the EC that the AP wants the bus
29 - EC_CLAIM: output from EC, signalling to the AP that the EC wants the bus
41 4. Otherwise, wait for a few milliseconds (retry time) and see if EC_CLAIM is
43 5. If not, back off, release the claim and wait for a few more milliseconds
[all …]
/openbmc/linux/drivers/mtd/chips/
H A Dcfi_cmdset_0020.c1 // SPDX-License-Identifier: GPL-2.0
9 * - completely revamped method functions so they are aware and
11 * - scalability vs code size is completely set at compile-time
13 * - optimized write buffer method
14 * 06/21/2002 Joern Engel <joern@wh.fh-wedel.de> and others
15 * - modified Intel Command Set 0x0001 to support ST Advanced Architecture
17 * - added a writev function
18 * 07/13/2005 Joern Engel <joern@wh.fh-wedel.de>
19 * - Plugged memory leak in cfi_staa_writev().
69 printk(" Feature/Command Support: %4.4X\n", extp->FeatureSupport); in cfi_tell_features()
[all …]
/openbmc/u-boot/common/
H A Dusb_storage.c1 // SPDX-License-Identifier: GPL-2.0+
5 * (c) 1999-2002 Matthew Dharm (mdharm-usb@one-eyed-alien.net)
6 * (c) 2000 David L. Brown, Jr. (usb-storage@davidb.org)
11 * Adapted for U-Boot:
43 #include <dm/device-internal.h>
53 /* direction table -- this indicates the direction of the data
54 * transfer for each command code -- a 1 indicates input
107 #define USB_STOR_TRANSPORT_FAILED -1
108 #define USB_STOR_TRANSPORT_ERROR -2
110 int usb_stor_get_info(struct usb_device *dev, struct us_data *us,
[all …]
/openbmc/u-boot/drivers/i2c/muxes/
H A Di2c-arb-gpio-challenge.c1 // SPDX-License-Identifier: GPL-2.0+
29 debug("%s: %s\n", __func__, mux->name); in i2c_arbitrator_deselect()
30 ret = dm_gpio_set_value(&priv->ap_claim, 0); in i2c_arbitrator_deselect()
31 udelay(priv->slew_delay_us); in i2c_arbitrator_deselect()
43 debug("%s: %s\n", __func__, mux->name); in i2c_arbitrator_select()
51 ret = dm_gpio_set_value(&priv->ap_claim, 1); in i2c_arbitrator_select()
54 udelay(priv->slew_delay_us); in i2c_arbitrator_select()
56 /* Wait for the EC to release it */ in i2c_arbitrator_select()
58 while (get_timer(start_retry) < priv->wait_retry_ms) { in i2c_arbitrator_select()
59 ret = dm_gpio_get_value(&priv->ec_claim); in i2c_arbitrator_select()
[all …]
/openbmc/linux/drivers/i2c/muxes/
H A Di2c-arb-gpio-challenge.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * GPIO-based I2C Arbitration Using a Challenge & Response Mechanism
12 #include <linux/i2c-mux.h>
19 * struct i2c_arbitrator_data - Driver data for I2C arbitrator
23 * @slew_delay_us: microseconds to wait for a GPIO to go high.
38 * i2c_arbitrator_select - claim the I2C bus
40 * Use the GPIO-based signalling protocol; return -EBUSY if we fail.
48 stop_time = jiffies + usecs_to_jiffies(arb->wait_free_us) + 1; in i2c_arbitrator_select()
51 gpiod_set_value(arb->our_gpio, 1); in i2c_arbitrator_select()
52 udelay(arb->slew_delay_us); in i2c_arbitrator_select()
[all …]
/openbmc/linux/Documentation/locking/
H A Dww-mutex-design.rst2 Wound/Wait Deadlock-Proof Mutex Design
5 Please read mutex-design.rst first, as it applies to wait/wound mutexes too.
7 Motivation for WW-Mutexes
8 -------------------------
14 a handful of situations where the driver needs to wait for buffers to
37 and the deadlock handling approach is called Wait-Die. The name is based on
41 and dies. Hence Wait-Die.
42 There is also another algorithm called Wound-Wait:
46 transaction. Hence Wound-Wait.
48 However, the Wound-Wait algorithm is typically stated to generate fewer backoffs
[all …]
/openbmc/linux/drivers/gpu/drm/i915/display/
H A Dintel_fdi.c1 // SPDX-License-Identifier: MIT
32 * so pipe->transcoder cast is fine here. in assert_fdi_tx()
117 struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); in intel_fdi_link_train()
119 dev_priv->display.funcs.fdi->fdi_link_train(crtc, crtc_state); in intel_fdi_link_train()
125 if (crtc_state->hw.enable && crtc_state->has_pch_encoder) in pipe_required_fdi_lanes()
126 return crtc_state->fdi_lanes; in pipe_required_fdi_lanes()
135 struct drm_atomic_state *state = pipe_config->uapi.state; in ilk_check_fdi_lanes()
139 drm_dbg_kms(&dev_priv->drm, in ilk_check_fdi_lanes()
141 pipe_name(pipe), pipe_config->fdi_lanes); in ilk_check_fdi_lanes()
142 if (pipe_config->fdi_lanes > 4) { in ilk_check_fdi_lanes()
[all …]
/openbmc/linux/drivers/usb/storage/
H A Dtransport.c1 // SPDX-License-Identifier: GPL-2.0+
6 * (c) 1999-2002 Matthew Dharm (mdharm-usb@one-eyed-alien.net)
9 * (c) 2000 David L. Brown, Jr. (usb-storage@davidb.org)
20 * similar to commands in the SCSI-II and ATAPI specifications.
23 * exhibits class-specific exemptions from the USB specification.
25 * that they are used to communicate wait, failed and OK on commands.
58 * ---------------------------------
61 * only to transactions resulting from a scsi queued-command, since only
63 * as those occurring during device-specific initialization, must be handled
67 * sets the machine state and the ABORTING bit in us->dflags to prevent
[all …]
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dce/
H A Ddmub_replay.c41 struct dmub_srv *srv = dmub->ctx->dmub_srv->dmub; in dmub_replay_get_state()
47 // Send gpint command and wait for ack in dmub_replay_get_state()
58 // Assert if max retry hit in dmub_replay_get_state()
61 /* To-do: Add retry fail log */ in dmub_replay_get_state()
68 static void dmub_replay_enable(struct dmub_replay *dmub, bool enable, bool wait, uint8_t panel_inst) in dmub_replay_enable() argument
71 struct dc_context *dc = dmub->ctx; in dmub_replay_enable()
89 /* Below loops 1000 x 500us = 500 ms. in dmub_replay_enable()
90 * Exit REPLAY may need to wait 1-2 frames to power up. Timeout after at in dmub_replay_enable()
91 * least a few frames. Should never hit the max retry assert below. in dmub_replay_enable()
93 if (wait) { in dmub_replay_enable()
[all …]
/openbmc/linux/kernel/futex/
H A Dpi.c1 // SPDX-License-Identifier: GPL-2.0-or-later
16 if (likely(current->pi_state_cache)) in refill_pi_state_cache()
22 return -ENOMEM; in refill_pi_state_cache()
24 INIT_LIST_HEAD(&pi_state->list); in refill_pi_state_cache()
26 pi_state->owner = NULL; in refill_pi_state_cache()
27 refcount_set(&pi_state->refcount, 1); in refill_pi_state_cache()
28 pi_state->key = FUTEX_KEY_INIT; in refill_pi_state_cache()
30 current->pi_state_cache = pi_state; in refill_pi_state_cache()
37 struct futex_pi_state *pi_state = current->pi_state_cache; in alloc_pi_state()
40 current->pi_state_cache = NULL; in alloc_pi_state()
[all …]
H A Dwaitwake.c1 // SPDX-License-Identifier: GPL-2.0-or-later
35 * sys_futex(WAIT, futex, val);
49 * This would cause the waiter on CPU 0 to wait forever because it
59 * sys_futex(WAIT, futex, val);
63 * smp_mb(); (A) <-- paired with -.
72 * `--------> smp_mb(); (B)
79 * waiters--; (b) unlock(hash_bucket(futex));
98 * the wait call can return error, in which case we backtrack from it in (b).
103 * acquiring the lock. It then decrements them again after releasing it -
117 struct task_struct *p = q->task; in futex_wake_mark()
[all …]
/openbmc/linux/sound/soc/au1x/
H A Dac97c.c1 // SPDX-License-Identifier: GPL-2.0-only
8 * Charles Eidsness <charles@cooper-street.com>
23 #include <asm/mach-au1x00/au1000.h>
57 /* how often to retry failed codec register reads/writes */
74 return __raw_readl(ctx->mmio + reg); in RD()
79 __raw_writel(v, ctx->mmio + reg); in WR()
87 unsigned int tmo, retry; in au1xac97c_ac97_read() local
91 retry = AC97_RW_RETRIES; in au1xac97c_ac97_read()
93 mutex_lock(&ctx->lock); in au1xac97c_ac97_read()
96 while ((RD(ctx, AC97_STATUS) & STAT_CP) && --tmo) in au1xac97c_ac97_read()
[all …]
/openbmc/linux/drivers/infiniband/hw/hfi1/
H A Dfirmware.c1 // SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause
3 * Copyright(c) 2015 - 2017 Intel Corporation.
103 #define AUGMENT_SIZE (sizeof(struct augmented_firmware_file) - \
161 /* 8051 memory access timeout, in us */
162 #define DC8051_ACCESS_TIMEOUT 100 /* us */
217 * Read a single 64-bit value from 8051 data memory.
224 * ignored - i.e. the hardware will always do aligned 8-byte reads as if
227 * Return 0 on success, -ENXIO on a read error (timeout).
242 /* wait until ACCESS_COMPLETED is set */ in __read_8051_data()
250 return -ENXIO; in __read_8051_data()
[all …]
/openbmc/linux/drivers/scsi/bfa/
H A Dbfa_defs_fcs.h1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (c) 2005-2014 Brocade Communications Systems, Inc.
4 * Copyright (c) 2014- QLogic Corporation.
8 * Linux driver for QLogic BR-series Fibre Channel Host Bus Adapter.
73 * - FCP IM and FCP TM roles cannot be enabled together for a FCS port
74 * - Create multiple ports if both IM and TM functions required.
75 * - Atleast one role must be specified.
228 u32 rport_plogi_timeouts; /* Rport plogi retry timeout count */
230 * (max retry of plogi) */
276 * TODO - remove
[all …]
/openbmc/u-boot/arch/arm/dts/
H A Dexynos5250-snow.dts12 /dts-v1/;
13 #include <dt-bindings/gpio/gpio.h>
14 #include <dt-bindings/interrupt-controller/irq.h>
15 #include <dt-bindings/input/input.h>
51 stdout-path = "serial3:115200n8";
59 samsung,bl1-offset = <0x1400>;
60 samsung,bl2-offset = <0x3400>;
61 u-boot-memory = "/memory";
62 u-boot-offset = <0x3e00000 0x100000>;
67 #address-cells = <1>;
[all …]
/openbmc/linux/drivers/gpu/drm/i915/gt/
H A Dintel_reset.c1 // SPDX-License-Identifier: MIT
3 * Copyright © 2008-2018 Intel Corporation
40 struct drm_i915_file_private *file_priv = ctx->file_priv; in client_mark_guilty()
51 prev_hang = xchg(&file_priv->hang_timestamp, jiffies); in client_mark_guilty()
56 atomic_add(score, &file_priv->ban_score); in client_mark_guilty()
58 drm_dbg(&ctx->i915->drm, in client_mark_guilty()
60 ctx->name, score, in client_mark_guilty()
61 atomic_read(&file_priv->ban_score)); in client_mark_guilty()
72 if (intel_context_is_closed(rq->context)) in mark_guilty()
76 ctx = rcu_dereference(rq->context->gem_context); in mark_guilty()
[all …]
/openbmc/linux/drivers/usb/typec/tcpm/
H A Dtcpci_rt1711h.c1 // SPDX-License-Identifier: GPL-2.0+
5 * Richtek RT1711H Type-C Chip Driver
65 return regmap_raw_read(chip->data.regmap, reg, val, sizeof(u16)); in rt1711h_read16()
70 return regmap_raw_write(chip->data.regmap, reg, &val, sizeof(u16)); in rt1711h_write16()
75 return regmap_raw_read(chip->data.regmap, reg, val, sizeof(u8)); in rt1711h_read8()
80 return regmap_raw_write(chip->data.regmap, reg, &val, sizeof(u8)); in rt1711h_write8()
98 struct regmap *regmap = chip->data.regmap; in rt1711h_init()
108 if (chip->di in rt1711h_init()
[all...]
/openbmc/linux/drivers/parport/
H A Dieee1284_ops.c1 // SPDX-License-Identifier: GPL-2.0
2 /* IEEE-1284 operations for parport.
5 * they are used by the low-level drivers. If they have a special way
7 * the function pointers in port->ops); if not, they can just use these
31 * One-way data transfer functions. *
43 struct pardevice *dev = port->physport->cad; in parport_ieee1284_write_compat()
47 if (port->irq != PARPORT_IRQ_NONE) { in parport_ieee1284_write_compat()
52 port->physport->ieee1284.phase = IEEE1284_PH_FWD_DATA; in parport_ieee1284_write_compat()
56 unsigned long expire = jiffies + dev->timeout; in parport_ieee1284_write_compat()
57 long wait = msecs_to_jiffies(10); in parport_ieee1284_write_compat() local
[all …]
/openbmc/linux/arch/arm/boot/dts/samsung/
H A Dexynos5250-snow-common.dtsi1 // SPDX-License-Identifier: GPL-2.0
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/clock/maxim,max77686.h>
10 #include <dt-bindings/interrupt-controller/irq.h>
11 #include <dt-bindings/input/input.h>
12 #include <dt-bindings/sound/samsung-i2s.h>
30 stdout-path = "serial3:115200n8";
33 gpio-keys {
34 compatible = "gpio-keys";
35 pinctrl-names = "default";
[all …]
/openbmc/linux/arch/x86/kernel/
H A Dtsc_sync.c1 // SPDX-License-Identifier: GPL-2.0
8 * print a warning if not and turn off the TSC clock-source.
10 * The warp-check is point-to-point between two CPUs, the CPU
14 * Only two CPUs may participate - they can enter in any order.
63 if (!resume && time_before(jiffies, adj->nextcheck)) in tsc_verify_tsc_adjust()
66 adj->nextcheck = jiffies + HZ; in tsc_verify_tsc_adjust()
69 if (adj->adjusted == curval) in tsc_verify_tsc_adjust()
73 wrmsrl(MSR_IA32_TSC_ADJUST, adj->adjusted); in tsc_verify_tsc_adjust()
75 if (!adj->warned || resume) { in tsc_verify_tsc_adjust()
76 pr_warn(FW_BUG "TSC ADJUST differs: CPU%u %lld --> %lld. Restoring\n", in tsc_verify_tsc_adjust()
[all …]
/openbmc/u-boot/drivers/net/
H A Dcs8900.c1 // SPDX-License-Identifier: GPL-2.0+
13 * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
21 * target board. Anything with a CL-PS7111 or EP7211 should be able to run
53 struct cs8900_priv *priv = (struct cs8900_priv *)(dev->priv); in get_reg_init_bus()
54 uint8_t volatile * const iob = (uint8_t volatile * const)dev->iobase; in get_reg_init_bus()
62 REG_WRITE(regno, &priv->regs->pptr); in get_reg_init_bus()
63 return REG_READ(&priv->regs->pdata); in get_reg_init_bus()
69 struct cs8900_priv *priv = (struct cs8900_priv *)(dev->priv); in get_reg()
70 REG_WRITE(regno, &priv->regs->pptr); in get_reg()
71 return REG_READ(&priv->regs->pdata); in get_reg()
[all …]
/openbmc/linux/drivers/mtd/lpddr/
H A Dlpddr_cmds.c1 // SPDX-License-Identifier: GPL-2.0-or-later
37 struct lpddr_private *lpddr = map->fldrv_priv; in lpddr_cmdset()
47 mtd->priv = map; in lpddr_cmdset()
48 mtd->type = MTD_NORFLASH; in lpddr_cmdset()
51 mtd->_read = lpddr_read; in lpddr_cmdset()
52 mtd->type = MTD_NORFLASH; in lpddr_cmdset()
53 mtd->flags = MTD_CAP_NORFLASH; in lpddr_cmdset()
54 mtd->flags &= ~MTD_BIT_WRITEABLE; in lpddr_cmdset()
55 mtd->_erase = lpddr_erase; in lpddr_cmdset()
56 mtd->_write = lpddr_write_buffers; in lpddr_cmdset()
[all …]
/openbmc/linux/drivers/rtc/
H A Drtc-tegra.c1 // SPDX-License-Identifier: GPL-2.0+
5 * Copyright (c) 2010-2019, NVIDIA Corporation.
59 * eight 32 kHz clocks (~250 us). Outside of these updates the CPU is free to
64 return readl(info->base + TEGRA_RTC_REG_BUSY) & 1; in tegra_rtc_check_busy()
68 * Wait for hardware to be ready for writing. This function tries to maximize
74 * AHB side) occurs every eight 32 kHz clocks (~250 us). The behavior of this
75 * function allows us to make some assumptions without introducing a race,
76 * because 250 us is plenty of time to read/write a value.
81 int retries = 500; /* ~490 us is the worst case, ~250 us is best */ in tegra_rtc_wait_while_busy()
84 * First wait for the RTC to become busy. This is when it posts its in tegra_rtc_wait_while_busy()
[all …]
/openbmc/linux/net/atm/
H A Dlec.h1 /* SPDX-License-Identifier: GPL-2.0 */
88 * establishes multiple Multicast Forward VCCs to us. This list
108 * An LE Client MUST not retry an LE_ARP_REQUEST for a
109 * given frame's LAN Destination more than maximum retry count times,
130 * Time limit ot wait to receive an LE_FLUSH_RESPONSE after the
153 #define LEC_VCC_PRIV(vcc) ((struct lec_vcc_priv *)((vcc)->user_back))

12345678910>>...27