On 4/14/25 7:14 PM, Jeff Hugo wrote:
On 4/14/2025 1:32 AM, Muhammad Usama Anjum wrote:I just tested this. I've used an old firmware from last year vs the
On 4/12/25 6:22 AM, Krishna Chaitanya Chundru wrote:
I've not found any documentation on it. Let's wait for others to review
On 4/12/2025 12:02 AM, Muhammad Usama Anjum wrote:
On 4/11/25 1:39 PM, Krishna Chaitanya Chundru wrote:I don't think firmware can be updated before suspend/hibernate. I don't
I was trying to research if the firmware can change or not. I've not
On 4/11/2025 12:32 PM, Muhammad Usama Anjum wrote:
On 4/11/25 8:37 AM, Krishna Chaitanya Chundru wrote:why the firmware image size will change between suspend & resume?
Yes, correct.
On 4/10/2025 8:26 PM, Muhammad Usama Anjum wrote:
Fix dma_direct_alloc() failure at resume time during bhie_tableIf firmware image will change between suspend and resume ?
allocation. There is a crash report where at resume time, the
memory
from the dma doesn't get allocated and MHI fails to re-initialize.
There may be fragmentation of some kind which fails the allocation
call.
To fix it, don't free the memory at power down during suspend /
hibernation. Instead, use the same allocated memory again after
every
resume / hibernation. This patch has been tested with resume and
hibernation both.
The rddm is of constant size for a given hardware. While the
fbc_image
size depends on the firmware. If the firmware changes, we'll
free and
who will update the firmware image after bootup?
It is not expected behaviour.
found any documentation on it.
If the firmare is updated in filesystem before suspend/hibernate, would
the new firwmare be loaded the next time kernel resumes as the older
firmware is no where to be found?
What do you think about this?
see any reason why it can be updated. If you think it can be updated
please quote relevant doc.
and it it cannot be updated, I'll remove this part.
Wouldn't this be trivial to test? Boot the device, go modify the
firmware on the filesystem, then go through a suspend cycle.
latest one.
Firmware A: old firmware size: 5349376
Firmware B: new firmware size: 5165056
A here has bigger size.
1. I loaded A at boot and then replaced the firmwares in filesystem with
B before syspend. At resume time, B was loaded fine by freeing the
bigger memory area and allocating the smaller one.
2. I loaded B and then replaced A in its place before suspend. At resume
time, memory was freed and larger memory was allocated. But driver
wasn't able to initialize correctly:
[ 184.051902] ath11k_pci 0000:03:00.0: timeout while waiting for
restart complete
[ 184.051916] ath11k_pci 0000:03:00.0: failed to resume core: -110
[ 184.051923] ath11k_pci 0000:03:00.0: PM: dpm_run_callback():
pci_pm_resume returns -110
[ 184.051945] ath11k_pci 0000:03:00.0: PM: failed to resume async:
error -110
[ 187.251911] ath11k_pci 0000:03:00.0: wmi command 16387 timeout
[ 187.251924] ath11k_pci 0000:03:00.0: failed to send
WMI_PDEV_SET_PARAM cmd
[ 187.251933] ath11k_pci 0000:03:00.0: failed to enable dynamic bw: -11
So should we generalize above that changing firmware at
suspend/hibernation time isn't supported. If firmware package is
updated, does user restarts every time?