1236,6 → 1236,8 |
static void atom_index_iio(struct atom_context *ctx, int base) |
{ |
ctx->iio = kzalloc(2 * 256, GFP_KERNEL); |
if (!ctx->iio) |
return; |
while (CU8(base) == ATOM_IIO_START) { |
ctx->iio[CU8(base + 1)] = base + 2; |
base += 2; |
1285,6 → 1287,10 |
ctx->cmd_table = CU16(base + ATOM_ROM_CMD_PTR); |
ctx->data_table = CU16(base + ATOM_ROM_DATA_PTR); |
atom_index_iio(ctx, CU16(ctx->data_table + ATOM_DATA_IIO_PTR) + 4); |
if (!ctx->iio) { |
atom_destroy(ctx); |
return NULL; |
} |
|
str = CSTR(CU16(base + ATOM_ROM_MSG_PTR)); |
while (*str && ((*str == '\n') || (*str == '\r'))) |
1333,7 → 1339,6 |
|
void atom_destroy(struct atom_context *ctx) |
{ |
if (ctx->iio) |
kfree(ctx->iio); |
kfree(ctx); |
} |
1387,10 → 1392,10 |
firmware_usage = (struct _ATOM_VRAM_USAGE_BY_FIRMWARE *)(ctx->bios + data_offset); |
|
DRM_DEBUG("atom firmware requested %08x %dkb\n", |
firmware_usage->asFirmwareVramReserveInfo[0].ulStartAddrUsedByFirmware, |
firmware_usage->asFirmwareVramReserveInfo[0].usFirmwareUseInKb); |
le32_to_cpu(firmware_usage->asFirmwareVramReserveInfo[0].ulStartAddrUsedByFirmware), |
le16_to_cpu(firmware_usage->asFirmwareVramReserveInfo[0].usFirmwareUseInKb)); |
|
usage_bytes = firmware_usage->asFirmwareVramReserveInfo[0].usFirmwareUseInKb * 1024; |
usage_bytes = le16_to_cpu(firmware_usage->asFirmwareVramReserveInfo[0].usFirmwareUseInKb) * 1024; |
} |
ctx->scratch_size_bytes = 0; |
if (usage_bytes == 0) |