| /linux/drivers/mmc/core/ |
| H A D | sdio_bus.c | 36 struct sdio_func *func; \ 38 func = dev_to_sdio_func (dev); \ 43 sdio_config_attr(class, "0x%02x\n", func->class); 44 sdio_config_attr(vendor, "0x%04x\n", func->vendor); 45 sdio_config_attr(device, "0x%04x\n", func->device); 46 sdio_config_attr(revision, "%u.%u\n", func->major_rev, func->minor_rev); 47 sdio_config_attr(modalias, "sdio:c%02Xv%04Xd%04X\n", func->class, func->vendor, func->device); 52 struct sdio_func *func = dev_to_sdio_func(dev); \ 54 if (num > func->num_info) \ 56 if (!func->info[num - 1][0]) \ [all …]
|
| H A D | sdio_irq.c | 64 struct sdio_func *func; in process_sdio_pending_irqs() local 78 func = card->sdio_single_irq; in process_sdio_pending_irqs() 79 if (func && sdio_irq_pending) { in process_sdio_pending_irqs() 80 func->irq_handler(func); in process_sdio_pending_irqs() 91 func = card->sdio_func[i - 1]; in process_sdio_pending_irqs() 92 if (!func) { in process_sdio_pending_irqs() 96 } else if (func->irq_handler) { in process_sdio_pending_irqs() 97 func->irq_handler(func); in process_sdio_pending_irqs() 101 sdio_func_id(func)); in process_sdio_pending_irqs() 273 struct sdio_func *func; in sdio_single_irq_set() local [all …]
|
| /linux/tools/bpf/bpftool/ |
| H A D | cfg.c | 48 #define func_prev(func) list_prev_entry(func, l) argument 49 #define func_next(func) list_next_entry(func, l) argument 52 #define entry_bb(func) func_first_bb(func) argument 53 #define exit_bb(func) func_last_bb(func) argument 58 #define func_first_bb(func) \ argument 59 list_first_entry(&func->bbs, struct bb_node, l) 60 #define func_last_bb(func) \ argument 61 list_last_entry(&func->bbs, struct bb_node, l) 65 struct func_node *new_func, *func; in cfg_append_func() local 67 list_for_each_entry(func, &cfg->funcs, l) { in cfg_append_func() [all …]
|
| /linux/drivers/pinctrl/mediatek/ |
| H A D | pinctrl-mt76x8.c | 39 FUNC("sdxc d6", 3, 19, 1), 40 FUNC("pwm1 utif", 2, 19, 1), 41 FUNC("pwm1", 0, 19, 1), 45 FUNC("sdxc d7", 3, 18, 1), 46 FUNC("pwm0 utif", 2, 18, 1), 47 FUNC("pwm0", 0, 18, 1), 51 FUNC("sdxc d5 d4", 3, 20, 2), 52 FUNC("uart2 pwm", 2, 20, 2), 53 FUNC("uart2", 0, 20, 2), 57 FUNC("sw_r", 3, 45, 2), [all …]
|
| H A D | pinctrl-mtmips.c | 35 struct mtmips_pmx_func **func; member 71 *pins = p->groups[group].func[0].pins; in mtmips_get_group_pins() 72 *num_pins = p->groups[group].func[0].pin_count; in mtmips_get_group_pins() 93 unsigned int func) in mtmips_pmx_func_name() argument 97 return p->func[func]->name; in mtmips_pmx_func_name() 101 unsigned int func, in mtmips_pmx_group_get_groups() argument 107 if (p->func[func]->group_count == 1) in mtmips_pmx_group_get_groups() 108 *groups = &p->group_names[p->func[func]->groups[0]]; in mtmips_pmx_group_get_groups() 112 *num_groups = p->func[func]->group_count; in mtmips_pmx_group_get_groups() 118 unsigned int func, unsigned int group) in mtmips_pmx_group_enable() argument [all …]
|
| /linux/drivers/net/wireless/ti/wl1251/ |
| H A D | sdio.c | 23 struct sdio_func *func; member 30 return wl_sdio->func; in wl_to_func() 33 static void wl1251_sdio_interrupt(struct sdio_func *func) in wl1251_sdio_interrupt() argument 35 struct wl1251 *wl = sdio_get_drvdata(func); in wl1251_sdio_interrupt() 54 struct sdio_func *func = wl_to_func(wl); in wl1251_sdio_read() local 56 sdio_claim_host(func); in wl1251_sdio_read() 57 ret = sdio_memcpy_fromio(func, buf, addr, len); in wl1251_sdio_read() 60 sdio_release_host(func); in wl1251_sdio_read() 67 struct sdio_func *func = wl_to_func(wl); in wl1251_sdio_write() local 69 sdio_claim_host(func); in wl1251_sdio_write() [all …]
|
| /linux/drivers/net/wireless/silabs/wfx/ |
| H A D | bus_sdio.c | 46 struct sdio_func *func; member 66 ret = sdio_memcpy_fromio(bus->func, dst, sdio_addr, count); in wfx_sdio_copy_from_io() 87 ret = sdio_memcpy_toio(bus->func, sdio_addr, (void *)src, count); in wfx_sdio_copy_to_io() 98 sdio_claim_host(bus->func); in wfx_sdio_lock() 105 sdio_release_host(bus->func); in wfx_sdio_unlock() 108 static void wfx_sdio_irq_handler(struct sdio_func *func) in wfx_sdio_irq_handler() argument 110 struct wfx_sdio_priv *bus = sdio_get_drvdata(func); in wfx_sdio_irq_handler() 119 sdio_claim_host(bus->func); in wfx_sdio_irq_handler_ext() 121 sdio_release_host(bus->func); in wfx_sdio_irq_handler_ext() 133 sdio_claim_host(bus->func); in wfx_sdio_irq_subscribe() [all …]
|
| H A D | bus_spi.c | 52 struct spi_device *func; member 90 ret = spi_sync(bus->func, &m); in wfx_spi_copy_from_io() 132 ret = spi_sync(bus->func, &m); in wfx_spi_copy_to_io() 161 flags = irq_get_trigger_type(bus->func->irq); in wfx_spi_irq_subscribe() 165 return devm_request_threaded_irq(&bus->func->dev, bus->func->irq, NULL, in wfx_spi_irq_subscribe() 173 devm_free_irq(&bus->func->dev, bus->func->irq, bus); in wfx_spi_irq_unsubscribe() 187 device_set_wakeup_enable(&bus->func->dev, enabled); in wfx_spi_set_wakeup() 203 struct spi_device *func = to_spi_device(dev); in wfx_spi_suspend() local 204 struct wfx_spi_priv *bus = spi_get_drvdata(func); in wfx_spi_suspend() 209 return enable_irq_wake(func->irq); in wfx_spi_suspend() [all …]
|
| /linux/drivers/pinctrl/renesas/ |
| H A D | pinctrl-rza1.c | 84 u8 func: 4; member 102 u16 func: 4; member 127 { .pin = 0, .func = 1 }, 128 { .pin = 1, .func = 1 }, 129 { .pin = 2, .func = 1 }, 130 { .pin = 3, .func = 1 }, 131 { .pin = 4, .func = 1 }, 132 { .pin = 5, .func = 1 }, 133 { .pin = 6, .func = 1 }, 134 { .pin = 7, .func = 1 }, [all …]
|
| /linux/Documentation/translations/zh_CN/kernel-hacking/ |
| H A D | hacking.rst | 49 重要的任务和中断抢占。您可以通过调用 :c:func:`schedule()` 进行睡眠。 56 且 :c:func:`in_interrupt()` ( ``include/linux/preempt.h`` )值为非(false)。 60 请注意,如果您禁用了抢占或软中断(见下文),:c:func:`in_interrupt()` 会 100 你可以使用 :c:func:`in_softirq()` 宏( ``include/linux/preempt.h`` )来确认 146 如果您的程序所做的只是读取或写入一些参数,请考虑实现 :c:func:`sysfs()` 接口。 198 :c:func:`printk()` 203 :c:func:`printk()` 将内核消息提供给控制台、dmesg和syslog守护进程。它对于调 218 :c:func:`printk()` 内部使用的1K缓冲区,不捕获溢出。请确保足够使用。 230 :c:func:`copy_to_user()` / :c:func:`copy_from_user()` / :c:func:`get_user()` / :c:func:`put_user()` 237 :c:func:`put_user()` 和 :c:func:`get_user()` 用于从用户空间中获取和向用户空 [all …]
|
| /linux/kernel/livepatch/ |
| H A D | patch.c | 28 struct klp_func *func; in klp_find_ops() local 31 func = list_first_entry(&ops->func_stack, struct klp_func, in klp_find_ops() 33 if (func->old_func == old_func) in klp_find_ops() 46 struct klp_func *func; in klp_ftrace_handler() local 62 func = list_first_or_null_rcu(&ops->func_stack, struct klp_func, in klp_ftrace_handler() 66 * func should never be NULL because preemption should be disabled here in klp_ftrace_handler() 70 if (WARN_ON_ONCE(!func)) in klp_ftrace_handler() 75 * func->transition reads. The corresponding write barrier is in in klp_ftrace_handler() 80 * this handler, its TIF_PATCH_PENDING read and this func->transition in klp_ftrace_handler() 86 if (unlikely(func->transition)) { in klp_ftrace_handler() [all …]
|
| /linux/drivers/net/wireless/broadcom/b43/ |
| H A D | sdio.c | 49 static void b43_sdio_interrupt_dispatcher(struct sdio_func *func) in b43_sdio_interrupt_dispatcher() argument 51 struct b43_sdio *sdio = sdio_get_drvdata(func); in b43_sdio_interrupt_dispatcher() 57 sdio_release_host(func); in b43_sdio_interrupt_dispatcher() 59 sdio_claim_host(func); in b43_sdio_interrupt_dispatcher() 66 struct sdio_func *func = bus->host_sdio; in b43_sdio_request_irq() local 67 struct b43_sdio *sdio = sdio_get_drvdata(func); in b43_sdio_request_irq() 72 sdio_claim_host(func); in b43_sdio_request_irq() 73 err = sdio_claim_irq(func, b43_sdio_interrupt_dispatcher); in b43_sdio_request_irq() 74 sdio_release_host(func); in b43_sdio_request_irq() 82 struct sdio_func *func = bus->host_sdio; in b43_sdio_free_irq() local [all …]
|
| /linux/drivers/gpu/drm/i915/ |
| H A D | intel_device_info.h | 144 #define DEV_INFO_FOR_EACH_FLAG(func) \ argument 145 func(is_mobile); \ 146 func(require_force_probe); \ 147 func(is_dgfx); \ 149 func(has_64bit_reloc); \ 150 func(has_64k_pages); \ 151 func(gpu_reset_clobbers_display); \ 152 func(has_reset_engine); \ 153 func(has_3d_pipeline); \ 154 func(has_flat_ccs); \ [all …]
|
| /linux/drivers/gpu/drm/nouveau/nvkm/engine/gr/ |
| H A D | base.c | 32 if (gr && gr->func->ctxsw.inst) in nvkm_gr_ctxsw_inst() 33 return gr->func->ctxsw.inst(gr); in nvkm_gr_ctxsw_inst() 41 if (gr && gr->func->ctxsw.resume) in nvkm_gr_ctxsw_resume() 42 return gr->func->ctxsw.resume(gr); in nvkm_gr_ctxsw_resume() 50 if (gr && gr->func->ctxsw.pause) in nvkm_gr_ctxsw_pause() 51 return gr->func->ctxsw.pause(gr); in nvkm_gr_ctxsw_pause() 59 if (gr->func->chsw_load) in nvkm_gr_chsw_load() 60 return gr->func->chsw_load(gr); in nvkm_gr_chsw_load() 68 if (gr->func->tile) in nvkm_gr_tile() 69 gr->func->tile(gr, region, tile); in nvkm_gr_tile() [all …]
|
| H A D | nv04.c | 760 bool (*func)(struct nvkm_device *, u32, u32); in nv03_gr_mthd_gdi() local 762 case 0x0184: func = nv01_gr_mthd_bind_patt; break; in nv03_gr_mthd_gdi() 763 case 0x0188: func = nv04_gr_mthd_bind_rop; break; in nv03_gr_mthd_gdi() 764 case 0x018c: func = nv04_gr_mthd_bind_beta1; break; in nv03_gr_mthd_gdi() 765 case 0x0190: func = nv04_gr_mthd_bind_surf_dst; break; in nv03_gr_mthd_gdi() 766 case 0x02fc: func = nv04_gr_mthd_set_operation; break; in nv03_gr_mthd_gdi() 770 return func(device, inst, data); in nv03_gr_mthd_gdi() 776 bool (*func)(struct nvkm_device *, u32, u32); in nv04_gr_mthd_gdi() local 778 case 0x0188: func = nv04_gr_mthd_bind_patt; break; in nv04_gr_mthd_gdi() 779 case 0x018c: func = nv04_gr_mthd_bind_rop; break; in nv04_gr_mthd_gdi() [all …]
|
| /linux/arch/powerpc/platforms/powermac/ |
| H A D | pfunc_core.c | 73 struct pmf_function *func; member 131 return handlers->name(cmd->func, cmd->instdata, \ 579 static int pmf_parse_one(struct pmf_function *func, in pmf_parse_one() argument 587 cmd.cmdptr = func->data; in pmf_parse_one() 588 cmd.cmdend = func->data + func->length; in pmf_parse_one() 589 cmd.func = func; in pmf_parse_one() 594 LOG_PARSE("pmf: func %s, %d bytes, %s...\n", in pmf_parse_one() 595 func->name, func->length, in pmf_parse_one() 631 func->length = cmd.cmdptr - func->data; in pmf_parse_one() 641 struct pmf_function *func = NULL; in pmf_add_function_prop() local [all …]
|
| /linux/drivers/pci/hotplug/ |
| H A D | cpqphp_pci.c | 73 int cpqhp_configure_device(struct controller *ctrl, struct pci_func *func) in cpqhp_configure_device() argument 80 if (func->pci_dev == NULL) in cpqhp_configure_device() 81 func->pci_dev = pci_get_domain_bus_and_slot(0, func->bus, in cpqhp_configure_device() 82 PCI_DEVFN(func->device, in cpqhp_configure_device() 83 func->function)); in cpqhp_configure_device() 86 if (func->pci_dev == NULL) { in cpqhp_configure_device() 89 num = pci_scan_slot(ctrl->pci_dev->bus, PCI_DEVFN(func->device, func->function)); in cpqhp_configure_device() 93 func->pci_dev = pci_get_domain_bus_and_slot(0, func->bus, in cpqhp_configure_device() 94 PCI_DEVFN(func->device, in cpqhp_configure_device() 95 func->function)); in cpqhp_configure_device() [all …]
|
| /linux/drivers/net/wireless/microchip/wilc1000/ |
| H A D | sdio.c | 59 static void wilc_sdio_interrupt(struct sdio_func *func) in wilc_sdio_interrupt() argument 61 sdio_release_host(func); in wilc_sdio_interrupt() 62 wilc_handle_isr(sdio_get_drvdata(func)); in wilc_sdio_interrupt() 63 sdio_claim_host(func); in wilc_sdio_interrupt() 68 struct sdio_func *func = container_of(wilc->dev, struct sdio_func, dev); in wilc_sdio_cmd52() local 72 sdio_claim_host(func); in wilc_sdio_cmd52() 74 func->num = cmd->function; in wilc_sdio_cmd52() 77 sdio_writeb(func, cmd->data, cmd->address, &ret); in wilc_sdio_cmd52() 78 data = sdio_readb(func, cmd->address, &ret); in wilc_sdio_cmd52() 81 sdio_writeb(func, cmd->data, cmd->address, &ret); in wilc_sdio_cmd52() [all …]
|
| /linux/drivers/bluetooth/ |
| H A D | btsdio.c | 42 struct sdio_func *func; member 74 err = sdio_writesb(data->func, REG_TDAT, skb->data, skb->len); in btsdio_tx_packet() 77 sdio_writeb(data->func, 0x01, REG_PC_WRT, NULL); in btsdio_tx_packet() 96 sdio_claim_host(data->func); in btsdio_work() 107 sdio_release_host(data->func); in btsdio_work() 118 err = sdio_readsb(data->func, hdr, REG_RDAT, 4); in btsdio_rx_packet() 137 err = sdio_readsb(data->func, skb->data, REG_RDAT, len - 4); in btsdio_rx_packet() 160 sdio_writeb(data->func, 0x00, REG_PC_RRT, NULL); in btsdio_rx_packet() 165 static void btsdio_interrupt(struct sdio_func *func) in btsdio_interrupt() argument 167 struct btsdio_data *data = sdio_get_drvdata(func); in btsdio_interrupt() [all …]
|
| /linux/drivers/media/mmc/siano/ |
| H A D | smssdio.c | 77 struct sdio_func *func; member 95 sdio_claim_host(smsdev->func); in smssdio_sendrequest() 98 while (size >= smsdev->func->cur_blksize) { in smssdio_sendrequest() 99 ret = sdio_memcpy_toio(smsdev->func, SMSSDIO_DATA, in smssdio_sendrequest() 100 buffer, smsdev->func->cur_blksize); in smssdio_sendrequest() 104 buffer += smsdev->func->cur_blksize; in smssdio_sendrequest() 105 size -= smsdev->func->cur_blksize; in smssdio_sendrequest() 109 ret = sdio_memcpy_toio(smsdev->func, SMSSDIO_DATA, in smssdio_sendrequest() 114 sdio_release_host(smsdev->func); in smssdio_sendrequest() 123 static void smssdio_interrupt(struct sdio_func *func) in smssdio_interrupt() argument [all …]
|
| /linux/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/ |
| H A D | base.c | 31 return gpio->func->drive(gpio, line, dir, out); in nvkm_gpio_drive() 37 return gpio->func->sense(gpio, line); in nvkm_gpio_sense() 41 nvkm_gpio_reset(struct nvkm_gpio *gpio, u8 func) in nvkm_gpio_reset() argument 43 if (gpio->func->reset) in nvkm_gpio_reset() 44 gpio->func->reset(gpio, func); in nvkm_gpio_reset() 49 struct dcb_gpio_func *func) in nvkm_gpio_find() argument 59 data = dcb_gpio_match(bios, idx, tag, line, &ver, &len, func); in nvkm_gpio_find() 66 *func = (struct dcb_gpio_func) { in nvkm_gpio_find() 67 .func = DCB_GPIO_TVDAC0, in nvkm_gpio_find() 82 struct dcb_gpio_func func; in nvkm_gpio_set() local [all …]
|
| /linux/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ |
| H A D | base.c | 37 fb->func->tile.fini(fb, region, tile); in nvkm_fb_tile_fini() 44 fb->func->tile.init(fb, region, addr, size, pitch, flags, tile); in nvkm_fb_tile_init() 51 if (fb->func->tile.prog) { in nvkm_fb_tile_prog() 52 fb->func->tile.prog(fb, region, tile); in nvkm_fb_tile_prog() 65 if (fb->func->sysmem.flush_page_init) in nvkm_fb_sysmem_flush_page_init() 66 fb->func->sysmem.flush_page_init(fb); in nvkm_fb_sysmem_flush_page_init() 101 if (fb->func->intr) in nvkm_fb_intr() 102 fb->func->intr(fb); in nvkm_fb_intr() 111 if (fb->func->ram_new) { in nvkm_fb_oneinit() 112 int ret = fb->func->ram_new(fb, &fb->ram); in nvkm_fb_oneinit() [all …]
|
| /linux/arch/powerpc/math-emu/ |
| H A D | math.c | 233 int (*func)(void *, void *, void *, void *); in do_mathemu() local 241 case LFS: func = lfs; type = D; break; in do_mathemu() 242 case LFSU: func = lfs; type = DU; break; in do_mathemu() 243 case LFD: func = lfd; type = D; break; in do_mathemu() 244 case LFDU: func = lfd; type = DU; break; in do_mathemu() 245 case STFS: func = stfs; type = D; break; in do_mathemu() 246 case STFSU: func = stfs; type = DU; break; in do_mathemu() 247 case STFD: func = stfd; type = D; break; in do_mathemu() 248 case STFDU: func = stfd; type = DU; break; in do_mathemu() 252 case LFSX: func = lfs; type = XE; break; in do_mathemu() [all …]
|
| /linux/include/trace/events/ |
| H A D | csd.h | 14 smp_call_func_t func, 17 TP_ARGS(cpu, callsite, func, csd), 22 __field(void *, func) 29 __entry->func = func; 33 TP_printk("cpu=%u callsite=%pS func=%ps csd=%p", 34 __entry->cpu, __entry->callsite, __entry->func, __entry->csd) 42 TP_PROTO(smp_call_func_t func, call_single_data_t *csd), 44 TP_ARGS(func, csd), 47 __field(void *, func) 52 __entry->func = func; [all …]
|
| /linux/drivers/net/wireless/st/cw1200/ |
| H A D | cw1200_sdio.c | 47 struct sdio_func *func; member 64 return sdio_memcpy_fromio(self->func, dst, addr, count); in cw1200_sdio_memcpy_fromio() 71 return sdio_memcpy_toio(self->func, addr, (void *)src, count); in cw1200_sdio_memcpy_toio() 76 sdio_claim_host(self->func); in cw1200_sdio_lock() 81 sdio_release_host(self->func); in cw1200_sdio_unlock() 84 static void cw1200_sdio_irq_handler(struct sdio_func *func) in cw1200_sdio_irq_handler() argument 86 struct hwbus_priv *self = sdio_get_drvdata(func); in cw1200_sdio_irq_handler() 117 cccr = sdio_f0_readb(self->func, SDIO_CCCR_IENx, &ret); in cw1200_request_irq() 125 cccr |= BIT(self->func->num); in cw1200_request_irq() 127 sdio_f0_writeb(self->func, cccr, SDIO_CCCR_IENx, &ret); in cw1200_request_irq() [all …]
|