[PATCH v3 06/11] PCI: plda: Add event interrupt codes and IRQ domain ops

Minda Chen minda.chen at starfivetech.com
Fri Aug 18 03:15:19 PDT 2023



On 2023/8/15 21:11, Conor Dooley wrote:
> On Tue, Aug 15, 2023 at 06:12:07PM +0800, Minda Chen wrote:
>> 
>> 
>> On 2023/8/14 21:52, Conor Dooley wrote:
>> > On Mon, Aug 14, 2023 at 04:20:11PM +0800, Minda Chen wrote:
>> >> For PolarFire implements non-PLDA local interrupt events, most of
>> >> event interrupt process codes can not be re-used. PLDA implements
>> >> new codes and IRQ domain ops like PolarFire.
>> >> 
>> >> plda_handle_event adds a new IRQ num to event num mapping codes for
>> >> PLDA local event except DMA engine interrupt events. The DMA engine
>> >> interrupt events are implemented by vendors.
>> >> 
>> >> Signed-off-by: Minda Chen <minda.chen at starfivetech.com>
>> >> ---
>> >>  .../pci/controller/plda/pcie-microchip-host.c | 29 +++---
>> >>  drivers/pci/controller/plda/pcie-plda-host.c  | 99 +++++++++++++++++++
>> >>  drivers/pci/controller/plda/pcie-plda.h       | 19 ++++
>> >>  3 files changed, 133 insertions(+), 14 deletions(-)
>> >> 
>> >> diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
>> >> index c28840315019..b42f1aac3ec3 100644
>> >> --- a/drivers/pci/controller/plda/pcie-microchip-host.c
>> >> +++ b/drivers/pci/controller/plda/pcie-microchip-host.c
>> >> @@ -96,20 +96,21 @@
>> >>  #define EVENT_LOCAL_DMA_END_ENGINE_1		12
>> >>  #define EVENT_LOCAL_DMA_ERROR_ENGINE_0		13
>> >>  #define EVENT_LOCAL_DMA_ERROR_ENGINE_1		14
>> >> -#define EVENT_LOCAL_A_ATR_EVT_POST_ERR		15
>> >> -#define EVENT_LOCAL_A_ATR_EVT_FETCH_ERR		16
>> >> -#define EVENT_LOCAL_A_ATR_EVT_DISCARD_ERR	17
>> >> -#define EVENT_LOCAL_A_ATR_EVT_DOORBELL		18
>> >> -#define EVENT_LOCAL_P_ATR_EVT_POST_ERR		19
>> >> -#define EVENT_LOCAL_P_ATR_EVT_FETCH_ERR		20
>> >> -#define EVENT_LOCAL_P_ATR_EVT_DISCARD_ERR	21
>> >> -#define EVENT_LOCAL_P_ATR_EVT_DOORBELL		22
>> >> -#define EVENT_LOCAL_PM_MSI_INT_INTX		23
>> >> -#define EVENT_LOCAL_PM_MSI_INT_MSI		24
>> >> -#define EVENT_LOCAL_PM_MSI_INT_AER_EVT		25
>> >> -#define EVENT_LOCAL_PM_MSI_INT_EVENTS		26
>> >> -#define EVENT_LOCAL_PM_MSI_INT_SYS_ERR		27
>> >> -#define NUM_EVENTS				28
>> >> +#define NUM_MC_EVENTS				15
>> >> +#define EVENT_LOCAL_A_ATR_EVT_POST_ERR		(NUM_MC_EVENTS + EVENT_A_ATR_EVT_POST_ERR)
>> >> +#define EVENT_LOCAL_A_ATR_EVT_FETCH_ERR		(NUM_MC_EVENTS + EVENT_A_ATR_EVT_FETCH_ERR)
>> >> +#define EVENT_LOCAL_A_ATR_EVT_DISCARD_ERR	(NUM_MC_EVENTS + EVENT_A_ATR_EVT_DISCARD_ERR)
>> >> +#define EVENT_LOCAL_A_ATR_EVT_DOORBELL		(NUM_MC_EVENTS + EVENT_A_ATR_EVT_DOORBELL)
>> >> +#define EVENT_LOCAL_P_ATR_EVT_POST_ERR		(NUM_MC_EVENTS + EVENT_P_ATR_EVT_POST_ERR)
>> >> +#define EVENT_LOCAL_P_ATR_EVT_FETCH_ERR		(NUM_MC_EVENTS + EVENT_P_ATR_EVT_FETCH_ERR)
>> >> +#define EVENT_LOCAL_P_ATR_EVT_DISCARD_ERR	(NUM_MC_EVENTS + EVENT_P_ATR_EVT_DISCARD_ERR)
>> >> +#define EVENT_LOCAL_P_ATR_EVT_DOORBELL		(NUM_MC_EVENTS + EVENT_P_ATR_EVT_DOORBELL)
>> >> +#define EVENT_LOCAL_PM_MSI_INT_INTX		(NUM_MC_EVENTS + EVENT_PM_MSI_INT_INTX)
>> >> +#define EVENT_LOCAL_PM_MSI_INT_MSI		(NUM_MC_EVENTS + EVENT_PM_MSI_INT_MSI)
>> >> +#define EVENT_LOCAL_PM_MSI_INT_AER_EVT		(NUM_MC_EVENTS + EVENT_PM_MSI_INT_AER_EVT)
>> >> +#define EVENT_LOCAL_PM_MSI_INT_EVENTS		(NUM_MC_EVENTS + EVENT_PM_MSI_INT_EVENTS)
>> >> +#define EVENT_LOCAL_PM_MSI_INT_SYS_ERR		(NUM_MC_EVENTS + EVENT_PM_MSI_INT_SYS_ERR)
>> >> +#define NUM_EVENTS				(NUM_MC_EVENTS + NUM_PLDA_EVENTS)
>> > 
>> > Is this change not in the wrong patch & should be changed alongside the
>> > movement of defines? 
>> EVENT_xxx is new added one for PLDA codes and The event num start from 0. This add association to PLDA events.
>> Maybe this can be moved to patch8 or a new patch.
> 
> It feels like it should be in patch 3 to me.
OK, thanks. But this need define PLDA events macros in patch3.   



More information about the linux-riscv mailing list