Searched refs:nvec (Results 1 - 48 of 48) sorted by relevance

/linux-4.1.27/drivers/staging/nvec/
H A Dnvec.c40 #include "nvec.h"
87 .name = "nvec-kbd",
90 .name = "nvec-mouse",
93 .name = "nvec-power",
97 .name = "nvec-power",
101 .name = "nvec-paz00",
106 * nvec_register_notifier - Register a notifier with nvec
107 * @nvec: A &struct nvec_chip
110 * Registers a notifier with @nvec. The notifier will be added to an atomic
114 int nvec_register_notifier(struct nvec_chip *nvec, struct notifier_block *nb, nvec_register_notifier() argument
117 return atomic_notifier_chain_register(&nvec->notifier_list, nb); nvec_register_notifier()
122 * nvec_unregister_notifier - Unregister a notifier with nvec
123 * @nvec: A &struct nvec_chip
126 * Unregisters a notifier with @nvec. The notifier will be removed from the
129 int nvec_unregister_notifier(struct nvec_chip *nvec, struct notifier_block *nb) nvec_unregister_notifier() argument
131 return atomic_notifier_chain_unregister(&nvec->notifier_list, nb); nvec_unregister_notifier()
144 struct nvec_chip *nvec = container_of(nb, struct nvec_chip, nvec_status_notifier() local
151 dev_warn(nvec->dev, "unhandled msg type %ld\n", event_type); nvec_status_notifier()
160 * @nvec: A &struct nvec_chip
164 * @nvec. The result shall be passed to nvec_msg_free() if no longer
172 static struct nvec_msg *nvec_msg_alloc(struct nvec_chip *nvec, nvec_msg_alloc() argument
178 if (atomic_xchg(&nvec->msg_pool[i].used, 1) == 0) { nvec_msg_alloc()
179 dev_vdbg(nvec->dev, "INFO: Allocate %i\n", i); nvec_msg_alloc()
180 return &nvec->msg_pool[i]; nvec_msg_alloc()
184 dev_err(nvec->dev, "could not allocate %s buffer\n", nvec_msg_alloc()
192 * @nvec: A &struct nvec_chip
193 * @msg: A message (must be allocated by nvec_msg_alloc() and belong to @nvec)
197 void nvec_msg_free(struct nvec_chip *nvec, struct nvec_msg *msg) nvec_msg_free() argument
199 if (msg != &nvec->tx_scratch) nvec_msg_free()
200 dev_vdbg(nvec->dev, "INFO: Free %ti\n", msg - nvec->msg_pool); nvec_msg_free()
237 * @nvec: A &struct nvec_chip
242 static void nvec_gpio_set_value(struct nvec_chip *nvec, int value) nvec_gpio_set_value() argument
244 dev_dbg(nvec->dev, "GPIO changed from %u to %u\n", nvec_gpio_set_value()
245 gpio_get_value(nvec->gpio), value); nvec_gpio_set_value()
246 gpio_set_value(nvec->gpio, value); nvec_gpio_set_value()
251 * @nvec: An nvec_chip instance
259 * occurred, the nvec driver may print an error.
261 int nvec_write_async(struct nvec_chip *nvec, const unsigned char *data, nvec_write_async() argument
267 msg = nvec_msg_alloc(nvec, NVEC_MSG_TX); nvec_write_async()
276 spin_lock_irqsave(&nvec->tx_lock, flags); nvec_write_async()
277 list_add_tail(&msg->node, &nvec->tx_data); nvec_write_async()
278 spin_unlock_irqrestore(&nvec->tx_lock, flags); nvec_write_async()
280 schedule_work(&nvec->tx_work); nvec_write_async()
287 * nvec_write_sync - Write a message to nvec and read the response
288 * @nvec: An &struct nvec_chip
301 struct nvec_msg *nvec_write_sync(struct nvec_chip *nvec, nvec_write_sync() argument
306 mutex_lock(&nvec->sync_write_mutex); nvec_write_sync()
308 nvec->sync_write_pending = (data[1] << 8) + data[0]; nvec_write_sync()
310 if (nvec_write_async(nvec, data, size) < 0) { nvec_write_sync()
311 mutex_unlock(&nvec->sync_write_mutex); nvec_write_sync()
315 dev_dbg(nvec->dev, "nvec_sync_write: 0x%04x\n", nvec_write_sync()
316 nvec->sync_write_pending); nvec_write_sync()
317 if (!(wait_for_completion_timeout(&nvec->sync_write, nvec_write_sync()
319 dev_warn(nvec->dev, "timeout waiting for sync write to complete\n"); nvec_write_sync()
320 mutex_unlock(&nvec->sync_write_mutex); nvec_write_sync()
324 dev_dbg(nvec->dev, "nvec_sync_write: pong!\n"); nvec_write_sync()
326 msg = nvec->last_sync_msg; nvec_write_sync()
328 mutex_unlock(&nvec->sync_write_mutex); nvec_write_sync()
336 * @nvec: nvec handle
341 static void nvec_toggle_global_events(struct nvec_chip *nvec, bool state) nvec_toggle_global_events() argument
345 nvec_write_async(nvec, global_events, 3); nvec_toggle_global_events()
379 struct nvec_chip *nvec = container_of(work, struct nvec_chip, tx_work); nvec_request_master() local
384 spin_lock_irqsave(&nvec->tx_lock, flags); nvec_request_master()
385 while (!list_empty(&nvec->tx_data)) { nvec_request_master()
386 msg = list_first_entry(&nvec->tx_data, struct nvec_msg, node); nvec_request_master()
387 spin_unlock_irqrestore(&nvec->tx_lock, flags); nvec_request_master()
388 nvec_gpio_set_value(nvec, 0); nvec_request_master()
390 &nvec->ec_transfer, msecs_to_jiffies(5000)); nvec_request_master()
393 dev_warn(nvec->dev, "timeout waiting for ec transfer\n"); nvec_request_master()
394 nvec_gpio_set_value(nvec, 1); nvec_request_master()
398 spin_lock_irqsave(&nvec->tx_lock, flags); nvec_request_master()
402 nvec_msg_free(nvec, msg); nvec_request_master()
405 spin_unlock_irqrestore(&nvec->tx_lock, flags); nvec_request_master()
410 * @nvec: A &struct nvec_chip
411 * @msg: A message received by @nvec
416 static int parse_msg(struct nvec_chip *nvec, struct nvec_msg *msg) parse_msg() argument
419 dev_err(nvec->dev, "ec responded %*ph\n", 4, msg->data); parse_msg()
428 atomic_notifier_call_chain(&nvec->notifier_list, msg->data[0] & 0x8f, parse_msg()
443 struct nvec_chip *nvec = container_of(work, struct nvec_chip, rx_work); nvec_dispatch() local
447 spin_lock_irqsave(&nvec->rx_lock, flags); nvec_dispatch()
448 while (!list_empty(&nvec->rx_data)) { nvec_dispatch()
449 msg = list_first_entry(&nvec->rx_data, struct nvec_msg, node); nvec_dispatch()
451 spin_unlock_irqrestore(&nvec->rx_lock, flags); nvec_dispatch()
453 if (nvec->sync_write_pending == nvec_dispatch()
455 dev_dbg(nvec->dev, "sync write completed!\n"); nvec_dispatch()
456 nvec->sync_write_pending = 0; nvec_dispatch()
457 nvec->last_sync_msg = msg; nvec_dispatch()
458 complete(&nvec->sync_write); nvec_dispatch()
460 parse_msg(nvec, msg); nvec_dispatch()
461 nvec_msg_free(nvec, msg); nvec_dispatch()
463 spin_lock_irqsave(&nvec->rx_lock, flags); nvec_dispatch()
465 spin_unlock_irqrestore(&nvec->rx_lock, flags); nvec_dispatch()
470 * @nvec: A &struct nvec_chip
474 static void nvec_tx_completed(struct nvec_chip *nvec) nvec_tx_completed() argument
477 if (nvec->tx->pos != nvec->tx->size) { nvec_tx_completed()
478 dev_err(nvec->dev, "premature END_TRANS, resending\n"); nvec_tx_completed()
479 nvec->tx->pos = 0; nvec_tx_completed()
480 nvec_gpio_set_value(nvec, 0); nvec_tx_completed()
482 nvec->state = 0; nvec_tx_completed()
488 * @nvec: A &struct nvec_chip
492 static void nvec_rx_completed(struct nvec_chip *nvec) nvec_rx_completed() argument
494 if (nvec->rx->pos != nvec_msg_size(nvec->rx)) { nvec_rx_completed()
495 dev_err(nvec->dev, "RX incomplete: Expected %u bytes, got %u\n", nvec_rx_completed()
496 (uint) nvec_msg_size(nvec->rx), nvec_rx_completed()
497 (uint) nvec->rx->pos); nvec_rx_completed()
499 nvec_msg_free(nvec, nvec->rx); nvec_rx_completed()
500 nvec->state = 0; nvec_rx_completed()
503 if (nvec->rx->data[0] == NVEC_BAT) nvec_rx_completed()
504 complete(&nvec->ec_transfer); nvec_rx_completed()
509 spin_lock(&nvec->rx_lock); nvec_rx_completed()
513 list_add_tail(&nvec->rx->node, &nvec->rx_data); nvec_rx_completed()
515 spin_unlock(&nvec->rx_lock); nvec_rx_completed()
517 nvec->state = 0; nvec_rx_completed()
519 if (!nvec_msg_is_event(nvec->rx)) nvec_rx_completed()
520 complete(&nvec->ec_transfer); nvec_rx_completed()
522 schedule_work(&nvec->rx_work); nvec_rx_completed()
527 * @nvec: The nvec device
531 static void nvec_invalid_flags(struct nvec_chip *nvec, unsigned int status, nvec_invalid_flags() argument
534 dev_err(nvec->dev, "unexpected status flags 0x%02x during state %i\n", nvec_invalid_flags()
535 status, nvec->state); nvec_invalid_flags()
537 nvec->state = 0; nvec_invalid_flags()
541 * nvec_tx_set - Set the message to transfer (nvec->tx)
542 * @nvec: A &struct nvec_chip
544 * Gets the first entry from the tx_data list of @nvec and sets the
548 static void nvec_tx_set(struct nvec_chip *nvec) nvec_tx_set() argument
550 spin_lock(&nvec->tx_lock); nvec_tx_set()
551 if (list_empty(&nvec->tx_data)) { nvec_tx_set()
552 dev_err(nvec->dev, "empty tx - sending no-op\n"); nvec_tx_set()
553 memcpy(nvec->tx_scratch.data, "\x02\x07\x02", 3); nvec_tx_set()
554 nvec->tx_scratch.size = 3; nvec_tx_set()
555 nvec->tx_scratch.pos = 0; nvec_tx_set()
556 nvec->tx = &nvec->tx_scratch; nvec_tx_set()
557 list_add_tail(&nvec->tx->node, &nvec->tx_data); nvec_tx_set()
559 nvec->tx = list_first_entry(&nvec->tx_data, struct nvec_msg, nvec_tx_set()
561 nvec->tx->pos = 0; nvec_tx_set()
563 spin_unlock(&nvec->tx_lock); nvec_tx_set()
565 dev_dbg(nvec->dev, "Sending message of length %u, command 0x%x\n", nvec_tx_set()
566 (uint)nvec->tx->size, nvec->tx->data[1]); nvec_tx_set()
572 * @dev: The nvec device
584 struct nvec_chip *nvec = dev; nvec_interrupt() local
585 unsigned int state = nvec->state; nvec_interrupt()
587 status = readl(nvec->base + I2C_SL_STATUS); nvec_interrupt()
591 dev_err(nvec->dev, "unexpected irq mask %lx\n", status); nvec_interrupt()
595 dev_err(nvec->dev, "Spurious IRQ\n"); nvec_interrupt()
601 received = readl(nvec->base + I2C_SL_RCVD); nvec_interrupt()
603 writel(0, nvec->base + I2C_SL_RCVD); nvec_interrupt()
607 nvec->state = 0; nvec_interrupt()
609 switch (nvec->state) { nvec_interrupt()
612 nvec_invalid_flags(nvec, status, false); nvec_interrupt()
616 nvec_invalid_flags(nvec, status, true); nvec_interrupt()
618 nvec->rx = nvec_msg_alloc(nvec, NVEC_MSG_RX); nvec_interrupt()
620 if (unlikely(nvec->rx == NULL)) { nvec_interrupt()
621 nvec->state = 0; nvec_interrupt()
624 nvec->rx->data[0] = received; nvec_interrupt()
625 nvec->rx->pos = 1; nvec_interrupt()
626 nvec->state = 2; nvec_interrupt()
632 if (nvec->rx->data[0] != 0x01) { nvec_interrupt()
633 dev_err(nvec->dev, nvec_interrupt()
635 nvec->state = 0; nvec_interrupt()
638 nvec_msg_free(nvec, nvec->rx); nvec_interrupt()
639 nvec->state = 3; nvec_interrupt()
640 nvec_tx_set(nvec); nvec_interrupt()
641 BUG_ON(nvec->tx->size < 1); nvec_interrupt()
642 to_send = nvec->tx->data[0]; nvec_interrupt()
643 nvec->tx->pos = 1; nvec_interrupt()
645 BUG_ON(nvec->rx == NULL); nvec_interrupt()
646 nvec->rx->data[1] = received; nvec_interrupt()
647 nvec->rx->pos = 2; nvec_interrupt()
648 nvec->state = 4; nvec_interrupt()
650 nvec_invalid_flags(nvec, status, true); nvec_interrupt()
655 nvec_tx_completed(nvec); nvec_interrupt()
657 nvec_invalid_flags(nvec, status, true); nvec_interrupt()
658 } else if (nvec->tx && nvec->tx->pos < nvec->tx->size) { nvec_interrupt()
659 to_send = nvec->tx->data[nvec->tx->pos++]; nvec_interrupt()
661 dev_err(nvec->dev, "tx buffer underflow on %p (%u > %u)\n", nvec_interrupt()
662 nvec->tx, nvec_interrupt()
663 (uint) (nvec->tx ? nvec->tx->pos : 0), nvec_interrupt()
664 (uint) (nvec->tx ? nvec->tx->size : 0)); nvec_interrupt()
665 nvec->state = 0; nvec_interrupt()
670 nvec_rx_completed(nvec); nvec_interrupt()
672 nvec_invalid_flags(nvec, status, true); nvec_interrupt()
673 else if (nvec->rx && nvec->rx->pos < NVEC_MSG_SIZE) nvec_interrupt()
674 nvec->rx->data[nvec->rx->pos++] = received; nvec_interrupt()
676 dev_err(nvec->dev, nvec_interrupt()
678 nvec->rx, nvec->rx ? nvec->rx->pos : 0, nvec_interrupt()
682 nvec->state = 0; nvec_interrupt()
687 if (received != nvec->i2c_addr) nvec_interrupt()
688 dev_err(nvec->dev, nvec_interrupt()
690 received, nvec->i2c_addr); nvec_interrupt()
691 nvec->state = 1; nvec_interrupt()
696 writel(to_send, nvec->base + I2C_SL_RCVD); nvec_interrupt()
700 nvec_gpio_set_value(nvec, 1); nvec_interrupt()
702 dev_dbg(nvec->dev, nvec_interrupt()
725 static void tegra_init_i2c_slave(struct nvec_chip *nvec) tegra_init_i2c_slave() argument
729 clk_prepare_enable(nvec->i2c_clk); tegra_init_i2c_slave()
731 reset_control_assert(nvec->rst); tegra_init_i2c_slave()
733 reset_control_deassert(nvec->rst); tegra_init_i2c_slave()
737 writel(val, nvec->base + I2C_CNFG); tegra_init_i2c_slave()
739 clk_set_rate(nvec->i2c_clk, 8 * 80000); tegra_init_i2c_slave()
741 writel(I2C_SL_NEWSL, nvec->base + I2C_SL_CNFG); tegra_init_i2c_slave()
742 writel(0x1E, nvec->base + I2C_SL_DELAY_COUNT); tegra_init_i2c_slave()
744 writel(nvec->i2c_addr>>1, nvec->base + I2C_SL_ADDR1); tegra_init_i2c_slave()
745 writel(0, nvec->base + I2C_SL_ADDR2); tegra_init_i2c_slave()
747 enable_irq(nvec->irq); tegra_init_i2c_slave()
751 static void nvec_disable_i2c_slave(struct nvec_chip *nvec) nvec_disable_i2c_slave() argument
753 disable_irq(nvec->irq); nvec_disable_i2c_slave()
754 writel(I2C_SL_NEWSL | I2C_SL_NACK, nvec->base + I2C_SL_CNFG); nvec_disable_i2c_slave()
755 clk_disable_unprepare(nvec->i2c_clk); nvec_disable_i2c_slave()
770 static int nvec_i2c_parse_dt_pdata(struct nvec_chip *nvec) nvec_i2c_parse_dt_pdata() argument
772 nvec->gpio = of_get_named_gpio(nvec->dev->of_node, "request-gpios", 0); nvec_i2c_parse_dt_pdata()
774 if (nvec->gpio < 0) { nvec_i2c_parse_dt_pdata()
775 dev_err(nvec->dev, "no gpio specified"); nvec_i2c_parse_dt_pdata()
779 if (of_property_read_u32(nvec->dev->of_node, "slave-addr", nvec_i2c_parse_dt_pdata()
780 &nvec->i2c_addr)) { nvec_i2c_parse_dt_pdata()
781 dev_err(nvec->dev, "no i2c address specified"); nvec_i2c_parse_dt_pdata()
792 struct nvec_chip *nvec; tegra_nvec_probe() local
805 nvec = devm_kzalloc(&pdev->dev, sizeof(struct nvec_chip), GFP_KERNEL); tegra_nvec_probe()
806 if (!nvec) tegra_nvec_probe()
809 platform_set_drvdata(pdev, nvec); tegra_nvec_probe()
810 nvec->dev = &pdev->dev; tegra_nvec_probe()
812 err = nvec_i2c_parse_dt_pdata(nvec); tegra_nvec_probe()
821 nvec->irq = platform_get_irq(pdev, 0); tegra_nvec_probe()
822 if (nvec->irq < 0) { tegra_nvec_probe()
829 dev_err(nvec->dev, "failed to get controller clock\n"); tegra_nvec_probe()
833 nvec->rst = devm_reset_control_get(&pdev->dev, "i2c"); tegra_nvec_probe()
834 if (IS_ERR(nvec->rst)) { tegra_nvec_probe()
835 dev_err(nvec->dev, "failed to get controller reset\n"); tegra_nvec_probe()
836 return PTR_ERR(nvec->rst); tegra_nvec_probe()
839 nvec->base = base; tegra_nvec_probe()
840 nvec->i2c_clk = i2c_clk; tegra_nvec_probe()
841 nvec->rx = &nvec->msg_pool[0]; tegra_nvec_probe()
843 ATOMIC_INIT_NOTIFIER_HEAD(&nvec->notifier_list); tegra_nvec_probe()
845 init_completion(&nvec->sync_write); tegra_nvec_probe()
846 init_completion(&nvec->ec_transfer); tegra_nvec_probe()
847 mutex_init(&nvec->sync_write_mutex); tegra_nvec_probe()
848 spin_lock_init(&nvec->tx_lock); tegra_nvec_probe()
849 spin_lock_init(&nvec->rx_lock); tegra_nvec_probe()
850 INIT_LIST_HEAD(&nvec->rx_data); tegra_nvec_probe()
851 INIT_LIST_HEAD(&nvec->tx_data); tegra_nvec_probe()
852 INIT_WORK(&nvec->rx_work, nvec_dispatch); tegra_nvec_probe()
853 INIT_WORK(&nvec->tx_work, nvec_request_master); tegra_nvec_probe()
855 err = devm_gpio_request_one(&pdev->dev, nvec->gpio, GPIOF_OUT_INIT_HIGH, tegra_nvec_probe()
856 "nvec gpio"); tegra_nvec_probe()
858 dev_err(nvec->dev, "couldn't request gpio\n"); tegra_nvec_probe()
862 err = devm_request_irq(&pdev->dev, nvec->irq, nvec_interrupt, 0, tegra_nvec_probe()
863 "nvec", nvec); tegra_nvec_probe()
865 dev_err(nvec->dev, "couldn't request irq\n"); tegra_nvec_probe()
868 disable_irq(nvec->irq); tegra_nvec_probe()
870 tegra_init_i2c_slave(nvec); tegra_nvec_probe()
873 nvec_toggle_global_events(nvec, true); tegra_nvec_probe()
875 nvec->nvec_status_notifier.notifier_call = nvec_status_notifier; tegra_nvec_probe()
876 nvec_register_notifier(nvec, &nvec->nvec_status_notifier, 0); tegra_nvec_probe()
878 nvec_power_handle = nvec; tegra_nvec_probe()
882 msg = nvec_write_sync(nvec, get_firmware_version, 2); tegra_nvec_probe()
885 dev_warn(nvec->dev, "ec firmware version %02x.%02x.%02x / %02x\n", tegra_nvec_probe()
888 nvec_msg_free(nvec, msg); tegra_nvec_probe()
891 ret = mfd_add_devices(nvec->dev, 0, nvec_devices, tegra_nvec_probe()
894 dev_err(nvec->dev, "error adding subdevices\n"); tegra_nvec_probe()
897 nvec_write_async(nvec, unmute_speakers, 4); tegra_nvec_probe()
901 nvec_write_async(nvec, enable_event, 7); tegra_nvec_probe()
905 nvec_write_async(nvec, enable_event, 7); tegra_nvec_probe()
912 struct nvec_chip *nvec = platform_get_drvdata(pdev); tegra_nvec_remove() local
914 nvec_toggle_global_events(nvec, false); tegra_nvec_remove()
915 mfd_remove_devices(nvec->dev); tegra_nvec_remove()
916 nvec_unregister_notifier(nvec, &nvec->nvec_status_notifier); tegra_nvec_remove()
917 cancel_work_sync(&nvec->rx_work); tegra_nvec_remove()
918 cancel_work_sync(&nvec->tx_work); tegra_nvec_remove()
919 /* FIXME: needs check wether nvec is responsible for power off */ tegra_nvec_remove()
929 struct nvec_chip *nvec = platform_get_drvdata(pdev); nvec_suspend() local
933 dev_dbg(nvec->dev, "suspending\n"); nvec_suspend()
936 nvec_toggle_global_events(nvec, false); nvec_suspend()
938 msg = nvec_write_sync(nvec, ap_suspend, sizeof(ap_suspend)); nvec_suspend()
939 nvec_msg_free(nvec, msg); nvec_suspend()
941 nvec_disable_i2c_slave(nvec); nvec_suspend()
949 struct nvec_chip *nvec = platform_get_drvdata(pdev); nvec_resume() local
951 dev_dbg(nvec->dev, "resuming\n"); nvec_resume()
952 tegra_init_i2c_slave(nvec); nvec_resume()
953 nvec_toggle_global_events(nvec, true); nvec_resume()
963 { .compatible = "nvidia,nvec", },
972 .name = "nvec",
980 MODULE_ALIAS("platform:nvec");
H A Dnvec_kbd.c21 #include "nvec-keytable.h"
22 #include "nvec.h"
38 struct nvec_chip *nvec; member in struct:nvec_keys
54 nvec_write_async(keys_dev.nvec, buf, sizeof(buf)); nvec_kbd_toggle_led()
92 struct nvec_chip *nvec = keys_dev.nvec; nvec_kbd_event() local
105 nvec_write_async(nvec, buf, sizeof(buf)); nvec_kbd_event()
112 struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent); nvec_kbd_probe() local
130 idev->name = "nvec keyboard"; nvec_kbd_probe()
131 idev->phys = "nvec"; nvec_kbd_probe()
149 keys_dev.nvec = nvec; nvec_kbd_probe()
150 nvec_register_notifier(nvec, &keys_dev.notifier, 0); nvec_kbd_probe()
153 nvec_write_async(nvec, enable_kbd, 2); nvec_kbd_probe()
156 nvec_write_async(nvec, cnfg_wake, 4); nvec_kbd_probe()
158 nvec_write_async(nvec, cnfg_wake_key_reporting, 3); nvec_kbd_probe()
161 nvec_write_async(nvec, clear_leds, sizeof(clear_leds)); nvec_kbd_probe()
168 struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent); nvec_kbd_remove() local
172 nvec_write_async(nvec, uncnfg_wake_key_reporting, 3); nvec_kbd_remove()
173 nvec_write_async(nvec, disable_kbd, 2); nvec_kbd_remove()
174 nvec_unregister_notifier(nvec, &keys_dev.notifier); nvec_kbd_remove()
183 .name = "nvec-kbd",
191 MODULE_ALIAS("platform:nvec-kbd");
H A Dnvec_paz00.c19 #include "nvec.h"
30 struct nvec_chip *nvec; member in struct:nvec_led
41 nvec_write_async(led->nvec, buf, sizeof(buf)); nvec_led_brightness_set()
49 struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent); nvec_paz00_probe() local
62 led->nvec = nvec; nvec_paz00_probe()
89 .name = "nvec-paz00",
98 MODULE_ALIAS("platform:nvec-paz00");
H A Dnvec_ps2.c22 #include "nvec.h"
48 struct nvec_chip *nvec; member in struct:nvec_ps2
57 return nvec_write_async(ps2_dev.nvec, buf, sizeof(buf)); ps2_startstreaming()
64 nvec_write_async(ps2_dev.nvec, buf, sizeof(buf)); ps2_stopstreaming()
74 return nvec_write_async(ps2_dev.nvec, buf, sizeof(buf)); ps2_sendcommand()
107 struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent); nvec_mouse_probe() local
120 strlcpy(ser_dev->name, "nvec mouse", sizeof(ser_dev->name)); nvec_mouse_probe()
121 strlcpy(ser_dev->phys, "nvec", sizeof(ser_dev->phys)); nvec_mouse_probe()
125 ps2_dev.nvec = nvec; nvec_mouse_probe()
126 nvec_register_notifier(nvec, &ps2_dev.notifier, 0); nvec_mouse_probe()
131 nvec_write_async(nvec, mouse_reset, sizeof(mouse_reset)); nvec_mouse_probe()
138 struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent); nvec_mouse_remove() local
142 nvec_unregister_notifier(nvec, &ps2_dev.notifier); nvec_mouse_remove()
179 .name = "nvec-mouse",
188 MODULE_ALIAS("platform:nvec-mouse");
H A Dnvec_power.c23 #include "nvec.h"
30 struct nvec_chip *nvec; member in struct:nvec_power
120 nvec_write_async(power->nvec, buf, 2); get_bat_mfg_data()
360 nvec_write_async(power->nvec, buf, 2); nvec_power_poll()
367 nvec_write_async(power->nvec, buf, 2); nvec_power_poll()
377 struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent); nvec_power_probe() local
385 power->nvec = nvec; nvec_power_probe()
409 nvec_register_notifier(nvec, &power->notifier, NVEC_SYS); nvec_power_probe()
424 nvec_unregister_notifier(power->nvec, &power->notifier); nvec_power_remove()
440 .name = "nvec-power",
449 MODULE_ALIAS("platform:nvec-power");
H A Dnvec.h168 extern int nvec_write_async(struct nvec_chip *nvec, const unsigned char *data,
171 extern struct nvec_msg *nvec_write_sync(struct nvec_chip *nvec,
174 extern int nvec_register_notifier(struct nvec_chip *nvec,
181 extern void nvec_msg_free(struct nvec_chip *nvec, struct nvec_msg *msg);
H A Dnvec-keytable.h2 * drivers/input/keyboard/tegra-nvec.c
/linux-4.1.27/arch/powerpc/kernel/
H A Dmsi.c16 int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) arch_setup_msi_irqs() argument
24 if (type == PCI_CAP_ID_MSI && nvec > 1) arch_setup_msi_irqs()
27 return ppc_md.setup_msi_irqs(dev, nvec, type); arch_setup_msi_irqs()
/linux-4.1.27/drivers/iommu/
H A Dirq_remapping.c27 static int msi_alloc_remapped_irq(struct pci_dev *pdev, int irq, int nvec);
52 static int do_setup_msi_irqs(struct pci_dev *dev, int nvec) do_setup_msi_irqs() argument
60 irq = irq_alloc_hwirqs(nvec, dev_to_node(&dev->dev)); do_setup_msi_irqs()
64 nvec_pow2 = __roundup_pow_of_two(nvec); do_setup_msi_irqs()
65 for (sub_handle = 0; sub_handle < nvec; sub_handle++) { do_setup_msi_irqs()
85 irq_free_hwirqs(irq, nvec); do_setup_msi_irqs()
96 static int do_setup_msix_irqs(struct pci_dev *dev, int nvec) do_setup_msix_irqs() argument
112 ret = index = msi_alloc_remapped_irq(dev, irq, nvec); do_setup_msix_irqs()
135 int nvec, int type) irq_remapping_setup_msi_irqs()
138 return do_setup_msi_irqs(dev, nvec); irq_remapping_setup_msi_irqs()
140 return do_setup_msix_irqs(dev, nvec); irq_remapping_setup_msi_irqs()
298 static int msi_alloc_remapped_irq(struct pci_dev *pdev, int irq, int nvec) msi_alloc_remapped_irq() argument
303 return remap_ops->msi_alloc_irq(pdev, irq, nvec); msi_alloc_remapped_irq()
134 irq_remapping_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) irq_remapping_setup_msi_irqs() argument
H A Dintel_irq_remapping.c1137 * and allocate 'nvec' consecutive interrupt-remapping table entries
1140 static int intel_msi_alloc_irq(struct pci_dev *dev, int irq, int nvec) intel_msi_alloc_irq() argument
1152 index = alloc_irte(iommu, irq, nvec); intel_msi_alloc_irq()
1156 nvec, pci_name(dev)); intel_msi_alloc_irq()
H A Damd_iommu.c4215 static int msi_alloc_irq(struct pci_dev *pdev, int irq, int nvec) msi_alloc_irq() argument
4229 index = alloc_irq_index(cfg, devid, nvec); msi_alloc_irq()
/linux-4.1.27/arch/x86/include/asm/xen/
H A Dpci.h49 int (*enable_msix)(struct pci_dev *dev, int vectors[], int nvec);
68 int vectors[], int nvec) xen_pci_frontend_enable_msix()
71 return xen_pci_frontend->enable_msix(dev, vectors, nvec); xen_pci_frontend_enable_msix()
67 xen_pci_frontend_enable_msix(struct pci_dev *dev, int vectors[], int nvec) xen_pci_frontend_enable_msix() argument
/linux-4.1.27/arch/powerpc/platforms/pseries/
H A Dmsi.c130 static int check_req(struct pci_dev *pdev, int nvec, char *prop_name) check_req() argument
150 if (req_msi < nvec) { check_req()
151 pr_debug("rtas_msi: %s requests < %d MSIs\n", prop_name, nvec); check_req()
162 static int check_req_msi(struct pci_dev *pdev, int nvec) check_req_msi() argument
164 return check_req(pdev, nvec, "ibm,req#msi"); check_req_msi()
167 static int check_req_msix(struct pci_dev *pdev, int nvec) check_req_msix() argument
169 return check_req(pdev, nvec, "ibm,req#msi-x"); check_req_msix()
385 int nvec = nvec_in; rtas_setup_msi_irqs() local
389 rc = check_req_msix(pdev, nvec); rtas_setup_msi_irqs()
391 rc = check_req_msi(pdev, nvec); rtas_setup_msi_irqs()
396 quota = msi_quota_for_device(pdev, nvec); rtas_setup_msi_irqs()
398 if (quota && quota < nvec) rtas_setup_msi_irqs()
409 int m = roundup_pow_of_two(nvec); rtas_setup_msi_irqs()
413 nvec = m; rtas_setup_msi_irqs()
426 rc = rtas_change_msi(pdn, RTAS_CHANGE_32MSI_FN, nvec); rtas_setup_msi_irqs()
441 rc = rtas_change_msi(pdn, RTAS_CHANGE_MSI_FN, nvec); rtas_setup_msi_irqs()
445 rc = rtas_change_msi(pdn, RTAS_CHANGE_FN, nvec); rtas_setup_msi_irqs()
451 rc = rtas_change_msi(pdn, RTAS_CHANGE_MSIX_FN, nvec); rtas_setup_msi_irqs()
453 if (rc != nvec) { rtas_setup_msi_irqs()
454 if (nvec != nvec_in) { rtas_setup_msi_irqs()
455 nvec = nvec_in; rtas_setup_msi_irqs()
/linux-4.1.27/drivers/pci/
H A Dmsi.c52 static int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) pci_msi_setup_msi_irqs() argument
58 return pci_msi_domain_alloc_irqs(domain, dev, nvec, type); pci_msi_setup_msi_irqs()
60 return arch_setup_msi_irqs(dev, nvec, type); pci_msi_setup_msi_irqs()
122 int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) arch_setup_msi_irqs() argument
131 if (type == PCI_CAP_ID_MSI && nvec > 1) arch_setup_msi_irqs()
586 static struct msi_desc *msi_setup_entry(struct pci_dev *dev, int nvec) msi_setup_entry() argument
604 entry->msi_attrib.multiple = ilog2(__roundup_pow_of_two(nvec)); msi_setup_entry()
605 entry->nvec_used = nvec; msi_setup_entry()
636 * @nvec: number of interrupts to allocate
644 static int msi_capability_init(struct pci_dev *dev, int nvec) msi_capability_init() argument
652 entry = msi_setup_entry(dev, nvec); msi_capability_init()
663 ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSI); msi_capability_init()
714 struct msix_entry *entries, int nvec) msix_setup_entries()
719 for (i = 0; i < nvec; i++) { msix_setup_entries()
764 * @nvec: number of @entries
771 struct msix_entry *entries, int nvec) msix_capability_init()
786 ret = msix_setup_entries(dev, base, entries, nvec); msix_capability_init()
790 ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX); msix_capability_init()
847 * @nvec: how many MSIs have been requested ?
853 static int pci_msi_supported(struct pci_dev *dev, int nvec) pci_msi_supported() argument
867 * b) the list manipulation code assumes nvec >= 1. pci_msi_supported()
869 if (nvec < 1) pci_msi_supported()
969 * @nvec: number of MSI-X irqs requested for allocation by device driver
980 int pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries, int nvec) pci_enable_msix() argument
985 if (!pci_msi_supported(dev, nvec)) pci_enable_msix()
994 if (nvec > nr_entries) pci_enable_msix()
998 for (i = 0; i < nvec; i++) { pci_enable_msix()
1001 for (j = i + 1; j < nvec; j++) { pci_enable_msix()
1013 return msix_capability_init(dev, entries, nvec); pci_enable_msix()
1093 int nvec; pci_enable_msi_range() local
1111 nvec = pci_msi_vec_count(dev); pci_enable_msi_range()
1112 if (nvec < 0) pci_enable_msi_range()
1113 return nvec; pci_enable_msi_range()
1114 else if (nvec < minvec) pci_enable_msi_range()
1116 else if (nvec > maxvec) pci_enable_msi_range()
1117 nvec = maxvec; pci_enable_msi_range()
1120 rc = msi_capability_init(dev, nvec); pci_enable_msi_range()
1126 nvec = rc; pci_enable_msi_range()
1130 return nvec; pci_enable_msi_range()
1152 int nvec = maxvec; pci_enable_msix_range() local
1159 rc = pci_enable_msix(dev, entries, nvec); pci_enable_msix_range()
1165 nvec = rc; pci_enable_msix_range()
1169 return nvec; pci_enable_msix_range()
1317 * @nvec: The number of interrupts to allocate
1324 int nvec, int type) pci_msi_domain_alloc_irqs()
1326 return msi_domain_alloc_irqs(domain, &dev->dev, nvec); pci_msi_domain_alloc_irqs()
713 msix_setup_entries(struct pci_dev *dev, void __iomem *base, struct msix_entry *entries, int nvec) msix_setup_entries() argument
770 msix_capability_init(struct pci_dev *dev, struct msix_entry *entries, int nvec) msix_capability_init() argument
1323 pci_msi_domain_alloc_irqs(struct irq_domain *domain, struct pci_dev *dev, int nvec, int type) pci_msi_domain_alloc_irqs() argument
H A Dxen-pcifront.c250 int vector[], int nvec) pci_frontend_enable_msix()
259 .value = nvec, pci_frontend_enable_msix()
265 if (nvec > SH_INFO_MAX_VEC) { pci_frontend_enable_msix()
267 " Increase SH_INFO_MAX_VEC.\n", nvec); pci_frontend_enable_msix()
284 for (i = 0; i < nvec; i++) { pci_frontend_enable_msix()
249 pci_frontend_enable_msix(struct pci_dev *dev, int vector[], int nvec) pci_frontend_enable_msix() argument
/linux-4.1.27/arch/x86/pci/
H A Dxen.c162 static int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) xen_setup_msi_irqs() argument
168 if (type == PCI_CAP_ID_MSI && nvec > 1) xen_setup_msi_irqs()
171 v = kzalloc(sizeof(int) * max(1, nvec), GFP_KERNEL); xen_setup_msi_irqs()
176 ret = xen_pci_frontend_enable_msix(dev, v, nvec); xen_setup_msi_irqs()
184 (type == PCI_CAP_ID_MSI) ? nvec : 1, xen_setup_msi_irqs()
224 static int xen_hvm_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) xen_hvm_setup_msi_irqs() argument
230 if (type == PCI_CAP_ID_MSI && nvec > 1) xen_hvm_setup_msi_irqs()
252 (type == PCI_CAP_ID_MSI) ? nvec : 1, xen_hvm_setup_msi_irqs()
272 static int xen_initdom_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) xen_initdom_setup_msi_irqs() argument
296 if (type == PCI_CAP_ID_MSI && nvec > 1) { xen_initdom_setup_msi_irqs()
298 map_irq.entry_nr = nvec; xen_initdom_setup_msi_irqs()
320 if (type == PCI_CAP_ID_MSI && nvec > 1 && ret) { xen_initdom_setup_msi_irqs()
347 (type == PCI_CAP_ID_MSI) ? nvec : 1, xen_initdom_setup_msi_irqs()
/linux-4.1.27/drivers/pci/pcie/
H A Dportdrv_core.c78 int nr_entries, status, pos, i, nvec; pcie_port_enable_msix() local
109 nvec = 0; pcie_port_enable_msix()
129 i = pcie_port_msix_add_entry(msix_entries, entry, nvec); pcie_port_enable_msix()
130 if (i == nvec) pcie_port_enable_msix()
131 nvec++; pcie_port_enable_msix()
155 i = pcie_port_msix_add_entry(msix_entries, entry, nvec); pcie_port_enable_msix()
156 if (i == nvec) pcie_port_enable_msix()
157 nvec++; pcie_port_enable_msix()
163 * If nvec is equal to the allocated number of entries, we can just use pcie_port_enable_msix()
167 if (nvec == nr_entries) { pcie_port_enable_msix()
174 status = pci_enable_msix_exact(dev, msix_entries, nvec); pcie_port_enable_msix()
/linux-4.1.27/arch/x86/kernel/
H A Dx86_init.c122 int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) arch_setup_msi_irqs() argument
124 return x86_msi.setup_msi_irqs(dev, nvec, type); arch_setup_msi_irqs()
/linux-4.1.27/drivers/vfio/pci/
H A Dvfio_pci_intrs.c250 static int vfio_msi_enable(struct vfio_pci_device *vdev, int nvec, bool msix) vfio_msi_enable() argument
258 vdev->ctx = kzalloc(nvec * sizeof(struct vfio_pci_irq_ctx), GFP_KERNEL); vfio_msi_enable()
265 vdev->msix = kzalloc(nvec * sizeof(struct msix_entry), vfio_msi_enable()
272 for (i = 0; i < nvec; i++) vfio_msi_enable()
275 ret = pci_enable_msix_range(pdev, vdev->msix, 1, nvec); vfio_msi_enable()
276 if (ret < nvec) { vfio_msi_enable()
284 ret = pci_enable_msi_range(pdev, 1, nvec); vfio_msi_enable()
285 if (ret < nvec) { vfio_msi_enable()
293 vdev->num_ctx = nvec; vfio_msi_enable()
302 vdev->msi_qmax = fls(nvec * 2 - 1) - 1; vfio_msi_enable()
/linux-4.1.27/arch/powerpc/sysdev/
H A Dmpic_pasemi_msi.c86 static int pasemi_msi_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type) pasemi_msi_setup_msi_irqs() argument
95 pr_debug("pasemi_msi_setup_msi_irqs, pdev %p nvec %d type %d\n", pasemi_msi_setup_msi_irqs()
96 pdev, nvec, type); pasemi_msi_setup_msi_irqs()
H A Dppc4xx_msi.c79 static int ppc4xx_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) ppc4xx_setup_msi_irqs() argument
88 __func__, nvec, type); ppc4xx_setup_msi_irqs()
H A Dmpic_u3msi.c125 static int u3msi_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type) u3msi_setup_msi_irqs() argument
H A Dppc4xx_hsta_msi.c40 static int hsta_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) hsta_setup_msi_irqs() argument
H A Dfsl_msi.c183 static int fsl_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type) fsl_setup_msi_irqs() argument
/linux-4.1.27/kernel/irq/
H A Dmsi.c142 int nvec, msi_alloc_info_t *arg) msi_domain_ops_prepare()
247 * @nvec: The number of interrupts to allocate
252 int nvec) msi_domain_alloc_irqs()
262 ret = ops->msi_prepare(domain, dev, nvec, &arg); msi_domain_alloc_irqs()
141 msi_domain_ops_prepare(struct irq_domain *domain, struct device *dev, int nvec, msi_alloc_info_t *arg) msi_domain_ops_prepare() argument
251 msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, int nvec) msi_domain_alloc_irqs() argument
/linux-4.1.27/include/linux/
H A Dmsi.h99 int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
162 struct device *dev, int nvec,
220 int nvec);
232 int nvec, int type);
H A Dpci.h1226 int pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries, int nvec);
1232 static inline int pci_enable_msi_exact(struct pci_dev *dev, int nvec) pci_enable_msi_exact() argument
1234 int rc = pci_enable_msi_range(dev, nvec, nvec); pci_enable_msi_exact()
1242 struct msix_entry *entries, int nvec) pci_enable_msix_exact()
1244 int rc = pci_enable_msix_range(dev, entries, nvec, nvec); pci_enable_msix_exact()
1255 struct msix_entry *entries, int nvec) pci_enable_msix()
1264 static inline int pci_enable_msi_exact(struct pci_dev *dev, int nvec) pci_enable_msi_exact() argument
1270 struct msix_entry *entries, int nvec) pci_enable_msix_exact()
1241 pci_enable_msix_exact(struct pci_dev *dev, struct msix_entry *entries, int nvec) pci_enable_msix_exact() argument
1254 pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries, int nvec) pci_enable_msix() argument
1269 pci_enable_msix_exact(struct pci_dev *dev, struct msix_entry *entries, int nvec) pci_enable_msix_exact() argument
/linux-4.1.27/drivers/infiniband/hw/qib/
H A Dqib_pcie.c200 int nvec = *msixcnt; qib_msix_setup() local
208 nvec = min(nvec, ret); qib_msix_setup()
213 msix_entry = kcalloc(nvec, sizeof(*msix_entry), GFP_KERNEL); qib_msix_setup()
217 for (i = 0; i < nvec; i++) qib_msix_setup()
220 ret = pci_enable_msix_range(dd->pcidev, msix_entry, 1, nvec); qib_msix_setup()
224 nvec = ret; qib_msix_setup()
226 for (i = 0; i < nvec; i++) qib_msix_setup()
230 *msixcnt = nvec; qib_msix_setup()
240 nvec, ret); qib_msix_setup()
/linux-4.1.27/drivers/net/ethernet/mellanox/mlx5/core/
H A Dmain.c213 int nvec; mlx5_enable_msix() local
216 nvec = dev->caps.gen.num_ports * num_online_cpus() + MLX5_EQ_VEC_COMP_BASE; mlx5_enable_msix()
217 nvec = min_t(int, nvec, num_eqs); mlx5_enable_msix()
218 if (nvec <= MLX5_EQ_VEC_COMP_BASE) mlx5_enable_msix()
221 table->msix_arr = kzalloc(nvec * sizeof(*table->msix_arr), GFP_KERNEL); mlx5_enable_msix()
225 for (i = 0; i < nvec; i++) mlx5_enable_msix()
228 nvec = pci_enable_msix_range(dev->pdev, table->msix_arr, mlx5_enable_msix()
229 MLX5_EQ_VEC_COMP_BASE + 1, nvec); mlx5_enable_msix()
230 if (nvec < 0) mlx5_enable_msix()
231 return nvec; mlx5_enable_msix()
233 table->num_comp_vectors = nvec - MLX5_EQ_VEC_COMP_BASE; mlx5_enable_msix()
/linux-4.1.27/drivers/scsi/bfa/
H A Dbfad.c1166 for (i = 0, bfad->nvec = 0; i < MAX_MSIX_ENTRY; i++) { bfad_init_msix_entry()
1168 bfad->msix_tab[bfad->nvec].msix.entry = i; bfad_init_msix_entry()
1169 bfad->msix_tab[bfad->nvec].bfad = bfad; bfad_init_msix_entry()
1170 msix_entries[bfad->nvec].entry = i; bfad_init_msix_entry()
1171 bfad->nvec++; bfad_init_msix_entry()
1184 for (i = 0; i < bfad->nvec; i++) { bfad_install_msix_handler()
1234 msix_entries, bfad->nvec); bfad_setup_intr()
1239 bfad->pci_name, bfad->nvec, error); bfad_setup_intr()
1240 bfad->nvec = 1; bfad_setup_intr()
1261 for (i = 0; i < bfad->nvec; i++) { bfad_setup_intr()
1266 bfa_msix_init(&bfad->bfa, bfad->nvec); bfad_setup_intr()
1290 for (i = 0; i < bfad->nvec; i++) bfad_remove_intr()
H A Dbfad_drv.h214 int nvec; member in struct:bfad_s
/linux-4.1.27/arch/x86/include/asm/
H A Dpci.h101 int native_setup_msi_irqs(struct pci_dev *dev, int nvec, int type); early_quirks()
H A Dx86_init.h177 int (*setup_msi_irqs)(struct pci_dev *dev, int nvec, int type);
/linux-4.1.27/arch/x86/kernel/apic/
H A Dmsi.c146 int native_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) native_setup_msi_irqs() argument
153 if (type == PCI_CAP_ID_MSI && nvec > 1) native_setup_msi_irqs()
/linux-4.1.27/drivers/net/vmxnet3/
H A Dvmxnet3_drv.c2756 vmxnet3_acquire_msix_vectors(struct vmxnet3_adapter *adapter, int nvec) vmxnet3_acquire_msix_vectors() argument
2759 adapter->intr.msix_entries, nvec, nvec); vmxnet3_acquire_msix_vectors()
2761 if (ret == -ENOSPC && nvec > VMXNET3_LINUX_MIN_MSIX_VECT) { vmxnet3_acquire_msix_vectors()
2764 nvec, VMXNET3_LINUX_MIN_MSIX_VECT); vmxnet3_acquire_msix_vectors()
2804 int i, nvec; vmxnet3_alloc_intr_resources() local
2806 nvec = adapter->share_intr == VMXNET3_INTR_TXSHARE ? vmxnet3_alloc_intr_resources()
2808 nvec += adapter->share_intr == VMXNET3_INTR_BUDDYSHARE ? vmxnet3_alloc_intr_resources()
2810 nvec += 1; /* for link event */ vmxnet3_alloc_intr_resources()
2811 nvec = nvec > VMXNET3_LINUX_MIN_MSIX_VECT ? vmxnet3_alloc_intr_resources()
2812 nvec : VMXNET3_LINUX_MIN_MSIX_VECT; vmxnet3_alloc_intr_resources()
2814 for (i = 0; i < nvec; i++) vmxnet3_alloc_intr_resources()
2817 nvec = vmxnet3_acquire_msix_vectors(adapter, nvec); vmxnet3_alloc_intr_resources()
2818 if (nvec < 0) vmxnet3_alloc_intr_resources()
2824 if (nvec == VMXNET3_LINUX_MIN_MSIX_VECT) { vmxnet3_alloc_intr_resources()
2834 adapter->intr.num_intrs = nvec; vmxnet3_alloc_intr_resources()
2841 "Limiting #rx queues to 1, try MSI.\n", nvec); vmxnet3_alloc_intr_resources()
/linux-4.1.27/include/xen/
H A Devents.h109 int pirq, int nvec, const char *name, domid_t domid);
/linux-4.1.27/arch/s390/pci/
H A Dpci.c386 int arch_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type) arch_setup_msi_irqs() argument
395 if (type == PCI_CAP_ID_MSI && nvec > 1) arch_setup_msi_irqs()
397 msi_vecs = min_t(unsigned int, nvec, zdev->max_msi); arch_setup_msi_irqs()
440 return (msi_vecs == nvec) ? 0 : msi_vecs; arch_setup_msi_irqs()
/linux-4.1.27/arch/mips/pci/
H A Dmsi-octeon.c185 int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) arch_setup_msi_irqs() argument
200 if (type == PCI_CAP_ID_MSI && nvec > 1) arch_setup_msi_irqs()
/linux-4.1.27/drivers/xen/events/
H A Devents_base.c391 static int __must_check xen_allocate_irqs_dynamic(int nvec) xen_allocate_irqs_dynamic() argument
393 int i, irq = irq_alloc_descs(-1, 0, nvec, -1); xen_allocate_irqs_dynamic()
396 for (i = 0; i < nvec; i++) xen_allocate_irqs_dynamic()
740 int pirq, int nvec, const char *name, domid_t domid) xen_bind_pirq_msi_to_irq()
746 irq = xen_allocate_irqs_dynamic(nvec); xen_bind_pirq_msi_to_irq()
750 for (i = 0; i < nvec; i++) { xen_bind_pirq_msi_to_irq()
739 xen_bind_pirq_msi_to_irq(struct pci_dev *dev, struct msi_desc *msidesc, int pirq, int nvec, const char *name, domid_t domid) xen_bind_pirq_msi_to_irq() argument
/linux-4.1.27/drivers/pci/host/
H A Dpcie-designware.c211 unsigned int nvec, unsigned int pos) clear_irq_range()
215 for (i = 0; i < nvec; i++) { clear_irq_range()
224 bitmap_release_region(pp->msi_irq_in_use, pos, order_base_2(nvec)); clear_irq_range()
210 clear_irq_range(struct pcie_port *pp, unsigned int irq_base, unsigned int nvec, unsigned int pos) clear_irq_range() argument
/linux-4.1.27/drivers/ata/
H A Dahci.c1341 int rc, nvec; ahci_init_interrupts() local
1346 nvec = pci_msi_vec_count(pdev); ahci_init_interrupts()
1347 if (nvec < 0) ahci_init_interrupts()
1355 if (nvec < n_ports) ahci_init_interrupts()
1358 rc = pci_enable_msi_exact(pdev, nvec); ahci_init_interrupts()
1371 if (nvec > 1) ahci_init_interrupts()
1374 return nvec; ahci_init_interrupts()
/linux-4.1.27/arch/powerpc/platforms/cell/
H A Daxon_msi.c256 static int axon_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) axon_msi_setup_msi_irqs() argument
/linux-4.1.27/arch/powerpc/include/asm/
H A Dmachdep.h136 int nvec, int type);
/linux-4.1.27/fs/dlm/
H A Dlowcomms.c795 int nvec; receive_from_sock() local
828 nvec = 1; receive_from_sock()
838 nvec = 2; receive_from_sock()
842 r = ret = kernel_recvmsg(con->sock, &msg, iov, nvec, len, receive_from_sock()
/linux-4.1.27/drivers/irqchip/
H A Dirq-gic-v3-its.c1244 int nvec, msi_alloc_info_t *info) its_msi_prepare()
1256 dev_alias.count = nvec; its_msi_prepare()
1243 its_msi_prepare(struct irq_domain *domain, struct device *dev, int nvec, msi_alloc_info_t *info) its_msi_prepare() argument
/linux-4.1.27/fs/cifs/
H A Dcifsproto.h99 struct kvec *, int /* nvec to send */,
401 unsigned int *nbytes, struct kvec *iov, const int nvec);
/linux-4.1.27/arch/powerpc/platforms/powernv/
H A Dpci.c48 static int pnv_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type) pnv_setup_msi_irqs() argument
/linux-4.1.27/arch/mips/kernel/
H A Dtraps.c2262 int nvec = cpu_has_veic ? 64 : 8; trap_init() local
2263 for (i = 0; i < nvec; i++) trap_init()

Completed in 868 milliseconds