@@ -1609,3 +1609,101 @@ bool amdgpu_ras_smu_eeprom_supported(struct amdgpu_device *adev)
16091609
16101610 return !!(flags & RAS_SMU_FEATURE_BIT__RAS_EEPROM );
16111611}
1612+
1613+ int amdgpu_ras_smu_get_table_version (struct amdgpu_device * adev ,
1614+ uint32_t * table_version )
1615+ {
1616+ const struct ras_smu_drv * smu_ras_drv = amdgpu_ras_get_smu_ras_drv (adev );
1617+
1618+ if (!amdgpu_ras_smu_eeprom_supported (adev ))
1619+ return - EOPNOTSUPP ;
1620+
1621+ if (smu_ras_drv -> smu_eeprom_funcs -> get_ras_table_version )
1622+ return smu_ras_drv -> smu_eeprom_funcs -> get_ras_table_version (adev ,
1623+ table_version );
1624+ return - EOPNOTSUPP ;
1625+ }
1626+
1627+ int amdgpu_ras_smu_get_badpage_count (struct amdgpu_device * adev ,
1628+ uint32_t * count , uint32_t timeout )
1629+ {
1630+ const struct ras_smu_drv * smu_ras_drv = amdgpu_ras_get_smu_ras_drv (adev );
1631+
1632+ if (!amdgpu_ras_smu_eeprom_supported (adev ))
1633+ return - EOPNOTSUPP ;
1634+
1635+ if (smu_ras_drv -> smu_eeprom_funcs -> get_badpage_count )
1636+ return smu_ras_drv -> smu_eeprom_funcs -> get_badpage_count (adev ,
1637+ count , timeout );
1638+ return - EOPNOTSUPP ;
1639+ }
1640+
1641+ int amdgpu_ras_smu_get_badpage_mca_addr (struct amdgpu_device * adev ,
1642+ uint16_t index , uint64_t * mca_addr )
1643+ {
1644+ const struct ras_smu_drv * smu_ras_drv = amdgpu_ras_get_smu_ras_drv (adev );
1645+
1646+ if (!amdgpu_ras_smu_eeprom_supported (adev ))
1647+ return - EOPNOTSUPP ;
1648+
1649+ if (smu_ras_drv -> smu_eeprom_funcs -> get_badpage_mca_addr )
1650+ return smu_ras_drv -> smu_eeprom_funcs -> get_badpage_mca_addr (adev ,
1651+ index , mca_addr );
1652+ return - EOPNOTSUPP ;
1653+ }
1654+
1655+ int amdgpu_ras_smu_set_timestamp (struct amdgpu_device * adev ,
1656+ uint64_t timestamp )
1657+ {
1658+ const struct ras_smu_drv * smu_ras_drv = amdgpu_ras_get_smu_ras_drv (adev );
1659+
1660+ if (!amdgpu_ras_smu_eeprom_supported (adev ))
1661+ return - EOPNOTSUPP ;
1662+
1663+ if (smu_ras_drv -> smu_eeprom_funcs -> set_timestamp )
1664+ return smu_ras_drv -> smu_eeprom_funcs -> set_timestamp (adev ,
1665+ timestamp );
1666+ return - EOPNOTSUPP ;
1667+ }
1668+
1669+ int amdgpu_ras_smu_get_timestamp (struct amdgpu_device * adev ,
1670+ uint16_t index , uint64_t * timestamp )
1671+ {
1672+ const struct ras_smu_drv * smu_ras_drv = amdgpu_ras_get_smu_ras_drv (adev );
1673+
1674+ if (!amdgpu_ras_smu_eeprom_supported (adev ))
1675+ return - EOPNOTSUPP ;
1676+
1677+ if (smu_ras_drv -> smu_eeprom_funcs -> get_timestamp )
1678+ return smu_ras_drv -> smu_eeprom_funcs -> get_timestamp (adev ,
1679+ index , timestamp );
1680+ return - EOPNOTSUPP ;
1681+ }
1682+
1683+ int amdgpu_ras_smu_get_badpage_ipid (struct amdgpu_device * adev ,
1684+ uint16_t index , uint64_t * ipid )
1685+ {
1686+ const struct ras_smu_drv * smu_ras_drv = amdgpu_ras_get_smu_ras_drv (adev );
1687+
1688+ if (!amdgpu_ras_smu_eeprom_supported (adev ))
1689+ return - EOPNOTSUPP ;
1690+
1691+ if (smu_ras_drv -> smu_eeprom_funcs -> get_badpage_ipid )
1692+ return smu_ras_drv -> smu_eeprom_funcs -> get_badpage_ipid (adev ,
1693+ index , ipid );
1694+ return - EOPNOTSUPP ;
1695+ }
1696+
1697+ int amdgpu_ras_smu_erase_ras_table (struct amdgpu_device * adev ,
1698+ uint32_t * result )
1699+ {
1700+ const struct ras_smu_drv * smu_ras_drv = amdgpu_ras_get_smu_ras_drv (adev );
1701+
1702+ if (!amdgpu_ras_smu_eeprom_supported (adev ))
1703+ return - EOPNOTSUPP ;
1704+
1705+ if (smu_ras_drv -> smu_eeprom_funcs -> erase_ras_table )
1706+ return smu_ras_drv -> smu_eeprom_funcs -> erase_ras_table (adev ,
1707+ result );
1708+ return - EOPNOTSUPP ;
1709+ }
0 commit comments