Home
last modified time | relevance | path

Searched +full:lock +full:- +full:offset (Results 1 – 25 of 1094) sorted by relevance

12345678910>>...44

/linux/drivers/gpio/
H A Dgpio-cs5535.c1 // SPDX-License-Identifier: GPL-2.0-only
5 * Copyright (C) 2007-2009 Andres Salomon <dilinger@collabora.co.uk>
17 #define DRV_NAME "cs5535-gpio"
21 * 31-29,23 : reserved (always mask out)
24 * 22-16 : LPC
44 * design pattern, see Documentation/driver-api/driver-model/design-patterns.rst
51 spinlock_t lock; member
63 unsigned long addr = chip->base + 0x80 + reg; in errata_outl()
68 * non-selected bits; the recommended workaround is a in errata_outl()
69 * read-modify-write operation. in errata_outl()
[all …]
H A Dgpio-viperboard.c1 // SPDX-License-Identifier: GPL-2.0+
45 u8 offset; member
77 …"gpio-a sampling freq in Hz (default is 1000Hz) valid values: 10, 100, 1000, 10000, 100000, 100000…
79 /* ----- begin of gipo a chip -------------------------------------------- */
82 unsigned int offset) in vprbrd_gpioa_get() argument
86 struct vprbrd *vb = gpio->vb; in vprbrd_gpioa_get()
87 struct vprbrd_gpioa_msg *gamsg = (struct vprbrd_gpioa_msg *)vb->buf; in vprbrd_gpioa_get()
90 if (gpio->gpioa_out & (1 << offset)) in vprbrd_gpioa_get()
91 return !!(gpio->gpioa_val & (1 << offset)); in vprbrd_gpioa_get()
93 mutex_lock(&vb->lock); in vprbrd_gpioa_get()
[all …]
H A Dgpio-sch311x.c1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * GPIO driver for the SMSC SCH311x Super-I/O chips
20 #define DRV_NAME "gpio-sch311x"
44 spinlock_t lock; /* lock for this GPIO block */ member
93 * Super-IO functions
102 return -EBUSY; in sch311x_sio_enter()
132 static int sch311x_gpio_request(struct gpio_chip *chip, unsigned offset) in sch311x_gpio_request() argument
136 if (block->config_regs[offset] == 0) /* GPIO is not available */ in sch311x_gpio_request()
137 return -ENODEV; in sch311x_gpio_request()
139 if (!request_region(block->runtime_reg + block->config_regs[offset], in sch311x_gpio_request()
[all …]
H A Dgpio-siox.c1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (C) 2015-2018 Pengutronix, Uwe Kleine-König <kernel@pengutronix.de>
13 struct mutex lock; member
29 struct gpio_siox_ddata *ddata = dev_get_drvdata(&sdevice->dev); in gpio_siox_set_data()
31 mutex_lock(&ddata->lock); in gpio_siox_set_data()
32 buf[0] = ddata->setdata[0]; in gpio_siox_set_data()
33 mutex_unlock(&ddata->lock); in gpio_siox_set_data()
40 struct gpio_siox_ddata *ddata = dev_get_drvdata(&sdevice->dev); in gpio_siox_get_data()
41 size_t offset; in gpio_siox_get_data() local
44 mutex_lock(&ddata->lock); in gpio_siox_get_data()
[all …]
H A Dgpio-sim.c1 // SPDX-License-Identifier: GPL-2.0-or-later
39 #include "dev-sync-probe.h"
55 struct mutex lock; member
61 unsigned int offset; member
71 unsigned int offset, int value) in gpio_sim_apply_pull() argument
75 guard(mutex)(&chip->lock); in gpio_sim_apply_pull()
77 if (test_bit(offset, chip->request_map) && in gpio_sim_apply_pull()
78 test_bit(offset, chip->direction_map)) { in gpio_sim_apply_pull()
79 if (value == !!test_bit(offset, chip->value_map)) in gpio_sim_apply_pull()
83 * This is fine - it just means, nobody is listening in gpio_sim_apply_pull()
[all …]
H A Dgpio-max730x.c1 // SPDX-License-Identifier: GPL-2.0-only
11 * - DIN must be stable at the rising edge of clock.
12 * - when writing:
13 * - always clock in 16 clocks at once
14 * - at DIN: D15 first, D0 last
15 * - D0..D7 = databyte, D8..D14 = commandbyte
16 * - D15 = low -> write command
17 * - when reading
18 * - always clock in 16 clocks at once
19 * - at DIN: D15 first, D0 last
[all …]
H A Dgpio-omap.c1 // SPDX-License-Identifier: GPL-2.0-only
5 * Copyright (C) 2003-2005 Nokia Corporation
9 * Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com>
27 #include <linux/platform_data/gpio-omap.h>
59 raw_spinlock_t lock; member
84 #define BANK_USED(bank) (bank->mod_usage || bank->irq_usage)
85 #define LINE_USED(line, offset) (line & (BIT(offset))) argument
112 bank->context.oe = omap_gpio_rmw(bank->base + bank->regs->direction, in omap_set_gpio_direction()
118 static void omap_set_gpio_dataout_reg(struct gpio_bank *bank, unsigned offset, in omap_set_gpio_dataout_reg() argument
121 void __iomem *reg = bank->base; in omap_set_gpio_dataout_reg()
[all …]
H A Dgpio-cgbc.c1 // SPDX-License-Identifier: GPL-2.0-or-later
25 struct mutex lock; member
36 static int cgbc_gpio_get(struct gpio_chip *chip, unsigned int offset) in cgbc_gpio_get() argument
39 struct cgbc_device_data *cgbc = gpio->cgbc; in cgbc_gpio_get()
43 scoped_guard(mutex, &gpio->lock) in cgbc_gpio_get()
44 ret = cgbc_gpio_cmd(cgbc, CGBC_GPIO_CMD_GET, (offset > 7) ? 1 : 0, 0, &val); in cgbc_gpio_get()
46 offset %= 8; in cgbc_gpio_get()
51 return (int)(val & (u8)BIT(offset)); in cgbc_gpio_get()
54 static int __cgbc_gpio_set(struct gpio_chip *chip, unsigned int offset, in __cgbc_gpio_set() argument
58 struct cgbc_device_data *cgbc = gpio->cgbc; in __cgbc_gpio_set()
[all …]
H A Dgpio-mb86s7x.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * linux/drivers/gpio/gpio-mb86s7x.c
23 #include "gpiolib-acpi.h"
33 #define OFFSET(x) BIT((x) % 8) macro
38 spinlock_t lock; member
47 spin_lock_irqsave(&gchip->lock, flags); in mb86s70_gpio_request()
49 val = readl(gchip->base + PFR(gpio)); in mb86s70_gpio_request()
50 val &= ~OFFSET(gpio); in mb86s70_gpio_request()
51 writel(val, gchip->base + PFR(gpio)); in mb86s70_gpio_request()
53 spin_unlock_irqrestore(&gchip->lock, flags); in mb86s70_gpio_request()
[all …]
H A Dgpio-timberdale.c1 // SPDX-License-Identifier: GPL-2.0-only
21 #define DRIVER_NAME "timb-gpio"
36 spinlock_t lock; /* mutual exclusion */ member
43 unsigned offset, bool enabled) in timbgpio_update_bit() argument
49 spin_lock_irqsave(&tgpio->lock, flags); in timbgpio_update_bit()
50 reg = ioread32(tgpio->membase + offset); in timbgpio_update_bit()
57 iowrite32(reg, tgpio->membase + offset); in timbgpio_update_bit()
58 spin_unlock_irqrestore(&tgpio->lock, flags); in timbgpio_update_bit()
73 value = ioread32(tgpio->membase + TGPIOVAL); in timbgpio_gpio_get()
88 static int timbgpio_to_irq(struct gpio_chip *gpio, unsigned offset) in timbgpio_to_irq() argument
[all …]
H A Dgpio-amd8111.c1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (c) 2012 Dmitry Eremin-Solenikov
72 spinlock_t lock; /* guards hw registers and orig table */ member
76 static int amd_gpio_request(struct gpio_chip *chip, unsigned offset) in amd_gpio_request() argument
80 agp->orig[offset] = ioread8(agp->pm + AMD_REG_GPIO(offset)) & in amd_gpio_request()
83 dev_dbg(&agp->pdev->dev, "Requested gpio %d, data %x\n", offset, agp->orig[offset]); in amd_gpio_request()
88 static void amd_gpio_free(struct gpio_chip *chip, unsigned offset) in amd_gpio_free() argument
92 dev_dbg(&agp->pdev->dev, "Freed gpio %d, data %x\n", offset, agp->orig[offset]); in amd_gpio_free()
94 iowrite8(agp->orig[offset], agp->pm + AMD_REG_GPIO(offset)); in amd_gpio_free()
97 static int amd_gpio_set(struct gpio_chip *chip, unsigned int offset, int value) in amd_gpio_set() argument
[all …]
H A Dgpio-reg.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * gpio-reg: single register individually fixed-direction GPIOs
19 #include <linux/gpio/gpio-reg.h>
23 spinlock_t lock; member
33 static int gpio_reg_get_direction(struct gpio_chip *gc, unsigned offset) in gpio_reg_get_direction() argument
37 return r->direction & BIT(offset) ? GPIO_LINE_DIRECTION_IN : in gpio_reg_get_direction()
41 static int gpio_reg_direction_output(struct gpio_chip *gc, unsigned offset, in gpio_reg_direction_output() argument
46 if (r->direction & BIT(offset)) in gpio_reg_direction_output()
47 return -ENOTSUPP; in gpio_reg_direction_output()
49 gc->set(gc, offset, value); in gpio_reg_direction_output()
[all …]
/linux/rust/kernel/debugfs/
H A Dtraits.rs1 // SPDX-License-Identifier: GPL-2.0
45 /// change](https://doc.rust-lang.org/std/fmt/trait.Debug.html#stability)
50 fn write(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result;
54 fn write(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { in write_to_slice() argument
55 self.lock().write(f) in write_to_slice()
60 fn write(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { in write_to_slice()
69 /// `offset` is the requested offset int
63 write_to_slice( &self, writer: &mut UserSliceWriter, offset: &mut file::Offset, ) -> Result<usize> write_to_slice() argument
74 write_to_slice( &self, writer: &mut UserSliceWriter, offset: &mut file::Offset, ) -> Result<usize> write_to_slice() argument
91 write_to_slice( &self, writer: &mut UserSliceWriter, offset: &mut file::Offset, ) -> Result<usize> write_to_slice() argument
106 write_to_slice( &self, writer: &mut UserSliceWriter, offset: &mut file::Offset, ) -> Result<usize> write_to_slice() argument
120 write_to_slice( &self, writer: &mut UserSliceWriter, offset: &mut file::Offset, ) -> Result<usize> write_to_slice() argument
135 write_to_slice( &self, writer: &mut UserSliceWriter, offset: &mut file::Offset, ) -> Result<usize> write_to_slice() argument
208 read_from_slice_mut( &mut self, reader: &mut UserSliceReader, offset: &mut file::Offset, ) -> Result<usize> read_from_slice_mut() argument
217 read_from_slice_mut( &mut self, reader: &mut UserSliceReader, offset: &mut file::Offset, ) -> Result<usize> read_from_slice_mut() argument
228 read_from_slice_mut( &mut self, reader: &mut UserSliceReader, offset: &mut file::Offset, ) -> Result<usize> read_from_slice_mut() argument
243 read_from_slice_mut( &mut self, reader: &mut UserSliceReader, offset: &mut file::Offset, ) -> Result<usize> read_from_slice_mut() argument
271 read_from_slice( &self, reader: &mut UserSliceReader, offset: &mut file::Offset, ) -> Result<usize> read_from_slice() argument
280 read_from_slice( &self, reader: &mut UserSliceReader, offset: &mut file::Offset, ) -> Result<usize> read_from_slice() argument
293 read_from_slice( &self, reader: &mut UserSliceReader, offset: &mut file::Offset, ) -> Result<usize> read_from_slice() argument
304 read_from_slice( &self, reader: &mut UserSliceReader, offset: &mut file::Offset, ) -> Result<usize> read_from_slice() argument
315 read_from_slice( &self, reader: &mut UserSliceReader, offset: &mut file::Offset, ) -> Result<usize> read_from_slice() argument
[all...]
/linux/drivers/pinctrl/actions/
H A Dpinctrl-owl.c1 // SPDX-License-Identifier: GPL-2.0+
6 * Author: David Liu <liuwei@actions-semi.com>
25 #include <linux/pinctrl/pinconf-generic.h>
31 #include "../pinctrl-utils.h"
32 #include "pinctrl-owl.h"
35 * struct owl_pinctrl - pinctrl state of the device
39 * @lock: spinlock to protect registers
50 raw_spinlock_t lock; member
74 tmp = readl_relaxed(pctrl->base + reg); in owl_read_field()
75 mask = (1 << width) - 1; in owl_read_field()
[all …]
/linux/Documentation/locking/
H A Drobust-futex-ABI.rst48 kernel, then it can actually have two such structures - one using 32 bit
56 pointer to a single linked list of 'lock entries', one per lock,
58 to itself, 'head'. The last 'lock entry' points back to the 'head'.
60 The second word, called 'offset', specifies the offset from the
61 address of the associated 'lock entry', plus or minus, of what will
62 be called the 'lock word', from that 'lock entry'. The 'lock word'
63 is always a 32 bit word, unlike the other words above. The 'lock
65 of the thread holding the lock in the bottom 30 bits. See further
69 the address of the 'lock entry', during list insertion and removal,
73 Each 'lock entry' on the single linked list starting at 'head' consists
[all …]
/linux/drivers/gpu/drm/lima/
H A Dlima_vm.c1 // SPDX-License-Identifier: GPL-2.0 OR MIT
2 /* Copyright 2017-2019 Qiang Yu <yuq825@gmail.com> */
5 #include <linux/dma-mapping.h>
26 #define LIMA_VM_PT_MASK ((1 << LIMA_VM_PD_SHIFT) - 1)
27 #define LIMA_VM_BT_MASK ((1 << LIMA_VM_PB_SHIFT) - 1)
43 vm->bts[pbe].cpu[bte] = 0; in lima_vm_unmap_range()
52 if (!vm->bts[pbe].cpu) { in lima_vm_map_page()
57 vm->bts[pbe].cpu = dma_alloc_wc( in lima_vm_map_page()
58 vm->dev->dev, LIMA_PAGE_SIZE << LIMA_VM_NUM_PT_PER_BT_SHIFT, in lima_vm_map_page()
59 &vm->bts[pbe].dma, GFP_KERNEL | __GFP_NOWARN | __GFP_ZERO); in lima_vm_map_page()
[all …]
/linux/arch/loongarch/kvm/intc/
H A Dipi.c1 // SPDX-License-Identifier: GPL-2.0
15 spin_lock(&vcpu->arch.ipi_state.lock); in ipi_set()
16 status = vcpu->arch.ipi_state.status; in ipi_set()
17 vcpu->arch.ipi_state.status |= data; in ipi_set()
18 spin_unlock(&vcpu->arch.ipi_state.lock); in ipi_set()
45 spin_lock(&vcpu->arch.ipi_state.lock); in ipi_clear()
46 vcpu->arch.ipi_state.status &= ~data; in ipi_clear()
47 status = vcpu->arch.ipi_state.status; in ipi_clear()
48 spin_unlock(&vcpu->arch.ipi_state.lock); in ipi_clear()
50 irq.irq = -LARCH_INT_IPI; in ipi_clear()
[all …]
H A Deiointc.c1 // SPDX-License-Identifier: GPL-2.0
16 ipnum = (s->ipmap >> (irq / 32 * 8)) & 0xff; in eiointc_set_sw_coreisr()
17 if (!(s->status & BIT(EIOINTC_ENABLE_INT_ENCODE))) { in eiointc_set_sw_coreisr()
22 cpuid = ((u8 *)s->coremap)[irq]; in eiointc_set_sw_coreisr()
23 vcpu = kvm_get_vcpu_by_cpuid(s->kvm, cpuid); in eiointc_set_sw_coreisr()
27 cpu = vcpu->vcpu_id; in eiointc_set_sw_coreisr()
28 if (test_bit(irq, (unsigned long *)s->coreisr[cpu])) in eiointc_set_sw_coreisr()
29 __set_bit(irq, s->sw_coreisr[cpu][ipnum]); in eiointc_set_sw_coreisr()
31 __clear_bit(irq, s->sw_coreisr[cpu][ipnum]); in eiointc_set_sw_coreisr()
41 ipnum = (s->ipmap >> (irq / 32 * 8)) & 0xff; in eiointc_update_irq()
[all …]
/linux/arch/sparc/lib/
H A Dbitext.c1 // SPDX-License-Identifier: GPL-2.0
19 * bit_map_string_get - find and set a bit string in bit map.
24 * Returns offset in the map or -1 if out of space.
30 int offset, count; /* siamese twins */ in bit_map_string_get() local
35 if (t->num_colors) { in bit_map_string_get()
38 align = t->num_colors; in bit_map_string_get()
44 align1 = align - 1; in bit_map_string_get()
47 if (align < 0 || align >= t->size) in bit_map_string_get()
49 if (len <= 0 || len > t->size) in bit_map_string_get()
53 spin_lock(&t->lock); in bit_map_string_get()
[all …]
/linux/mm/
H A Dswapfile.c1 // SPDX-License-Identifier: GPL-2.0-only
22 #include <linux/blk-cgroup.h>
31 #include <linux/backing-dev.h>
62 unsigned long offset);
77 /* protected with swap_lock. reading in vm_swap_full() doesn't need lock */
79 #define DEF_SWAP_PRIO -1
86 static const char Bad_offset[] = "Bad swap offset entry ";
100 * This uses its own lock instead of swap_lock because when a
101 * swap_info_struct changes between not-full/full, it needs to
102 * add/remove itself to/from this list, but the swap_info_struct->lock
[all …]
/linux/drivers/pinctrl/spear/
H A Dpinctrl-plgpio.c56 * lock: lock for guarding gpio registers
59 * p2o: function ptr for pin to offset conversion. This is required only for
60 * machines where mapping b/w pin and offset is not 1-to-1.
61 * o2p: function ptr for offset to pin conversion. This is required only for
62 * machines where mapping b/w pin and offset is not 1-to-1.
68 spinlock_t lock; member
73 int (*o2p)(int offset); /* offset_to_pin */
84 u32 offset = PIN_OFFSET(pin); in is_plgpio_set() local
90 return !!(val & (1 << offset)); in is_plgpio_set()
95 u32 offset = PIN_OFFSET(pin); in plgpio_reg_set() local
[all …]
/linux/drivers/android/binder/
H A Dpage_range.rs1 // SPDX-License-Identifier: GPL-2.0
10 // 1. mmap lock
59 pub(crate) const unsafe fn new() -> Self { in new()
67 pub(crate) fn register(&'static self, name: &CStr) -> Result<()> { in register()
138 lock: SpinLock<Inner>, field
150 fn check_vma(vma: &virt::VmaRef, owner: *const ShrinkablePageRange) -> Option<&virt::VmaMixedMap> { in check_vma()
157 // SAFETY: Reading the vm_private_data pointer of a binder-owned vma is safe. in check_vma()
160 // the file's ->release handler is invoked, which means the ShrinkablePageRange outlives any in check_vma()
185 kernel::sync::lock::Guard<'static, (), kernel::sync::lock::mutex::MutexBackend>;
208 // SAFETY: This pointer offset is in bounds. in set_page()
[all …]
/linux/drivers/clk/hisilicon/
H A Dreset.c1 // SPDX-License-Identifier: GPL-2.0-or-later
5 * Copyright (c) 2015-2016 HiSilicon Technologies Co., Ltd.
11 #include <linux/reset-controller.h>
21 spinlock_t lock; member
33 u32 offset; in hisi_reset_of_xlate() local
36 offset = (reset_spec->args[0] << HISI_RESET_OFFSET_SHIFT) in hisi_reset_of_xlate()
38 bit = reset_spec->args[1] & HISI_RESET_BIT_MASK; in hisi_reset_of_xlate()
40 return (offset | bit); in hisi_reset_of_xlate()
48 u32 offset, reg; in hisi_reset_assert() local
51 offset = (id & HISI_RESET_OFFSET_MASK) >> HISI_RESET_OFFSET_SHIFT; in hisi_reset_assert()
[all …]
/linux/fs/btrfs/
H A Dfree-space-cache.c1 // SPDX-License-Identifier: GPL-2.0
12 #include <linux/error-injection.h>
15 #include "extent-tree.h"
19 #include "free-space-cache.h"
21 #include "disk-io.h"
23 #include "space-info.h"
24 #include "block-group.h"
27 #include "inode-item.h"
29 #include "file-item.h"
52 struct btrfs_free_space *bitmap_info, u64 *offset,
[all …]
/linux/drivers/clk/tegra/
H A Dclk.h1 /* SPDX-License-Identifier: GPL-2.0-only */
9 #include <linux/clk-provider.h>
73 * struct tegra_clk_sync_source - external clock source from codec
75 * @hw: handle between common and hardware-specific interfaces
95 * struct tegra_clk_frac_div - fractional divider clock
97 * @hw: handle between common and hardware-specific interfaces
99 * @flags: hardware-specific flags
103 * @lock: register lock
106 * TEGRA_DIVIDER_ROUND_UP - This flags indicates to round up the divider value.
107 * TEGRA_DIVIDER_FIXED - Fixed rate PLL dividers has addition override bit, this
[all …]

12345678910>>...44