On 5/28/2026 11:17 PM, Philippe Mathieu-Daudé wrote:
> Hi,
>
> On 29/5/26 03:40, Jithu Joseph wrote:
>> The cmd/resp, tx/rx, and IBI queue capacity values are passed straight
>> to fifo32_create(), which interprets its capacity argument as a 32-bit
>> word count. The fields and device properties were therefore misnamed.
>>
>> Rename the three struct fields and matching device-property strings:
>>
...
>> @@ -1824,12 +1824,12 @@ static void dw_i3c_realize(DeviceState *dev, Error
>> **errp)
>> static const Property dw_i3c_properties[] = {
>> DEFINE_PROP_UINT8("device-id", DWI3C, cfg.id, 0),
>> - DEFINE_PROP_UINT8("command-response-queue-capacity-bytes", DWI3C,
>> - cfg.cmd_resp_queue_capacity_bytes, 0x10),
>> - DEFINE_PROP_UINT16("tx-rx-queue-capacity-bytes", DWI3C,
>> - cfg.tx_rx_queue_capacity_bytes, 0x40),
>> - DEFINE_PROP_UINT8("ibi-queue-capacity-bytes", DWI3C,
>> - cfg.ibi_queue_capacity_bytes, 0x10),
>> + DEFINE_PROP_UINT8("command-response-queue-capacity-words", DWI3C,
>> + cfg.cmd_resp_queue_capacity_words, 0x10),
>> + DEFINE_PROP_UINT16("tx-rx-queue-capacity-words", DWI3C,
>> + cfg.tx_rx_queue_capacity_words, 0x40),
>> + DEFINE_PROP_UINT8("ibi-queue-capacity-words", DWI3C,
>> + cfg.ibi_queue_capacity_words, 0x10),
>
> Properties are user exposed, should we keep deprecated aliases?
Technically they are reachable via a qemu commandline parameter like "-global
"driver=dw.i3c,property=tx-rx-queue-capacity-bytes,value=64"" ...
However, the _bytes properties only controlled the internal FIFO backing-store
allocation (fifo32_create())
The advertised reset values in QUEUE_STATUS_LEVEL/DATA_BUFFER_STATUS_LEVEL —
which are what the Linux driver actually reads at probe — were hardcoded and
ignored these properties entirely.
So a user setting tx-rx-queue-capacity-bytes=N in v11.0.0 would have changed
the internal allocation but had no effect on the guest-visible depth.
The property was never fully wired up, so there is arguably no correct external
behavior to preserve (other than somebody's qemu commandline not starting with
an error like can't apply global dw.i3c.tx-rx-queue-capacity-bytes=64: Property
'dw.i3c.tx-rx-queue-capacity-bytes' not found)
That said, if you feel a deprecated alias is warranted, I dont mind keeping
both (though my preference would be to just keep the correctly named properties
alone, to avoid confusion)
>
>> DEFINE_PROP_UINT8("num-addressable-devices", DWI3C,
>> cfg.num_addressable_devices, 8),
>> DEFINE_PROP_UINT16("dev-addr-table-pointer", DWI3C,
>
Thanks
Jithu