From: Gavin Shan <gwshan@linux.vnet.ibm.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: bhelgaas@google.com, mpe@ellerman.id.au,
Gavin Shan <gwshan@linux.vnet.ibm.com>
Subject: [PATCH v4 0/7] powerpc/powernv: PCI Surprise Hotplug Support
Date: Thu, 29 Sep 2016 15:51:58 +1000 [thread overview]
Message-ID: <1475128325-5367-1-git-send-email-gwshan@linux.vnet.ibm.com> (raw)
This series of patches supports PCI surprise hotplug on PowerNV platform.
Without the corresponding skiboot patches, this feature won't be enabled
and workable.
* The skiboot patches can be found in below link (PATCH[01/16):
https://patchwork.ozlabs.org/project/skiboot/list/?submitter=63923
* This newly added functionality depends on skiboot's changes. However,
the functionality is disabled simply when skiboot doesn't support it.
For one specific slot, property "ibm,slot-surprise-pluggable" of the
slot's device node is set to 1 when surprise hotplug is claimed by
skiboot.
* The interrupts because of presence and link state change are enabled
in order to support PCI surprise hotplug. The surprise hotplug events
are queued to the PCI slot and they're picked up for further processing
in serialized fashion. The surprise and managed hotplug share same code
flow except: the affected PEs are put into frozen state to avoid unexpected
EEH error reporting in surprise hot remove path.
PATCH[1/7] to PATCH[3/7] allow to freeze PEs to avoid unexpected EEH error
reporting in PCI surprise hot remove path. PATCH[4/7] clears PE's frozen state
on initializing it because the PE might have been put into frozen state in last
PCI surprise hot remove. PATCH[5/7] removes likely() and unlikely() in pnv_php.c
as they are not too useful. PATCH[6/7] replaces of_get_property() with of_property_
read_u32() and of_property_read_string(). PATCH[7/7] supports PCI surprise hotplug
for PowerNV PCI hotplug driver.
Changelog
=========
v2:
* Add one patch to remove likely() and unlikely() in pnv_php.c.
* Remove likely() and unlikely() in PATCH[v1 4/4].
* The event isn't pre-allocated. It's always allocated from slab
in the interrupt handler. The removed PE is put into frozen state
before the event is allocated.
v3:
* Add one patch to export confirm_error_lock to avoid building error
when having CONFIG_HOTPLUG_PCI_POWERNV=m
v4:
* Add patch to replace of_get_property() with of_property_read_u32()
and of_property_read_string(). Also, the of_get_property() in last
patch was replaced to of_property_read_u32().
Gavin Shan (7):
powerpc/eeh: Allow to freeze PE in eeh_pe_set_option()
powerpc/eeh: Export confirm_error_lock
powerpc/eeh: Export eeh_pe_state_mark()
powerpc/powernv: Unfreeze PE on allocation
drivers/pci/hotplug: Remove likely() and unlikely() in powernv driver
drivers/pci/hotplug: Use of_property_read_u32() in powernv driver
drivers/pci/hotplug: Support surprise hotplug in powernv driver
arch/powerpc/include/asm/pnv-pci.h | 2 +
arch/powerpc/kernel/eeh.c | 2 +
arch/powerpc/kernel/eeh_pe.c | 1 +
arch/powerpc/platforms/powernv/pci-ioda.c | 12 ++
drivers/pci/hotplug/pnv_php.c | 281 ++++++++++++++++++++++++++----
5 files changed, 264 insertions(+), 34 deletions(-)
--
2.1.0
next reply other threads:[~2016-09-29 5:51 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-29 5:51 Gavin Shan [this message]
2016-09-29 5:51 ` [PATCH v4 1/7] powerpc/eeh: Allow to freeze PE in eeh_pe_set_option() Gavin Shan
2016-09-29 5:52 ` [PATCH v4 2/7] powerpc/eeh: Export confirm_error_lock Gavin Shan
2016-09-29 5:52 ` [PATCH v4 3/7] powerpc/eeh: Export eeh_pe_state_mark() Gavin Shan
2016-09-29 5:52 ` [PATCH v4 4/7] powerpc/powernv: Unfreeze PE on allocation Gavin Shan
2016-09-29 5:52 ` [PATCH v4 5/7] drivers/pci/hotplug: Remove likely() and unlikely() in powernv driver Gavin Shan
2016-09-29 5:52 ` [PATCH v4 6/7] drivers/pci/hotplug: Use of_property_read_u32() " Gavin Shan
2016-10-05 2:36 ` [v4, " Michael Ellerman
2016-09-29 5:52 ` [PATCH v4 7/7] drivers/pci/hotplug: Support surprise hotplug " Gavin Shan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1475128325-5367-1-git-send-email-gwshan@linux.vnet.ibm.com \
--to=gwshan@linux.vnet.ibm.com \
--cc=bhelgaas@google.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).