aboutsummaryrefslogtreecommitdiff
path: root/hw/occ.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/occ.c')
-rw-r--r--hw/occ.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/hw/occ.c b/hw/occ.c
index 4b74b99..68b7032 100644
--- a/hw/occ.c
+++ b/hw/occ.c
@@ -26,6 +26,7 @@
#include <errorlog.h>
#include <opal-api.h>
#include <opal-msg.h>
+#include <timer.h>
/* OCC Communication Area for PStates */
@@ -715,9 +716,11 @@ static struct fsp_client fsp_occ_client = {
#define OCB_OCI_OCCMISC_OR 0x6a022
#define OCB_OCI_OCIMISC_IRQ PPC_BIT(0)
#define OCB_OCI_OCIMISC_IRQ_TMGT PPC_BIT(1)
+#define OCB_OCI_OCIMISC_IRQ_SLW_TMR PPC_BIT(14)
#define OCB_OCI_OCIMISC_IRQ_OPAL_DUMMY PPC_BIT(15)
#define OCB_OCI_OCIMISC_MASK (OCB_OCI_OCIMISC_IRQ_TMGT | \
- OCB_OCI_OCIMISC_IRQ_OPAL_DUMMY )
+ OCB_OCI_OCIMISC_IRQ_OPAL_DUMMY | \
+ OCB_OCI_OCIMISC_IRQ_SLW_TMR)
void occ_send_dummy_interrupt(void)
{
@@ -765,6 +768,8 @@ void occ_interrupt(uint32_t chip_id)
/* Dispatch */
if (ireg & OCB_OCI_OCIMISC_IRQ_TMGT)
prd_tmgt_interrupt(chip_id);
+ if (ireg & OCB_OCI_OCIMISC_IRQ_SLW_TMR)
+ check_timers(true);
/* We may have masked-out OCB_OCI_OCIMISC_IRQ in the previous
* OCCMISC_AND write. Check if there are any new source bits set,