asahi: add XML for cdm stream link with return
I don't know of any case of Apple's driver using this, but it seems to work. The stream link bit is identical to VDM so that was easy, the tricky part was the return but I bruteforced the encoding space and this is the (only) thing that worked. So add the XML. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32320>
This commit is contained in:

committed by
Marge Bot

parent
ebdca6344e
commit
0755b6d3d5
@@ -984,6 +984,7 @@
|
||||
<value name="Stream Link" value="1"/>
|
||||
<value name="Stream Terminate" value="2"/>
|
||||
<value name="Barrier" value="3"/>
|
||||
<value name="Stream Return" value="4"/>
|
||||
</enum>
|
||||
|
||||
<enum name="CDM Mode">
|
||||
@@ -1065,6 +1066,7 @@
|
||||
|
||||
<struct name="CDM Stream Link" size="8">
|
||||
<field name="Target hi" size="8" start="0" type="hex"/>
|
||||
<field name="With return" size="1" start="28" type="bool"/>
|
||||
<field name="Block Type" size="3" start="29" type="CDM Block Type" exact="Stream Link"/>
|
||||
<field name="Target lo" size="32" start="32" type="hex"/>
|
||||
</struct>
|
||||
@@ -1072,6 +1074,10 @@
|
||||
<struct name="CDM Stream Terminate" size="8">
|
||||
<field name="Block Type" size="3" start="29" type="CDM Block Type" exact="Stream Terminate"/>
|
||||
</struct>
|
||||
|
||||
<struct name="CDM Stream Return" size="8">
|
||||
<field name="Block Type" size="3" start="29" type="CDM Block Type" exact="Stream Return"/>
|
||||
</struct>
|
||||
<!-- CDM commands end -->
|
||||
|
||||
<!--- The rest of this file is likely software defined by macOS kernel -->
|
||||
|
@@ -569,7 +569,7 @@ agxdecode_cdm(struct agxdecode_ctx *ctx, const uint8_t *map, uint64_t *link,
|
||||
agx_unpack(agxdecode_dump_stream, map, CDM_STREAM_LINK, hdr);
|
||||
DUMP_UNPACKED(CDM_STREAM_LINK, hdr, "Stream Link\n");
|
||||
*link = hdr.target_lo | (((uint64_t)hdr.target_hi) << 32);
|
||||
return STATE_LINK;
|
||||
return hdr.with_return ? STATE_CALL : STATE_LINK;
|
||||
}
|
||||
|
||||
case AGX_CDM_BLOCK_TYPE_STREAM_TERMINATE: {
|
||||
@@ -577,6 +577,11 @@ agxdecode_cdm(struct agxdecode_ctx *ctx, const uint8_t *map, uint64_t *link,
|
||||
return STATE_DONE;
|
||||
}
|
||||
|
||||
case AGX_CDM_BLOCK_TYPE_STREAM_RETURN: {
|
||||
DUMP_CL(CDM_STREAM_RETURN, map, "Stream Return");
|
||||
return STATE_RET;
|
||||
}
|
||||
|
||||
case AGX_CDM_BLOCK_TYPE_BARRIER: {
|
||||
DUMP_CL(CDM_BARRIER, map, "Barrier");
|
||||
return AGX_CDM_BARRIER_LENGTH;
|
||||
|
Reference in New Issue
Block a user