drm/radeon: rework ring function handling