| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/i2c/ |
| D | i2c-arb-gpio-challenge.yaml | 1 # 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 …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/i2c/ |
| D | i2c-arb-gpio-challenge.txt | 1 GPIO-based I2C Arbitration Using a Challenge & Response Mechanism 7 the standard I2C multi-master rules. Using GPIOs is generally useful in 21 others can see. These are all active low with pull-ups enabled. We'll 24 - OUR_CLAIM: output from us signaling to other hosts that we want the bus 25 - THEIR_CLAIMS: output from others signaling that they want the bus 37 4. Otherwise, wait for a few milliseconds and see if THEIR_CLAIMS are released. 38 5. If not, back off, release the claim and wait for a few more milliseconds. 39 6. Go back to 1 (until retry time has expired). 43 - compatible: i2c-arb-gpio-challenge 44 - our-claim-gpio: The GPIO that we use to claim the bus. [all …]
|
| /kernel/linux/linux-6.6/drivers/mtd/chips/ |
| D | cfi_cmdset_0020.c | 1 // 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 …]
|
| /kernel/linux/linux-5.10/drivers/mtd/chips/ |
| D | cfi_cmdset_0020.c | 8 * - completely revamped method functions so they are aware and 10 * - scalability vs code size is completely set at compile-time 12 * - optimized write buffer method 13 * 06/21/2002 Joern Engel <joern@wh.fh-wedel.de> and others 14 * - modified Intel Command Set 0x0001 to support ST Advanced Architecture 16 * - added a writev function 17 * 07/13/2005 Joern Engel <joern@wh.fh-wedel.de> 18 * - Plugged memory leak in cfi_staa_writev(). 68 printk(" Feature/Command Support: %4.4X\n", extp->FeatureSupport); in cfi_tell_features() 69 printk(" - Chip Erase: %s\n", extp->FeatureSupport&1?"supported":"unsupported"); in cfi_tell_features() [all …]
|
| /kernel/linux/linux-6.6/Documentation/locking/ |
| D | ww-mutex-design.rst | 2 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 …]
|
| /kernel/linux/linux-5.10/Documentation/locking/ |
| D | ww-mutex-design.rst | 2 Wound/Wait Deadlock-Proof Mutex Design 5 Please read mutex-design.txt 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 …]
|
| /kernel/linux/linux-6.6/drivers/i2c/muxes/ |
| D | i2c-arb-gpio-challenge.c | 1 // 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 …]
|
| /kernel/linux/linux-5.10/drivers/i2c/muxes/ |
| D | i2c-arb-gpio-challenge.c | 1 // 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 …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/i915/gem/ |
| D | i915_gem_busy.c | 2 * SPDX-License-Identifier: MIT 4 * Copyright © 2014-2016 Intel Corporation 29 * last_read - hence we always set both read and write busy for in __busy_write_id() 46 * to eventually flush us, but to minimise latency just ask the in __busy_set_if_active() 59 /* Beware type-expansion follies! */ in __busy_set_if_active() 60 BUILD_BUG_ON(!typecheck(u16, rq->engine->uabi_class)); in __busy_set_if_active() 61 return flag(rq->engine->uabi_class); in __busy_set_if_active() 89 err = -ENOENT; in i915_gem_busy_ioctl() 91 obj = i915_gem_object_lookup_rcu(file, args->handle); in i915_gem_busy_ioctl() 97 * non-i915 fences, i.e. even though we may report the object as idle, in i915_gem_busy_ioctl() [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/i915/display/ |
| D | intel_fdi.c | 1 // 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 …]
|
| /kernel/linux/linux-5.10/drivers/usb/storage/ |
| D | transport.c | 1 // 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 …]
|
| /kernel/linux/linux-6.6/drivers/usb/storage/ |
| D | transport.c | 1 // 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 …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/amd/display/dc/dce/ |
| D | dmub_replay.c | 41 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 …]
|
| /kernel/linux/linux-6.6/kernel/futex/ |
| D | pi.c | 1 // 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 …]
|
| D | waitwake.c | 1 // 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 …]
|
| /kernel/linux/linux-5.10/kernel/futex/ |
| D | core.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 16 * PI-futex support started by Ingo Molnar and Thomas Gleixner 23 * Requeue-PI support by Darren Hart <dvhltc@us.ibm.com> 29 * Kirkwood for proof-of-concept implementation. 40 #include <linux/fault-inject.h> 73 * sys_futex(WAIT, futex, val); 87 * This would cause the waiter on CPU 0 to wait forever because it 97 * sys_futex(WAIT, futex, val); 101 * smp_mb(); (A) <-- paired with -. 110 * `--------> smp_mb(); (B) [all …]
|
| /kernel/linux/linux-6.6/sound/soc/au1x/ |
| D | ac97c.c | 1 // 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 …]
|
| /kernel/linux/linux-5.10/sound/soc/au1x/ |
| D | ac97c.c | 1 // 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 …]
|
| /kernel/linux/linux-6.6/drivers/infiniband/hw/hfi1/ |
| D | firmware.c | 1 // 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 …]
|
| /kernel/linux/linux-6.6/drivers/scsi/bfa/ |
| D | bfa_defs_fcs.h | 1 /* 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 …]
|
| /kernel/linux/linux-5.10/drivers/scsi/bfa/ |
| D | bfa_defs_fcs.h | 1 /* 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 …]
|
| /kernel/linux/linux-5.10/drivers/infiniband/hw/hfi1/ |
| D | firmware.c | 2 * Copyright(c) 2015 - 2017 Intel Corporation. 24 * - Redistributions of source code must retain the above copyright 26 * - Redistributions in binary form must reproduce the above copyright 30 * - Neither the name of Intel Corporation nor the names of its 146 #define AUGMENT_SIZE (sizeof(struct augmented_firmware_file) - \ 204 /* 8051 memory access timeout, in us */ 205 #define DC8051_ACCESS_TIMEOUT 100 /* us */ 260 * Read a single 64-bit value from 8051 data memory. 267 * ignored - i.e. the hardware will always do aligned 8-byte reads as if 270 * Return 0 on success, -ENXIO on a read error (timeout). [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/i915/gt/ |
| D | intel_reset.c | 1 // 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 …]
|
| /kernel/linux/linux-6.6/drivers/usb/typec/tcpm/ |
| D | tcpci_rt1711h.c | 1 // 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->did == RT1715_DID) { in rt1711h_init() 121 /* tTCPCfilter : (26.7 * val) us */ in rt1711h_init() 136 /* Enable phy discard retry, retry count 7, rx filter deglitch 100 us */ in rt1711h_init() [all …]
|
| /kernel/linux/linux-6.6/drivers/parport/ |
| D | ieee1284_ops.c | 1 // 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 …]
|