History

Merge branch 'acpi-irqchip'

Merge irqchip changes related to ACPI support that are needed to enable GICv5 IWB ACPI probe ordering detection on ARM, including the addition of acpi_device_clear_deps() and RISC-V interrupt controller management code refactoring to extract generic code from it into the common ACPI IRQ code (Lorenzo Pieralisi) * acpi-irqchip: irqchip/gic-v5: Enable GICv5 IWB ACPI probe ordering detection ACPI/IORT: Implement ACPI infrastructure to enable GICv5 IWB probe deferral ACPI: irq: Move RISC-V interrupt controllers autodep to ACPI IRQ code ACPI: RISC-V: Fix riscv_acpi_add_prt_dep() loop handling ACPI: RISC-V: Check acpi_get_handle() status in riscv_acpi_add_prt_dep() ACPI: RISC-V: Fix riscv_acpi_irq_get_dep() loop termination ACPI: Add acpi_device_clear_deps() helper function

Rafael J. Wysocki committed 3 months ago

Commit 02859a52 parents 9341ba2 d2aa7b113 files · +223 −154Browse files

Showing the changes to include (2 of 13 files). Show all

Unified · Split

2 files
  1. include/linux/acpi.h +12 −1
  2. include/linux/acpi_iort.h +2 −1
include/linux/acpi.h+12−1
@@ -94,6 +94,12 @@ static inline void acpi_preset_companion(struct device *dev, · 93 unmodified lines
9494 ACPI_COMPANION_SET(dev, acpi_find_child_device(parent, addr, false));
9595 }
9696
97+static inline void acpi_device_clear_deps(struct device *dev)
98+{
99+ if (has_acpi_companion(dev))
100+ acpi_dev_clear_dependencies(ACPI_COMPANION(dev));
101+}
102+
97103 static inline const char *acpi_dev_name(struct acpi_device *adev)
98104 {
99105 return dev_name(&adev->dev);
@@ -360,9 +366,10 @@ int acpi_gsi_to_irq (u32 gsi, unsigned int *irq); · 260 unmodified lines
360366 int acpi_isa_irq_to_gsi (unsigned isa_irq, u32 *gsi);
361367
362368 typedef struct fwnode_handle *(*acpi_gsi_domain_disp_fn)(u32);
369+typedef acpi_handle (*acpi_gsi_handle_disp_fn)(u32);
363370
364371 void acpi_set_irq_model(enum acpi_irq_model_id model,
365− acpi_gsi_domain_disp_fn fn);
372+ acpi_gsi_domain_disp_fn fn, acpi_gsi_handle_disp_fn gsi_dep_fn);
366373 acpi_gsi_domain_disp_fn acpi_get_gsi_dispatcher(void);
367374 void acpi_set_gsi_to_irq_fallback(u32 (*)(u32));
368375
@@ -372,6 +379,8 @@ struct irq_domain *acpi_irq_create_hierarchy(unsigned int flags, · 3 unmodified lines
372379 const struct irq_domain_ops *ops,
373380 void *host_data);
374381
382+u32 acpi_irq_add_auto_dep(acpi_handle handle);
383+
375384 #ifdef CONFIG_X86_IO_APIC
376385 extern int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity);
377386 #else
@@ -908,6 +917,8 @@ static inline void acpi_preset_companion(struct device *dev, · 530 unmodified lines
908917 {
909918 }
910919
920+static inline void acpi_device_clear_deps(struct device *dev) {}
921+
911922 static inline const char *acpi_dev_name(struct acpi_device *adev)
912923 {
913924 return NULL;
include/linux/acpi_iort.h+2−1
@@ -27,7 +27,8 @@ int iort_register_domain_token(int trans_id, phys_addr_t base, · 26 unmodified lines
2727 struct fwnode_handle *fw_node);
2828 void iort_deregister_domain_token(int trans_id);
2929 struct fwnode_handle *iort_find_domain_token(int trans_id);
30−struct fwnode_handle *iort_iwb_handle(u32 iwb_id);
30+acpi_handle iort_iwb_handle(u32 iwb_id);
31+struct fwnode_handle *iort_iwb_handle_fwnode(u32 iwb_id);
3132
3233 #ifdef CONFIG_ACPI_IORT
3334 u32 iort_msi_map_id(struct device *dev, u32 id);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t