1*63a3a15fSDan Williams /* 2*63a3a15fSDan Williams * This file is provided under a dual BSD/GPLv2 license. When using or 3*63a3a15fSDan Williams * redistributing this file, you may do so under either license. 4*63a3a15fSDan Williams * 5*63a3a15fSDan Williams * GPL LICENSE SUMMARY 6*63a3a15fSDan Williams * 7*63a3a15fSDan Williams * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. 8*63a3a15fSDan Williams * 9*63a3a15fSDan Williams * This program is free software; you can redistribute it and/or modify 10*63a3a15fSDan Williams * it under the terms of version 2 of the GNU General Public License as 11*63a3a15fSDan Williams * published by the Free Software Foundation. 12*63a3a15fSDan Williams * 13*63a3a15fSDan Williams * This program is distributed in the hope that it will be useful, but 14*63a3a15fSDan Williams * WITHOUT ANY WARRANTY; without even the implied warranty of 15*63a3a15fSDan Williams * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16*63a3a15fSDan Williams * General Public License for more details. 17*63a3a15fSDan Williams * 18*63a3a15fSDan Williams * You should have received a copy of the GNU General Public License 19*63a3a15fSDan Williams * along with this program; if not, write to the Free Software 20*63a3a15fSDan Williams * Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. 21*63a3a15fSDan Williams * The full GNU General Public License is included in this distribution 22*63a3a15fSDan Williams * in the file called LICENSE.GPL. 23*63a3a15fSDan Williams * 24*63a3a15fSDan Williams * BSD LICENSE 25*63a3a15fSDan Williams * 26*63a3a15fSDan Williams * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. 27*63a3a15fSDan Williams * All rights reserved. 28*63a3a15fSDan Williams * 29*63a3a15fSDan Williams * Redistribution and use in source and binary forms, with or without 30*63a3a15fSDan Williams * modification, are permitted provided that the following conditions 31*63a3a15fSDan Williams * are met: 32*63a3a15fSDan Williams * 33*63a3a15fSDan Williams * * Redistributions of source code must retain the above copyright 34*63a3a15fSDan Williams * notice, this list of conditions and the following disclaimer. 35*63a3a15fSDan Williams * * Redistributions in binary form must reproduce the above copyright 36*63a3a15fSDan Williams * notice, this list of conditions and the following disclaimer in 37*63a3a15fSDan Williams * the documentation and/or other materials provided with the 38*63a3a15fSDan Williams * distribution. 39*63a3a15fSDan Williams * * Neither the name of Intel Corporation nor the names of its 40*63a3a15fSDan Williams * contributors may be used to endorse or promote products derived 41*63a3a15fSDan Williams * from this software without specific prior written permission. 42*63a3a15fSDan Williams * 43*63a3a15fSDan Williams * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 44*63a3a15fSDan Williams * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 45*63a3a15fSDan Williams * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 46*63a3a15fSDan Williams * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 47*63a3a15fSDan Williams * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 48*63a3a15fSDan Williams * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 49*63a3a15fSDan Williams * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 50*63a3a15fSDan Williams * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 51*63a3a15fSDan Williams * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 52*63a3a15fSDan Williams * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 53*63a3a15fSDan Williams * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 54*63a3a15fSDan Williams */ 55*63a3a15fSDan Williams 56*63a3a15fSDan Williams #ifndef __SCU_EVENT_CODES_HEADER__ 57*63a3a15fSDan Williams #define __SCU_EVENT_CODES_HEADER__ 58*63a3a15fSDan Williams 59*63a3a15fSDan Williams /** 60*63a3a15fSDan Williams * This file contains the constants and macros for the SCU event codes. 61*63a3a15fSDan Williams * 62*63a3a15fSDan Williams * 63*63a3a15fSDan Williams */ 64*63a3a15fSDan Williams 65*63a3a15fSDan Williams #define SCU_EVENT_TYPE_CODE_SHIFT 24 66*63a3a15fSDan Williams #define SCU_EVENT_TYPE_CODE_MASK 0x0F000000 67*63a3a15fSDan Williams 68*63a3a15fSDan Williams #define SCU_EVENT_SPECIFIC_CODE_SHIFT 18 69*63a3a15fSDan Williams #define SCU_EVENT_SPECIFIC_CODE_MASK 0x00FC0000 70*63a3a15fSDan Williams 71*63a3a15fSDan Williams #define SCU_EVENT_CODE_MASK \ 72*63a3a15fSDan Williams (SCU_EVENT_TYPE_CODE_MASK | SCU_EVENT_SPECIFIC_CODE_MASK) 73*63a3a15fSDan Williams 74*63a3a15fSDan Williams /** 75*63a3a15fSDan Williams * SCU_EVENT_TYPE() - 76*63a3a15fSDan Williams * 77*63a3a15fSDan Williams * This macro constructs an SCU event type from the type value. 78*63a3a15fSDan Williams */ 79*63a3a15fSDan Williams #define SCU_EVENT_TYPE(type) \ 80*63a3a15fSDan Williams ((u32)(type) << SCU_EVENT_TYPE_CODE_SHIFT) 81*63a3a15fSDan Williams 82*63a3a15fSDan Williams /** 83*63a3a15fSDan Williams * SCU_EVENT_SPECIFIC() - 84*63a3a15fSDan Williams * 85*63a3a15fSDan Williams * This macro constructs an SCU event specifier from the code value. 86*63a3a15fSDan Williams */ 87*63a3a15fSDan Williams #define SCU_EVENT_SPECIFIC(code) \ 88*63a3a15fSDan Williams ((u32)(code) << SCU_EVENT_SPECIFIC_CODE_SHIFT) 89*63a3a15fSDan Williams 90*63a3a15fSDan Williams /** 91*63a3a15fSDan Williams * SCU_EVENT_MESSAGE() - 92*63a3a15fSDan Williams * 93*63a3a15fSDan Williams * This macro constructs a combines an SCU event type and SCU event specifier 94*63a3a15fSDan Williams * from the type and code values. 95*63a3a15fSDan Williams */ 96*63a3a15fSDan Williams #define SCU_EVENT_MESSAGE(type, code) \ 97*63a3a15fSDan Williams ((type) | SCU_EVENT_SPECIFIC(code)) 98*63a3a15fSDan Williams 99*63a3a15fSDan Williams /** 100*63a3a15fSDan Williams * SCU_EVENT_TYPE() - 101*63a3a15fSDan Williams * 102*63a3a15fSDan Williams * SCU_EVENT_TYPES 103*63a3a15fSDan Williams */ 104*63a3a15fSDan Williams #define SCU_EVENT_TYPE_SMU_COMMAND_ERROR SCU_EVENT_TYPE(0x08) 105*63a3a15fSDan Williams #define SCU_EVENT_TYPE_SMU_PCQ_ERROR SCU_EVENT_TYPE(0x09) 106*63a3a15fSDan Williams #define SCU_EVENT_TYPE_SMU_ERROR SCU_EVENT_TYPE(0x00) 107*63a3a15fSDan Williams #define SCU_EVENT_TYPE_TRANSPORT_ERROR SCU_EVENT_TYPE(0x01) 108*63a3a15fSDan Williams #define SCU_EVENT_TYPE_BROADCAST_CHANGE SCU_EVENT_TYPE(0x02) 109*63a3a15fSDan Williams #define SCU_EVENT_TYPE_OSSP_EVENT SCU_EVENT_TYPE(0x03) 110*63a3a15fSDan Williams #define SCU_EVENT_TYPE_FATAL_MEMORY_ERROR SCU_EVENT_TYPE(0x0F) 111*63a3a15fSDan Williams #define SCU_EVENT_TYPE_RNC_SUSPEND_TX SCU_EVENT_TYPE(0x04) 112*63a3a15fSDan Williams #define SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX SCU_EVENT_TYPE(0x05) 113*63a3a15fSDan Williams #define SCU_EVENT_TYPE_RNC_OPS_MISC SCU_EVENT_TYPE(0x06) 114*63a3a15fSDan Williams #define SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT SCU_EVENT_TYPE(0x07) 115*63a3a15fSDan Williams #define SCU_EVENT_TYPE_ERR_CNT_EVENT SCU_EVENT_TYPE(0x0A) 116*63a3a15fSDan Williams 117*63a3a15fSDan Williams /** 118*63a3a15fSDan Williams * 119*63a3a15fSDan Williams * 120*63a3a15fSDan Williams * SCU_EVENT_SPECIFIERS 121*63a3a15fSDan Williams */ 122*63a3a15fSDan Williams #define SCU_EVENT_SPECIFIER_DRIVER_SUSPEND 0x20 123*63a3a15fSDan Williams #define SCU_EVENT_SPECIFIER_RNC_RELEASE 0x00 124*63a3a15fSDan Williams 125*63a3a15fSDan Williams /** 126*63a3a15fSDan Williams * 127*63a3a15fSDan Williams * 128*63a3a15fSDan Williams * SMU_COMMAND_EVENTS 129*63a3a15fSDan Williams */ 130*63a3a15fSDan Williams #define SCU_EVENT_INVALID_CONTEXT_COMMAND \ 131*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_COMMAND_ERROR, 0x00) 132*63a3a15fSDan Williams 133*63a3a15fSDan Williams /** 134*63a3a15fSDan Williams * 135*63a3a15fSDan Williams * 136*63a3a15fSDan Williams * SMU_PCQ_EVENTS 137*63a3a15fSDan Williams */ 138*63a3a15fSDan Williams #define SCU_EVENT_UNCORRECTABLE_PCQ_ERROR \ 139*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_PCQ_ERROR, 0x00) 140*63a3a15fSDan Williams 141*63a3a15fSDan Williams /** 142*63a3a15fSDan Williams * 143*63a3a15fSDan Williams * 144*63a3a15fSDan Williams * SMU_EVENTS 145*63a3a15fSDan Williams */ 146*63a3a15fSDan Williams #define SCU_EVENT_UNCORRECTABLE_REGISTER_WRITE \ 147*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x02) 148*63a3a15fSDan Williams #define SCU_EVENT_UNCORRECTABLE_REGISTER_READ \ 149*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x03) 150*63a3a15fSDan Williams #define SCU_EVENT_PCIE_INTERFACE_ERROR \ 151*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x04) 152*63a3a15fSDan Williams #define SCU_EVENT_FUNCTION_LEVEL_RESET \ 153*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x05) 154*63a3a15fSDan Williams 155*63a3a15fSDan Williams /** 156*63a3a15fSDan Williams * 157*63a3a15fSDan Williams * 158*63a3a15fSDan Williams * TRANSPORT_LEVEL_ERRORS 159*63a3a15fSDan Williams */ 160*63a3a15fSDan Williams #define SCU_EVENT_ACK_NAK_TIMEOUT_ERROR \ 161*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_TRANSPORT_ERROR, 0x00) 162*63a3a15fSDan Williams 163*63a3a15fSDan Williams /** 164*63a3a15fSDan Williams * 165*63a3a15fSDan Williams * 166*63a3a15fSDan Williams * BROADCAST_CHANGE_EVENTS 167*63a3a15fSDan Williams */ 168*63a3a15fSDan Williams #define SCU_EVENT_BROADCAST_CHANGE \ 169*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x01) 170*63a3a15fSDan Williams #define SCU_EVENT_BROADCAST_RESERVED0 \ 171*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x02) 172*63a3a15fSDan Williams #define SCU_EVENT_BROADCAST_RESERVED1 \ 173*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x03) 174*63a3a15fSDan Williams #define SCU_EVENT_BROADCAST_SES \ 175*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x04) 176*63a3a15fSDan Williams #define SCU_EVENT_BROADCAST_EXPANDER \ 177*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x05) 178*63a3a15fSDan Williams #define SCU_EVENT_BROADCAST_AEN \ 179*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x06) 180*63a3a15fSDan Williams #define SCU_EVENT_BROADCAST_RESERVED3 \ 181*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x07) 182*63a3a15fSDan Williams #define SCU_EVENT_BROADCAST_RESERVED4 \ 183*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x08) 184*63a3a15fSDan Williams #define SCU_EVENT_PE_SUSPENDED \ 185*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x09) 186*63a3a15fSDan Williams 187*63a3a15fSDan Williams /** 188*63a3a15fSDan Williams * 189*63a3a15fSDan Williams * 190*63a3a15fSDan Williams * OSSP_EVENTS 191*63a3a15fSDan Williams */ 192*63a3a15fSDan Williams #define SCU_EVENT_PORT_SELECTOR_DETECTED \ 193*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x10) 194*63a3a15fSDan Williams #define SCU_EVENT_SENT_PORT_SELECTION \ 195*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x11) 196*63a3a15fSDan Williams #define SCU_EVENT_HARD_RESET_TRANSMITTED \ 197*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x12) 198*63a3a15fSDan Williams #define SCU_EVENT_HARD_RESET_RECEIVED \ 199*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x13) 200*63a3a15fSDan Williams #define SCU_EVENT_RECEIVED_IDENTIFY_TIMEOUT \ 201*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x15) 202*63a3a15fSDan Williams #define SCU_EVENT_LINK_FAILURE \ 203*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x16) 204*63a3a15fSDan Williams #define SCU_EVENT_SATA_SPINUP_HOLD \ 205*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x17) 206*63a3a15fSDan Williams #define SCU_EVENT_SAS_15_SSC \ 207*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x18) 208*63a3a15fSDan Williams #define SCU_EVENT_SAS_15 \ 209*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x19) 210*63a3a15fSDan Williams #define SCU_EVENT_SAS_30_SSC \ 211*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1A) 212*63a3a15fSDan Williams #define SCU_EVENT_SAS_30 \ 213*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1B) 214*63a3a15fSDan Williams #define SCU_EVENT_SAS_60_SSC \ 215*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1C) 216*63a3a15fSDan Williams #define SCU_EVENT_SAS_60 \ 217*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1D) 218*63a3a15fSDan Williams #define SCU_EVENT_SATA_15_SSC \ 219*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1E) 220*63a3a15fSDan Williams #define SCU_EVENT_SATA_15 \ 221*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1F) 222*63a3a15fSDan Williams #define SCU_EVENT_SATA_30_SSC \ 223*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x20) 224*63a3a15fSDan Williams #define SCU_EVENT_SATA_30 \ 225*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x21) 226*63a3a15fSDan Williams #define SCU_EVENT_SATA_60_SSC \ 227*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x22) 228*63a3a15fSDan Williams #define SCU_EVENT_SATA_60 \ 229*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x23) 230*63a3a15fSDan Williams #define SCU_EVENT_SAS_PHY_DETECTED \ 231*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x24) 232*63a3a15fSDan Williams #define SCU_EVENT_SATA_PHY_DETECTED \ 233*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x25) 234*63a3a15fSDan Williams 235*63a3a15fSDan Williams /** 236*63a3a15fSDan Williams * 237*63a3a15fSDan Williams * 238*63a3a15fSDan Williams * FATAL_INTERNAL_MEMORY_ERROR_EVENTS 239*63a3a15fSDan Williams */ 240*63a3a15fSDan Williams #define SCU_EVENT_TSC_RNSC_UNCORRECTABLE_ERROR \ 241*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_FATAL_MEMORY_ERROR, 0x00) 242*63a3a15fSDan Williams #define SCU_EVENT_TC_RNC_UNCORRECTABLE_ERROR \ 243*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_FATAL_MEMORY_ERROR, 0x01) 244*63a3a15fSDan Williams #define SCU_EVENT_ZPT_UNCORRECTABLE_ERROR \ 245*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_FATAL_MEMORY_ERROR, 0x02) 246*63a3a15fSDan Williams 247*63a3a15fSDan Williams /** 248*63a3a15fSDan Williams * 249*63a3a15fSDan Williams * 250*63a3a15fSDan Williams * REMOTE_NODE_SUSPEND_EVENTS 251*63a3a15fSDan Williams */ 252*63a3a15fSDan Williams #define SCU_EVENT_TL_RNC_SUSPEND_TX \ 253*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX, 0x00) 254*63a3a15fSDan Williams #define SCU_EVENT_TL_RNC_SUSPEND_TX_RX \ 255*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX, 0x00) 256*63a3a15fSDan Williams #define SCU_EVENT_DRIVER_POST_RNC_SUSPEND_TX \ 257*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX, 0x20) 258*63a3a15fSDan Williams #define SCU_EVENT_DRIVER_POST_RNC_SUSPEND_TX_RX \ 259*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX, 0x20) 260*63a3a15fSDan Williams 261*63a3a15fSDan Williams /** 262*63a3a15fSDan Williams * 263*63a3a15fSDan Williams * 264*63a3a15fSDan Williams * REMOTE_NODE_MISC_EVENTS 265*63a3a15fSDan Williams */ 266*63a3a15fSDan Williams #define SCU_EVENT_POST_RCN_RELEASE \ 267*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, SCU_EVENT_SPECIFIER_RNC_RELEASE) 268*63a3a15fSDan Williams #define SCU_EVENT_POST_IT_NEXUS_LOSS_TIMER_ENABLE \ 269*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x01) 270*63a3a15fSDan Williams #define SCU_EVENT_POST_IT_NEXUS_LOSS_TIMER_DISABLE \ 271*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x02) 272*63a3a15fSDan Williams #define SCU_EVENT_POST_RNC_COMPLETE \ 273*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x03) 274*63a3a15fSDan Williams #define SCU_EVENT_POST_RNC_INVALIDATE_COMPLETE \ 275*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x04) 276*63a3a15fSDan Williams 277*63a3a15fSDan Williams /** 278*63a3a15fSDan Williams * 279*63a3a15fSDan Williams * 280*63a3a15fSDan Williams * ERROR_COUNT_EVENT 281*63a3a15fSDan Williams */ 282*63a3a15fSDan Williams #define SCU_EVENT_RX_CREDIT_BLOCKED_RECEIVED \ 283*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_ERR_CNT_EVENT, 0x00) 284*63a3a15fSDan Williams #define SCU_EVENT_TX_DONE_CREDIT_TIMEOUT \ 285*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_ERR_CNT_EVENT, 0x01) 286*63a3a15fSDan Williams #define SCU_EVENT_RX_DONE_CREDIT_TIMEOUT \ 287*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_ERR_CNT_EVENT, 0x02) 288*63a3a15fSDan Williams 289*63a3a15fSDan Williams /** 290*63a3a15fSDan Williams * scu_get_event_type() - 291*63a3a15fSDan Williams * 292*63a3a15fSDan Williams * This macro returns the SCU event type from the event code. 293*63a3a15fSDan Williams */ 294*63a3a15fSDan Williams #define scu_get_event_type(event_code) \ 295*63a3a15fSDan Williams ((event_code) & SCU_EVENT_TYPE_CODE_MASK) 296*63a3a15fSDan Williams 297*63a3a15fSDan Williams /** 298*63a3a15fSDan Williams * scu_get_event_specifier() - 299*63a3a15fSDan Williams * 300*63a3a15fSDan Williams * This macro returns the SCU event specifier from the event code. 301*63a3a15fSDan Williams */ 302*63a3a15fSDan Williams #define scu_get_event_specifier(event_code) \ 303*63a3a15fSDan Williams ((event_code) & SCU_EVENT_SPECIFIC_CODE_MASK) 304*63a3a15fSDan Williams 305*63a3a15fSDan Williams /** 306*63a3a15fSDan Williams * scu_get_event_code() - 307*63a3a15fSDan Williams * 308*63a3a15fSDan Williams * This macro returns the combined SCU event type and SCU event specifier from 309*63a3a15fSDan Williams * the event code. 310*63a3a15fSDan Williams */ 311*63a3a15fSDan Williams #define scu_get_event_code(event_code) \ 312*63a3a15fSDan Williams ((event_code) & SCU_EVENT_CODE_MASK) 313*63a3a15fSDan Williams 314*63a3a15fSDan Williams 315*63a3a15fSDan Williams /** 316*63a3a15fSDan Williams * 317*63a3a15fSDan Williams * 318*63a3a15fSDan Williams * PTS_SCHEDULE_EVENT 319*63a3a15fSDan Williams */ 320*63a3a15fSDan Williams #define SCU_EVENT_SMP_RESPONSE_NO_PE \ 321*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT, 0x00) 322*63a3a15fSDan Williams #define SCU_EVENT_SPECIFIC_SMP_RESPONSE_NO_PE \ 323*63a3a15fSDan Williams scu_get_event_specifier(SCU_EVENT_SMP_RESPONSE_NO_PE) 324*63a3a15fSDan Williams 325*63a3a15fSDan Williams #define SCU_EVENT_TASK_TIMEOUT \ 326*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT, 0x01) 327*63a3a15fSDan Williams #define SCU_EVENT_SPECIFIC_TASK_TIMEOUT \ 328*63a3a15fSDan Williams scu_get_event_specifier(SCU_EVENT_TASK_TIMEOUT) 329*63a3a15fSDan Williams 330*63a3a15fSDan Williams #define SCU_EVENT_IT_NEXUS_TIMEOUT \ 331*63a3a15fSDan Williams SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT, 0x02) 332*63a3a15fSDan Williams #define SCU_EVENT_SPECIFIC_IT_NEXUS_TIMEOUT \ 333*63a3a15fSDan Williams scu_get_event_specifier(SCU_EVENT_IT_NEXUS_TIMEOUT) 334*63a3a15fSDan Williams 335*63a3a15fSDan Williams 336*63a3a15fSDan Williams #endif /* __SCU_EVENT_CODES_HEADER__ */ 337