2019-07-09 09:21:53 -05:00
/*
* Copyright 2018 Advanced Micro Devices , Inc .
*
* Permission is hereby granted , free of charge , to any person obtaining a
* copy of this software and associated documentation files ( the " Software " ) ,
* to deal in the Software without restriction , including without limitation
* the rights to use , copy , modify , merge , publish , distribute , sublicense ,
* and / or sell copies of the Software , and to permit persons to whom the
* Software is furnished to do so , subject to the following conditions :
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software .
*
* THE SOFTWARE IS PROVIDED " AS IS " , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
* IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL
* THE COPYRIGHT HOLDER ( S ) OR AUTHOR ( S ) BE LIABLE FOR ANY CLAIM , DAMAGES OR
* OTHER LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE ,
* ARISING FROM , OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE .
*
*/
# include "amdgpu.h"
# include "soc15.h"
# include "soc15_common.h"
# include "arct_ip_offset.h"
int arct_reg_base_init ( struct amdgpu_device * adev )
{
/* HW has more IP blocks, only initialized the block needed by our driver */
uint32_t i ;
for ( i = 0 ; i < MAX_INSTANCE ; + + i ) {
adev - > reg_offset [ GC_HWIP ] [ i ] = ( uint32_t * ) ( & ( GC_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ HDP_HWIP ] [ i ] = ( uint32_t * ) ( & ( HDP_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ MMHUB_HWIP ] [ i ] = ( uint32_t * ) ( & ( MMHUB_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ ATHUB_HWIP ] [ i ] = ( uint32_t * ) ( & ( ATHUB_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ NBIO_HWIP ] [ i ] = ( uint32_t * ) ( & ( NBIF0_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ MP0_HWIP ] [ i ] = ( uint32_t * ) ( & ( MP0_BASE . instance [ i ] ) ) ;
2019-07-12 16:50:52 +08:00
adev - > reg_offset [ MP1_HWIP ] [ i ] = ( uint32_t * ) ( & ( MP1_BASE . instance [ i ] ) ) ;
2019-07-09 09:21:53 -05:00
adev - > reg_offset [ UVD_HWIP ] [ i ] = ( uint32_t * ) ( & ( UVD_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ DF_HWIP ] [ i ] = ( uint32_t * ) ( & ( DF_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ OSSSYS_HWIP ] [ i ] = ( uint32_t * ) ( & ( OSSSYS_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ SDMA0_HWIP ] [ i ] = ( uint32_t * ) ( & ( SDMA0_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ SDMA1_HWIP ] [ i ] = ( uint32_t * ) ( & ( SDMA1_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ SDMA2_HWIP ] [ i ] = ( uint32_t * ) ( & ( SDMA2_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ SDMA3_HWIP ] [ i ] = ( uint32_t * ) ( & ( SDMA3_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ SDMA4_HWIP ] [ i ] = ( uint32_t * ) ( & ( SDMA4_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ SDMA5_HWIP ] [ i ] = ( uint32_t * ) ( & ( SDMA5_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ SDMA6_HWIP ] [ i ] = ( uint32_t * ) ( & ( SDMA6_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ SDMA7_HWIP ] [ i ] = ( uint32_t * ) ( & ( SDMA7_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ SMUIO_HWIP ] [ i ] = ( uint32_t * ) ( & ( SMUIO_BASE . instance [ i ] ) ) ;
2019-07-12 16:50:52 +08:00
adev - > reg_offset [ THM_HWIP ] [ i ] = ( uint32_t * ) ( & ( THM_BASE . instance [ i ] ) ) ;
2019-09-03 03:19:31 +08:00
adev - > reg_offset [ UMC_HWIP ] [ i ] = ( uint32_t * ) ( & ( UMC_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ RSMU_HWIP ] [ i ] = ( uint32_t * ) ( & ( RSMU_BASE . instance [ i ] ) ) ;
2019-07-09 09:21:53 -05:00
}
return 0 ;
}