Comment # 49
on bug 110897
from Richard Thier
Hmmm. There are a lot of FIXMEs in the kernel at this part saying things are not pretty sure. I think I am running into an other code path I should be taking, but if this was always like this then maybe "fixing" it will just cause a whole lot of errors... RC410 is said to use the "RAGE 8" architecture: https://www.techpowerup.com/gpu-specs/ati-rc410.g757. Looking up Rage8 it seems to be RV350 so the mesa side seems to be more right about what category it puts my card into. In this place I see a lot of asics (for example r300_asic and r420_asic): drivers/gpu/drm/radeon/radeon_asic.c All of these structs have their rxx_init functions set in the struct (basically a vtable using structs and function pointers). I think maybe the wrong one is used for my card. For example RV410 is said to be r400 architecture card instead of "Rage8" (RV350) architecture one here: https://www.techpowerup.com/gpu-specs/ati-rv410.g9 It can very likely have happened that the because of the number itself they classified my Mobility Radeon Xpress 200M as r400 while it is basically an RV350 and having a marketing-affected naming scheme confusion... Look at this function: 2306 /** 2307 * radeon_asic_init - register asic specific callbacks 2308 * 2309 * @rdev: radeon device pointer 2310 * 2311 * Registers the appropriate asic specific callbacks for each 2312 * chip family. Also sets other asics specific info like the number 2313 * of crtcs and the register aperture accessors (all asics). 2314 * Returns 0 for success. 2315 */ 2316 int radeon_asic_init(struct radeon_device *rdev) 2317 { ... This is the one that sets the asic and there is a big switch-case for setting the "proper" one in the driver based on "rdev->family". My RC410 is not directly named here: case CHIP_R300: case CHIP_R350: case CHIP_RV350: case CHIP_RV380: if (rdev->flags & RADEON_IS_PCIE) rdev->asic = &r300_asic_pcie; else rdev->asic = &r300_asic; break; case CHIP_R420: case CHIP_R423: case CHIP_RV410: rdev->asic = &r420_asic; /* handle macs */ if (rdev->bios == NULL) { rdev->asic->pm.get_engine_clock = &radeon_legacy_get_engine_clock; rdev->asic->pm.set_engine_clock = &radeon_legacy_set_engine_clock; rdev->asic->pm.get_memory_clock = &radeon_legacy_get_memory_clock; rdev->asic->pm.set_memory_clock = NULL; rdev->asic->display.set_backlight_level = &radeon_legacy_set_backlight_level; } break; case CHIP_RS400: case CHIP_RS480: rdev->asic = &rs400_asic; break; case CHIP_RS600: (there are other families mentioned here as well, but these are the ones that might affect my case I think) According to techpowerup.com saying that Xpress 200M is Rage8 architecture I should also get an r300 asic and the same as the RV350: https://www.techpowerup.com/gpu-specs/ati-rv350.g13 Also there is this "RS400" asic listed in the above switch case and it is still an other candidate maybe but surely not the rs400_asic.
You are receiving this mail because:
- You are the assignee for the bug.
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel