| /kernel/linux/linux-6.6/kernel/rcu/ |
| D | srcutiny.c | 27 static int init_srcu_struct_fields(struct srcu_struct *ssp) in init_srcu_struct_fields() argument 29 ssp->srcu_lock_nesting[0] = 0; in init_srcu_struct_fields() 30 ssp->srcu_lock_nesting[1] = 0; in init_srcu_struct_fields() 31 init_swait_queue_head(&ssp->srcu_wq); in init_srcu_struct_fields() 32 ssp->srcu_cb_head = NULL; in init_srcu_struct_fields() 33 ssp->srcu_cb_tail = &ssp->srcu_cb_head; in init_srcu_struct_fields() 34 ssp->srcu_gp_running = false; in init_srcu_struct_fields() 35 ssp->srcu_gp_waiting = false; in init_srcu_struct_fields() 36 ssp->srcu_idx = 0; in init_srcu_struct_fields() 37 ssp->srcu_idx_max = 0; in init_srcu_struct_fields() [all …]
|
| D | srcutree.c | 76 static void srcu_reschedule(struct srcu_struct *ssp, unsigned long delay); 122 static void init_srcu_struct_data(struct srcu_struct *ssp) in init_srcu_struct_data() argument 134 sdp = per_cpu_ptr(ssp->sda, cpu); in init_srcu_struct_data() 138 sdp->srcu_gp_seq_needed = ssp->srcu_sup->srcu_gp_seq; in init_srcu_struct_data() 139 sdp->srcu_gp_seq_needed_exp = ssp->srcu_sup->srcu_gp_seq; in init_srcu_struct_data() 144 sdp->ssp = ssp; in init_srcu_struct_data() 164 static bool init_srcu_struct_nodes(struct srcu_struct *ssp, gfp_t gfp_flags) in init_srcu_struct_nodes() argument 176 ssp->srcu_sup->node = kcalloc(rcu_num_nodes, sizeof(*ssp->srcu_sup->node), gfp_flags); in init_srcu_struct_nodes() 177 if (!ssp->srcu_sup->node) in init_srcu_struct_nodes() 181 ssp->srcu_sup->level[0] = &ssp->srcu_sup->node[0]; in init_srcu_struct_nodes() [all …]
|
| /kernel/linux/linux-5.10/kernel/rcu/ |
| D | srcutiny.c | 27 static int init_srcu_struct_fields(struct srcu_struct *ssp) in init_srcu_struct_fields() argument 29 ssp->srcu_lock_nesting[0] = 0; in init_srcu_struct_fields() 30 ssp->srcu_lock_nesting[1] = 0; in init_srcu_struct_fields() 31 init_swait_queue_head(&ssp->srcu_wq); in init_srcu_struct_fields() 32 ssp->srcu_cb_head = NULL; in init_srcu_struct_fields() 33 ssp->srcu_cb_tail = &ssp->srcu_cb_head; in init_srcu_struct_fields() 34 ssp->srcu_gp_running = false; in init_srcu_struct_fields() 35 ssp->srcu_gp_waiting = false; in init_srcu_struct_fields() 36 ssp->srcu_idx = 0; in init_srcu_struct_fields() 37 ssp->srcu_idx_max = 0; in init_srcu_struct_fields() [all …]
|
| D | srcutree.c | 46 static void srcu_reschedule(struct srcu_struct *ssp, unsigned long delay); 83 static void init_srcu_struct_nodes(struct srcu_struct *ssp, bool is_static) in init_srcu_struct_nodes() argument 97 ssp->level[0] = &ssp->node[0]; in init_srcu_struct_nodes() 99 ssp->level[i] = ssp->level[i - 1] + num_rcu_lvl[i - 1]; in init_srcu_struct_nodes() 103 srcu_for_each_node_breadth_first(ssp, snp) { in init_srcu_struct_nodes() 114 if (snp == &ssp->node[0]) { in init_srcu_struct_nodes() 121 if (snp == ssp->level[level + 1]) in init_srcu_struct_nodes() 123 snp->srcu_parent = ssp->level[level - 1] + in init_srcu_struct_nodes() 124 (snp - ssp->level[level]) / in init_srcu_struct_nodes() 135 snp_first = ssp->level[level]; in init_srcu_struct_nodes() [all …]
|
| /kernel/linux/linux-6.6/drivers/tty/serial/ |
| D | sifive.c | 218 * @ssp: pointer to a struct sifive_serial_port record 221 * IP block base, given a pointer @ssp to a struct sifive_serial_port record. 225 static void __ssp_writel(u32 v, u16 offs, struct sifive_serial_port *ssp) in __ssp_writel() argument 227 __ssp_early_writel(v, offs, &ssp->port); in __ssp_writel() 232 * @ssp: pointer to a struct sifive_serial_port record 236 * IP block base, given a pointer @ssp to a struct sifive_serial_port record. 242 static u32 __ssp_readl(struct sifive_serial_port *ssp, u16 offs) in __ssp_readl() argument 244 return __ssp_early_readl(&ssp->port, offs); in __ssp_readl() 249 * @ssp: pointer to a struct sifive_serial_port 258 static int sifive_serial_is_txfifo_full(struct sifive_serial_port *ssp) in sifive_serial_is_txfifo_full() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/tty/serial/ |
| D | sifive.c | 229 * @ssp: pointer to a struct sifive_serial_port record 232 * IP block base, given a pointer @ssp to a struct sifive_serial_port record. 236 static void __ssp_writel(u32 v, u16 offs, struct sifive_serial_port *ssp) in __ssp_writel() argument 238 __ssp_early_writel(v, offs, &ssp->port); in __ssp_writel() 243 * @ssp: pointer to a struct sifive_serial_port record 247 * IP block base, given a pointer @ssp to a struct sifive_serial_port record. 253 static u32 __ssp_readl(struct sifive_serial_port *ssp, u16 offs) in __ssp_readl() argument 255 return __ssp_early_readl(&ssp->port, offs); in __ssp_readl() 260 * @ssp: pointer to a struct sifive_serial_port 269 static int sifive_serial_is_txfifo_full(struct sifive_serial_port *ssp) in sifive_serial_is_txfifo_full() argument [all …]
|
| /kernel/linux/linux-5.10/arch/arm/plat-pxa/ |
| D | ssp.c | 3 * linux/arch/arm/mach-pxa/ssp.c 5 * based on linux/arch/arm/mach-sa1100/ssp.c by Russell King 10 * PXA2xx SSP driver. This provides the generic core for simple 11 * IO-based SSP applications and allows easy port setup for DMA access. 40 struct ssp_device *ssp = NULL; in pxa_ssp_request() local 44 list_for_each_entry(ssp, &ssp_list, node) { in pxa_ssp_request() 45 if (ssp->port_id == port && ssp->use_count == 0) { in pxa_ssp_request() 46 ssp->use_count++; in pxa_ssp_request() 47 ssp->label = label; in pxa_ssp_request() 54 if (&ssp->node == &ssp_list) in pxa_ssp_request() [all …]
|
| /kernel/linux/linux-6.6/drivers/soc/pxa/ |
| D | ssp.c | 3 * linux/arch/arm/mach-pxa/ssp.c 5 * based on linux/arch/arm/mach-sa1100/ssp.c by Russell King 10 * PXA2xx SSP driver. This provides the generic core for simple 11 * IO-based SSP applications and allows easy port setup for DMA access. 40 struct ssp_device *ssp = NULL; in pxa_ssp_request() local 44 list_for_each_entry(ssp, &ssp_list, node) { in pxa_ssp_request() 45 if (ssp->port_id == port && ssp->use_count == 0) { in pxa_ssp_request() 46 ssp->use_count++; in pxa_ssp_request() 47 ssp->label = label; in pxa_ssp_request() 54 if (&ssp->node == &ssp_list) in pxa_ssp_request() [all …]
|
| /kernel/linux/linux-5.10/sound/soc/pxa/ |
| D | pxa-ssp.c | 3 * pxa-ssp.c -- ALSA Soc Audio Layer 33 #include "pxa-ssp.h" 36 * SSP audio private data 39 struct ssp_device *ssp; member 53 static void dump_registers(struct ssp_device *ssp) in dump_registers() argument 55 dev_dbg(ssp->dev, "SSCR0 0x%08x SSCR1 0x%08x SSTO 0x%08x\n", in dump_registers() 56 pxa_ssp_read_reg(ssp, SSCR0), pxa_ssp_read_reg(ssp, SSCR1), in dump_registers() 57 pxa_ssp_read_reg(ssp, SSTO)); in dump_registers() 59 dev_dbg(ssp->dev, "SSPSP 0x%08x SSSR 0x%08x SSACD 0x%08x\n", in dump_registers() 60 pxa_ssp_read_reg(ssp, SSPSP), pxa_ssp_read_reg(ssp, SSSR), in dump_registers() [all …]
|
| /kernel/linux/linux-6.6/sound/soc/pxa/ |
| D | pxa-ssp.c | 3 * pxa-ssp.c -- ALSA Soc Audio Layer 33 #include "pxa-ssp.h" 36 * SSP audio private data 39 struct ssp_device *ssp; member 53 static void dump_registers(struct ssp_device *ssp) in dump_registers() argument 55 dev_dbg(ssp->dev, "SSCR0 0x%08x SSCR1 0x%08x SSTO 0x%08x\n", in dump_registers() 56 pxa_ssp_read_reg(ssp, SSCR0), pxa_ssp_read_reg(ssp, SSCR1), in dump_registers() 57 pxa_ssp_read_reg(ssp, SSTO)); in dump_registers() 59 dev_dbg(ssp->dev, "SSPSP 0x%08x SSSR 0x%08x SSACD 0x%08x\n", in dump_registers() 60 pxa_ssp_read_reg(ssp, SSPSP), pxa_ssp_read_reg(ssp, SSSR), in dump_registers() [all …]
|
| /kernel/linux/linux-6.6/include/linux/ |
| D | srcu.h | 28 int __init_srcu_struct(struct srcu_struct *ssp, const char *name, 31 #define init_srcu_struct(ssp) \ argument 35 __init_srcu_struct((ssp), #ssp, &__srcu_key); \ 41 int init_srcu_struct(struct srcu_struct *ssp); 54 void call_srcu(struct srcu_struct *ssp, struct rcu_head *head, 56 void cleanup_srcu_struct(struct srcu_struct *ssp); 57 int __srcu_read_lock(struct srcu_struct *ssp) __acquires(ssp); 58 void __srcu_read_unlock(struct srcu_struct *ssp, int idx) __releases(ssp); 59 void synchronize_srcu(struct srcu_struct *ssp); 60 unsigned long get_state_synchronize_srcu(struct srcu_struct *ssp); [all …]
|
| D | pxa2xx_ssp.h | 5 * This driver supports the following PXA CPU/SSP ports:- 7 * PXA250 SSP 8 * PXA255 SSP, NSSP 9 * PXA26x SSP, NSSP, ASSP 29 * SSP Serial Port Registers 30 * PXA250, PXA255, PXA26x and PXA27x SSP controllers are all slightly different. 34 #define SSCR0 (0x00) /* SSP Control Register 0 */ 35 #define SSCR1 (0x04) /* SSP Control Register 1 */ 36 #define SSSR (0x08) /* SSP Status Register */ 37 #define SSITR (0x0C) /* SSP Interrupt Test Register */ [all …]
|
| /kernel/linux/linux-5.10/drivers/mmc/host/ |
| D | mxs-mmc.c | 49 struct mxs_ssp ssp; member 65 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_get_cd() local 76 !(readl(ssp->base + HW_SSP_STATUS(ssp)) & in mxs_mmc_get_cd() 87 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_reset() local 91 ret = stmp_reset_block(ssp->base); in mxs_mmc_reset() 109 ssp->base + HW_SSP_TIMING(ssp)); in mxs_mmc_reset() 116 writel(ctrl0, ssp->base + HW_SSP_CTRL0); in mxs_mmc_reset() 117 writel(ctrl1, ssp->base + HW_SSP_CTRL1(ssp)); in mxs_mmc_reset() 129 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_request_done() local 133 cmd->resp[3] = readl(ssp->base + HW_SSP_SDRESP0(ssp)); in mxs_mmc_request_done() [all …]
|
| /kernel/linux/linux-6.6/drivers/mmc/host/ |
| D | mxs-mmc.c | 48 struct mxs_ssp ssp; member 64 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_get_cd() local 75 !(readl(ssp->base + HW_SSP_STATUS(ssp)) & in mxs_mmc_get_cd() 86 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_reset() local 90 ret = stmp_reset_block(ssp->base); in mxs_mmc_reset() 108 ssp->base + HW_SSP_TIMING(ssp)); in mxs_mmc_reset() 115 writel(ctrl0, ssp->base + HW_SSP_CTRL0); in mxs_mmc_reset() 116 writel(ctrl1, ssp->base + HW_SSP_CTRL1(ssp)); in mxs_mmc_reset() 128 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_request_done() local 132 cmd->resp[3] = readl(ssp->base + HW_SSP_SDRESP0(ssp)); in mxs_mmc_request_done() [all …]
|
| /kernel/linux/linux-5.10/drivers/spi/ |
| D | spi-mxs.c | 58 struct mxs_ssp ssp; member 67 struct mxs_ssp *ssp = &spi->ssp; in mxs_spi_setup_transfer() local 76 mxs_ssp_set_clk_rate(ssp, hz); in mxs_spi_setup_transfer() 79 * ssp->clk_rate. Otherwise we would set the rate every transfer in mxs_spi_setup_transfer() 90 ssp->base + HW_SSP_CTRL0 + STMP_OFFSET_REG_SET); in mxs_spi_setup_transfer() 96 ssp->base + HW_SSP_CTRL1(ssp)); in mxs_spi_setup_transfer() 98 writel(0x0, ssp->base + HW_SSP_CMD0); in mxs_spi_setup_transfer() 99 writel(0x0, ssp->base + HW_SSP_CMD1); in mxs_spi_setup_transfer() 127 struct mxs_ssp *ssp = &spi->ssp; in mxs_ssp_wait() local 131 reg = readl_relaxed(ssp->base + offset); in mxs_ssp_wait() [all …]
|
| /kernel/linux/linux-6.6/drivers/spi/ |
| D | spi-mxs.c | 59 struct mxs_ssp ssp; member 68 struct mxs_ssp *ssp = &spi->ssp; in mxs_spi_setup_transfer() local 77 mxs_ssp_set_clk_rate(ssp, hz); in mxs_spi_setup_transfer() 80 * ssp->clk_rate. Otherwise we would set the rate every transfer in mxs_spi_setup_transfer() 91 ssp->base + HW_SSP_CTRL0 + STMP_OFFSET_REG_SET); in mxs_spi_setup_transfer() 97 ssp->base + HW_SSP_CTRL1(ssp)); in mxs_spi_setup_transfer() 99 writel(0x0, ssp->base + HW_SSP_CMD0); in mxs_spi_setup_transfer() 100 writel(0x0, ssp->base + HW_SSP_CMD1); in mxs_spi_setup_transfer() 128 struct mxs_ssp *ssp = &spi->ssp; in mxs_ssp_wait() local 132 reg = readl_relaxed(ssp->base + offset); in mxs_ssp_wait() [all …]
|
| D | spi-pxa2xx-pci.c | 61 static int pxa2xx_spi_pci_clk_register(struct pci_dev *dev, struct ssp_device *ssp, in pxa2xx_spi_pci_clk_register() argument 66 snprintf(buf, sizeof(buf), "pxa2xx-spi.%d", ssp->port_id); in pxa2xx_spi_pci_clk_register() 67 ssp->clk = clk_register_fixed_rate(&dev->dev, buf, NULL, 0, rate); in pxa2xx_spi_pci_clk_register() 68 if (IS_ERR(ssp->clk)) in pxa2xx_spi_pci_clk_register() 69 return PTR_ERR(ssp->clk); in pxa2xx_spi_pci_clk_register() 71 return devm_add_action_or_reset(&dev->dev, pxa2xx_spi_pci_clk_unregister, ssp->clk); in pxa2xx_spi_pci_clk_register() 92 struct ssp_device *ssp = &c->ssp; in lpss_spi_setup() local 99 ssp->type = LPSS_BYT_SSP; in lpss_spi_setup() 100 ssp->port_id = 0; in lpss_spi_setup() 105 ssp->type = LPSS_BSW_SSP; in lpss_spi_setup() [all …]
|
| /kernel/linux/linux-6.6/arch/arm/mach-sa1100/ |
| D | ssp.c | 3 * linux/arch/arm/mach-sa1100/ssp.c 7 * Generic SSP driver. This provides the generic core for simple 8 * IO-based SSP applications. 21 #include <asm/hardware/ssp.h> 30 printk(KERN_WARNING "SSP: receiver overrun\n"); in ssp_interrupt() 38 * ssp_write_word - write a word to the SSP port 41 * Wait for a free entry in the SSP transmit FIFO, and write a data 42 * word to the SSP port. Wait for the SSP port to start sending 74 * ssp_read_word - read a word from the SSP port 76 * Wait for a data word in the SSP receive FIFO, and return the [all …]
|
| /kernel/linux/linux-5.10/arch/arm/mach-sa1100/ |
| D | ssp.c | 3 * linux/arch/arm/mach-sa1100/ssp.c 7 * Generic SSP driver. This provides the generic core for simple 8 * IO-based SSP applications. 21 #include <asm/hardware/ssp.h> 30 printk(KERN_WARNING "SSP: receiver overrun\n"); in ssp_interrupt() 38 * ssp_write_word - write a word to the SSP port 41 * Wait for a free entry in the SSP transmit FIFO, and write a data 42 * word to the SSP port. Wait for the SSP port to start sending 74 * ssp_read_word - read a word from the SSP port 76 * Wait for a data word in the SSP receive FIFO, and return the [all …]
|
| /kernel/linux/linux-5.10/include/linux/ |
| D | srcu.h | 28 int __init_srcu_struct(struct srcu_struct *ssp, const char *name, 31 #define init_srcu_struct(ssp) \ argument 35 __init_srcu_struct((ssp), #ssp, &__srcu_key); \ 41 int init_srcu_struct(struct srcu_struct *ssp); 57 void call_srcu(struct srcu_struct *ssp, struct rcu_head *head, 59 void cleanup_srcu_struct(struct srcu_struct *ssp); 60 int __srcu_read_lock(struct srcu_struct *ssp) __acquires(ssp); 61 void __srcu_read_unlock(struct srcu_struct *ssp, int idx) __releases(ssp); 62 void synchronize_srcu(struct srcu_struct *ssp); 63 unsigned long get_state_synchronize_srcu(struct srcu_struct *ssp); [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/serial/ |
| D | mrvl,pxa-ssp.txt | 1 Device tree bindings for Marvell PXA SSP ports 6 mrvl,pxa25x-ssp 8 mrvl,pxa27x-ssp 9 mrvl,pxa3xx-ssp 10 mvrl,pxa168-ssp 11 mrvl,pxa910-ssp 12 mrvl,ce4100-ssp 21 ssp0: ssp@41000000 { 22 compatible = "mrvl,pxa3xx-ssp"; 24 ssp-id = <1>; [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/serial/ |
| D | mrvl,pxa-ssp.txt | 1 Device tree bindings for Marvell PXA SSP ports 6 mrvl,pxa25x-ssp 8 mrvl,pxa27x-ssp 9 mrvl,pxa3xx-ssp 10 mvrl,pxa168-ssp 11 mrvl,pxa910-ssp 12 mrvl,ce4100-ssp 21 ssp0: ssp@41000000 { 22 compatible = "mrvl,pxa3xx-ssp"; 24 ssp-id = <1>; [all …]
|
| /kernel/linux/linux-5.10/drivers/input/mouse/ |
| D | navpoint.c | 3 * Synaptics NavPoint (PXA27x SSP/SPI) driver. 32 struct ssp_device *ssp; member 46 | SSCR0_SSE /* SSE = 1; SSP enabled */ 120 struct ssp_device *ssp = navpoint->ssp; in navpoint_irq() local 124 status = pxa_ssp_read_reg(ssp, SSSR); in navpoint_irq() 128 pxa_ssp_write_reg(ssp, SSSR, (status & sssr)); in navpoint_irq() 135 data = pxa_ssp_read_reg(ssp, SSDR); in navpoint_irq() 143 status = pxa_ssp_read_reg(ssp, SSSR); in navpoint_irq() 152 struct ssp_device *ssp = navpoint->ssp; in navpoint_up() local 155 clk_prepare_enable(ssp->clk); in navpoint_up() [all …]
|
| /kernel/linux/linux-6.6/drivers/input/mouse/ |
| D | navpoint.c | 3 * Synaptics NavPoint (PXA27x SSP/SPI) driver. 32 struct ssp_device *ssp; member 46 | SSCR0_SSE /* SSE = 1; SSP enabled */ 120 struct ssp_device *ssp = navpoint->ssp; in navpoint_irq() local 124 status = pxa_ssp_read_reg(ssp, SSSR); in navpoint_irq() 128 pxa_ssp_write_reg(ssp, SSSR, (status & sssr)); in navpoint_irq() 135 data = pxa_ssp_read_reg(ssp, SSDR); in navpoint_irq() 143 status = pxa_ssp_read_reg(ssp, SSSR); in navpoint_irq() 152 struct ssp_device *ssp = navpoint->ssp; in navpoint_up() local 155 clk_prepare_enable(ssp->clk); in navpoint_up() [all …]
|
| /kernel/linux/linux-6.6/arch/x86/kernel/ |
| D | shstk.c | 50 static int create_rstor_token(unsigned long ssp, unsigned long *token_addr) in create_rstor_token() argument 55 if (!IS_ALIGNED(ssp, 8)) in create_rstor_token() 58 addr = ssp - SS_FRAME_SIZE; in create_rstor_token() 61 * SSP is aligned, so reserved bits and mode bit are a zero, just mark in create_rstor_token() 64 ssp |= BIT(0); in create_rstor_token() 66 if (write_user_shstk_64((u64 __user *)addr, (u64)ssp)) in create_rstor_token() 79 * The shadow stack pointer(SSP) is moved by CALL, RET, and INCSSPQ. The 86 * and INCSSP. In addition to modifying SSP, INCSSP also reads from the 90 * READ_ONCE(ssp); // read+discard top element on stack 91 * ssp += nr_to_pop * 8; // move the shadow stack [all …]
|