@@ -71,7 +71,8 @@ static u32 RS690_READ_MCIND(drm_radeon_private_t *dev_priv, int addr)
71
71
72
72
static u32 IGP_READ_MCIND (drm_radeon_private_t * dev_priv , int addr )
73
73
{
74
- if ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 )
74
+ if (((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 ) ||
75
+ ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS740 ))
75
76
return RS690_READ_MCIND (dev_priv , addr );
76
77
else
77
78
return RS480_READ_MCIND (dev_priv , addr );
@@ -82,7 +83,8 @@ u32 radeon_read_fb_location(drm_radeon_private_t *dev_priv)
82
83
83
84
if ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RV515 )
84
85
return R500_READ_MCIND (dev_priv , RV515_MC_FB_LOCATION );
85
- else if ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 )
86
+ else if (((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 ) ||
87
+ ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS740 ))
86
88
return RS690_READ_MCIND (dev_priv , RS690_MC_FB_LOCATION );
87
89
else if ((dev_priv -> flags & RADEON_FAMILY_MASK ) > CHIP_RV515 )
88
90
return R500_READ_MCIND (dev_priv , R520_MC_FB_LOCATION );
@@ -94,7 +96,8 @@ static void radeon_write_fb_location(drm_radeon_private_t *dev_priv, u32 fb_loc)
94
96
{
95
97
if ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RV515 )
96
98
R500_WRITE_MCIND (RV515_MC_FB_LOCATION , fb_loc );
97
- else if ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 )
99
+ else if (((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 ) ||
100
+ ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS740 ))
98
101
RS690_WRITE_MCIND (RS690_MC_FB_LOCATION , fb_loc );
99
102
else if ((dev_priv -> flags & RADEON_FAMILY_MASK ) > CHIP_RV515 )
100
103
R500_WRITE_MCIND (R520_MC_FB_LOCATION , fb_loc );
@@ -106,7 +109,8 @@ static void radeon_write_agp_location(drm_radeon_private_t *dev_priv, u32 agp_lo
106
109
{
107
110
if ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RV515 )
108
111
R500_WRITE_MCIND (RV515_MC_AGP_LOCATION , agp_loc );
109
- else if ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 )
112
+ else if (((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 ) ||
113
+ ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS740 ))
110
114
RS690_WRITE_MCIND (RS690_MC_AGP_LOCATION , agp_loc );
111
115
else if ((dev_priv -> flags & RADEON_FAMILY_MASK ) > CHIP_RV515 )
112
116
R500_WRITE_MCIND (R520_MC_AGP_LOCATION , agp_loc );
@@ -122,7 +126,8 @@ static void radeon_write_agp_base(drm_radeon_private_t *dev_priv, u64 agp_base)
122
126
if ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RV515 ) {
123
127
R500_WRITE_MCIND (RV515_MC_AGP_BASE , agp_base_lo );
124
128
R500_WRITE_MCIND (RV515_MC_AGP_BASE_2 , agp_base_hi );
125
- } else if ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 ) {
129
+ } else if (((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 ) ||
130
+ ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS740 )) {
126
131
RS690_WRITE_MCIND (RS690_MC_AGP_BASE , agp_base_lo );
127
132
RS690_WRITE_MCIND (RS690_MC_AGP_BASE_2 , agp_base_hi );
128
133
} else if ((dev_priv -> flags & RADEON_FAMILY_MASK ) > CHIP_RV515 ) {
@@ -364,8 +369,9 @@ static void radeon_cp_load_microcode(drm_radeon_private_t * dev_priv)
364
369
RADEON_WRITE (RADEON_CP_ME_RAM_DATAL ,
365
370
R420_cp_microcode [i ][0 ]);
366
371
}
367
- } else if ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 ) {
368
- DRM_INFO ("Loading RS690 Microcode\n" );
372
+ } else if (((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 ) ||
373
+ ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS740 )) {
374
+ DRM_INFO ("Loading RS690/RS740 Microcode\n" );
369
375
for (i = 0 ; i < 256 ; i ++ ) {
370
376
RADEON_WRITE (RADEON_CP_ME_RAM_DATAH ,
371
377
RS690_cp_microcode [i ][1 ]);
@@ -720,7 +726,8 @@ static void radeon_set_igpgart(drm_radeon_private_t * dev_priv, int on)
720
726
dev_priv -> gart_size );
721
727
722
728
temp = IGP_READ_MCIND (dev_priv , RS480_MC_MISC_CNTL );
723
- if ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 )
729
+ if (((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 ) ||
730
+ ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS740 ))
724
731
IGP_WRITE_MCIND (RS480_MC_MISC_CNTL , (RS480_GART_INDEX_REG_EN |
725
732
RS690_BLOCK_GFX_D3_EN ));
726
733
else
@@ -813,6 +820,7 @@ static void radeon_set_pcigart(drm_radeon_private_t * dev_priv, int on)
813
820
u32 tmp ;
814
821
815
822
if (((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS690 ) ||
823
+ ((dev_priv -> flags & RADEON_FAMILY_MASK ) == CHIP_RS740 ) ||
816
824
(dev_priv -> flags & RADEON_IS_IGPGART )) {
817
825
radeon_set_igpgart (dev_priv , on );
818
826
return ;
0 commit comments