[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [PATCH] pci: Update ISR related description about MSI-X
In commit 6a83c1d41748 ("pci: set ISR bit on config change with MSI-X"), device is required to set ISR bit on config change even when MSI-X enabled. This update other ISR related description for above commit. Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com> --- content.tex | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/content.tex b/content.tex index e863709..fea576d 100644 --- a/content.tex +++ b/content.tex @@ -1158,10 +1158,10 @@ \subsubsection{ISR status capability}\label{sec:Virtio Transport Options / Virti \end{tabular} To avoid an extra access, simply reading this register resets it to 0 and -causes the device to de-assert the interrupt. +causes the device to de-assert the interrupt when using INT\#x interrupt. In this way, driver read of ISR status causes the device to de-assert -an interrupt. +an INT\#x interrupt. See sections \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Used Buffer Notifications} and \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Notification of Device Configuration Changes} for how this is used. @@ -1511,7 +1511,7 @@ \subsubsection{Device Initialization}\label{sec:Virtio Transport Options / Virti When MSI-X capability is present and enabled in the device (through standard PCI configuration space) \field{config_msix_vector} and \field{queue_msix_vector} are used to map configuration change and queue -interrupts to MSI-X vectors. In this case, the ISR Status is unused. +interrupts to MSI-X vectors. Writing a valid MSI-X Table entry number, 0 to 0x7FF, to \field{config_msix_vector}/\field{queue_msix_vector} maps interrupts triggered @@ -1681,6 +1681,8 @@ \subsubsection{Notification of Device Configuration Changes}\label{sec:Virtio Tr \item If MSI-X capability is enabled: \begin{enumerate} + \item If \field{config_msix_vector} is not NO_VECTOR, set the second + lower bit of the ISR Status field for the device. \item If \field{config_msix_vector} is not NO_VECTOR, request the appropriate MSI-X interrupt message for the device, \field{config_msix_vector} sets the MSI-X Table entry @@ -1718,13 +1720,15 @@ \subsubsection{Driver Handling Interrupts}\label{sec:Virtio Transport Options / \end{itemize} \item If MSI-X capability is enabled: \begin{itemize} + \item Read the ISR Status field, which will reset it to zero. \item Look through all virtqueues mapped to that MSI-X vector for the device, to see if any progress has been made by the device which requires servicing. \item - If the MSI-X vector is equal to \field{config_msix_vector}, - re-examine the configuration space to see what changed. + If the second lower bit of ISR Status filed is set and the + MSI-X vector is equal to \field{config_msix_vector}, re-examine + the configuration space to see what changed. \end{itemize} \end{itemize} -- 2.33.0
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]