if dma_start % DmaAddress::from(DMA_LEN) > 0 {
dev_err!(
self.dev,
- "DMA transfer start addresses must be a multiple of {}",
+ "DMA transfer start addresses must be a multiple of {}\n",
DMA_LEN
);
return Err(EINVAL);
.and_then(|size| size.checked_add(load_offsets.src_start))
{
None => {
- dev_err!(self.dev, "DMA transfer length overflow");
+ dev_err!(self.dev, "DMA transfer length overflow\n");
return Err(EOVERFLOW);
}
Some(upper_bound) if usize::from_safe_cast(upper_bound) > fw.size() => {
- dev_err!(self.dev, "DMA transfer goes beyond range of DMA object");
+ dev_err!(self.dev, "DMA transfer goes beyond range of DMA object\n");
return Err(EINVAL);
}
Some(_) => (),
let ucode_idx = match usize::from(ucode_id) {
ucode_id @ 1..=regs::NV_FUSE_OPT_FPF_SIZE => ucode_id - 1,
_ => {
- dev_err!(dev, "invalid ucode id {:#x}", ucode_id);
+ dev_err!(dev, "invalid ucode id {:#x}\n", ucode_id);
return Err(EINVAL);
}
};
} else if engine_id_mask & 0x0400 != 0 {
regs::NV_FUSE_OPT_FPF_GSP_UCODE1_VERSION::read(bar, ucode_idx).data()
} else {
- dev_err!(dev, "unexpected engine_id_mask {:#x}", engine_id_mask);
+ dev_err!(dev, "unexpected engine_id_mask {:#x}\n", engine_id_mask);
return Err(EINVAL);
};
let _ = hal.write_sysmem_flush_page(bar, 0).inspect_err(|e| {
dev_warn!(
&self.device,
- "failed to unregister sysmem flush page: {:?}",
+ "failed to unregister sysmem flush page: {:?}\n",
e
)
});
// We must wait for GFW_BOOT completion before doing any significant setup on the GPU.
_: {
gfw::wait_gfw_boot_completion(bar)
- .inspect_err(|_| dev_err!(pdev.as_ref(), "GFW boot did not complete"))?;
+ .inspect_err(|_| dev_err!(pdev.as_ref(), "GFW boot did not complete\n"))?;
},
sysmem_flush: SysmemFlush::register(pdev.as_ref(), bar, spec.chipset)?,
if frts_status != 0 {
dev_err!(
dev,
- "FWSEC-FRTS returned with error code {:#x}",
+ "FWSEC-FRTS returned with error code {:#x}\n",
frts_status
);
{
dev_err!(
self.dev,
- "GSP RPC: receive: Call {} - bad checksum",
+ "GSP RPC: receive: Call {} - bad checksum\n",
header.sequence()
);
return Err(EIO);
};
if data.len() < size {
- dev_err!(dev, "Data is not enough for command");
+ dev_err!(dev, "Data is not enough for command\n");
return Err(EINVAL);
}
cmd_result.map_or_else(
|_err| {
- dev_err!(self.dev, "Error parsing command at offset {}", offset);
+ dev_err!(self.dev, "Error parsing command at offset {}\n", offset);
None
},
|(cmd, size)| {
dev: params.dev,
};
- dev_dbg!(sequencer.dev, "Running CPU Sequencer commands");
+ dev_dbg!(sequencer.dev, "Running CPU Sequencer commands\n");
for cmd_result in sequencer.iter() {
match cmd_result {
Err(e) => {
dev_err!(
sequencer.dev,
- "Error running command at index {}",
+ "Error running command at index {}\n",
sequencer.seq_info.cmd_index
);
return Err(e);
dev_dbg!(
sequencer.dev,
- "CPU Sequencer commands completed successfully"
+ "CPU Sequencer commands completed successfully\n"
);
Ok(())
}
// read the 4 bytes at the offset specified in the token
let offset = usize::from(token.data_offset);
let bytes: [u8; 4] = self.base.data[offset..offset + 4].try_into().map_err(|_| {
- dev_err!(self.base.dev, "Failed to convert data slice to array");
+ dev_err!(self.base.dev, "Failed to convert data slice to array\n");
EINVAL
})?;