public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Lizhi Hou <lizhi.hou@amd.com>
To: Mario Limonciello <mario.limonciello@amd.com>,
	<ogabbay@kernel.org>, <quic_jhugo@quicinc.com>,
	<dri-devel@lists.freedesktop.org>,
	<karol.wachowski@linux.intel.com>
Cc: David Zhang <yidong.zhang@amd.com>,
	<linux-kernel@vger.kernel.org>, <max.zhen@amd.com>,
	<sonal.santan@amd.com>, Hayden Laccabue <Hayden.Laccabue@amd.com>
Subject: Re: [PATCH V1 5/6] accel/amdxdna: Add AIE4 metadata query support
Date: Tue, 5 May 2026 11:03:28 -0700	[thread overview]
Message-ID: <2193be15-b0ce-c8c3-140c-7278b86677f7@amd.com> (raw)
In-Reply-To: <0399e649-4759-412e-b89c-4759d1469fad@amd.com>


On 5/5/26 10:14, Mario Limonciello wrote:
>
>
> On 5/5/26 11:09, Lizhi Hou wrote:
>> From: David Zhang <yidong.zhang@amd.com>
>>
>> Add support for querying device metadata on AIE4 via a mailbox message.
>> Refactor aie2_get_aie_metadata() into a common helper by moving it to
>> aie.c and renaming it to amdxdna_get_metadata(), allowing both AIE2
>> and AIE4 to reuse the implementation.
>>
>> Co-developed-by: Hayden Laccabue <Hayden.Laccabue@amd.com>
>> Signed-off-by: Hayden Laccabue <Hayden.Laccabue@amd.com>
>> Signed-off-by: David Zhang <yidong.zhang@amd.com>
>> Signed-off-by: Lizhi Hou <lizhi.hou@amd.com>
>> ---
>>   drivers/accel/amdxdna/aie.c           | 45 ++++++++++++++++++++++
>>   drivers/accel/amdxdna/aie.h           | 27 ++++++++++++++
>>   drivers/accel/amdxdna/aie2_ctx.c      |  4 +-
>>   drivers/accel/amdxdna/aie2_message.c  |  2 +-
>>   drivers/accel/amdxdna/aie2_pci.c      | 54 ++-------------------------
>>   drivers/accel/amdxdna/aie2_pci.h      | 24 ------------
>>   drivers/accel/amdxdna/aie4_message.c  | 37 ++++++++++++++++++
>>   drivers/accel/amdxdna/aie4_msg_priv.h | 34 +++++++++++++++++
>>   drivers/accel/amdxdna/aie4_pci.c      | 30 +++++++++++++++
>>   drivers/accel/amdxdna/aie4_pci.h      |  1 +
>>   10 files changed, 181 insertions(+), 77 deletions(-)
>>
>> diff --git a/drivers/accel/amdxdna/aie.c b/drivers/accel/amdxdna/aie.c
>> index 66849ba9026a..a31051cc1ec8 100644
>> --- a/drivers/accel/amdxdna/aie.c
>> +++ b/drivers/accel/amdxdna/aie.c
>> @@ -117,3 +117,48 @@ void amdxdna_vbnv_init(struct amdxdna_dev *xdna)
>>         amdxdna_update_vbnv(xdna, info->rev_vbnv_tbl, rev);
>>   }
>> +
>> +int amdxdna_get_metadata(struct aie_device *aie,
>> +             struct amdxdna_client *client,
>> +             struct amdxdna_drm_get_info *args)
>> +{
>> +    struct amdxdna_drm_query_aie_metadata *meta;
>> +    int ret = 0;
>> +    u32 buf_sz;
>> +
>> +    meta = kzalloc_obj(*meta);
>> +    if (!meta)
>> +        return -ENOMEM;
>> +
>> +    meta->col_size = aie->metadata.size;
>> +    meta->cols = aie->metadata.cols;
>> +    meta->rows = aie->metadata.rows;
>> +
>> +    meta->version.major = aie->metadata.version.major;
>> +    meta->version.minor = aie->metadata.version.minor;
>> +
>> +    meta->core.row_count = aie->metadata.core.row_count;
>> +    meta->core.row_start = aie->metadata.core.row_start;
>> +    meta->core.dma_channel_count = 
>> aie->metadata.core.dma_channel_count;
>> +    meta->core.lock_count = aie->metadata.core.lock_count;
>> +    meta->core.event_reg_count = aie->metadata.core.event_reg_count;
>> +
>> +    meta->mem.row_count = aie->metadata.mem.row_count;
>> +    meta->mem.row_start = aie->metadata.mem.row_start;
>> +    meta->mem.dma_channel_count = aie->metadata.mem.dma_channel_count;
>> +    meta->mem.lock_count = aie->metadata.mem.lock_count;
>> +    meta->mem.event_reg_count = aie->metadata.mem.event_reg_count;
>> +
>> +    meta->shim.row_count = aie->metadata.shim.row_count;
>> +    meta->shim.row_start = aie->metadata.shim.row_start;
>> +    meta->shim.dma_channel_count = 
>> aie->metadata.shim.dma_channel_count;
>> +    meta->shim.lock_count = aie->metadata.shim.lock_count;
>> +    meta->shim.event_reg_count = aie->metadata.shim.event_reg_count;
>
> Looking at the code the structures for
>
> struct amdxdna_drm_query_aie_metadata
> and
> struct aie_metadata
>
> Look identical.  Rather than copying every member, can you just use 
> copy everything from aie->metadata to args->buffer directly?
>
> That could let you save the kzalloc/kfree call.

Agree. I will just remove the redundant structures in V2.

Thanks,

Lizhi

>
>
>> +
>> +    buf_sz = min(args->buffer_size, sizeof(*meta));
>> +    if (copy_to_user(u64_to_user_ptr(args->buffer), meta, buf_sz))
>> +        ret = -EFAULT;
>> +
>> +    kfree(meta);
>> +    return ret;
>> +}
>> diff --git a/drivers/accel/amdxdna/aie.h b/drivers/accel/amdxdna/aie.h
>> index 7a68b114f235..4bb3719ee0c0 100644
>> --- a/drivers/accel/amdxdna/aie.h
>> +++ b/drivers/accel/amdxdna/aie.h
>> @@ -14,6 +14,29 @@
>>   struct psp_device;
>>   struct smu_device;
>>   +struct aie_version {
>> +    u16 major;
>> +    u16 minor;
>> +};
>> +
>> +struct aie_tile_metadata {
>> +    u16 row_count;
>> +    u16 row_start;
>> +    u16 dma_channel_count;
>> +    u16 lock_count;
>> +    u16 event_reg_count;
>> +};
>> +
>> +struct aie_metadata {
>> +    u32 size;
>> +    u16 cols;
>> +    u16 rows;
>> +    struct aie_version version;
>> +    struct aie_tile_metadata core;
>> +    struct aie_tile_metadata mem;
>> +    struct aie_tile_metadata shim;
>> +};
>> +
>>   struct aie_device {
>>       struct amdxdna_dev *xdna;
>>       struct mailbox_channel *mgmt_chann;
>> @@ -26,6 +49,8 @@ struct aie_device {
>>         struct psp_device *psp_hdl;
>>       struct smu_device *smu_hdl;
>> +
>> +    struct aie_metadata metadata;
>>   };
>>     #define DECLARE_AIE_MSG(name, op) \
>> @@ -94,6 +119,8 @@ void aie_destroy_chann(struct aie_device *aie, 
>> struct mailbox_channel **chann);
>>   int aie_send_mgmt_msg_wait(struct aie_device *aie, struct 
>> xdna_mailbox_msg *msg);
>>   int aie_check_protocol(struct aie_device *aie, u32 fw_major, u32 
>> fw_minor);
>>   void amdxdna_vbnv_init(struct amdxdna_dev *xdna);
>> +int amdxdna_get_metadata(struct aie_device *aie, struct 
>> amdxdna_client *client,
>> +             struct amdxdna_drm_get_info *args);
>>     /* aie_psp.c */
>>   struct psp_device *aiem_psp_create(struct drm_device *ddev, struct 
>> psp_config *conf);
>> diff --git a/drivers/accel/amdxdna/aie2_ctx.c 
>> b/drivers/accel/amdxdna/aie2_ctx.c
>> index 139825ac8515..7d6094aefb6f 100644
>> --- a/drivers/accel/amdxdna/aie2_ctx.c
>> +++ b/drivers/accel/amdxdna/aie2_ctx.c
>> @@ -489,12 +489,12 @@ static int aie2_hwctx_col_list(struct 
>> amdxdna_hwctx *hwctx)
>>       }
>>         ndev = xdna->dev_handle;
>> -    if (unlikely(!ndev->metadata.core.row_count)) {
>> +    if (unlikely(!ndev->aie.metadata.core.row_count)) {
>>           XDNA_WARN(xdna, "Core tile row count is zero");
>>           return -EINVAL;
>>       }
>>   -    hwctx->num_col = hwctx->num_tiles / 
>> ndev->metadata.core.row_count;
>> +    hwctx->num_col = hwctx->num_tiles / 
>> ndev->aie.metadata.core.row_count;
>>       if (!hwctx->num_col || hwctx->num_col > ndev->total_col) {
>>           XDNA_ERR(xdna, "Invalid num_col %d", hwctx->num_col);
>>           return -EINVAL;
>> diff --git a/drivers/accel/amdxdna/aie2_message.c 
>> b/drivers/accel/amdxdna/aie2_message.c
>> index 6e98af7b74db..f555ffecea6f 100644
>> --- a/drivers/accel/amdxdna/aie2_message.c
>> +++ b/drivers/accel/amdxdna/aie2_message.c
>> @@ -375,7 +375,7 @@ int aie2_query_status(struct amdxdna_dev_hdl 
>> *ndev, char __user *buf,
>>       u8 *buff_addr;
>>       int ret;
>>   -    buf_sz = ndev->metadata.cols * ndev->metadata.size;
>> +    buf_sz = ndev->aie.metadata.cols * ndev->aie.metadata.size;
>>       buff_addr = aie2_alloc_msg_buffer(ndev, &buf_sz, &dma_addr);
>>       if (IS_ERR(buff_addr))
>>           return PTR_ERR(buff_addr);
>> diff --git a/drivers/accel/amdxdna/aie2_pci.c 
>> b/drivers/accel/amdxdna/aie2_pci.c
>> index f0ddb843eb21..6c8a0f70b73d 100644
>> --- a/drivers/accel/amdxdna/aie2_pci.c
>> +++ b/drivers/accel/amdxdna/aie2_pci.c
>> @@ -219,13 +219,13 @@ static int aie2_mgmt_fw_query(struct 
>> amdxdna_dev_hdl *ndev)
>>           return ret;
>>       }
>>   -    ret = aie2_query_aie_metadata(ndev, &ndev->metadata);
>> +    ret = aie2_query_aie_metadata(ndev, &ndev->aie.metadata);
>>       if (ret) {
>>           XDNA_ERR(ndev->aie.xdna, "Query AIE metadata failed");
>>           return ret;
>>       }
>>   -    ndev->total_col = min(aie2_max_col, ndev->metadata.cols);
>> +    ndev->total_col = min(aie2_max_col, ndev->aie.metadata.cols);
>>         return 0;
>>   }
>> @@ -658,53 +658,6 @@ static int aie2_get_aie_status(struct 
>> amdxdna_client *client,
>>       return 0;
>>   }
>>   -static int aie2_get_aie_metadata(struct amdxdna_client *client,
>> -                 struct amdxdna_drm_get_info *args)
>> -{
>> -    struct amdxdna_drm_query_aie_metadata *meta;
>> -    struct amdxdna_dev *xdna = client->xdna;
>> -    struct amdxdna_dev_hdl *ndev;
>> -    int ret = 0;
>> -    u32 buf_sz;
>> -
>> -    ndev = xdna->dev_handle;
>> -    meta = kzalloc_obj(*meta);
>> -    if (!meta)
>> -        return -ENOMEM;
>> -
>> -    meta->col_size = ndev->metadata.size;
>> -    meta->cols = ndev->metadata.cols;
>> -    meta->rows = ndev->metadata.rows;
>> -
>> -    meta->version.major = ndev->metadata.version.major;
>> -    meta->version.minor = ndev->metadata.version.minor;
>> -
>> -    meta->core.row_count = ndev->metadata.core.row_count;
>> -    meta->core.row_start = ndev->metadata.core.row_start;
>> -    meta->core.dma_channel_count = 
>> ndev->metadata.core.dma_channel_count;
>> -    meta->core.lock_count = ndev->metadata.core.lock_count;
>> -    meta->core.event_reg_count = ndev->metadata.core.event_reg_count;
>> -
>> -    meta->mem.row_count = ndev->metadata.mem.row_count;
>> -    meta->mem.row_start = ndev->metadata.mem.row_start;
>> -    meta->mem.dma_channel_count = ndev->metadata.mem.dma_channel_count;
>> -    meta->mem.lock_count = ndev->metadata.mem.lock_count;
>> -    meta->mem.event_reg_count = ndev->metadata.mem.event_reg_count;
>> -
>> -    meta->shim.row_count = ndev->metadata.shim.row_count;
>> -    meta->shim.row_start = ndev->metadata.shim.row_start;
>> -    meta->shim.dma_channel_count = 
>> ndev->metadata.shim.dma_channel_count;
>> -    meta->shim.lock_count = ndev->metadata.shim.lock_count;
>> -    meta->shim.event_reg_count = ndev->metadata.shim.event_reg_count;
>> -
>> -    buf_sz = min(args->buffer_size, sizeof(*meta));
>> -    if (copy_to_user(u64_to_user_ptr(args->buffer), meta, buf_sz))
>> -        ret = -EFAULT;
>> -
>> -    kfree(meta);
>> -    return ret;
>> -}
>> -
>>   static int aie2_get_aie_version(struct amdxdna_client *client,
>>                   struct amdxdna_drm_get_info *args)
>>   {
>> @@ -1039,6 +992,7 @@ static int aie2_get_preempt_state(struct 
>> amdxdna_client *client,
>>   static int aie2_get_info(struct amdxdna_client *client, struct 
>> amdxdna_drm_get_info *args)
>>   {
>>       struct amdxdna_dev *xdna = client->xdna;
>> +    struct amdxdna_dev_hdl *ndev = xdna->dev_handle;
>>       int ret, idx;
>>         if (!drm_dev_enter(&xdna->ddev, &idx))
>> @@ -1053,7 +1007,7 @@ static int aie2_get_info(struct amdxdna_client 
>> *client, struct amdxdna_drm_get_i
>>           ret = aie2_get_aie_status(client, args);
>>           break;
>>       case DRM_AMDXDNA_QUERY_AIE_METADATA:
>> -        ret = aie2_get_aie_metadata(client, args);
>> +        ret = amdxdna_get_metadata(&ndev->aie, client, args);
>>           break;
>>       case DRM_AMDXDNA_QUERY_AIE_VERSION:
>>           ret = aie2_get_aie_version(client, args);
>> diff --git a/drivers/accel/amdxdna/aie2_pci.h 
>> b/drivers/accel/amdxdna/aie2_pci.h
>> index f12073175676..c884fed610f9 100644
>> --- a/drivers/accel/amdxdna/aie2_pci.h
>> +++ b/drivers/accel/amdxdna/aie2_pci.h
>> @@ -77,29 +77,6 @@ struct amdxdna_fw_ver;
>>   struct amdxdna_hwctx;
>>   struct amdxdna_sched_job;
>>   -struct aie_version {
>> -    u16 major;
>> -    u16 minor;
>> -};
>> -
>> -struct aie_tile_metadata {
>> -    u16 row_count;
>> -    u16 row_start;
>> -    u16 dma_channel_count;
>> -    u16 lock_count;
>> -    u16 event_reg_count;
>> -};
>> -
>> -struct aie_metadata {
>> -    u32 size;
>> -    u16 cols;
>> -    u16 rows;
>> -    struct aie_version version;
>> -    struct aie_tile_metadata core;
>> -    struct aie_tile_metadata mem;
>> -    struct aie_tile_metadata shim;
>> -};
>> -
>>   enum rt_config_category {
>>       AIE2_RT_CFG_INIT,
>>       AIE2_RT_CFG_CLK_GATING,
>> @@ -178,7 +155,6 @@ struct amdxdna_dev_hdl {
>>         u32                total_col;
>>       struct aie_version        version;
>> -    struct aie_metadata        metadata;
>>       struct aie2_exec_msg_ops    *exec_msg_ops;
>>         /* power management and clock*/
>> diff --git a/drivers/accel/amdxdna/aie4_message.c 
>> b/drivers/accel/amdxdna/aie4_message.c
>> index d621dd32ac40..ac89a9a842b2 100644
>> --- a/drivers/accel/amdxdna/aie4_message.c
>> +++ b/drivers/accel/amdxdna/aie4_message.c
>> @@ -25,3 +25,40 @@ int aie4_suspend_fw(struct amdxdna_dev_hdl *ndev)
>>         return ret;
>>   }
>> +
>> +int aie4_query_aie_metadata(struct amdxdna_dev_hdl *ndev, struct 
>> aie_metadata *metadata)
>> +{
>> +    DECLARE_AIE_MSG(aie4_msg_aie4_tile_info, 
>> AIE4_MSG_OP_AIE_TILE_INFO);
>> +    int ret;
>> +
>> +    ret = aie_send_mgmt_msg_wait(&ndev->aie, &msg);
>> +    if (ret)
>> +        return ret;
>> +
>> +    metadata->size = resp.info.size;
>> +    metadata->cols = resp.info.cols;
>> +    metadata->rows = resp.info.rows;
>> +
>> +    metadata->version.major = resp.info.major;
>> +    metadata->version.minor = resp.info.minor;
>> +
>> +    metadata->core.row_count = resp.info.core_rows;
>> +    metadata->core.row_start = resp.info.core_row_start;
>> +    metadata->core.dma_channel_count = resp.info.core_dma_channels;
>> +    metadata->core.lock_count = resp.info.core_locks;
>> +    metadata->core.event_reg_count = resp.info.core_events;
>> +
>> +    metadata->mem.row_count = resp.info.mem_rows;
>> +    metadata->mem.row_start = resp.info.mem_row_start;
>> +    metadata->mem.dma_channel_count = resp.info.mem_dma_channels;
>> +    metadata->mem.lock_count = resp.info.mem_locks;
>> +    metadata->mem.event_reg_count = resp.info.mem_events;
>> +
>> +    metadata->shim.row_count = resp.info.shim_rows;
>> +    metadata->shim.row_start = resp.info.shim_row_start;
>> +    metadata->shim.dma_channel_count = resp.info.shim_dma_channels;
>> +    metadata->shim.lock_count = resp.info.shim_locks;
>> +    metadata->shim.event_reg_count = resp.info.shim_events;
>> +
>> +    return 0;
>> +}
>> diff --git a/drivers/accel/amdxdna/aie4_msg_priv.h 
>> b/drivers/accel/amdxdna/aie4_msg_priv.h
>> index 7faa01ca3436..69e220e40900 100644
>> --- a/drivers/accel/amdxdna/aie4_msg_priv.h
>> +++ b/drivers/accel/amdxdna/aie4_msg_priv.h
>> @@ -18,6 +18,7 @@ enum aie4_msg_opcode {
>>       AIE4_MSG_OP_DESTROY_PARTITION                = 0x30002,
>>       AIE4_MSG_OP_CREATE_HW_CONTEXT                = 0x30003,
>>       AIE4_MSG_OP_DESTROY_HW_CONTEXT               = 0x30004,
>> +    AIE4_MSG_OP_AIE_TILE_INFO                    = 0x30006,
>>   };
>>     enum aie4_msg_status {
>> @@ -96,4 +97,37 @@ struct aie4_msg_destroy_hw_context_resp {
>>       enum aie4_msg_status status;
>>   } __packed;
>>   +struct aie4_tile_info {
>> +    __u32 size;
>> +    __u16 major;
>> +    __u16 minor;
>> +    __u16 cols;
>> +    __u16 rows;
>> +    __u16 core_rows;
>> +    __u16 mem_rows;
>> +    __u16 shim_rows;
>> +    __u16 core_row_start;
>> +    __u16 mem_row_start;
>> +    __u16 shim_row_start;
>> +    __u16 core_dma_channels;
>> +    __u16 mem_dma_channels;
>> +    __u16 shim_dma_channels;
>> +    __u16 core_locks;
>> +    __u16 mem_locks;
>> +    __u16 shim_locks;
>> +    __u16 core_events;
>> +    __u16 mem_events;
>> +    __u16 shim_events;
>> +    __u16 resvd;
>> +} __packed;
>> +
>> +struct aie4_msg_aie4_tile_info_req {
>> +    __u32 resvd;
>> +} __packed;
>> +
>> +struct aie4_msg_aie4_tile_info_resp {
>> +    enum aie4_msg_status status;
>> +    struct aie4_tile_info info;
>> +} __packed;
>> +
>>   #endif /* _AIE4_MSG_PRIV_H_ */
>> diff --git a/drivers/accel/amdxdna/aie4_pci.c 
>> b/drivers/accel/amdxdna/aie4_pci.c
>> index 9ff34ce57fcb..8b5eff0e45c1 100644
>> --- a/drivers/accel/amdxdna/aie4_pci.c
>> +++ b/drivers/accel/amdxdna/aie4_pci.c
>> @@ -269,6 +269,11 @@ static void aie4_partition_fini(struct 
>> amdxdna_dev_hdl *ndev)
>>           XDNA_ERR(xdna, "partition fini failed: %d", ret);
>>   }
>>   +static int aie4_query(struct amdxdna_dev_hdl *ndev)
>> +{
>> +    return aie4_query_aie_metadata(ndev, &ndev->aie.metadata);
>> +}
>> +
>>   static int aie4_pf_hw_start(struct amdxdna_dev_hdl *ndev)
>>   {
>>       int ret;
>> @@ -308,6 +313,10 @@ static int aie4_vf_hw_start(struct 
>> amdxdna_dev_hdl *ndev)
>>       if (ret)
>>           return ret;
>>   +    ret = aie4_query(ndev);
>> +    if (ret)
>> +        goto mailbox_fini;
>> +
>>       ret = aie4_partition_init(ndev);
>>       if (ret)
>>           goto mailbox_fini;
>> @@ -535,6 +544,26 @@ static int aie4_doorbell_mmap(struct 
>> amdxdna_client *client, struct vm_area_stru
>>       return ret;
>>   }
>>   +static int aie4_get_info(struct amdxdna_client *client, struct 
>> amdxdna_drm_get_info *args)
>> +{
>> +    struct amdxdna_dev *xdna = client->xdna;
>> +    struct amdxdna_dev_hdl *ndev = xdna->dev_handle;
>> +    int ret;
>> +
>> +    switch (args->param) {
>> +    case DRM_AMDXDNA_QUERY_AIE_METADATA:
>> +        ret = amdxdna_get_metadata(&ndev->aie, client, args);
>> +        break;
>> +    default:
>> +        XDNA_ERR(xdna, "Not supported request parameter %u", 
>> args->param);
>> +        ret = -EOPNOTSUPP;
>> +    }
>> +
>> +    XDNA_DBG(xdna, "Got param %d", args->param);
>> +
>> +    return ret;
>> +}
>> +
>>   static int aie4_pf_init(struct amdxdna_dev *xdna)
>>   {
>>       int ret;
>> @@ -581,4 +610,5 @@ const struct amdxdna_dev_ops aie4_vf_ops = {
>>       .hwctx_fini        = aie4_hwctx_fini,
>>       .mmap            = aie4_doorbell_mmap,
>>       .cmd_wait        = aie4_cmd_wait,
>> +    .get_aie_info        = aie4_get_info,
>>   };
>> diff --git a/drivers/accel/amdxdna/aie4_pci.h 
>> b/drivers/accel/amdxdna/aie4_pci.h
>> index b69489acd53d..1886cffc62db 100644
>> --- a/drivers/accel/amdxdna/aie4_pci.h
>> +++ b/drivers/accel/amdxdna/aie4_pci.h
>> @@ -56,6 +56,7 @@ struct amdxdna_dev_hdl {
>>   };
>>     /* aie4_message.c */
>> +int aie4_query_aie_metadata(struct amdxdna_dev_hdl *ndev, struct 
>> aie_metadata *metadata);
>>   int aie4_suspend_fw(struct amdxdna_dev_hdl *ndev);
>>     /* aie4_ctx.c */
>

  reply	other threads:[~2026-05-05 18:03 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-05 16:09 [PATCH V1 0/6] SR-IOV Virtual Function support for AIE4 platform Lizhi Hou
2026-05-05 16:09 ` [PATCH V1 1/6] accel/amdxdna: Add initial support for AIE4 VF Lizhi Hou
2026-05-05 19:37   ` Mario Limonciello
2026-05-05 16:09 ` [PATCH V1 2/6] accel/amdxdna: Init AIE4 device partition Lizhi Hou
2026-05-05 19:53   ` Mario Limonciello
2026-05-05 16:09 ` [PATCH V1 3/6] accel/amdxdna: Add AIE4 VF hardware context create and destroy Lizhi Hou
2026-05-05 20:28   ` Mario Limonciello
2026-05-05 16:09 ` [PATCH V1 4/6] accel/amdxdna: Add command doorbell and wait support Lizhi Hou
2026-05-05 20:31   ` Mario Limonciello
2026-05-06 16:11     ` Lizhi Hou
2026-05-06 16:33       ` Mario Limonciello
2026-05-05 16:09 ` [PATCH V1 5/6] accel/amdxdna: Add AIE4 metadata query support Lizhi Hou
2026-05-05 17:14   ` Mario Limonciello
2026-05-05 18:03     ` Lizhi Hou [this message]
2026-05-05 16:09 ` [PATCH V1 6/6] accel/amdxdna: Add AIE4 work buffer initialization Lizhi Hou
2026-05-05 20:36   ` Mario Limonciello

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2193be15-b0ce-c8c3-140c-7278b86677f7@amd.com \
    --to=lizhi.hou@amd.com \
    --cc=Hayden.Laccabue@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=karol.wachowski@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mario.limonciello@amd.com \
    --cc=max.zhen@amd.com \
    --cc=ogabbay@kernel.org \
    --cc=quic_jhugo@quicinc.com \
    --cc=sonal.santan@amd.com \
    --cc=yidong.zhang@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox