if (!drm_dev_enter(adev_to_drm(adev), &idx))
return;
- BUG_ON(!IS_ALIGNED(pos, 4) || !IS_ALIGNED(size, 4));
+ if (!IS_ALIGNED(pos, 4) || !IS_ALIGNED(size, 4)) {
+ dev_err(adev->dev, "unaligned pos/size (pos=0x%llx, size=0x%zx)\n",
+ pos, size);
+ drm_dev_exit(idx);
+ return;
+ }
spin_lock_irqsave(&adev->mmio_idx_lock, flags);
for (last = pos + size; pos < last; pos += 4) {
if (offset < adev->rmmio_size)
return (readb(adev->rmmio + offset));
- BUG();
+
+ dev_err(adev->dev, "invalid MMIO read offset 0x%x (rmmio size 0x%x)\n",
+ offset, (unsigned int)adev->rmmio_size);
+ return 0;
}
/**
if (amdgpu_device_skip_hw_access(adev))
return;
- if (offset < adev->rmmio_size)
+ if (offset < adev->rmmio_size) {
writeb(value, adev->rmmio + offset);
- else
- BUG();
+ } else {
+ dev_err(adev->dev, "invalid MMIO write offset 0x%x (rmmio size 0x%x)\n",
+ offset, (unsigned int)adev->rmmio_size);
+ return;
+ }
}
/**
xgpu_tonga_golden_common_all));
break;
default:
- BUG_ON("Doesn't support chip type.\n");
+ dev_err(adev->dev, "Doesn't support chip type %d\n", adev->asic_type);
break;
}
}
struct amdgpu_dm_connector *aconnector = link->priv;
if (!aconnector) {
- BUG_ON("Failed to find connector for link!");
+ DRM_ERROR("Failed to find connector for link!");
return true;
}