Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\irq\manage.c Create Date:2022-07-28 10:10:04
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:quest_threaded_irq - allocate an interrupt line*@irq: Interrupt line to allocate*@handler: Function to be called when the IRQ occurs

Proto:int request_threaded_irq(unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn, unsigned long irqflags, const char *devname, void *dev_id)

Type:int

Parameter:

TypeParameterName
unsigned intirq
irq_handler_thandler
irq_handler_tthread_fn
unsigned longirqflags
const char *devname
void *dev_id
1968  If irq == If a (PCI) device interrupt is not connected we set dev->irq to* IRQ_NOTCONNECTED Then Return -ENOTCONN
1980  If irqflags & allow sharing the irq among several devices && Not dev_id || Not (irqflags & allow sharing the irq among several devices) && irqflags & If the IRQ is shared with a NO_SUSPEND user || irqflags & Do not disable this IRQ during suspend && irqflags & If the IRQ is shared with a NO_SUSPEND user Then Return -EINVAL
1985  desc = Interrupt to descriptor
1986  If Not desc Then Return -EINVAL
1989  If Not irq_settings_can_request(desc) || WARN_ON(irq_settings_is_per_cpu_devid(desc)) Then Return -EINVAL
1993  If Not handler Then
1994  If Not thread_fn Then Return -EINVAL
1996  handler = Default primary interrupt handler for threaded interrupts
1999  action = kzalloc - allocate memory. The memory is set to zero.*@size: how many bytes of memory are required.*@flags: the type of memory to allocate (see kmalloc).
2000  If Not action Then Return -ENOMEM
2003  handler = handler
2004  thread_fn = thread_fn
2005  flags = irqflags
2006  name = devname
2007  dev_id = dev_id
2009  retval = q_chip_pm_get - Enable power for an IRQ chip*@data: Pointer to interrupt specific data* Enable the power to the IRQ chip referenced by the interrupt data* structure.
2010  If retval < 0 Then
2011  kfree - free previously allocated memory*@objp: pointer returned by kmalloc.* If @objp is NULL, no operation is performed.* Don't free memory not originally allocated by kmalloc()* or you will run into trouble.
2012  Return retval
2015  retval = register an interrupt
2017  If retval Then
2018  q_chip_pm_put - Disable power for an IRQ chip*@data: Pointer to interrupt specific data* Disable the power to the IRQ chip referenced by the interrupt data* structure, belongs. Note that power will only be disabled, once this
2019  kfree - free previously allocated memory*@objp: pointer returned by kmalloc.* If @objp is NULL, no operation is performed.* Don't free memory not originally allocated by kmalloc()* or you will run into trouble.
2020  kfree - free previously allocated memory*@objp: pointer returned by kmalloc.* If @objp is NULL, no operation is performed.* Don't free memory not originally allocated by kmalloc()* or you will run into trouble.
2042  Return retval
Caller
NameDescribe
request_any_context_irqquest_any_context_irq - allocate an interrupt line*@irq: Interrupt line to allocate*@handler: Function to be called when the IRQ occurs
devm_request_threaded_irqdevm_request_threaded_irq - allocate an interrupt line for a managed device*@dev: device to request interrupt for*@irq: Interrupt line to allocate*@handler: Function to be called when the IRQ occurs