summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/radeon
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/radeon')
-rw-r--r--drivers/gpu/drm/radeon/atom.c2
-rw-r--r--drivers/gpu/drm/radeon/atombios_crtc.c74
-rw-r--r--drivers/gpu/drm/radeon/atombios_encoders.c8
-rw-r--r--drivers/gpu/drm/radeon/btc_dpm.c8
-rw-r--r--drivers/gpu/drm/radeon/ci_dpm.c15
-rw-r--r--drivers/gpu/drm/radeon/cypress_dpm.c2
-rw-r--r--drivers/gpu/drm/radeon/evergreen.c112
-rw-r--r--drivers/gpu/drm/radeon/evergreen_cs.c2
-rw-r--r--drivers/gpu/drm/radeon/kv_dpm.c9
-rw-r--r--drivers/gpu/drm/radeon/ni_dpm.c19
-rw-r--r--drivers/gpu/drm/radeon/r100.c2
-rw-r--r--drivers/gpu/drm/radeon/r300.c2
-rw-r--r--drivers/gpu/drm/radeon/r600_cs.c2
-rw-r--r--drivers/gpu/drm/radeon/r600_dpm.c14
-rw-r--r--drivers/gpu/drm/radeon/radeon_agp.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_atombios.c42
-rw-r--r--drivers/gpu/drm/radeon/radeon_combios.c18
-rw-r--r--drivers/gpu/drm/radeon/radeon_connectors.c16
-rw-r--r--drivers/gpu/drm/radeon/radeon_cs.c5
-rw-r--r--drivers/gpu/drm/radeon/radeon_device.c3
-rw-r--r--drivers/gpu/drm/radeon/radeon_display.c82
-rw-r--r--drivers/gpu/drm/radeon/radeon_fbdev.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_fence.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_gem.c6
-rw-r--r--drivers/gpu/drm/radeon/radeon_i2c.c17
-rw-r--r--drivers/gpu/drm/radeon/radeon_irq_kms.c10
-rw-r--r--drivers/gpu/drm/radeon/radeon_kms.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_legacy_crtc.c23
-rw-r--r--drivers/gpu/drm/radeon/radeon_legacy_encoders.c8
-rw-r--r--drivers/gpu/drm/radeon/radeon_mode.h10
-rw-r--r--drivers/gpu/drm/radeon/radeon_semaphore.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_test.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_ttm.c4
-rw-r--r--drivers/gpu/drm/radeon/radeon_vce.c5
-rw-r--r--drivers/gpu/drm/radeon/radeon_vm.c7
-rw-r--r--drivers/gpu/drm/radeon/rs780_dpm.c9
-rw-r--r--drivers/gpu/drm/radeon/rv6xx_dpm.c9
-rw-r--r--drivers/gpu/drm/radeon/rv770_dpm.c9
-rw-r--r--drivers/gpu/drm/radeon/si_dpm.c26
-rw-r--r--drivers/gpu/drm/radeon/sumo_dpm.c9
-rw-r--r--drivers/gpu/drm/radeon/trinity_dpm.c9
-rw-r--r--drivers/gpu/drm/radeon/uvd_v1_0.c26
42 files changed, 278 insertions, 358 deletions
diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
index b31125eb9a65..dbd192650c69 100644
--- a/drivers/gpu/drm/radeon/atom.c
+++ b/drivers/gpu/drm/radeon/atom.c
@@ -1281,7 +1281,7 @@ struct atom_context *atom_parse(struct card_info *card, void *bios)
{
int base;
struct atom_context *ctx =
- kzalloc(sizeof(struct atom_context), GFP_KERNEL);
+ kzalloc_obj(struct atom_context);
char *str;
char name[512];
int i;
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
index 9b3a3a9d60e2..2fc0334e0d6c 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -1133,7 +1133,7 @@ static void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode
static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
struct drm_framebuffer *fb,
- int x, int y, int atomic)
+ int x, int y)
{
struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
struct drm_device *dev = crtc->dev;
@@ -1150,33 +1150,23 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
bool bypass_lut = false;
/* no fb bound */
- if (!atomic && !crtc->primary->fb) {
+ if (!crtc->primary->fb) {
DRM_DEBUG_KMS("No FB bound\n");
return 0;
}
- if (atomic)
- target_fb = fb;
- else
- target_fb = crtc->primary->fb;
+ target_fb = crtc->primary->fb;
- /* If atomic, assume fb object is pinned & idle & fenced and
- * just update base pointers
- */
obj = target_fb->obj[0];
rbo = gem_to_radeon_bo(obj);
r = radeon_bo_reserve(rbo, false);
if (unlikely(r != 0))
return r;
- if (atomic)
- fb_location = radeon_bo_gpu_offset(rbo);
- else {
- r = radeon_bo_pin(rbo, RADEON_GEM_DOMAIN_VRAM, &fb_location);
- if (unlikely(r != 0)) {
- radeon_bo_unreserve(rbo);
- return -EINVAL;
- }
+ r = radeon_bo_pin(rbo, RADEON_GEM_DOMAIN_VRAM, &fb_location);
+ if (unlikely(r != 0)) {
+ radeon_bo_unreserve(rbo);
+ return -EINVAL;
}
radeon_bo_get_tiling_flags(rbo, &tiling_flags, NULL);
@@ -1437,7 +1427,7 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
/* set pageflip to happen anywhere in vblank interval */
WREG32(EVERGREEN_MASTER_UPDATE_MODE + radeon_crtc->crtc_offset, 0);
- if (!atomic && fb && fb != crtc->primary->fb) {
+ if (fb && fb != crtc->primary->fb) {
rbo = gem_to_radeon_bo(fb->obj[0]);
r = radeon_bo_reserve(rbo, false);
if (unlikely(r != 0))
@@ -1454,7 +1444,7 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
static int avivo_crtc_do_set_base(struct drm_crtc *crtc,
struct drm_framebuffer *fb,
- int x, int y, int atomic)
+ int x, int y)
{
struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
struct drm_device *dev = crtc->dev;
@@ -1470,15 +1460,12 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc,
bool bypass_lut = false;
/* no fb bound */
- if (!atomic && !crtc->primary->fb) {
+ if (!crtc->primary->fb) {
DRM_DEBUG_KMS("No FB bound\n");
return 0;
}
- if (atomic)
- target_fb = fb;
- else
- target_fb = crtc->primary->fb;
+ target_fb = crtc->primary->fb;
obj = target_fb->obj[0];
rbo = gem_to_radeon_bo(obj);
@@ -1486,17 +1473,10 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc,
if (unlikely(r != 0))
return r;
- /* If atomic, assume fb object is pinned & idle & fenced and
- * just update base pointers
- */
- if (atomic)
- fb_location = radeon_bo_gpu_offset(rbo);
- else {
- r = radeon_bo_pin(rbo, RADEON_GEM_DOMAIN_VRAM, &fb_location);
- if (unlikely(r != 0)) {
- radeon_bo_unreserve(rbo);
- return -EINVAL;
- }
+ r = radeon_bo_pin(rbo, RADEON_GEM_DOMAIN_VRAM, &fb_location);
+ if (unlikely(r != 0)) {
+ radeon_bo_unreserve(rbo);
+ return -EINVAL;
}
radeon_bo_get_tiling_flags(rbo, &tiling_flags, NULL);
radeon_bo_unreserve(rbo);
@@ -1645,7 +1625,7 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc,
/* set pageflip to happen only at start of vblank interval (front porch) */
WREG32(AVIVO_D1MODE_MASTER_UPDATE_MODE + radeon_crtc->crtc_offset, 3);
- if (!atomic && fb && fb != crtc->primary->fb) {
+ if (fb && fb != crtc->primary->fb) {
rbo = gem_to_radeon_bo(fb->obj[0]);
r = radeon_bo_reserve(rbo, false);
if (unlikely(r != 0))
@@ -1667,26 +1647,11 @@ int atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y,
struct radeon_device *rdev = dev->dev_private;
if (ASIC_IS_DCE4(rdev))
- return dce4_crtc_do_set_base(crtc, old_fb, x, y, 0);
- else if (ASIC_IS_AVIVO(rdev))
- return avivo_crtc_do_set_base(crtc, old_fb, x, y, 0);
- else
- return radeon_crtc_do_set_base(crtc, old_fb, x, y, 0);
-}
-
-int atombios_crtc_set_base_atomic(struct drm_crtc *crtc,
- struct drm_framebuffer *fb,
- int x, int y, enum mode_set_atomic state)
-{
- struct drm_device *dev = crtc->dev;
- struct radeon_device *rdev = dev->dev_private;
-
- if (ASIC_IS_DCE4(rdev))
- return dce4_crtc_do_set_base(crtc, fb, x, y, 1);
+ return dce4_crtc_do_set_base(crtc, old_fb, x, y);
else if (ASIC_IS_AVIVO(rdev))
- return avivo_crtc_do_set_base(crtc, fb, x, y, 1);
+ return avivo_crtc_do_set_base(crtc, old_fb, x, y);
else
- return radeon_crtc_do_set_base(crtc, fb, x, y, 1);
+ return radeon_crtc_do_set_base(crtc, old_fb, x, y);
}
/* properly set additional regs when using atombios */
@@ -2215,7 +2180,6 @@ static const struct drm_crtc_helper_funcs atombios_helper_funcs = {
.mode_fixup = atombios_crtc_mode_fixup,
.mode_set = atombios_crtc_mode_set,
.mode_set_base = atombios_crtc_set_base,
- .mode_set_base_atomic = atombios_crtc_set_base_atomic,
.prepare = atombios_crtc_prepare,
.commit = atombios_crtc_commit,
.disable = atombios_crtc_disable,
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 3d9f47bc807a..5cfd8fcfa5e8 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -218,7 +218,7 @@ void radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder,
return;
}
- pdata = kmalloc(sizeof(struct radeon_backlight_privdata), GFP_KERNEL);
+ pdata = kmalloc_obj(struct radeon_backlight_privdata);
if (!pdata) {
DRM_ERROR("Memory allocation failed\n");
goto error;
@@ -2625,7 +2625,7 @@ radeon_atombios_set_dac_info(struct radeon_encoder *radeon_encoder)
{
struct drm_device *dev = radeon_encoder->base.dev;
struct radeon_device *rdev = dev->dev_private;
- struct radeon_encoder_atom_dac *dac = kzalloc(sizeof(struct radeon_encoder_atom_dac), GFP_KERNEL);
+ struct radeon_encoder_atom_dac *dac = kzalloc_obj(struct radeon_encoder_atom_dac);
if (!dac)
return NULL;
@@ -2638,7 +2638,7 @@ static struct radeon_encoder_atom_dig *
radeon_atombios_set_dig_info(struct radeon_encoder *radeon_encoder)
{
int encoder_enum = (radeon_encoder->encoder_enum & ENUM_ID_MASK) >> ENUM_ID_SHIFT;
- struct radeon_encoder_atom_dig *dig = kzalloc(sizeof(struct radeon_encoder_atom_dig), GFP_KERNEL);
+ struct radeon_encoder_atom_dig *dig = kzalloc_obj(struct radeon_encoder_atom_dig);
if (!dig)
return NULL;
@@ -2676,7 +2676,7 @@ radeon_add_atom_encoder(struct drm_device *dev,
}
/* add a new one */
- radeon_encoder = kzalloc(sizeof(struct radeon_encoder), GFP_KERNEL);
+ radeon_encoder = kzalloc_obj(struct radeon_encoder);
if (!radeon_encoder)
return;
diff --git a/drivers/gpu/drm/radeon/btc_dpm.c b/drivers/gpu/drm/radeon/btc_dpm.c
index 70931b04bbac..c868649508fb 100644
--- a/drivers/gpu/drm/radeon/btc_dpm.c
+++ b/drivers/gpu/drm/radeon/btc_dpm.c
@@ -1992,7 +1992,7 @@ static int btc_initialize_mc_reg_table(struct radeon_device *rdev)
struct evergreen_mc_reg_table *eg_table = &eg_pi->mc_reg_table;
u8 module_index = rv770_get_memory_module_index(rdev);
- table = kzalloc(sizeof(struct atom_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(struct atom_mc_reg_table);
if (!table)
return -ENOMEM;
@@ -2526,7 +2526,7 @@ int btc_dpm_init(struct radeon_device *rdev)
struct atom_clock_dividers dividers;
int ret;
- eg_pi = kzalloc(sizeof(struct evergreen_power_info), GFP_KERNEL);
+ eg_pi = kzalloc_obj(struct evergreen_power_info);
if (eg_pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = eg_pi;
@@ -2552,9 +2552,7 @@ int btc_dpm_init(struct radeon_device *rdev)
return ret;
rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
- kcalloc(4,
- sizeof(struct radeon_clock_voltage_dependency_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_clock_voltage_dependency_entry, 4);
if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
r600_free_extended_power_table(rdev);
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/ci_dpm.c b/drivers/gpu/drm/radeon/ci_dpm.c
index ba8db1d07c07..22321eb95b7d 100644
--- a/drivers/gpu/drm/radeon/ci_dpm.c
+++ b/drivers/gpu/drm/radeon/ci_dpm.c
@@ -4579,7 +4579,7 @@ static int ci_initialize_mc_reg_table(struct radeon_device *rdev)
u8 module_index = rv770_get_memory_module_index(rdev);
int ret;
- table = kzalloc(sizeof(struct atom_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(struct atom_mc_reg_table);
if (!table)
return -ENOMEM;
@@ -5517,9 +5517,8 @@ static int ci_parse_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ state_array->ucNumEntries);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -5534,7 +5533,7 @@ static int ci_parse_power_table(struct radeon_device *rdev)
ret = -EINVAL;
goto err_free_ps;
}
- ps = kzalloc(sizeof(struct ci_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct ci_ps);
if (ps == NULL) {
ret = -ENOMEM;
goto err_free_ps;
@@ -5638,7 +5637,7 @@ int ci_dpm_init(struct radeon_device *rdev)
struct pci_dev *root = rdev->pdev->bus->self;
int ret;
- pi = kzalloc(sizeof(struct ci_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct ci_power_info);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
@@ -5741,9 +5740,7 @@ int ci_dpm_init(struct radeon_device *rdev)
ci_set_private_data_variables_based_on_pptable(rdev);
rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
- kcalloc(4,
- sizeof(struct radeon_clock_voltage_dependency_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_clock_voltage_dependency_entry, 4);
if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
ci_dpm_fini(rdev);
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/cypress_dpm.c b/drivers/gpu/drm/radeon/cypress_dpm.c
index 72a0768df00f..aef702ff12ee 100644
--- a/drivers/gpu/drm/radeon/cypress_dpm.c
+++ b/drivers/gpu/drm/radeon/cypress_dpm.c
@@ -2028,7 +2028,7 @@ int cypress_dpm_init(struct radeon_device *rdev)
struct atom_clock_dividers dividers;
int ret;
- eg_pi = kzalloc(sizeof(struct evergreen_power_info), GFP_KERNEL);
+ eg_pi = kzalloc_obj(struct evergreen_power_info);
if (eg_pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = eg_pi;
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index bc4ab71613a5..3cbc6eedbf66 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -1630,6 +1630,7 @@ void evergreen_pm_misc(struct radeon_device *rdev)
int req_cm_idx = rdev->pm.requested_clock_mode_index;
struct radeon_power_state *ps = &rdev->pm.power_state[req_ps_idx];
struct radeon_voltage *voltage = &ps->clock_info[req_cm_idx].voltage;
+ struct drm_device *ddev = rdev_to_drm(rdev);
if (voltage->type == VOLTAGE_SW) {
/* 0xff0x are flags rather then an actual voltage */
@@ -1638,7 +1639,7 @@ void evergreen_pm_misc(struct radeon_device *rdev)
if (voltage->voltage && (voltage->voltage != rdev->pm.current_vddc)) {
radeon_atom_set_voltage(rdev, voltage->voltage, SET_VOLTAGE_TYPE_ASIC_VDDC);
rdev->pm.current_vddc = voltage->voltage;
- DRM_DEBUG("Setting: vddc: %d\n", voltage->voltage);
+ drm_dbg(ddev, "Setting: vddc: %d\n", voltage->voltage);
}
/* starting with BTC, there is one state that is used for both
@@ -1659,7 +1660,7 @@ void evergreen_pm_misc(struct radeon_device *rdev)
if (voltage->vddci && (voltage->vddci != rdev->pm.current_vddci)) {
radeon_atom_set_voltage(rdev, voltage->vddci, SET_VOLTAGE_TYPE_ASIC_VDDCI);
rdev->pm.current_vddci = voltage->vddci;
- DRM_DEBUG("Setting: vddci: %d\n", voltage->vddci);
+ drm_dbg(ddev, "Setting: vddci: %d\n", voltage->vddci);
}
}
}
@@ -2168,6 +2169,7 @@ static void evergreen_program_watermarks(struct radeon_device *rdev,
u32 pipe_offset = radeon_crtc->crtc_id * 16;
u32 tmp, arb_control3;
fixed20_12 a, b, c;
+ struct drm_device *ddev = rdev_to_drm(rdev);
if (radeon_crtc->base.enabled && num_heads && mode) {
active_time = (u32) div_u64((u64)mode->crtc_hdisplay * 1000000,
@@ -2244,14 +2246,14 @@ static void evergreen_program_watermarks(struct radeon_device *rdev,
!evergreen_average_bandwidth_vs_available_bandwidth(&wm_high) ||
!evergreen_check_latency_hiding(&wm_high) ||
(rdev->disp_priority == 2)) {
- DRM_DEBUG_KMS("force priority a to high\n");
+ drm_dbg_kms(ddev, "force priority a to high\n");
priority_a_cnt |= PRIORITY_ALWAYS_ON;
}
if (!evergreen_average_bandwidth_vs_dram_bandwidth_for_display(&wm_low) ||
!evergreen_average_bandwidth_vs_available_bandwidth(&wm_low) ||
!evergreen_check_latency_hiding(&wm_low) ||
(rdev->disp_priority == 2)) {
- DRM_DEBUG_KMS("force priority b to high\n");
+ drm_dbg_kms(ddev, "force priority b to high\n");
priority_b_cnt |= PRIORITY_ALWAYS_ON;
}
@@ -2401,6 +2403,7 @@ static int evergreen_pcie_gart_enable(struct radeon_device *rdev)
{
u32 tmp;
int r;
+ struct drm_device *ddev = rdev_to_drm(rdev);
if (rdev->gart.robj == NULL) {
dev_err(rdev->dev, "No VRAM object for PCIE GART.\n");
@@ -2448,7 +2451,7 @@ static int evergreen_pcie_gart_enable(struct radeon_device *rdev)
WREG32(VM_CONTEXT1_CNTL, 0);
evergreen_pcie_gart_tlb_flush(rdev);
- DRM_INFO("PCIE GART of %uM enabled (table at 0x%016llX).\n",
+ drm_info(ddev, "PCIE GART of %uM enabled (table at 0x%016llX).\n",
(unsigned)(rdev->mc.gtt_size >> 20),
(unsigned long long)rdev->gart.table_addr);
rdev->gart.ready = true;
@@ -2626,16 +2629,17 @@ static void evergreen_blank_dp_output(struct radeon_device *rdev,
unsigned stream_ctrl;
unsigned fifo_ctrl;
unsigned counter = 0;
+ struct drm_device *ddev = rdev_to_drm(rdev);
if (dig_fe >= ARRAY_SIZE(evergreen_dp_offsets)) {
- DRM_ERROR("invalid dig_fe %d\n", dig_fe);
+ drm_err(ddev, "invalid dig_fe %d\n", dig_fe);
return;
}
stream_ctrl = RREG32(EVERGREEN_DP_VID_STREAM_CNTL +
evergreen_dp_offsets[dig_fe]);
if (!(stream_ctrl & EVERGREEN_DP_VID_STREAM_CNTL_ENABLE)) {
- DRM_ERROR("dig %d , should be enable\n", dig_fe);
+ drm_err(ddev, "dig %d , should be enable\n", dig_fe);
return;
}
@@ -2652,7 +2656,7 @@ static void evergreen_blank_dp_output(struct radeon_device *rdev,
evergreen_dp_offsets[dig_fe]);
}
if (counter >= 32)
- DRM_ERROR("counter exceeds %d\n", counter);
+ drm_err(ddev, "counter exceeds %d\n", counter);
fifo_ctrl = RREG32(EVERGREEN_DP_STEER_FIFO + evergreen_dp_offsets[dig_fe]);
fifo_ctrl |= EVERGREEN_DP_STEER_FIFO_RESET;
@@ -2998,10 +3002,11 @@ static int evergreen_cp_start(struct radeon_device *rdev)
struct radeon_ring *ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX];
int r, i;
uint32_t cp_me;
+ struct drm_device *ddev = rdev_to_drm(rdev);
r = radeon_ring_lock(rdev, ring, 7);
if (r) {
- DRM_ERROR("radeon: cp failed to lock ring (%d).\n", r);
+ drm_err(ddev, "radeon: cp failed to lock ring (%d).\n", r);
return r;
}
radeon_ring_write(ring, PACKET3(PACKET3_ME_INITIALIZE, 5));
@@ -3018,7 +3023,7 @@ static int evergreen_cp_start(struct radeon_device *rdev)
r = radeon_ring_lock(rdev, ring, evergreen_default_size + 19);
if (r) {
- DRM_ERROR("radeon: cp failed to lock ring (%d).\n", r);
+ drm_err(ddev, "radeon: cp failed to lock ring (%d).\n", r);
return r;
}
@@ -3826,6 +3831,7 @@ u32 evergreen_gpu_check_soft_reset(struct radeon_device *rdev)
{
u32 reset_mask = 0;
u32 tmp;
+ struct drm_device *ddev = rdev_to_drm(rdev);
/* GRBM_STATUS */
tmp = RREG32(GRBM_STATUS);
@@ -3884,7 +3890,7 @@ u32 evergreen_gpu_check_soft_reset(struct radeon_device *rdev)
/* Skip MC reset as it's mostly likely not hung, just busy */
if (reset_mask & RADEON_RESET_MC) {
- DRM_DEBUG("MC busy: 0x%08X, clearing.\n", reset_mask);
+ drm_dbg(ddev, "MC busy: 0x%08X, clearing.\n", reset_mask);
reset_mask &= ~RADEON_RESET_MC;
}
@@ -4495,6 +4501,7 @@ int evergreen_irq_set(struct radeon_device *rdev)
u32 grbm_int_cntl = 0;
u32 dma_cntl, dma_cntl1 = 0;
u32 thermal_int = 0;
+ struct drm_device *ddev = rdev_to_drm(rdev);
if (!rdev->irq.installed) {
WARN(1, "Can't enable IRQ/MSI because no handler is installed\n");
@@ -4520,40 +4527,40 @@ int evergreen_irq_set(struct radeon_device *rdev)
if (rdev->family >= CHIP_CAYMAN) {
/* enable CP interrupts on all rings */
if (atomic_read(&rdev->irq.ring_int[RADEON_RING_TYPE_GFX_INDEX])) {
- DRM_DEBUG("evergreen_irq_set: sw int gfx\n");
+ drm_dbg(ddev, "%s : sw int gfx\n", __func__);
cp_int_cntl |= TIME_STAMP_INT_ENABLE;
}
if (atomic_read(&rdev->irq.ring_int[CAYMAN_RING_TYPE_CP1_INDEX])) {
- DRM_DEBUG("evergreen_irq_set: sw int cp1\n");
+ drm_dbg(ddev, "%s : sw int cp1\n", __func__);
cp_int_cntl1 |= TIME_STAMP_INT_ENABLE;
}
if (atomic_read(&rdev->irq.ring_int[CAYMAN_RING_TYPE_CP2_INDEX])) {
- DRM_DEBUG("evergreen_irq_set: sw int cp2\n");
+ drm_dbg(ddev, "%s : sw int cp2\n", __func__);
cp_int_cntl2 |= TIME_STAMP_INT_ENABLE;
}
} else {
if (atomic_read(&rdev->irq.ring_int[RADEON_RING_TYPE_GFX_INDEX])) {
- DRM_DEBUG("evergreen_irq_set: sw int gfx\n");
+ drm_dbg(ddev, "%s : sw int gfx\n", __func__);
cp_int_cntl |= RB_INT_ENABLE;
cp_int_cntl |= TIME_STAMP_INT_ENABLE;
}
}
if (atomic_read(&rdev->irq.ring_int[R600_RING_TYPE_DMA_INDEX])) {
- DRM_DEBUG("r600_irq_set: sw int dma\n");
+ drm_dbg(ddev, "r600_irq_set: sw int dma\n");
dma_cntl |= TRAP_ENABLE;
}
if (rdev->family >= CHIP_CAYMAN) {
dma_cntl1 = RREG32(CAYMAN_DMA1_CNTL) & ~TRAP_ENABLE;
if (atomic_read(&rdev->irq.ring_int[CAYMAN_RING_TYPE_DMA1_INDEX])) {
- DRM_DEBUG("r600_irq_set: sw int dma1\n");
+ drm_dbg(ddev, "r600_irq_set: sw int dma1\n");
dma_cntl1 |= TRAP_ENABLE;
}
}
if (rdev->irq.dpm_thermal) {
- DRM_DEBUG("dpm thermal\n");
+ drm_dbg(ddev, "dpm thermal\n");
thermal_int |= THERM_INT_MASK_HIGH | THERM_INT_MASK_LOW;
}
@@ -4713,6 +4720,7 @@ int evergreen_irq_process(struct radeon_device *rdev)
bool queue_thermal = false;
u32 status, addr;
const char *event_name;
+ struct drm_device *ddev = rdev_to_drm(rdev);
if (!rdev->ih.enabled || rdev->shutdown)
return IRQ_NONE;
@@ -4725,7 +4733,7 @@ restart_ih:
return IRQ_NONE;
rptr = rdev->ih.rptr;
- DRM_DEBUG("evergreen_irq_process start: rptr %d, wptr %d\n", rptr, wptr);
+ drm_dbg(ddev, "%s start: rptr %d, wptr %d\n", __func__, rptr, wptr);
/* Order reading of wptr vs. reading of IH ring data */
rmb();
@@ -4766,18 +4774,18 @@ restart_ih:
mask = LB_D1_VLINE_INTERRUPT;
event_name = "vline";
} else {
- DRM_DEBUG("Unhandled interrupt: %d %d\n",
+ drm_dbg(ddev, "Unhandled interrupt: %d %d\n",
src_id, src_data);
break;
}
if (!(disp_int[crtc_idx] & mask)) {
- DRM_DEBUG("IH: D%d %s - IH event w/o asserted irq bit?\n",
+ drm_dbg(ddev, "IH: D%d %s - IH event w/o asserted irq bit?\n",
crtc_idx + 1, event_name);
}
disp_int[crtc_idx] &= ~mask;
- DRM_DEBUG("IH: D%d %s\n", crtc_idx + 1, event_name);
+ drm_dbg(ddev, "IH: D%d %s\n", crtc_idx + 1, event_name);
break;
case 8: /* D1 page flip */
@@ -4786,7 +4794,7 @@ restart_ih:
case 14: /* D4 page flip */
case 16: /* D5 page flip */
case 18: /* D6 page flip */
- DRM_DEBUG("IH: D%d flip\n", ((src_id - 8) >> 1) + 1);
+ drm_dbg(ddev, "IH: D%d flip\n", ((src_id - 8) >> 1) + 1);
if (radeon_use_pflipirq > 0)
radeon_crtc_handle_flip(rdev, (src_id - 8) >> 1);
break;
@@ -4804,39 +4812,39 @@ restart_ih:
event_name = "HPD_RX";
} else {
- DRM_DEBUG("Unhandled interrupt: %d %d\n",
+ drm_dbg(ddev, "Unhandled interrupt: %d %d\n",
src_id, src_data);
break;
}
if (!(disp_int[hpd_idx] & mask))
- DRM_DEBUG("IH: IH event w/o asserted irq bit?\n");
+ drm_dbg(ddev, "IH: IH event w/o asserted irq bit?\n");
disp_int[hpd_idx] &= ~mask;
- DRM_DEBUG("IH: %s%d\n", event_name, hpd_idx + 1);
+ drm_dbg(ddev, "IH: %s%d\n", event_name, hpd_idx + 1);
break;
case 44: /* hdmi */
afmt_idx = src_data;
if (afmt_idx > 5) {
- DRM_ERROR("Unhandled interrupt: %d %d\n",
+ drm_err(ddev, "Unhandled interrupt: %d %d\n",
src_id, src_data);
break;
}
if (!(afmt_status[afmt_idx] & AFMT_AZ_FORMAT_WTRIG))
- DRM_DEBUG("IH: IH event w/o asserted irq bit?\n");
+ drm_dbg(ddev, "IH: IH event w/o asserted irq bit?\n");
afmt_status[afmt_idx] &= ~AFMT_AZ_FORMAT_WTRIG;
queue_hdmi = true;
- DRM_DEBUG("IH: HDMI%d\n", afmt_idx + 1);
+ drm_dbg(ddev, "IH: HDMI%d\n", afmt_idx + 1);
break;
case 96:
- DRM_ERROR("SRBM_READ_ERROR: 0x%x\n", RREG32(SRBM_READ_ERROR));
+ drm_err(ddev, "SRBM_READ_ERROR: 0x%x\n", RREG32(SRBM_READ_ERROR));
WREG32(SRBM_INT_ACK, 0x1);
break;
case 124: /* UVD */
- DRM_DEBUG("IH: UVD int: 0x%08x\n", src_data);
+ drm_dbg(ddev, "IH: UVD int: 0x%08x\n", src_data);
radeon_fence_process(rdev, R600_RING_TYPE_UVD_INDEX);
break;
case 146:
@@ -4857,11 +4865,11 @@ restart_ih:
case 176: /* CP_INT in ring buffer */
case 177: /* CP_INT in IB1 */
case 178: /* CP_INT in IB2 */
- DRM_DEBUG("IH: CP int: 0x%08x\n", src_data);
+ drm_dbg(ddev, "IH: CP int: 0x%08x\n", src_data);
radeon_fence_process(rdev, RADEON_RING_TYPE_GFX_INDEX);
break;
case 181: /* CP EOP event */
- DRM_DEBUG("IH: CP EOP\n");
+ drm_dbg(ddev, "IH: CP EOP\n");
if (rdev->family >= CHIP_CAYMAN) {
switch (src_data) {
case 0:
@@ -4878,30 +4886,30 @@ restart_ih:
radeon_fence_process(rdev, RADEON_RING_TYPE_GFX_INDEX);
break;
case 224: /* DMA trap event */
- DRM_DEBUG("IH: DMA trap\n");
+ drm_dbg(ddev, "IH: DMA trap\n");
radeon_fence_process(rdev, R600_RING_TYPE_DMA_INDEX);
break;
case 230: /* thermal low to high */
- DRM_DEBUG("IH: thermal low to high\n");
+ drm_dbg(ddev, "IH: thermal low to high\n");
rdev->pm.dpm.thermal.high_to_low = false;
queue_thermal = true;
break;
case 231: /* thermal high to low */
- DRM_DEBUG("IH: thermal high to low\n");
+ drm_dbg(ddev, "IH: thermal high to low\n");
rdev->pm.dpm.thermal.high_to_low = true;
queue_thermal = true;
break;
case 233: /* GUI IDLE */
- DRM_DEBUG("IH: GUI idle\n");
+ drm_dbg(ddev, "IH: GUI idle\n");
break;
case 244: /* DMA trap event */
if (rdev->family >= CHIP_CAYMAN) {
- DRM_DEBUG("IH: DMA1 trap\n");
+ drm_dbg(ddev, "IH: DMA1 trap\n");
radeon_fence_process(rdev, CAYMAN_RING_TYPE_DMA1_INDEX);
}
break;
default:
- DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
+ drm_dbg(ddev, "Unhandled interrupt: %d %d\n", src_id, src_data);
break;
}
@@ -5000,6 +5008,7 @@ static int evergreen_startup(struct radeon_device *rdev)
{
struct radeon_ring *ring;
int r;
+ struct drm_device *ddev = rdev_to_drm(rdev);
/* enable pcie gen2 link */
evergreen_pcie_gen2_enable(rdev);
@@ -5016,7 +5025,7 @@ static int evergreen_startup(struct radeon_device *rdev)
if (ASIC_IS_DCE5(rdev) && !rdev->pm.dpm_enabled) {
r = ni_mc_load_microcode(rdev);
if (r) {
- DRM_ERROR("Failed to load MC firmware!\n");
+ drm_err(ddev, "Failed to load MC firmware!\n");
return r;
}
}
@@ -5038,7 +5047,7 @@ static int evergreen_startup(struct radeon_device *rdev)
rdev->rlc.cs_data = evergreen_cs_data;
r = sumo_rlc_init(rdev);
if (r) {
- DRM_ERROR("Failed to init rlc BOs!\n");
+ drm_err(ddev, "Failed to init rlc BOs!\n");
return r;
}
}
@@ -5071,7 +5080,7 @@ static int evergreen_startup(struct radeon_device *rdev)
r = r600_irq_init(rdev);
if (r) {
- DRM_ERROR("radeon: IH init failed (%d).\n", r);
+ drm_err(ddev, "radeon: IH init failed (%d).\n", r);
radeon_irq_kms_fini(rdev);
return r;
}
@@ -5109,7 +5118,7 @@ static int evergreen_startup(struct radeon_device *rdev)
r = radeon_audio_init(rdev);
if (r) {
- DRM_ERROR("radeon: audio init failed\n");
+ drm_err(ddev, "radeon: audio init failed\n");
return r;
}
@@ -5119,6 +5128,7 @@ static int evergreen_startup(struct radeon_device *rdev)
int evergreen_resume(struct radeon_device *rdev)
{
int r;
+ struct drm_device *ddev = rdev_to_drm(rdev);
/* reset the asic, the gfx blocks are often in a bad state
* after the driver is unloaded or after a resume
@@ -5141,7 +5151,7 @@ int evergreen_resume(struct radeon_device *rdev)
rdev->accel_working = true;
r = evergreen_startup(rdev);
if (r) {
- DRM_ERROR("evergreen startup failed on resume\n");
+ drm_err(ddev, "evergreen startup failed on resume\n");
rdev->accel_working = false;
return r;
}
@@ -5176,6 +5186,7 @@ int evergreen_suspend(struct radeon_device *rdev)
int evergreen_init(struct radeon_device *rdev)
{
int r;
+ struct drm_device *ddev = rdev_to_drm(rdev);
/* Read BIOS */
if (!radeon_get_bios(rdev)) {
@@ -5201,7 +5212,7 @@ int evergreen_init(struct radeon_device *rdev)
dev_err(rdev->dev, "Card not posted and no BIOS - ignoring\n");
return -EINVAL;
}
- DRM_INFO("GPU not posted. posting now...\n");
+ drm_info(ddev, "GPU not posted. posting now...\n");
atom_asic_init(rdev->mode_info.atom_context);
}
/* init golden registers */
@@ -5233,7 +5244,7 @@ int evergreen_init(struct radeon_device *rdev)
if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw || !rdev->mc_fw) {
r = ni_init_microcode(rdev);
if (r) {
- DRM_ERROR("Failed to load firmware!\n");
+ drm_err(ddev, "Failed to load firmware!\n");
return r;
}
}
@@ -5241,7 +5252,7 @@ int evergreen_init(struct radeon_device *rdev)
if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
r = r600_init_microcode(rdev);
if (r) {
- DRM_ERROR("Failed to load firmware!\n");
+ drm_err(ddev, "Failed to load firmware!\n");
return r;
}
}
@@ -5287,7 +5298,7 @@ int evergreen_init(struct radeon_device *rdev)
*/
if (ASIC_IS_DCE5(rdev)) {
if (!rdev->mc_fw && !(rdev->flags & RADEON_IS_IGP)) {
- DRM_ERROR("radeon: MC ucode required for NI+.\n");
+ drm_err(ddev, "radeon: MC ucode required for NI+.\n");
return -EINVAL;
}
}
@@ -5323,6 +5334,7 @@ void evergreen_fini(struct radeon_device *rdev)
void evergreen_pcie_gen2_enable(struct radeon_device *rdev)
{
u32 link_width_cntl, speed_cntl;
+ struct drm_device *ddev = rdev_to_drm(rdev);
if (radeon_pcie_gen2 == 0)
return;
@@ -5343,11 +5355,11 @@ void evergreen_pcie_gen2_enable(struct radeon_device *rdev)
speed_cntl = RREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL);
if (speed_cntl & LC_CURRENT_DATA_RATE) {
- DRM_INFO("PCIE gen 2 link speeds already enabled\n");
+ drm_info(ddev, "PCIE gen 2 link speeds already enabled\n");
return;
}
- DRM_INFO("enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0\n");
+ drm_info(ddev, "enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0\n");
if ((speed_cntl & LC_OTHER_SIDE_EVER_SENT_GEN2) ||
(speed_cntl & LC_OTHER_SIDE_SUPPORTS_GEN2)) {
diff --git a/drivers/gpu/drm/radeon/evergreen_cs.c b/drivers/gpu/drm/radeon/evergreen_cs.c
index 1162cb5d75ed..3142ef4da7f4 100644
--- a/drivers/gpu/drm/radeon/evergreen_cs.c
+++ b/drivers/gpu/drm/radeon/evergreen_cs.c
@@ -2769,7 +2769,7 @@ int evergreen_cs_parse(struct radeon_cs_parser *p)
if (p->track == NULL) {
/* initialize tracker, we are in kms */
- track = kzalloc(sizeof(*track), GFP_KERNEL);
+ track = kzalloc_obj(*track);
if (track == NULL)
return -ENOMEM;
evergreen_cs_track_init(track);
diff --git a/drivers/gpu/drm/radeon/kv_dpm.c b/drivers/gpu/drm/radeon/kv_dpm.c
index 4aa050385284..1693b36fc52d 100644
--- a/drivers/gpu/drm/radeon/kv_dpm.c
+++ b/drivers/gpu/drm/radeon/kv_dpm.c
@@ -2457,9 +2457,8 @@ static int kv_parse_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ state_array->ucNumEntries);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -2471,7 +2470,7 @@ static int kv_parse_power_table(struct radeon_device *rdev)
&non_clock_info_array->nonClockInfo[non_clock_array_index];
if (!rdev->pm.power_state[i].clock_info)
return -EINVAL;
- ps = kzalloc(sizeof(struct kv_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct kv_ps);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -2520,7 +2519,7 @@ int kv_dpm_init(struct radeon_device *rdev)
struct kv_power_info *pi;
int ret, i;
- pi = kzalloc(sizeof(struct kv_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct kv_power_info);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/radeon/ni_dpm.c b/drivers/gpu/drm/radeon/ni_dpm.c
index 82edbfb259bf..8059e019d4fc 100644
--- a/drivers/gpu/drm/radeon/ni_dpm.c
+++ b/drivers/gpu/drm/radeon/ni_dpm.c
@@ -2104,7 +2104,7 @@ static int ni_init_smc_spll_table(struct radeon_device *rdev)
if (ni_pi->spll_table_start == 0)
return -EINVAL;
- spll_table = kzalloc(sizeof(SMC_NISLANDS_SPLL_DIV_TABLE), GFP_KERNEL);
+ spll_table = kzalloc_obj(SMC_NISLANDS_SPLL_DIV_TABLE);
if (spll_table == NULL)
return -ENOMEM;
@@ -2879,7 +2879,7 @@ static int ni_initialize_mc_reg_table(struct radeon_device *rdev)
struct ni_mc_reg_table *ni_table = &ni_pi->mc_reg_table;
u8 module_index = rv770_get_memory_module_index(rdev);
- table = kzalloc(sizeof(struct atom_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(struct atom_mc_reg_table);
if (!table)
return -ENOMEM;
@@ -3147,7 +3147,7 @@ static int ni_initialize_smc_cac_tables(struct radeon_device *rdev)
if (ni_pi->enable_cac == false)
return 0;
- cac_tables = kzalloc(sizeof(PP_NIslands_CACTABLES), GFP_KERNEL);
+ cac_tables = kzalloc_obj(PP_NIslands_CACTABLES);
if (!cac_tables)
return -ENOMEM;
@@ -4000,9 +4000,8 @@ static int ni_parse_power_table(struct radeon_device *rdev)
return -EINVAL;
power_info = (union power_info *)(mode_info->atom_context->bios + data_offset);
- rdev->pm.dpm.ps = kcalloc(power_info->pplib.ucNumStates,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ power_info->pplib.ucNumStates);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
@@ -4018,7 +4017,7 @@ static int ni_parse_power_table(struct radeon_device *rdev)
power_info->pplib.ucNonClockSize));
if (power_info->pplib.ucStateEntrySize - 1) {
u8 *idx;
- ps = kzalloc(sizeof(struct ni_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct ni_ps);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -4051,7 +4050,7 @@ int ni_dpm_init(struct radeon_device *rdev)
struct atom_clock_dividers dividers;
int ret;
- ni_pi = kzalloc(sizeof(struct ni_power_info), GFP_KERNEL);
+ ni_pi = kzalloc_obj(struct ni_power_info);
if (ni_pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = ni_pi;
@@ -4078,9 +4077,7 @@ int ni_dpm_init(struct radeon_device *rdev)
return ret;
rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
- kcalloc(4,
- sizeof(struct radeon_clock_voltage_dependency_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_clock_voltage_dependency_entry, 4);
if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
r600_free_extended_power_table(rdev);
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index 07a9c523a17a..3ac1a79b6f13 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -2063,7 +2063,7 @@ int r100_cs_parse(struct radeon_cs_parser *p)
struct r100_cs_track *track;
int r;
- track = kzalloc(sizeof(*track), GFP_KERNEL);
+ track = kzalloc_obj(*track);
if (!track)
return -ENOMEM;
r100_cs_track_clear(p->rdev, track);
diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c
index d2ee6deec039..60a784769120 100644
--- a/drivers/gpu/drm/radeon/r300.c
+++ b/drivers/gpu/drm/radeon/r300.c
@@ -1284,7 +1284,7 @@ int r300_cs_parse(struct radeon_cs_parser *p)
struct r100_cs_track *track;
int r;
- track = kzalloc(sizeof(*track), GFP_KERNEL);
+ track = kzalloc_obj(*track);
if (track == NULL)
return -ENOMEM;
r100_cs_track_clear(p->rdev, track);
diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c
index 8eeceeeca362..17b2ff2387aa 100644
--- a/drivers/gpu/drm/radeon/r600_cs.c
+++ b/drivers/gpu/drm/radeon/r600_cs.c
@@ -2282,7 +2282,7 @@ int r600_cs_parse(struct radeon_cs_parser *p)
if (p->track == NULL) {
/* initialize tracker, we are in kms */
- track = kzalloc(sizeof(*track), GFP_KERNEL);
+ track = kzalloc_obj(*track);
if (track == NULL)
return -ENOMEM;
r600_cs_track_init(track);
diff --git a/drivers/gpu/drm/radeon/r600_dpm.c b/drivers/gpu/drm/radeon/r600_dpm.c
index 81d58ef667dd..83f1ae31cbdb 100644
--- a/drivers/gpu/drm/radeon/r600_dpm.c
+++ b/drivers/gpu/drm/radeon/r600_dpm.c
@@ -821,9 +821,8 @@ static int r600_parse_clk_voltage_dep_table(struct radeon_clock_voltage_dependen
int i;
ATOM_PPLIB_Clock_Voltage_Dependency_Record *entry;
- radeon_table->entries = kcalloc(atom_table->ucNumEntries,
- sizeof(struct radeon_clock_voltage_dependency_entry),
- GFP_KERNEL);
+ radeon_table->entries = kzalloc_objs(struct radeon_clock_voltage_dependency_entry,
+ atom_table->ucNumEntries);
if (!radeon_table->entries)
return -ENOMEM;
@@ -988,9 +987,8 @@ int r600_parse_extended_power_table(struct radeon_device *rdev)
ATOM_PPLIB_PhaseSheddingLimits_Record *entry;
rdev->pm.dpm.dyn_state.phase_shedding_limits_table.entries =
- kcalloc(psl->ucNumEntries,
- sizeof(struct radeon_phase_shedding_limits_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_phase_shedding_limits_entry,
+ psl->ucNumEntries);
if (!rdev->pm.dpm.dyn_state.phase_shedding_limits_table.entries) {
r600_free_extended_power_table(rdev);
return -ENOMEM;
@@ -1198,7 +1196,7 @@ int r600_parse_extended_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(ext_hdr->usPPMTableOffset));
rdev->pm.dpm.dyn_state.ppm_table =
- kzalloc(sizeof(struct radeon_ppm_table), GFP_KERNEL);
+ kzalloc_obj(struct radeon_ppm_table);
if (!rdev->pm.dpm.dyn_state.ppm_table) {
r600_free_extended_power_table(rdev);
return -ENOMEM;
@@ -1256,7 +1254,7 @@ int r600_parse_extended_power_table(struct radeon_device *rdev)
le16_to_cpu(ext_hdr->usPowerTuneTableOffset));
ATOM_PowerTune_Table *pt;
rdev->pm.dpm.dyn_state.cac_tdp_table =
- kzalloc(sizeof(struct radeon_cac_tdp_table), GFP_KERNEL);
+ kzalloc_obj(struct radeon_cac_tdp_table);
if (!rdev->pm.dpm.dyn_state.cac_tdp_table) {
r600_free_extended_power_table(rdev);
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/radeon_agp.c b/drivers/gpu/drm/radeon/radeon_agp.c
index 89d7b0e9e79f..84cf71bc1330 100644
--- a/drivers/gpu/drm/radeon/radeon_agp.c
+++ b/drivers/gpu/drm/radeon/radeon_agp.c
@@ -132,7 +132,7 @@ struct radeon_agp_head *radeon_agp_head_init(struct drm_device *dev)
struct pci_dev *pdev = to_pci_dev(dev->dev);
struct radeon_agp_head *head;
- head = kzalloc(sizeof(*head), GFP_KERNEL);
+ head = kzalloc_obj(*head);
if (!head)
return NULL;
head->bridge = agp_find_bridge(pdev);
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index 81a0a91921b9..3dd9724b331d 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -1632,7 +1632,7 @@ struct radeon_encoder_atom_dig *radeon_atombios_get_lvds_info(struct
lvds_info =
(union lvds_info *)(mode_info->atom_context->bios + data_offset);
lvds =
- kzalloc(sizeof(struct radeon_encoder_atom_dig), GFP_KERNEL);
+ kzalloc_obj(struct radeon_encoder_atom_dig);
if (!lvds)
return NULL;
@@ -1773,7 +1773,7 @@ radeon_atombios_get_primary_dac_info(struct radeon_encoder *encoder)
dac_info = (struct _COMPASSIONATE_DATA *)
(mode_info->atom_context->bios + data_offset);
- p_dac = kzalloc(sizeof(struct radeon_encoder_primary_dac), GFP_KERNEL);
+ p_dac = kzalloc_obj(struct radeon_encoder_primary_dac);
if (!p_dac)
return NULL;
@@ -1960,7 +1960,7 @@ radeon_atombios_get_tv_dac_info(struct radeon_encoder *encoder)
dac_info = (struct _COMPASSIONATE_DATA *)
(mode_info->atom_context->bios + data_offset);
- tv_dac = kzalloc(sizeof(struct radeon_encoder_tv_dac), GFP_KERNEL);
+ tv_dac = kzalloc_obj(struct radeon_encoder_tv_dac);
if (!tv_dac)
return NULL;
@@ -2117,9 +2117,8 @@ static int radeon_atombios_parse_power_table_1_3(struct radeon_device *rdev)
num_modes = ATOM_MAX_NUMBEROF_POWER_BLOCK;
if (num_modes == 0)
return state_index;
- rdev->pm.power_state = kcalloc(num_modes,
- sizeof(struct radeon_power_state),
- GFP_KERNEL);
+ rdev->pm.power_state = kzalloc_objs(struct radeon_power_state,
+ num_modes);
if (!rdev->pm.power_state)
return state_index;
/* last mode is usually default, array is low to high */
@@ -2127,8 +2126,7 @@ static int radeon_atombios_parse_power_table_1_3(struct radeon_device *rdev)
/* avoid memory leaks from invalid modes or unknown frev. */
if (!rdev->pm.power_state[state_index].clock_info) {
rdev->pm.power_state[state_index].clock_info =
- kzalloc(sizeof(struct radeon_pm_clock_info),
- GFP_KERNEL);
+ kzalloc_obj(struct radeon_pm_clock_info);
}
if (!rdev->pm.power_state[state_index].clock_info)
goto out;
@@ -2591,9 +2589,8 @@ static int radeon_atombios_parse_power_table_4_5(struct radeon_device *rdev)
radeon_atombios_add_pplib_thermal_controller(rdev, &power_info->pplib.sThermalController);
if (power_info->pplib.ucNumStates == 0)
return state_index;
- rdev->pm.power_state = kcalloc(power_info->pplib.ucNumStates,
- sizeof(struct radeon_power_state),
- GFP_KERNEL);
+ rdev->pm.power_state = kzalloc_objs(struct radeon_power_state,
+ power_info->pplib.ucNumStates);
if (!rdev->pm.power_state)
return state_index;
/* first mode is usually default, followed by low to high */
@@ -2609,10 +2606,8 @@ static int radeon_atombios_parse_power_table_4_5(struct radeon_device *rdev)
(power_state->v1.ucNonClockStateIndex *
power_info->pplib.ucNonClockSize));
rdev->pm.power_state[i].clock_info =
- kcalloc((power_info->pplib.ucStateEntrySize - 1) ?
- (power_info->pplib.ucStateEntrySize - 1) : 1,
- sizeof(struct radeon_pm_clock_info),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_pm_clock_info,
+ (power_info->pplib.ucStateEntrySize - 1) ? (power_info->pplib.ucStateEntrySize - 1) : 1);
if (!rdev->pm.power_state[i].clock_info)
return state_index;
if (power_info->pplib.ucStateEntrySize - 1) {
@@ -2694,9 +2689,8 @@ static int radeon_atombios_parse_power_table_6(struct radeon_device *rdev)
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
if (state_array->ucNumEntries == 0)
return state_index;
- rdev->pm.power_state = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_power_state),
- GFP_KERNEL);
+ rdev->pm.power_state = kzalloc_objs(struct radeon_power_state,
+ state_array->ucNumEntries);
if (!rdev->pm.power_state)
return state_index;
power_state_offset = (u8 *)state_array->states;
@@ -2707,10 +2701,8 @@ static int radeon_atombios_parse_power_table_6(struct radeon_device *rdev)
non_clock_info = (struct _ATOM_PPLIB_NONCLOCK_INFO *)
&non_clock_info_array->nonClockInfo[non_clock_array_index];
rdev->pm.power_state[i].clock_info =
- kcalloc(power_state->v2.ucNumDPMLevels ?
- power_state->v2.ucNumDPMLevels : 1,
- sizeof(struct radeon_pm_clock_info),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_pm_clock_info,
+ power_state->v2.ucNumDPMLevels ? power_state->v2.ucNumDPMLevels : 1);
if (!rdev->pm.power_state[i].clock_info)
return state_index;
if (power_state->v2.ucNumDPMLevels) {
@@ -2787,12 +2779,10 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
}
if (state_index == 0) {
- rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
+ rdev->pm.power_state = kzalloc_obj(struct radeon_power_state);
if (rdev->pm.power_state) {
rdev->pm.power_state[0].clock_info =
- kcalloc(1,
- sizeof(struct radeon_pm_clock_info),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_pm_clock_info, 1);
if (rdev->pm.power_state[0].clock_info) {
/* add the default mode */
rdev->pm.power_state[state_index].type =
diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c
index df8d7f56b028..6a4e268ffd99 100644
--- a/drivers/gpu/drm/radeon/radeon_combios.c
+++ b/drivers/gpu/drm/radeon/radeon_combios.c
@@ -851,8 +851,7 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct
struct radeon_encoder_primary_dac *p_dac;
int found = 0;
- p_dac = kzalloc(sizeof(struct radeon_encoder_primary_dac),
- GFP_KERNEL);
+ p_dac = kzalloc_obj(struct radeon_encoder_primary_dac);
if (!p_dac)
return NULL;
@@ -1002,7 +1001,7 @@ struct radeon_encoder_tv_dac *radeon_combios_get_tv_dac_info(struct
struct radeon_encoder_tv_dac *tv_dac;
int found = 0;
- tv_dac = kzalloc(sizeof(struct radeon_encoder_tv_dac), GFP_KERNEL);
+ tv_dac = kzalloc_obj(struct radeon_encoder_tv_dac);
if (!tv_dac)
return NULL;
@@ -1090,7 +1089,7 @@ static struct radeon_encoder_lvds *radeon_legacy_get_lvds_info_from_regs(struct
uint32_t ppll_div_sel, ppll_val;
uint32_t lvds_ss_gen_cntl = RREG32(RADEON_LVDS_SS_GEN_CNTL);
- lvds = kzalloc(sizeof(struct radeon_encoder_lvds), GFP_KERNEL);
+ lvds = kzalloc_obj(struct radeon_encoder_lvds);
if (!lvds)
return NULL;
@@ -1165,7 +1164,7 @@ struct radeon_encoder_lvds *radeon_combios_get_lvds_info(struct radeon_encoder
lcd_info = combios_get_table_offset(dev, COMBIOS_LCD_INFO_TABLE);
if (lcd_info) {
- lvds = kzalloc(sizeof(struct radeon_encoder_lvds), GFP_KERNEL);
+ lvds = kzalloc_obj(struct radeon_encoder_lvds);
if (!lvds)
return NULL;
@@ -2630,16 +2629,13 @@ void radeon_combios_get_power_modes(struct radeon_device *rdev)
rdev->pm.default_power_state_index = -1;
/* allocate 2 power states */
- rdev->pm.power_state = kcalloc(2, sizeof(struct radeon_power_state),
- GFP_KERNEL);
+ rdev->pm.power_state = kzalloc_objs(struct radeon_power_state, 2);
if (rdev->pm.power_state) {
/* allocate 1 clock mode per state */
rdev->pm.power_state[0].clock_info =
- kcalloc(1, sizeof(struct radeon_pm_clock_info),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_pm_clock_info, 1);
rdev->pm.power_state[1].clock_info =
- kcalloc(1, sizeof(struct radeon_pm_clock_info),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_pm_clock_info, 1);
if (!rdev->pm.power_state[0].clock_info ||
!rdev->pm.power_state[1].clock_info)
goto pm_failed;
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index 012d8b2295b8..373f08a125ff 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -1887,7 +1887,7 @@ radeon_add_atom_connector(struct drm_device *dev,
}
}
- radeon_connector = kzalloc(sizeof(struct radeon_connector), GFP_KERNEL);
+ radeon_connector = kzalloc_obj(struct radeon_connector);
if (!radeon_connector)
return;
@@ -1907,7 +1907,7 @@ radeon_add_atom_connector(struct drm_device *dev,
}
if (is_dp_bridge) {
- radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
+ radeon_dig_connector = kzalloc_obj(struct radeon_connector_atom_dig);
if (!radeon_dig_connector)
goto failed;
radeon_dig_connector->igp_lane_info = igp_lane_info;
@@ -2078,7 +2078,7 @@ radeon_add_atom_connector(struct drm_device *dev,
break;
case DRM_MODE_CONNECTOR_DVII:
case DRM_MODE_CONNECTOR_DVID:
- radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
+ radeon_dig_connector = kzalloc_obj(struct radeon_connector_atom_dig);
if (!radeon_dig_connector)
goto failed;
radeon_dig_connector->igp_lane_info = igp_lane_info;
@@ -2140,7 +2140,7 @@ radeon_add_atom_connector(struct drm_device *dev,
break;
case DRM_MODE_CONNECTOR_HDMIA:
case DRM_MODE_CONNECTOR_HDMIB:
- radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
+ radeon_dig_connector = kzalloc_obj(struct radeon_connector_atom_dig);
if (!radeon_dig_connector)
goto failed;
radeon_dig_connector->igp_lane_info = igp_lane_info;
@@ -2195,7 +2195,7 @@ radeon_add_atom_connector(struct drm_device *dev,
connector->doublescan_allowed = false;
break;
case DRM_MODE_CONNECTOR_DisplayPort:
- radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
+ radeon_dig_connector = kzalloc_obj(struct radeon_connector_atom_dig);
if (!radeon_dig_connector)
goto failed;
radeon_dig_connector->igp_lane_info = igp_lane_info;
@@ -2250,7 +2250,7 @@ radeon_add_atom_connector(struct drm_device *dev,
connector->doublescan_allowed = false;
break;
case DRM_MODE_CONNECTOR_eDP:
- radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
+ radeon_dig_connector = kzalloc_obj(struct radeon_connector_atom_dig);
if (!radeon_dig_connector)
goto failed;
radeon_dig_connector->igp_lane_info = igp_lane_info;
@@ -2297,7 +2297,7 @@ radeon_add_atom_connector(struct drm_device *dev,
connector->doublescan_allowed = false;
break;
case DRM_MODE_CONNECTOR_LVDS:
- radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
+ radeon_dig_connector = kzalloc_obj(struct radeon_connector_atom_dig);
if (!radeon_dig_connector)
goto failed;
radeon_dig_connector->igp_lane_info = igp_lane_info;
@@ -2379,7 +2379,7 @@ radeon_add_legacy_connector(struct drm_device *dev,
}
}
- radeon_connector = kzalloc(sizeof(struct radeon_connector), GFP_KERNEL);
+ radeon_connector = kzalloc_obj(struct radeon_connector);
if (!radeon_connector)
return;
diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c
index 3f9c0011244f..2db819ab85d2 100644
--- a/drivers/gpu/drm/radeon/radeon_cs.c
+++ b/drivers/gpu/drm/radeon/radeon_cs.c
@@ -93,8 +93,7 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
p->dma_reloc_idx = 0;
/* FIXME: we assume that each relocs use 4 dwords */
p->nrelocs = chunk->length_dw / 4;
- p->relocs = kvcalloc(p->nrelocs, sizeof(struct radeon_bo_list),
- GFP_KERNEL);
+ p->relocs = kvzalloc_objs(struct radeon_bo_list, p->nrelocs);
if (p->relocs == NULL) {
return -ENOMEM;
}
@@ -297,7 +296,7 @@ int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data)
}
p->cs_flags = 0;
p->nchunks = cs->num_chunks;
- p->chunks = kvcalloc(p->nchunks, sizeof(struct radeon_cs_chunk), GFP_KERNEL);
+ p->chunks = kvzalloc_objs(struct radeon_cs_chunk, p->nchunks);
if (p->chunks == NULL) {
return -ENOMEM;
}
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
index 60afaa8e56b4..5d523d5dae88 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -974,7 +974,7 @@ static uint32_t cail_ioreg_read(struct card_info *info, uint32_t reg)
int radeon_atombios_init(struct radeon_device *rdev)
{
struct card_info *atom_card_info =
- kzalloc(sizeof(struct card_info), GFP_KERNEL);
+ kzalloc_obj(struct card_info);
if (!atom_card_info)
return -ENOMEM;
@@ -1374,6 +1374,7 @@ int radeon_device_init(struct radeon_device *rdev,
pr_warn("radeon: No suitable DMA available\n");
return r;
}
+ rdev->pdev->msi_addr_mask = DMA_BIT_MASK(dma_bits);
rdev->need_swiotlb = drm_need_swiotlb(dma_bits);
/* Registers mapping */
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index 35fb99bcd9a7..5c72aad3dae7 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -41,6 +41,7 @@
#include <drm/drm_probe_helper.h>
#include <drm/drm_vblank.h>
#include <drm/radeon_drm.h>
+#include <drm/drm_print.h>
#include "atom.h"
#include "radeon.h"
@@ -273,7 +274,7 @@ static void radeon_unpin_work_func(struct work_struct *__work)
radeon_bo_unpin(work->old_rbo);
radeon_bo_unreserve(work->old_rbo);
} else
- DRM_ERROR("failed to reserve buffer after flip\n");
+ drm_err(&work->rdev->ddev, "failed to reserve buffer after flip\n");
drm_gem_object_put(&work->old_rbo->tbo.base);
kfree(work);
@@ -434,7 +435,7 @@ static void radeon_flip_work_func(struct work_struct *__work)
r = dma_fence_wait(work->fence, false);
if (r)
- DRM_ERROR("failed to wait on page flip fence (%d)!\n", r);
+ drm_err(dev, "failed to wait on page flip fence (%d)!\n", r);
/* We continue with the page flip even if we failed to wait on
* the fence, otherwise the DRM core and userspace will be
@@ -493,7 +494,7 @@ static int radeon_crtc_page_flip_target(struct drm_crtc *crtc,
unsigned long flags;
int r;
- work = kzalloc(sizeof *work, GFP_KERNEL);
+ work = kzalloc_obj(*work);
if (work == NULL)
return -ENOMEM;
@@ -521,7 +522,7 @@ static int radeon_crtc_page_flip_target(struct drm_crtc *crtc,
r = radeon_bo_reserve(new_rbo, false);
if (unlikely(r != 0)) {
- DRM_ERROR("failed to reserve new rbo buffer before flip\n");
+ drm_err(dev, "failed to reserve new rbo buffer before flip\n");
goto cleanup;
}
/* Only 27 bit offset for legacy CRTC */
@@ -530,14 +531,14 @@ static int radeon_crtc_page_flip_target(struct drm_crtc *crtc,
if (unlikely(r != 0)) {
radeon_bo_unreserve(new_rbo);
r = -EINVAL;
- DRM_ERROR("failed to pin new rbo buffer before flip\n");
+ drm_err(dev, "failed to pin new rbo buffer before flip\n");
goto cleanup;
}
r = dma_resv_get_singleton(new_rbo->tbo.base.resv, DMA_RESV_USAGE_WRITE,
&work->fence);
if (r) {
radeon_bo_unreserve(new_rbo);
- DRM_ERROR("failed to get new rbo buffer fences\n");
+ drm_err(dev, "failed to get new rbo buffer fences\n");
goto cleanup;
}
radeon_bo_get_tiling_flags(new_rbo, &tiling_flags, NULL);
@@ -604,7 +605,7 @@ static int radeon_crtc_page_flip_target(struct drm_crtc *crtc,
pflip_cleanup:
if (unlikely(radeon_bo_reserve(new_rbo, false) != 0)) {
- DRM_ERROR("failed to reserve new rbo in error path\n");
+ drm_err(dev, "failed to reserve new rbo in error path\n");
goto cleanup;
}
radeon_bo_unpin(new_rbo);
@@ -681,7 +682,7 @@ static void radeon_crtc_init(struct drm_device *dev, int index)
struct radeon_device *rdev = dev->dev_private;
struct radeon_crtc *radeon_crtc;
- radeon_crtc = kzalloc(sizeof(*radeon_crtc), GFP_KERNEL);
+ radeon_crtc = kzalloc_obj(*radeon_crtc);
if (radeon_crtc == NULL)
return;
@@ -772,15 +773,15 @@ static void radeon_print_display_setup(struct drm_device *dev)
uint32_t devices;
int i = 0;
- DRM_INFO("Radeon Display Connectors\n");
+ drm_info(dev, "Radeon Display Connectors\n");
list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
radeon_connector = to_radeon_connector(connector);
- DRM_INFO("Connector %d:\n", i);
- DRM_INFO(" %s\n", connector->name);
+ drm_info(dev, "Connector %d:\n", i);
+ drm_info(dev, " %s\n", connector->name);
if (radeon_connector->hpd.hpd != RADEON_HPD_NONE)
- DRM_INFO(" %s\n", hpd_names[radeon_connector->hpd.hpd]);
+ drm_info(dev, " %s\n", hpd_names[radeon_connector->hpd.hpd]);
if (radeon_connector->ddc_bus) {
- DRM_INFO(" DDC: 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",
+ drm_info(dev, " DDC: 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",
radeon_connector->ddc_bus->rec.mask_clk_reg,
radeon_connector->ddc_bus->rec.mask_data_reg,
radeon_connector->ddc_bus->rec.a_clk_reg,
@@ -790,11 +791,11 @@ static void radeon_print_display_setup(struct drm_device *dev)
radeon_connector->ddc_bus->rec.y_clk_reg,
radeon_connector->ddc_bus->rec.y_data_reg);
if (radeon_connector->router.ddc_valid)
- DRM_INFO(" DDC Router 0x%x/0x%x\n",
+ drm_info(dev, " DDC Router 0x%x/0x%x\n",
radeon_connector->router.ddc_mux_control_pin,
radeon_connector->router.ddc_mux_state);
if (radeon_connector->router.cd_valid)
- DRM_INFO(" Clock/Data Router 0x%x/0x%x\n",
+ drm_info(dev, " Clock/Data Router 0x%x/0x%x\n",
radeon_connector->router.cd_mux_control_pin,
radeon_connector->router.cd_mux_state);
} else {
@@ -804,35 +805,46 @@ static void radeon_print_display_setup(struct drm_device *dev)
connector->connector_type == DRM_MODE_CONNECTOR_DVIA ||
connector->connector_type == DRM_MODE_CONNECTOR_HDMIA ||
connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)
- DRM_INFO(" DDC: no ddc bus - possible BIOS bug - please report to xorg-driver-ati@lists.x.org\n");
+ drm_info(dev, " DDC: no ddc bus - possible BIOS bug - please report to xorg-driver-ati@lists.x.org\n");
}
- DRM_INFO(" Encoders:\n");
+ drm_info(dev, " Encoders:\n");
list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
radeon_encoder = to_radeon_encoder(encoder);
devices = radeon_encoder->devices & radeon_connector->devices;
if (devices) {
if (devices & ATOM_DEVICE_CRT1_SUPPORT)
- DRM_INFO(" CRT1: %s\n", encoder_names[radeon_encoder->encoder_id]);
+ drm_info(dev, " CRT1: %s\n",
+ encoder_names[radeon_encoder->encoder_id]);
if (devices & ATOM_DEVICE_CRT2_SUPPORT)
- DRM_INFO(" CRT2: %s\n", encoder_names[radeon_encoder->encoder_id]);
+ drm_info(dev, " CRT2: %s\n",
+ encoder_names[radeon_encoder->encoder_id]);
if (devices & ATOM_DEVICE_LCD1_SUPPORT)
- DRM_INFO(" LCD1: %s\n", encoder_names[radeon_encoder->encoder_id]);
+ drm_info(dev, " LCD1: %s\n",
+ encoder_names[radeon_encoder->encoder_id]);
if (devices & ATOM_DEVICE_DFP1_SUPPORT)
- DRM_INFO(" DFP1: %s\n", encoder_names[radeon_encoder->encoder_id]);
+ drm_info(dev, " DFP1: %s\n",
+ encoder_names[radeon_encoder->encoder_id]);
if (devices & ATOM_DEVICE_DFP2_SUPPORT)
- DRM_INFO(" DFP2: %s\n", encoder_names[radeon_encoder->encoder_id]);
+ drm_info(dev, " DFP2: %s\n",
+ encoder_names[radeon_encoder->encoder_id]);
if (devices & ATOM_DEVICE_DFP3_SUPPORT)
- DRM_INFO(" DFP3: %s\n", encoder_names[radeon_encoder->encoder_id]);
+ drm_info(dev, " DFP3: %s\n",
+ encoder_names[radeon_encoder->encoder_id]);
if (devices & ATOM_DEVICE_DFP4_SUPPORT)
- DRM_INFO(" DFP4: %s\n", encoder_names[radeon_encoder->encoder_id]);
+ drm_info(dev, " DFP4: %s\n",
+ encoder_names[radeon_encoder->encoder_id]);
if (devices & ATOM_DEVICE_DFP5_SUPPORT)
- DRM_INFO(" DFP5: %s\n", encoder_names[radeon_encoder->encoder_id]);
+ drm_info(dev, " DFP5: %s\n",
+ encoder_names[radeon_encoder->encoder_id]);
if (devices & ATOM_DEVICE_DFP6_SUPPORT)
- DRM_INFO(" DFP6: %s\n", encoder_names[radeon_encoder->encoder_id]);
+ drm_info(dev, " DFP6: %s\n",
+ encoder_names[radeon_encoder->encoder_id]);
if (devices & ATOM_DEVICE_TV1_SUPPORT)
- DRM_INFO(" TV1: %s\n", encoder_names[radeon_encoder->encoder_id]);
+ drm_info(dev, " TV1: %s\n",
+ encoder_names[radeon_encoder->encoder_id]);
if (devices & ATOM_DEVICE_CV_SUPPORT)
- DRM_INFO(" CV: %s\n", encoder_names[radeon_encoder->encoder_id]);
+ drm_info(dev, " CV: %s\n",
+ encoder_names[radeon_encoder->encoder_id]);
}
}
i++;
@@ -1334,7 +1346,7 @@ radeon_user_framebuffer_create(struct drm_device *dev,
return ERR_PTR(-EINVAL);
}
- fb = kzalloc(sizeof(*fb), GFP_KERNEL);
+ fb = kzalloc_obj(*fb);
if (fb == NULL) {
drm_gem_object_put(obj);
return ERR_PTR(-ENOMEM);
@@ -1527,7 +1539,7 @@ static void radeon_afmt_init(struct radeon_device *rdev)
BUG_ON(num_afmt > ARRAY_SIZE(eg_offsets));
for (i = 0; i < num_afmt; i++) {
- rdev->mode_info.afmt[i] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL);
+ rdev->mode_info.afmt[i] = kzalloc_obj(struct radeon_afmt);
if (rdev->mode_info.afmt[i]) {
rdev->mode_info.afmt[i]->offset = eg_offsets[i];
rdev->mode_info.afmt[i]->id = i;
@@ -1535,26 +1547,26 @@ static void radeon_afmt_init(struct radeon_device *rdev)
}
} else if (ASIC_IS_DCE3(rdev)) {
/* DCE3.x has 2 audio blocks tied to DIG encoders */
- rdev->mode_info.afmt[0] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL);
+ rdev->mode_info.afmt[0] = kzalloc_obj(struct radeon_afmt);
if (rdev->mode_info.afmt[0]) {
rdev->mode_info.afmt[0]->offset = DCE3_HDMI_OFFSET0;
rdev->mode_info.afmt[0]->id = 0;
}
- rdev->mode_info.afmt[1] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL);
+ rdev->mode_info.afmt[1] = kzalloc_obj(struct radeon_afmt);
if (rdev->mode_info.afmt[1]) {
rdev->mode_info.afmt[1]->offset = DCE3_HDMI_OFFSET1;
rdev->mode_info.afmt[1]->id = 1;
}
} else if (ASIC_IS_DCE2(rdev)) {
/* DCE2 has at least 1 routable audio block */
- rdev->mode_info.afmt[0] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL);
+ rdev->mode_info.afmt[0] = kzalloc_obj(struct radeon_afmt);
if (rdev->mode_info.afmt[0]) {
rdev->mode_info.afmt[0]->offset = DCE2_HDMI_OFFSET0;
rdev->mode_info.afmt[0]->id = 0;
}
/* r6xx has 2 routable audio blocks */
if (rdev->family >= CHIP_R600) {
- rdev->mode_info.afmt[1] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL);
+ rdev->mode_info.afmt[1] = kzalloc_obj(struct radeon_afmt);
if (rdev->mode_info.afmt[1]) {
rdev->mode_info.afmt[1]->offset = DCE2_HDMI_OFFSET1;
rdev->mode_info.afmt[1]->id = 1;
@@ -1747,7 +1759,7 @@ bool radeon_crtc_scaling_mode_fixup(struct drm_crtc *crtc,
* (ie all encoder can work with the same
* scaling).
*/
- DRM_ERROR("Scaling not consistent across encoder.\n");
+ drm_err(dev, "Scaling not consistent across encoder.\n");
return false;
}
}
diff --git a/drivers/gpu/drm/radeon/radeon_fbdev.c b/drivers/gpu/drm/radeon/radeon_fbdev.c
index fd083aaa91bb..18d61f3f7344 100644
--- a/drivers/gpu/drm/radeon/radeon_fbdev.c
+++ b/drivers/gpu/drm/radeon/radeon_fbdev.c
@@ -228,7 +228,7 @@ int radeon_fbdev_driver_fbdev_probe(struct drm_fb_helper *fb_helper,
}
rbo = gem_to_radeon_bo(gobj);
- fb = kzalloc(sizeof(*fb), GFP_KERNEL);
+ fb = kzalloc_obj(*fb);
if (!fb) {
ret = -ENOMEM;
goto err_radeon_fbdev_destroy_pinned_object;
diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c
index 167d6f122b8e..02a40e4750c7 100644
--- a/drivers/gpu/drm/radeon/radeon_fence.c
+++ b/drivers/gpu/drm/radeon/radeon_fence.c
@@ -137,7 +137,7 @@ int radeon_fence_emit(struct radeon_device *rdev,
u64 seq;
/* we are protected by the ring emission mutex */
- *fence = kmalloc(sizeof(struct radeon_fence), GFP_KERNEL);
+ *fence = kmalloc_obj(struct radeon_fence);
if ((*fence) == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c
index 18ca1bcfd2f9..20fc87409f2e 100644
--- a/drivers/gpu/drm/radeon/radeon_gem.c
+++ b/drivers/gpu/drm/radeon/radeon_gem.c
@@ -110,7 +110,7 @@ int radeon_gem_object_create(struct radeon_device *rdev, unsigned long size,
*/
max_size = rdev->mc.gtt_size - rdev->gart_pin_size;
if (size > max_size) {
- DRM_DEBUG("Allocation size %ldMb bigger than %ldMb limit\n",
+ DRM_DEBUG("Allocation size %luMb bigger than %luMb limit\n",
size >> 20, max_size >> 20);
return -ENOMEM;
}
@@ -560,7 +560,7 @@ int radeon_gem_set_tiling_ioctl(struct drm_device *dev, void *data,
struct radeon_bo *robj;
int r = 0;
- DRM_DEBUG("%d \n", args->handle);
+ DRM_DEBUG("%u \n", args->handle);
gobj = drm_gem_object_lookup(filp, args->handle);
if (gobj == NULL)
return -ENOENT;
@@ -886,7 +886,7 @@ static int radeon_debugfs_gem_info_show(struct seq_file *m, void *unused)
placement = " CPU";
break;
}
- seq_printf(m, "bo[0x%08x] %8ldkB %8ldMB %s pid %8ld\n",
+ seq_printf(m, "bo[0x%08x] %8lukB %8luMB %s pid %8lu\n",
i, radeon_bo_size(rbo) >> 10, radeon_bo_size(rbo) >> 20,
placement, (unsigned long)rbo->pid);
i++;
diff --git a/drivers/gpu/drm/radeon/radeon_i2c.c b/drivers/gpu/drm/radeon/radeon_i2c.c
index 1f16619ed06e..13a091ec797b 100644
--- a/drivers/gpu/drm/radeon/radeon_i2c.c
+++ b/drivers/gpu/drm/radeon/radeon_i2c.c
@@ -912,7 +912,7 @@ struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
if (rec->mm_i2c && (radeon_hw_i2c == 0))
return NULL;
- i2c = kzalloc(sizeof(struct radeon_i2c_chan), GFP_KERNEL);
+ i2c = kzalloc_obj(struct radeon_i2c_chan);
if (i2c == NULL)
return NULL;
@@ -931,7 +931,7 @@ struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
snprintf(i2c->adapter.name, sizeof(i2c->adapter.name),
"Radeon i2c hw bus %s", name);
i2c->adapter.algo = &radeon_i2c_algo;
- ret = i2c_add_adapter(&i2c->adapter);
+ ret = devm_i2c_add_adapter(dev->dev, &i2c->adapter);
if (ret)
goto out_free;
} else if (rec->hw_capable &&
@@ -972,15 +972,6 @@ out_free:
}
-void radeon_i2c_destroy(struct radeon_i2c_chan *i2c)
-{
- if (!i2c)
- return;
- WARN_ON(i2c->has_aux);
- i2c_del_adapter(&i2c->adapter);
- kfree(i2c);
-}
-
/* Add the default buses */
void radeon_i2c_init(struct radeon_device *rdev)
{
@@ -999,10 +990,8 @@ void radeon_i2c_fini(struct radeon_device *rdev)
int i;
for (i = 0; i < RADEON_MAX_I2C_BUS; i++) {
- if (rdev->i2c_bus[i]) {
- radeon_i2c_destroy(rdev->i2c_bus[i]);
+ if (rdev->i2c_bus[i])
rdev->i2c_bus[i] = NULL;
- }
}
}
diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c b/drivers/gpu/drm/radeon/radeon_irq_kms.c
index 9961251b44ba..839d619e5602 100644
--- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
@@ -245,16 +245,6 @@ static bool radeon_msi_ok(struct radeon_device *rdev)
if (rdev->flags & RADEON_IS_AGP)
return false;
- /*
- * Older chips have a HW limitation, they can only generate 40 bits
- * of address for "64-bit" MSIs which breaks on some platforms, notably
- * IBM POWER servers, so we limit them
- */
- if (rdev->family < CHIP_BONAIRE) {
- dev_info(rdev->dev, "radeon: MSI limited to 32-bit\n");
- rdev->pdev->no_64bit_msi = 1;
- }
-
/* force MSI on */
if (radeon_msi == 1)
return true;
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index 7cbe02ffb193..dc43fd790a9c 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -640,7 +640,7 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
/* new gpu have virtual address space support */
if (rdev->family >= CHIP_CAYMAN) {
- fpriv = kzalloc(sizeof(*fpriv), GFP_KERNEL);
+ fpriv = kzalloc_obj(*fpriv);
if (unlikely(!fpriv)) {
r = -ENOMEM;
goto err_suspend;
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c
index 825b351ff53c..a1054c8094d4 100644
--- a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c
+++ b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c
@@ -360,19 +360,12 @@ static void radeon_crtc_dpms(struct drm_crtc *crtc, int mode)
int radeon_crtc_set_base(struct drm_crtc *crtc, int x, int y,
struct drm_framebuffer *old_fb)
{
- return radeon_crtc_do_set_base(crtc, old_fb, x, y, 0);
-}
-
-int radeon_crtc_set_base_atomic(struct drm_crtc *crtc,
- struct drm_framebuffer *fb,
- int x, int y, enum mode_set_atomic state)
-{
- return radeon_crtc_do_set_base(crtc, fb, x, y, 1);
+ return radeon_crtc_do_set_base(crtc, old_fb, x, y);
}
int radeon_crtc_do_set_base(struct drm_crtc *crtc,
struct drm_framebuffer *fb,
- int x, int y, int atomic)
+ int x, int y)
{
struct drm_device *dev = crtc->dev;
struct radeon_device *rdev = dev->dev_private;
@@ -390,15 +383,12 @@ int radeon_crtc_do_set_base(struct drm_crtc *crtc,
DRM_DEBUG_KMS("\n");
/* no fb bound */
- if (!atomic && !crtc->primary->fb) {
+ if (!crtc->primary->fb) {
DRM_DEBUG_KMS("No FB bound\n");
return 0;
}
- if (atomic)
- target_fb = fb;
- else
- target_fb = crtc->primary->fb;
+ target_fb = crtc->primary->fb;
switch (target_fb->format->cpp[0] * 8) {
case 8:
@@ -445,7 +435,7 @@ retry:
* We don't shutdown the display controller because new buffer
* will end up in same spot.
*/
- if (!atomic && fb && fb != crtc->primary->fb) {
+ if (fb && fb != crtc->primary->fb) {
struct radeon_bo *old_rbo;
unsigned long nsize, osize;
@@ -555,7 +545,7 @@ retry:
WREG32(RADEON_CRTC_OFFSET + radeon_crtc->crtc_offset, crtc_offset);
WREG32(RADEON_CRTC_PITCH + radeon_crtc->crtc_offset, crtc_pitch);
- if (!atomic && fb && fb != crtc->primary->fb) {
+ if (fb && fb != crtc->primary->fb) {
rbo = gem_to_radeon_bo(fb->obj[0]);
r = radeon_bo_reserve(rbo, false);
if (unlikely(r != 0))
@@ -1108,7 +1098,6 @@ static const struct drm_crtc_helper_funcs legacy_helper_funcs = {
.mode_fixup = radeon_crtc_mode_fixup,
.mode_set = radeon_crtc_mode_set,
.mode_set_base = radeon_crtc_set_base,
- .mode_set_base_atomic = radeon_crtc_set_base_atomic,
.prepare = radeon_crtc_prepare,
.commit = radeon_crtc_commit,
.disable = radeon_crtc_disable,
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
index d1e8b9757a65..1f82e2b57f5d 100644
--- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
@@ -394,7 +394,7 @@ void radeon_legacy_backlight_init(struct radeon_encoder *radeon_encoder,
return;
}
- pdata = kmalloc(sizeof(struct radeon_backlight_privdata), GFP_KERNEL);
+ pdata = kmalloc_obj(struct radeon_backlight_privdata);
if (!pdata) {
DRM_ERROR("Memory allocation failed\n");
goto error;
@@ -1695,7 +1695,7 @@ static struct radeon_encoder_int_tmds *radeon_legacy_get_tmds_info(struct radeon
struct radeon_encoder_int_tmds *tmds;
bool ret;
- tmds = kzalloc(sizeof(struct radeon_encoder_int_tmds), GFP_KERNEL);
+ tmds = kzalloc_obj(struct radeon_encoder_int_tmds);
if (!tmds)
return NULL;
@@ -1721,7 +1721,7 @@ static struct radeon_encoder_ext_tmds *radeon_legacy_get_ext_tmds_info(struct ra
if (rdev->is_atom_bios)
return NULL;
- tmds = kzalloc(sizeof(struct radeon_encoder_ext_tmds), GFP_KERNEL);
+ tmds = kzalloc_obj(struct radeon_encoder_ext_tmds);
if (!tmds)
return NULL;
@@ -1752,7 +1752,7 @@ radeon_add_legacy_encoder(struct drm_device *dev, uint32_t encoder_enum, uint32_
}
/* add a new one */
- radeon_encoder = kzalloc(sizeof(struct radeon_encoder), GFP_KERNEL);
+ radeon_encoder = kzalloc_obj(struct radeon_encoder);
if (!radeon_encoder)
return;
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
index 9e34da2cacef..088af85902f7 100644
--- a/drivers/gpu/drm/radeon/radeon_mode.h
+++ b/drivers/gpu/drm/radeon/radeon_mode.h
@@ -804,10 +804,6 @@ extern bool radeon_encoder_is_digital(struct drm_encoder *encoder);
extern void radeon_crtc_load_lut(struct drm_crtc *crtc);
extern int atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y,
struct drm_framebuffer *old_fb);
-extern int atombios_crtc_set_base_atomic(struct drm_crtc *crtc,
- struct drm_framebuffer *fb,
- int x, int y,
- enum mode_set_atomic state);
extern int atombios_crtc_mode_set(struct drm_crtc *crtc,
struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode,
@@ -817,13 +813,9 @@ extern void atombios_crtc_dpms(struct drm_crtc *crtc, int mode);
extern int radeon_crtc_set_base(struct drm_crtc *crtc, int x, int y,
struct drm_framebuffer *old_fb);
-extern int radeon_crtc_set_base_atomic(struct drm_crtc *crtc,
- struct drm_framebuffer *fb,
- int x, int y,
- enum mode_set_atomic state);
extern int radeon_crtc_do_set_base(struct drm_crtc *crtc,
struct drm_framebuffer *fb,
- int x, int y, int atomic);
+ int x, int y);
extern int radeon_crtc_cursor_set2(struct drm_crtc *crtc,
struct drm_file *file_priv,
uint32_t handle,
diff --git a/drivers/gpu/drm/radeon/radeon_semaphore.c b/drivers/gpu/drm/radeon/radeon_semaphore.c
index 1f0a9a4ff5ae..da0a0b28f2b8 100644
--- a/drivers/gpu/drm/radeon/radeon_semaphore.c
+++ b/drivers/gpu/drm/radeon/radeon_semaphore.c
@@ -36,7 +36,7 @@ int radeon_semaphore_create(struct radeon_device *rdev,
{
int r;
- *semaphore = kmalloc(sizeof(struct radeon_semaphore), GFP_KERNEL);
+ *semaphore = kmalloc_obj(struct radeon_semaphore);
if (*semaphore == NULL) {
return -ENOMEM;
}
diff --git a/drivers/gpu/drm/radeon/radeon_test.c b/drivers/gpu/drm/radeon/radeon_test.c
index 818554e60537..0b459f7df23b 100644
--- a/drivers/gpu/drm/radeon/radeon_test.c
+++ b/drivers/gpu/drm/radeon/radeon_test.c
@@ -60,7 +60,7 @@ static void radeon_do_test_moves(struct radeon_device *rdev, int flag)
n = rdev->mc.gtt_size - rdev->gart_pin_size;
n /= size;
- gtt_obj = kcalloc(n, sizeof(*gtt_obj), GFP_KERNEL);
+ gtt_obj = kzalloc_objs(*gtt_obj, n);
if (!gtt_obj) {
DRM_ERROR("Failed to allocate %d pointers\n", n);
r = 1;
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index 695ac32f7535..e7ab8162ac69 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -492,7 +492,7 @@ static struct ttm_tt *radeon_ttm_tt_create(struct ttm_buffer_object *bo,
#endif
rbo = container_of(bo, struct radeon_bo, tbo);
- gtt = kzalloc(sizeof(struct radeon_ttm_tt), GFP_KERNEL);
+ gtt = kzalloc_obj(struct radeon_ttm_tt);
if (gtt == NULL) {
return NULL;
}
@@ -533,7 +533,7 @@ static int radeon_ttm_tt_populate(struct ttm_device *bdev,
bool slave = !!(ttm->page_flags & TTM_TT_FLAG_EXTERNAL);
if (gtt && gtt->userptr) {
- ttm->sg = kzalloc(sizeof(struct sg_table), GFP_KERNEL);
+ ttm->sg = kzalloc_obj(struct sg_table);
if (!ttm->sg)
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/radeon_vce.c b/drivers/gpu/drm/radeon/radeon_vce.c
index bdbc1bbe8a9b..ed631c0e5e28 100644
--- a/drivers/gpu/drm/radeon/radeon_vce.c
+++ b/drivers/gpu/drm/radeon/radeon_vce.c
@@ -121,8 +121,9 @@ int radeon_vce_init(struct radeon_device *rdev)
if (sscanf(c, "%2u]", &rdev->vce.fb_version) != 1)
return -EINVAL;
- DRM_INFO("Found VCE firmware/feedback version %d.%d.%d / %d!\n",
- start, mid, end, rdev->vce.fb_version);
+ drm_info(&rdev->ddev,
+ "Found VCE firmware/feedback version %d.%d.%d / %d!\n",
+ start, mid, end, rdev->vce.fb_version);
rdev->vce.fw_version = (start << 24) | (mid << 16) | (end << 8);
diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c
index 21a5340aefdf..45207310048b 100644
--- a/drivers/gpu/drm/radeon/radeon_vm.c
+++ b/drivers/gpu/drm/radeon/radeon_vm.c
@@ -133,8 +133,7 @@ struct radeon_bo_list *radeon_vm_get_bos(struct radeon_device *rdev,
struct radeon_bo_list *list;
unsigned i, idx;
- list = kvmalloc_array(vm->max_pde_used + 2,
- sizeof(struct radeon_bo_list), GFP_KERNEL);
+ list = kvmalloc_objs(struct radeon_bo_list, vm->max_pde_used + 2);
if (!list)
return NULL;
@@ -321,7 +320,7 @@ struct radeon_bo_va *radeon_vm_bo_add(struct radeon_device *rdev,
{
struct radeon_bo_va *bo_va;
- bo_va = kzalloc(sizeof(struct radeon_bo_va), GFP_KERNEL);
+ bo_va = kzalloc_obj(struct radeon_bo_va);
if (bo_va == NULL)
return NULL;
@@ -495,7 +494,7 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev,
if (bo_va->it.start || bo_va->it.last) {
/* add a clone of the bo_va to clear the old address */
struct radeon_bo_va *tmp;
- tmp = kzalloc(sizeof(struct radeon_bo_va), GFP_KERNEL);
+ tmp = kzalloc_obj(struct radeon_bo_va);
if (!tmp) {
mutex_unlock(&vm->mutex);
r = -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/rs780_dpm.c b/drivers/gpu/drm/radeon/rs780_dpm.c
index 24ad12409120..64bb4cafb8b5 100644
--- a/drivers/gpu/drm/radeon/rs780_dpm.c
+++ b/drivers/gpu/drm/radeon/rs780_dpm.c
@@ -804,9 +804,8 @@ static int rs780_parse_power_table(struct radeon_device *rdev)
return -EINVAL;
power_info = (union power_info *)(mode_info->atom_context->bios + data_offset);
- rdev->pm.dpm.ps = kcalloc(power_info->pplib.ucNumStates,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ power_info->pplib.ucNumStates);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
@@ -826,7 +825,7 @@ static int rs780_parse_power_table(struct radeon_device *rdev)
le16_to_cpu(power_info->pplib.usClockInfoArrayOffset) +
(power_state->v1.ucClockStateIndices[0] *
power_info->pplib.ucClockInfoSize));
- ps = kzalloc(sizeof(struct igp_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct igp_ps);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -853,7 +852,7 @@ int rs780_dpm_init(struct radeon_device *rdev)
u8 frev, crev;
int ret;
- pi = kzalloc(sizeof(struct igp_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct igp_power_info);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/radeon/rv6xx_dpm.c b/drivers/gpu/drm/radeon/rv6xx_dpm.c
index 69d380fff22a..c734370e5336 100644
--- a/drivers/gpu/drm/radeon/rv6xx_dpm.c
+++ b/drivers/gpu/drm/radeon/rv6xx_dpm.c
@@ -1887,9 +1887,8 @@ static int rv6xx_parse_power_table(struct radeon_device *rdev)
return -EINVAL;
power_info = (union power_info *)(mode_info->atom_context->bios + data_offset);
- rdev->pm.dpm.ps = kcalloc(power_info->pplib.ucNumStates,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ power_info->pplib.ucNumStates);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
@@ -1905,7 +1904,7 @@ static int rv6xx_parse_power_table(struct radeon_device *rdev)
power_info->pplib.ucNonClockSize));
if (power_info->pplib.ucStateEntrySize - 1) {
u8 *idx;
- ps = kzalloc(sizeof(struct rv6xx_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct rv6xx_ps);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -1936,7 +1935,7 @@ int rv6xx_dpm_init(struct radeon_device *rdev)
struct rv6xx_power_info *pi;
int ret;
- pi = kzalloc(sizeof(struct rv6xx_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct rv6xx_power_info);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/radeon/rv770_dpm.c b/drivers/gpu/drm/radeon/rv770_dpm.c
index e3e1f6833f12..5f5cf5dd1d58 100644
--- a/drivers/gpu/drm/radeon/rv770_dpm.c
+++ b/drivers/gpu/drm/radeon/rv770_dpm.c
@@ -2283,9 +2283,8 @@ int rv7xx_parse_power_table(struct radeon_device *rdev)
return -EINVAL;
power_info = (union power_info *)(mode_info->atom_context->bios + data_offset);
- rdev->pm.dpm.ps = kcalloc(power_info->pplib.ucNumStates,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ power_info->pplib.ucNumStates);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
@@ -2301,7 +2300,7 @@ int rv7xx_parse_power_table(struct radeon_device *rdev)
power_info->pplib.ucNonClockSize));
if (power_info->pplib.ucStateEntrySize - 1) {
u8 *idx;
- ps = kzalloc(sizeof(struct rv7xx_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct rv7xx_ps);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -2348,7 +2347,7 @@ int rv770_dpm_init(struct radeon_device *rdev)
struct atom_clock_dividers dividers;
int ret;
- pi = kzalloc(sizeof(struct rv7xx_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct rv7xx_power_info);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c
index 9deb91970d4d..b4aa49b1ac63 100644
--- a/drivers/gpu/drm/radeon/si_dpm.c
+++ b/drivers/gpu/drm/radeon/si_dpm.c
@@ -2419,7 +2419,7 @@ static int si_initialize_smc_dte_tables(struct radeon_device *rdev)
if (dte_data->k <= 0)
return -EINVAL;
- dte_tables = kzalloc(sizeof(Smc_SIslands_DTE_Configuration), GFP_KERNEL);
+ dte_tables = kzalloc_obj(Smc_SIslands_DTE_Configuration);
if (dte_tables == NULL) {
si_pi->enable_dte = false;
return -ENOMEM;
@@ -2599,7 +2599,7 @@ static int si_initialize_smc_cac_tables(struct radeon_device *rdev)
if (ni_pi->enable_cac == false)
return 0;
- cac_tables = kzalloc(sizeof(PP_SIslands_CacConfig), GFP_KERNEL);
+ cac_tables = kzalloc_obj(PP_SIslands_CacConfig);
if (!cac_tables)
return -ENOMEM;
@@ -2794,7 +2794,7 @@ static int si_init_smc_spll_table(struct radeon_device *rdev)
if (si_pi->spll_table_start == 0)
return -EINVAL;
- spll_table = kzalloc(sizeof(SMC_SISLANDS_SPLL_DIV_TABLE), GFP_KERNEL);
+ spll_table = kzalloc_obj(SMC_SISLANDS_SPLL_DIV_TABLE);
if (spll_table == NULL)
return -ENOMEM;
@@ -2925,6 +2925,11 @@ static void si_apply_state_adjust_rules(struct radeon_device *rdev,
max_sclk = 60000;
max_mclk = 80000;
}
+ if ((rdev->pdev->device == 0x666f) &&
+ (rdev->pdev->revision == 0x00)) {
+ max_sclk = 80000;
+ max_mclk = 95000;
+ }
} else if (rdev->family == CHIP_OLAND) {
if ((rdev->pdev->revision == 0xC7) ||
(rdev->pdev->revision == 0x80) ||
@@ -5474,7 +5479,7 @@ static int si_initialize_mc_reg_table(struct radeon_device *rdev)
u8 module_index = rv770_get_memory_module_index(rdev);
int ret;
- table = kzalloc(sizeof(struct atom_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(struct atom_mc_reg_table);
if (!table)
return -ENOMEM;
@@ -6773,9 +6778,8 @@ static int si_parse_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ state_array->ucNumEntries);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -6787,7 +6791,7 @@ static int si_parse_power_table(struct radeon_device *rdev)
&non_clock_info_array->nonClockInfo[non_clock_array_index];
if (!rdev->pm.power_state[i].clock_info)
return -EINVAL;
- ps = kzalloc(sizeof(struct ni_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct ni_ps);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -6844,7 +6848,7 @@ int si_dpm_init(struct radeon_device *rdev)
struct pci_dev *root = rdev->pdev->bus->self;
int ret;
- si_pi = kzalloc(sizeof(struct si_power_info), GFP_KERNEL);
+ si_pi = kzalloc_obj(struct si_power_info);
if (si_pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = si_pi;
@@ -6894,9 +6898,7 @@ int si_dpm_init(struct radeon_device *rdev)
return ret;
rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
- kcalloc(4,
- sizeof(struct radeon_clock_voltage_dependency_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_clock_voltage_dependency_entry, 4);
if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
r600_free_extended_power_table(rdev);
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/sumo_dpm.c b/drivers/gpu/drm/radeon/sumo_dpm.c
index b11f7c5bbcbe..acee6c82e9f0 100644
--- a/drivers/gpu/drm/radeon/sumo_dpm.c
+++ b/drivers/gpu/drm/radeon/sumo_dpm.c
@@ -1479,9 +1479,8 @@ static int sumo_parse_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ state_array->ucNumEntries);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -1495,7 +1494,7 @@ static int sumo_parse_power_table(struct radeon_device *rdev)
kfree(rdev->pm.dpm.ps);
return -EINVAL;
}
- ps = kzalloc(sizeof(struct sumo_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct sumo_ps);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -1745,7 +1744,7 @@ int sumo_dpm_init(struct radeon_device *rdev)
u32 hw_rev = (RREG32(HW_REV) & ATI_REV_ID_MASK) >> ATI_REV_ID_SHIFT;
int ret;
- pi = kzalloc(sizeof(struct sumo_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct sumo_power_info);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/radeon/trinity_dpm.c b/drivers/gpu/drm/radeon/trinity_dpm.c
index b9a2c7ccc881..566615c877cc 100644
--- a/drivers/gpu/drm/radeon/trinity_dpm.c
+++ b/drivers/gpu/drm/radeon/trinity_dpm.c
@@ -1710,9 +1710,8 @@ static int trinity_parse_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ state_array->ucNumEntries);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -1726,7 +1725,7 @@ static int trinity_parse_power_table(struct radeon_device *rdev)
kfree(rdev->pm.dpm.ps);
return -EINVAL;
}
- ps = kzalloc(sizeof(struct sumo_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct sumo_ps);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -1903,7 +1902,7 @@ int trinity_dpm_init(struct radeon_device *rdev)
struct trinity_power_info *pi;
int ret, i;
- pi = kzalloc(sizeof(struct trinity_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct trinity_power_info);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/radeon/uvd_v1_0.c b/drivers/gpu/drm/radeon/uvd_v1_0.c
index 5684639d20a6..5e6607e16244 100644
--- a/drivers/gpu/drm/radeon/uvd_v1_0.c
+++ b/drivers/gpu/drm/radeon/uvd_v1_0.c
@@ -179,7 +179,7 @@ int uvd_v1_0_init(struct radeon_device *rdev)
r = radeon_ring_lock(rdev, ring, 10);
if (r) {
- DRM_ERROR("radeon: ring failed to lock UVD ring (%d).\n", r);
+ drm_err(&rdev->ddev, "radeon: ring failed to lock UVD ring (%d).\n", r);
goto done;
}
@@ -232,7 +232,7 @@ done:
break;
}
- DRM_INFO("UVD initialized successfully.\n");
+ drm_info(&rdev->ddev, "UVD initialized successfully.\n");
}
return r;
@@ -338,7 +338,7 @@ int uvd_v1_0_start(struct radeon_device *rdev)
if (status & 2)
break;
- DRM_ERROR("UVD not responding, trying to reset the VCPU!!!\n");
+ drm_err(&rdev->ddev, "UVD not responding, trying to reset the VCPU!!!\n");
WREG32_P(UVD_SOFT_RESET, VCPU_SOFT_RESET, ~VCPU_SOFT_RESET);
mdelay(10);
WREG32_P(UVD_SOFT_RESET, 0, ~VCPU_SOFT_RESET);
@@ -347,7 +347,7 @@ int uvd_v1_0_start(struct radeon_device *rdev)
}
if (r) {
- DRM_ERROR("UVD not responding, giving up!!!\n");
+ drm_err(&rdev->ddev, "UVD not responding, giving up!!!\n");
return r;
}
@@ -427,7 +427,7 @@ int uvd_v1_0_ring_test(struct radeon_device *rdev, struct radeon_ring *ring)
WREG32(UVD_CONTEXT_ID, 0xCAFEDEAD);
r = radeon_ring_lock(rdev, ring, 3);
if (r) {
- DRM_ERROR("radeon: cp failed to lock ring %d (%d).\n",
+ drm_err(&rdev->ddev, "radeon: cp failed to lock ring %d (%d).\n",
ring->idx, r);
return r;
}
@@ -442,10 +442,10 @@ int uvd_v1_0_ring_test(struct radeon_device *rdev, struct radeon_ring *ring)
}
if (i < rdev->usec_timeout) {
- DRM_INFO("ring test on %d succeeded in %d usecs\n",
+ drm_info(&rdev->ddev, "ring test on %d succeeded in %d usecs\n",
ring->idx, i);
} else {
- DRM_ERROR("radeon: ring %d test failed (0x%08X)\n",
+ drm_err(&rdev->ddev, "radeon: ring %d test failed (0x%08X)\n",
ring->idx, tmp);
r = -EINVAL;
}
@@ -507,34 +507,34 @@ int uvd_v1_0_ib_test(struct radeon_device *rdev, struct radeon_ring *ring)
else
r = radeon_set_uvd_clocks(rdev, 53300, 40000);
if (r) {
- DRM_ERROR("radeon: failed to raise UVD clocks (%d).\n", r);
+ drm_err(&rdev->ddev, "radeon: failed to raise UVD clocks (%d).\n", r);
return r;
}
r = radeon_uvd_get_create_msg(rdev, ring->idx, 1, NULL);
if (r) {
- DRM_ERROR("radeon: failed to get create msg (%d).\n", r);
+ drm_err(&rdev->ddev, "radeon: failed to get create msg (%d).\n", r);
goto error;
}
r = radeon_uvd_get_destroy_msg(rdev, ring->idx, 1, &fence);
if (r) {
- DRM_ERROR("radeon: failed to get destroy ib (%d).\n", r);
+ drm_err(&rdev->ddev, "radeon: failed to get destroy ib (%d).\n", r);
goto error;
}
r = radeon_fence_wait_timeout(fence, false, usecs_to_jiffies(
RADEON_USEC_IB_TEST_TIMEOUT));
if (r < 0) {
- DRM_ERROR("radeon: fence wait failed (%d).\n", r);
+ drm_err(&rdev->ddev, "radeon: fence wait failed (%d).\n", r);
goto error;
} else if (r == 0) {
- DRM_ERROR("radeon: fence wait timed out.\n");
+ drm_err(&rdev->ddev, "radeon: fence wait timed out.\n");
r = -ETIMEDOUT;
goto error;
}
r = 0;
- DRM_INFO("ib test on ring %d succeeded\n", ring->idx);
+ drm_info(&rdev->ddev, "ib test on ring %d succeeded\n", ring->idx);
error:
radeon_fence_unref(&fence);
radeon_set_uvd_clocks(rdev, 0, 0);