| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-or-later */ |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright 2016,2017 IBM Corporation. |
|---|
| 3 | | - * |
|---|
| 4 | | - * This program is free software; you can redistribute it and/or |
|---|
| 5 | | - * modify it under the terms of the GNU General Public License |
|---|
| 6 | | - * as published by the Free Software Foundation; either version |
|---|
| 7 | | - * 2 of the License, or (at your option) any later version. |
|---|
| 8 | 4 | */ |
|---|
| 9 | 5 | #ifndef __XIVE_INTERNAL_H |
|---|
| 10 | 6 | #define __XIVE_INTERNAL_H |
|---|
| .. | .. |
|---|
| 44 | 40 | struct xive_ops { |
|---|
| 45 | 41 | int (*populate_irq_data)(u32 hw_irq, struct xive_irq_data *data); |
|---|
| 46 | 42 | int (*configure_irq)(u32 hw_irq, u32 target, u8 prio, u32 sw_irq); |
|---|
| 43 | + int (*get_irq_config)(u32 hw_irq, u32 *target, u8 *prio, |
|---|
| 44 | + u32 *sw_irq); |
|---|
| 47 | 45 | int (*setup_queue)(unsigned int cpu, struct xive_cpu *xc, u8 prio); |
|---|
| 48 | 46 | void (*cleanup_queue)(unsigned int cpu, struct xive_cpu *xc, u8 prio); |
|---|
| 49 | 47 | void (*setup_cpu)(unsigned int cpu, struct xive_cpu *xc); |
|---|
| .. | .. |
|---|
| 59 | 57 | int (*get_ipi)(unsigned int cpu, struct xive_cpu *xc); |
|---|
| 60 | 58 | void (*put_ipi)(unsigned int cpu, struct xive_cpu *xc); |
|---|
| 61 | 59 | #endif |
|---|
| 60 | + int (*debug_show)(struct seq_file *m, void *private); |
|---|
| 62 | 61 | const char *name; |
|---|
| 63 | 62 | }; |
|---|
| 64 | 63 | |
|---|
| 65 | 64 | bool xive_core_init(const struct xive_ops *ops, void __iomem *area, u32 offset, |
|---|
| 66 | 65 | u8 max_prio); |
|---|
| 67 | 66 | __be32 *xive_queue_page_alloc(unsigned int cpu, u32 queue_shift); |
|---|
| 67 | +int xive_core_debug_init(void); |
|---|
| 68 | 68 | |
|---|
| 69 | 69 | static inline u32 xive_alloc_order(u32 queue_shift) |
|---|
| 70 | 70 | { |
|---|