| /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 …]
|
| H A D | sdio_cis.c | 25 static int cistpl_vers_1(struct mmc_card *card, struct sdio_func *func, in cistpl_vers_1() argument 68 if (func) { in cistpl_vers_1() 69 func->major_rev = major_rev; in cistpl_vers_1() 70 func->minor_rev = minor_rev; in cistpl_vers_1() 71 func->num_info = nr_strings; in cistpl_vers_1() 72 func->info = (const char**)buffer; in cistpl_vers_1() 83 static int cistpl_manfid(struct mmc_card *card, struct sdio_func *func, in cistpl_manfid() argument 94 if (func) { in cistpl_manfid() 95 func->vendor = vendor; in cistpl_manfid() 96 func->device = device; in cistpl_manfid() [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/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/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/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/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/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() 70 if (WARN_ON_ONCE(!func)) in klp_ftrace_handler() 86 if (unlikely(func->transition)) { in klp_ftrace_handler() 106 func = list_entry_rcu(func->stack_node.next, in klp_ftrace_handler() 109 if (&func->stack_node == &ops->func_stack) in klp_ftrace_handler() 118 if (func->nop) in klp_ftrace_handler() [all …]
|
| /linux/drivers/gpu/drm/nouveau/nvkm/engine/gr/ |
| 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 …]
|
| 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 …]
|
| /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/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/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/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/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/pinctrl/mediatek/ |
| 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/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/drivers/net/wireless/marvell/libertas/ |
| H A D | if_sdio.c | 47 static void if_sdio_interrupt(struct sdio_func *func); 110 struct sdio_func *func; member 149 scratch = sdio_readb(card->func, card->scratch_reg, &ret); in if_sdio_read_scratch() 151 scratch |= sdio_readb(card->func, card->scratch_reg + 1, in if_sdio_read_scratch() 168 rx_unit = sdio_readb(card->func, IF_SDIO_RX_UNIT, &ret); in if_sdio_read_rx_unit() 188 rx_len = sdio_readb(card->func, IF_SDIO_RX_LEN, &ret); in if_sdio_read_rx_len() 272 event = sdio_readb(card->func, IF_SDIO_EVENT, &ret); in if_sdio_handle_event() 306 status = sdio_readb(card->func, IF_SDIO_STATUS, &ret); in if_sdio_wait_status() 343 chunk = sdio_align_size(card->func, size); in if_sdio_card_to_host() 345 ret = sdio_readsb(card->func, card->buffer, card->ioport, chunk); in if_sdio_card_to_host() [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() 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 647 func = kzalloc_obj(*func); in pmf_add_function_prop() [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/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 …]
|
| /linux/drivers/gpu/drm/nouveau/nvkm/subdev/bar/ |
| H A D | base.c | 29 if (bar && bar->func->flush) in nvkm_bar_flush() 30 bar->func->flush(bar); in nvkm_bar_flush() 36 return device->bar->func->bar1.vmm(device->bar); in nvkm_bar_bar1_vmm() 44 bar->func->bar1.init(bar); in nvkm_bar_bar1_reset() 45 bar->func->bar1.wait(bar); in nvkm_bar_bar1_reset() 57 return bar->func->bar2.vmm(bar); in nvkm_bar_bar2_vmm() 66 bar->func->bar2.init(bar); in nvkm_bar_bar2_reset() 67 bar->func->bar2.wait(bar); in nvkm_bar_bar2_reset() 76 bar->func->bar2.fini(bar); in nvkm_bar_bar2_fini() 85 if (bar && bar->subdev.oneinit && !bar->bar2 && bar->func->bar2.init) { in nvkm_bar_bar2_init() [all …]
|