f7a0c78669
x86: Cleanup irq_domain ops
...
We have 3 identical copies of the ioapic domain ops for acpi, mpparse,
and sfi. Have a global one in the io_apic code and be done with it.
To avoid include hell in io_apic.h, create a private irqdomain header
and include the generic irqdomain header from there.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: sfi-devel@simplefirmware.org
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Len Brown <len.brown@intel.com >
Cc: Pavel Machek <pavel@ucw.cz >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Rob Herring <robh@kernel.org >
Cc: x86@kernel.org
Link: http://lkml.kernel.org/r/1428978610-28986-32-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:55 +02:00
335efdf57d
x86, ioapic: Use proper defines for the entry fields
...
While looking at the printout issue, I stumbled more than once over
the various 0/1 assignments which are either commented in strange ways
or force to lookup the meaning.
Use proper constants and fix the misleading comments. While at it
remove pointless 0 assignments in native_disable_io_apic() which have
no value for understanding the code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: x86@kernel.org
Link: http://lkml.kernel.org/r/1428978610-28986-30-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:55 +02:00
1f93464129
x86/irq: Remove sis apic bug workaround
...
The SiS apic bug workaround is now obsolete as we cache the register
values for performance reasons.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1428978610-28986-22-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:54 +02:00
154d9e50e4
x86/irq: Clean up io_apic.h
...
Clean up io_apic.h by:
1) moving definition of struct mp_ioapic_gsi into io_apic.c
2) changing mp_pin_to_gsi() and mp_ioapic_gsi_routing() as static
3) removing unused MP_MAX_IOAPIC_PIN
4) removing useless forward declaration
5) removing useless comments
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Tested-by: Joerg Roedel <jroedel@suse.de >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1428978610-28986-20-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:54 +02:00
ca1b88622e
x86: Remove more unmodified io_apic_ops
...
io_apic_ops.init() is either NULL, if IO-APIC support is disabled at
compile time or native_io_apic_init_mappings(). No point to have that
as we can achieve the same thing with an empty inline.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:54 +02:00
9a93d4736e
x86/irq: Remove x86_io_apic_ops.write and x86_io_apic_ops.modify
...
x86_io_apic_ops.write is always set to native_io_apic_write(),
and nobody overrides it. So get rid of the indirection by changing
native_io_apic_write() as io_apic_write() and removing
x86_io_apic_ops.write.
Do the same for x86_io_apic_ops.modify and native_io_apic_modify().
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Tested-by: Joerg Roedel <jroedel@suse.de >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Yijing Wang <wangyijing@huawei.com >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1428978610-28986-19-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:53 +02:00
50a6ad84b2
x86/irq: Remove struct io_apic_irq_attr
...
Now there's no user of struct io_apic_irq_attr anymore, so remove it.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Tested-by: Joerg Roedel <jroedel@suse.de >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1428978610-28986-18-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:53 +02:00
ad66e1efc9
x86/irq: Remove x86_io_apic_ops.eoi_ioapic_pin and related interfaces
...
Now there is no user of x86_io_apic_ops.eoi_ioapic_pin anymore, so remove
it.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Tested-by: Joerg Roedel <jroedel@suse.de >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: iommu@lists.linux-foundation.org
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Yijing Wang <wangyijing@huawei.com >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1428978610-28986-7-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:52 +02:00
aa5cb97f14
x86/irq: Remove x86_io_apic_ops.set_affinity and related interfaces
...
Now there is no user of x86_io_apic_ops.set_affinity anymore, so remove
it.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Tested-by: Joerg Roedel <jroedel@suse.de >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: iommu@lists.linux-foundation.org
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Yijing Wang <wangyijing@huawei.com >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1428978610-28986-6-git-send-email-jiang.liu@linux.intel.com
2015-04-24 15:36:52 +02:00
35d50d8fd5
x86/irq: Remove x86_io_apic_ops.setup_entry and related interfaces
...
Now there is no user of x86_io_apic_ops.setup_entry anymore, so remove it.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Tested-by: Joerg Roedel <jroedel@suse.de >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: iommu@lists.linux-foundation.org
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Yijing Wang <wangyijing@huawei.com >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1428978610-28986-5-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:52 +02:00
84bea5cc77
x86/irq: Remove x86_io_apic_ops.print_entries and related interfaces
...
Now there is no user of x86_io_apic_ops.print_entries anymore, so remove
it.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Tested-by: Joerg Roedel <jroedel@suse.de >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: iommu@lists.linux-foundation.org
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Yijing Wang <wangyijing@huawei.com >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1428978610-28986-4-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:52 +02:00
5ad274d41c
x86/irq: Remove unused old IOAPIC irqdomain interfaces
...
Now we have converted to hierarchical irqdomain, so remove unused old
IOAPIC interfaces and code.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Tested-by: Joerg Roedel <jroedel@suse.de >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1428978610-28986-2-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:51 +02:00
49c7e60022
x86/irq: Implement callbacks to enable hierarchical irqdomains on IOAPICs
...
Implement required callbacks to prepare for enabling hierarchical
irqdomains on IOAPICs. After the conversion we can remove quite some
code from the old implementation.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Tested-by: Joerg Roedel <jroedel@suse.de >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Jan Beulich <JBeulich@suse.com >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1428905519-23704-34-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:51 +02:00
c4d05a2c35
x86/irq: Prepare IOAPIC interfaces to support hierarchical irqdomains
...
Introduce helper functions to manipulate struct irq_alloc_info for
IOAPIC. Also add an extra parameter to IOAPIC interfaces to prepare
for hierarchical irqdomain. Function mp_set_gsi_attr() will be removed
once we have switched to hierarchical irqdomains.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Tested-by: Joerg Roedel <jroedel@suse.de >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Len Brown <len.brown@intel.com >
Cc: Pavel Machek <pavel@ucw.cz >
Cc: Jan Beulich <JBeulich@suse.com >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Link: http://lkml.kernel.org/r/1428905519-23704-33-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:51 +02:00
4e69d7eab4
x86/irq: Remove unused pre_init_apic_IRQ0()
...
Now there's no user of pre_init_apic_IRQ0(), so remove it.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Jan Beulich <JBeulich@suse.com >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1428905519-23704-32-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:51 +02:00
8686608336
x86/ioapic: Provide stub functions for IOAPIC%3Dn
...
To avoid lots of ifdeffery provide proper stubs for setup_IO_APIC(),
enable_IO_APIC() and setup_ioapic_dest().
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Borislav Petkov <bp@alien8.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Link: http://lkml.kernel.org/r/20150115211703.397170414@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:55 +01:00
11d686e956
x86, irq: Move IRQ initialization routines from io_apic.c into vector.c
...
Move IRQ initialization routines from io_apic.c into vector.c,
preparing for enabling hierarchy irqdomain.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Prarit Bhargava <prarit@redhat.com >
Link: http://lkml.kernel.org/r/1414397531-28254-15-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:17 +01:00
8643e28da2
x86, irq: Move IOAPIC related declarations from hw_irq.h into io_apic.h
...
Clean up code by moving IOAPIC related declarations from hw_irq.h into
io_apic.h.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: H. Peter Anvin <hpa@linux.intel.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Prarit Bhargava <prarit@redhat.com >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Vivek Goyal <vgoyal@redhat.com >
Cc: Baoquan He <bhe@redhat.com >
Cc: Matt Fleming <matt.fleming@intel.com >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Christian Gmeiner <christian.gmeiner@gmail.com >
Cc: Aubrey <aubrey.li@linux.intel.com >
Cc: Ryan Desfosses <ryan@desfo.org >
Cc: Quentin Lambert <lambert.quentin@gmail.com >
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com >
Link: http://lkml.kernel.org/r/1414397531-28254-14-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:17 +01:00
443809828c
x86, irq: Move PCI MSI related code from io_apic.c into msi.c
...
Create arch/x86/kernel/apic/msi.c to host MSI related code,
preparing for enabling hierarchy irqdomain.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Prarit Bhargava <prarit@redhat.com >
Link: http://lkml.kernel.org/r/1414397531-28254-12-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:17 +01:00
e89900c9ad
x86, irq: Introduce helper to check whether an IOAPIC has been registered
...
Introduce acpi_ioapic_registered() to check whether an IOAPIC has already
been registered, it will be used when enabling IOAPIC hotplug.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Acked-by: Pavel Machek <pavel@ucw.cz >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Len Brown <len.brown@intel.com >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Prarit Bhargava <prarit@redhat.com >
Link: http://lkml.kernel.org/r/1414387308-27148-18-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:15 +01:00
15516a3b86
x86, irq, ACPI: Implement interfaces to support ACPI based IOAPIC hot-removal
...
Implement acpi_unregister_ioapic() to support ACPI based IOAPIC hot-removal.
An IOAPIC could only be removed when all its pins are unused.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Len Brown <len.brown@intel.com >
Cc: Pavel Machek <pavel@ucw.cz >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Prarit Bhargava <prarit@redhat.com >
Link: http://lkml.kernel.org/r/1414387308-27148-17-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:15 +01:00
35ef9c941c
x86, irq: Refine mp_register_ioapic() to prepare for IOAPIC hotplug
...
Refine mp_register_ioapic() to prepare for IOAPIC hotplug by:
1) change return value from void to int.
2) check for gsi range conflicts
3) check for IOAPIC physical address conflicts
4) enhance the way to allocate IOAPIC index
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Prarit Bhargava <prarit@redhat.com >
Link: http://lkml.kernel.org/r/1414387308-27148-14-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:15 +01:00
67dc5e701f
x86, irq: Remove __init marker for functions will be used by IOAPIC hotplug
...
Remove __init marker for functions which will be used by IOAPIC hotplug
at runtime.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Prarit Bhargava <prarit@redhat.com >
Link: http://lkml.kernel.org/r/1414387308-27148-12-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:15 +01:00
e106798259
x86: irq: Fix placement of mp_should_keep_irq()
...
While f3761db164
("x86, irq: Fix build error caused by
9eabc99a635a77cbf09") addressed the original build problem,
declaration, inline stub, and definition still seem misplaced: It isn't
really IO-APIC related, and it's being used solely in arch/x86/pci/.
This also means stubbing it out when !CONFIG_X86_IO_APIC was at least
questionable.
Signed-off-by: Jan Beulich <jbeulich@suse.com >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Link: http://lkml.kernel.org/r/545747BE020000780004436E@mail.emea.novell.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:14 +01:00
f3761db164
x86, irq: Fix build error caused by 9eabc99a63
...
Commit 9eabc99a63
causes following build error when
IOAPIC is disabled.
arch/x86/pci/irq.c: In function 'pirq_disable_irq':
>> arch/x86/pci/irq.c:1259:2: error: implicit declaration of function 'mp_should_keep_irq' [-Werror=implicit-function-declaration]
if (io_apic_assign_pci_irqs && !mp_should_keep_irq(&dev->dev) &&
^
cc1: some warnings being treated as errors
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1409382916-10649-1-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-09-01 10:12:03 +02:00
9eabc99a63
x86, irq, PCI: Keep IRQ assignment for runtime power management
...
Now IOAPIC driver dynamically allocates IRQ numbers for IOAPIC pins.
We need to keep IRQ assignment for PCI devices during runtime power
management, otherwise it may cause failure of device wakeups.
Commit 3eec595235
"x86, irq, PCI: Keep IRQ assignment for PCI
devices during suspend/hibernation" has fixed the issue for suspend/
hibernation, we also need the same fix for runtime device sleep too.
Fix: https://bugzilla.kernel.org/show_bug.cgi?id=83271
Reported-and-Tested-by: EmanueL Czirai <amanual@openmailbox.org >
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: EmanueL Czirai <amanual@openmailbox.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1409304383-18806-1-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-08-29 13:38:00 +02:00
df334bead7
x86, irq: Introduce helper functions to release IOAPIC pin
...
Introduce function mp_unmap_irq() to release IOAPIC IRQ when IRQ is not
used any more, which will typically called by pcibios_disabled_irq.
And function mp_irqdomain_unmap() is a common implementation of
irq_domain_ops.unmap for IOAPIC.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Paul Gortmaker <paul.gortmaker@windriver.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Link: http://lkml.kernel.org/r/1402302011-23642-38-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-06-21 23:05:44 +02:00
9f354b0252
x86, irq: Clean up unused IOAPIC interface
...
Now we have converted all x86 platforms to use the common irqdomain map
interface. There's no caller of io_apic_set_pci_routing(),
setup_IO_APIC_irq_extra() and io_apic_setup_irq_pin_once() any more,
so kill them.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Paul Gortmaker <paul.gortmaker@windriver.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Link: http://lkml.kernel.org/r/1402302011-23642-35-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-06-21 23:05:44 +02:00
15a3c7cc91
x86, irq: Introduce two helper functions to support irqdomain map operation
...
Currently there are multiple entries to program IOAPIC pins, such as
io_apic_setup_irq_pin_once(), io_apic_set_pci_routing() and
setup_IO_APIC_irq_extra() etc.
This patch introduces two functions to help consolidate the code to
program IOAPIC pins. Function mp_set_pin_attr() is used to optionally
set trigger, polarity and NUMA node property for an IOAPIC pin.
If mp_set_pin_attr() is not invoked for a pin, the default configuration
from BIOS will be used.
Function mp_irqdomain_map() is an common implementation of irqdomain map()
operation. It figures out attribures for pin and then actually programs
the IOAPIC pin. We hope this will be the only entrance for programming
IOAPIC pin.
And the flow will:
1) caller such as xxx_pci_irq_enable figures out pin attributes.
2) Invoke mp_set_pin_attr() to set attributes for a pin. If the pin has
already bin programmed, mp_set_pin_attr() will aslo detects attribute
confictions.
3) Invoke mp_map_pin_to_irq()
3.1) If IRQ has already been assigned, return irq_find_mapping()
3.2) Else irq_create_mapping()
->irq_domain_associate()
->mp_irqdomain_map()
->io_apic_setup_irq_pin()
So every pin will only programmed once by mp_irqdomain_map(), so we
could kill io_apic_setup_irq_pin_once(), io_apic_set_pci_routing() and
setup_IO_APIC_irq_extra() etc.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Paul Gortmaker <paul.gortmaker@windriver.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Link: http://lkml.kernel.org/r/1402302011-23642-30-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-06-21 23:05:43 +02:00
44767bfaae
x86, irq: Enhance mp_register_ioapic() to support irqdomain
...
Enhance function mp_register_ioapic() to support irqdomain.
When registering IOAPIC, caller may provide callbacks and parameters
for creating irqdomain. The IOAPIC core will create irqdomain later
if caller has passed in corresponding parameters.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Paul Gortmaker <paul.gortmaker@windriver.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: sfi-devel@simplefirmware.org
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Len Brown <len.brown@intel.com >
Cc: Pavel Machek <pavel@ucw.cz >
Cc: Rob Herring <rob.herring@calxeda.com >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Tony Lindgren <tony@atomide.com >
Link: http://lkml.kernel.org/r/1402302011-23642-25-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-06-21 23:05:42 +02:00
d7f3d47818
x86, irq: Introduce mechanisms to support dynamically allocate IRQ for IOAPIC
...
Currently x86 support identity mapping between GSI(IOAPIC pin) and IRQ
number, so continous IRQs at low end are statically allocated to IOAPICs
at boot time. This design causes trouble to support IOAPIC hotplug.
This patch implements basic mechanism to dynamically allocate IRQ on
demand for IOAPIC pins by using irqdomain framework.
It first adds several fields into struct ioapic to support irqdomain.
Then it implements an algorithm to dynamically allocate IRQ number
for IOAPIC pins on demand.
Currently it supports three types of irqdomain:
1) LEGACY: used to support IOAPIC hosting legacy IRQs and building
identity mapping for legacy IRQs. A speical case, we dynamically
allocate IRQ number for IOAPIC pin which has GSI number below
nr_legacy_irqs() but isn't legacy IRQ. This is for backward
compatibility and avoid regression.
2) STRICT: build identity mapping between GSI and IRQ nubmer.
3) DYNAMIC: dynamically allocate IRQ number for IOAPIC pin on demand.
Legacy(ISA) IRQs is not managed by irqdomain because there may be
multiple pins sharing the same IRQ number and current irqdomain only
supports 1:1 mapping between pins and IRQ.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Paul Gortmaker <paul.gortmaker@windriver.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Len Brown <len.brown@intel.com >
Cc: Pavel Machek <pavel@ucw.cz >
Link: http://lkml.kernel.org/r/1402302011-23642-24-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-06-21 23:05:42 +02:00
6b9fb70824
x86, ACPI, irq: Consolidate algorithm of mapping (ioapic, pin) to IRQ number
...
Currently ACPI and ioapic both implement algorithms to map (ioapic, pin)
to IRQ number. So consolidate the common part into one place, which is
also preparing for irqdomain support.
It introduces mp_map_gsi_to_irq(), which will be used to allocate IRQ
number IOAPIC pins when irqdomain is enabled.
Also rename gsi_to_irq() to map_gsi_to_irq(), later we will introduce
unmap_gsi_to_irq() when enabling IOAPIC hotplug.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Paul Gortmaker <paul.gortmaker@windriver.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Len Brown <len.brown@intel.com >
Cc: Pavel Machek <pavel@ucw.cz >
Link: http://lkml.kernel.org/r/1402380812-32446-1-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-06-21 23:05:42 +02:00
18e4855186
x86, irq: Introduce some helper utilities to improve readability
...
It also fixes an off by one bug in
if ((ioapic_idx > 0) && (irq > NR_IRQS_LEGACY))
It should be
if ((ioapic_idx > 0) && (irq >= NR_IRQS_LEGACY))
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Paul Gortmaker <paul.gortmaker@windriver.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Link: http://lkml.kernel.org/r/1402302011-23642-17-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-06-21 23:05:41 +02:00
4035ed0134
x86, ioapic: Kill unused global variable timer_through_8259
...
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Paul Gortmaker <paul.gortmaker@windriver.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Link: http://lkml.kernel.org/r/1402302011-23642-12-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-06-21 23:05:41 +02:00
3eb2be5f49
x86, irq, trivial: Minor improvements of IRQ related code
...
1) Kill unused MAX_HARDIRQS_PER_CPU.
2) Improve function prototype declararions.
3) Simple typo fix, change "gsit" to "gsi".
4) Use macro VECTOR_UNDEFINED instead of hard-coded -1.
5) Kill redundant comments.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Paul Gortmaker <paul.gortmaker@windriver.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Jiri Kosina <trivial@kernel.org >
Link: http://lkml.kernel.org/r/1402302011-23642-11-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-06-21 23:05:41 +02:00
a491cc902c
x86, mpparse: Simplify arch/x86/include/asm/mpspec.h
...
Simplify arch/x86/include/asm/mpspec.h by
1) Change max_physical_apicid to static as it's only used in apic.c.
2) Kill declaration of mpc_default_type, it's never defined.
3) Delete default_acpi_madt_oem_check(), it has already been declared
in apic.h.
4) Make default_acpi_madt_oem_check() depends on CONFIG_X86_LOCAL_APIC
instead of CONFIG_X86_64 to support i386.
5) Change mp_override_legacy_irq(), mp_config_acpi_legacy_irqs() and
mp_register_gsi() as static because they are only used in acpi/boot.c.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Acked-by: David Rientjes <rientjes@google.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: H. Peter Anvin <hpa@linux.intel.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Len Brown <len.brown@intel.com >
Cc: Pavel Machek <pavel@ucw.cz >
Cc: Seiji Aguchi <seiji.aguchi@hds.com >
Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com >
Cc: Paul Gortmaker <paul.gortmaker@windriver.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Andi Kleen <ak@linux.intel.com >
Link: http://lkml.kernel.org/r/1402302011-23642-4-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-06-21 23:05:40 +02:00
d07c9f1875
x86: Get rid of get_nr_irqs_gsi()
...
No need to expose this outside of the ioapic code. The dynamic
allocations are guaranteed not to happen in the gsi space. See commit
62a08ae2a
.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Grant Likely <grant.likely@linaro.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: x86@kernel.org
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: xen-devel@lists.xenproject.org
Link: http://lkml.kernel.org/r/20140507154335.959870037@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-05-16 14:05:19 +02:00
da165322df
x86, io_apic: Introduce eoi_ioapic_pin call-back
...
This callback replaces the old __eoi_ioapic_pin function
which needs a special path for interrupt remapping.
Signed-off-by: Joerg Roedel <joro@8bytes.org >
Acked-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc >
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
2013-01-28 12:51:52 +01:00
7601384f91
x86, msi: Introduce x86_msi.compose_msi_msg call-back
...
This call-back points to the right function for initializing
the msi_msg structure. The old code for msi_msg generation
was split up into the irq-remapped and the default case.
The irq-remapped case just calls into the specific Intel or
AMD implementation when the device is behind an IOMMU.
Otherwise the default function is called.
Signed-off-by: Joerg Roedel <joro@8bytes.org >
Acked-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc >
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
2013-01-28 12:42:48 +01:00
9b1b0e42f5
x86, io-apic: Move CONFIG_IRQ_REMAP code out of x86 core
...
Move all the code to either to the header file
asm/irq_remapping.h or to drivers/iommu/.
Signed-off-by: Joerg Roedel <joro@8bytes.org >
Acked-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc >
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
2013-01-28 12:17:27 +01:00
a6a25dd327
x86, io_apic: Convert setup_ioapic_entry to function pointer
...
This pointer is changed to a different function when IRQ
remapping is enabled.
Signed-off-by: Joerg Roedel <joro@8bytes.org >
Acked-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc >
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
2013-01-28 12:17:26 +01:00
373dd7a27f
x86, io_apic: Introduce set_affinity function pointer
...
With interrupt remapping a special function is used to
change the affinity of an IO-APIC interrupt. Abstract this
with a function pointer.
Signed-off-by: Joerg Roedel <joro@8bytes.org >
Acked-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc >
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
2013-01-28 12:17:26 +01:00
afcc8a40a0
x86, io_apic: Introduce x86_io_apic_ops.print_entries for debugging
...
This call-back is used to dump IO-APIC entries for debugging
purposes into the kernel log. VT-d needs a special routine
for this and will overwrite the default.
Signed-off-by: Joerg Roedel <joro@8bytes.org >
Acked-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc >
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
2013-01-28 10:48:30 +01:00
1c4248ca4e
x86, io_apic: Introduce x86_io_apic_ops.disable()
...
This function pointer is used to call a system-specific
function for disabling the IO-APIC. Currently this is used
for IRQ remapping which has its own disable routine.
Also introduce the necessary infrastructure in the interrupt
remapping code to overwrite this and other function pointers
as necessary by interrupt remapping.
Signed-off-by: Joerg Roedel <joro@8bytes.org >
Acked-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc >
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
2013-01-28 10:48:30 +01:00
4a8e2a3115
x86/apic: Replace io_apic_ops with x86_io_apic_ops.
...
Which makes the code fit within the rest of the x86_ops functions.
Acked-by: Suresh Siddha <suresh.b.siddha@intel.com >
[v1: Changed x86_apic -> x86_ioapic per Yinghai Lu <yinghai@kernel.org > suggestion]
[v2: Rebased on tip/x86/urgent and redid to match Ingo's syntax style]
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
2012-05-01 14:50:09 -04:00
136d249ef7
x86/ioapic: Add io_apic_ops driver layer to allow interception
...
Xen dom0 needs to paravirtualize IO operations to the IO APIC,
so add a io_apic_ops for it to intercept. Do this as ops
structure because there's at least some chance that another
paravirtualized environment may want to intercept these.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com >
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Acked-by: Suresh Siddha <suresh.b.siddha@intel.com >
Cc: jwboyer@redhat.com
Cc: yinghai@kernel.org
Link: http://lkml.kernel.org/r/1332385090-18056-2-git-send-email-konrad.wilk@oracle.com
[ Made all the affected code easier on the eyes ]
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2012-03-28 09:49:29 +02:00
c040aaeb86
x86, ioapic: Consolidate gsi routing info into 'struct ioapic'
...
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com >
Cc: daniel.blueman@gmail.com
Link: http://lkml.kernel.org/r/20110518233157.994002011@sbsiddha-MOBL3.sc.intel.com
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2011-05-20 13:41:01 +02:00
d537143084
x86, ioapic: Consolidate mp_ioapics[] into 'struct ioapic'
...
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com >
Cc: daniel.blueman@gmail.com
Link: http://lkml.kernel.org/r/20110518233157.909013179@sbsiddha-MOBL3.sc.intel.com
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2011-05-20 13:40:59 +02:00
b69c6c3bec
x86, ioapic: Add struct ioapic
...
Introduce struct ioapic with nr_registers field.
This will pave way for consolidating different MAX_IO_APICS
arrays into it.
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com >
Cc: daniel.blueman@gmail.com
Link: http://lkml.kernel.org/r/20110518233157.744315519@sbsiddha-MOBL3.sc.intel.com
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2011-05-20 13:40:56 +02:00
31dce14a32
x86, ioapic: Use ioapic_saved_data while enabling intr-remapping
...
Code flow for enabling interrupt-remapping was
allocating/freeing buffers for saving/restoring io-apic RTE's.
ioapic suspend/resume code uses boot time allocated
ioapic_saved_data that is a perfect match for reuse here.
This will remove the unnecessary allocation/free of the
temporary buffers during suspend/resume of interrupt-remapping
enabled platforms aswell as paving the way for further code
consolidation.
Tested-by: Daniel J Blueman <daniel.blueman@gmail.com >
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com >
Link: http://lkml.kernel.org/r/20110518233157.574469296@sbsiddha-MOBL3.sc.intel.com
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2011-05-20 13:40:52 +02:00