From: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,
Abhinav Kumar <abhinav.kumar@linux.dev>,
Bryan O'Donoghue <bod@kernel.org>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Hans Verkuil <hverkuil@kernel.org>,
Stefan Schmidt <stefan.schmidt@linaro.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Stanimir Varbanov <stanimir.varbanov@linaro.org>,
Jorge Ramirez-Ortiz <jorge.ramirez@oss.qualcomm.com>,
Del Regno <angelogioacchino.delregno@collabora.com>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
linux-arm-msm@vger.kernel.org, iommu@lists.linux.dev,
Krzysztof Kozlowski <krzk@kernel.org>,
devicetree@vger.kernel.org
Subject: Re: [PATCH v5 11/14] media: iris: Add support to select core for dual core platforms
Date: Thu, 14 May 2026 00:25:58 +0530 [thread overview]
Message-ID: <fa2eb472-92f9-9bf0-be62-93a88785b405@oss.qualcomm.com> (raw)
In-Reply-To: <uujvaqpr72vmdl7w6kjh4xggci4pnhfwukatdj2x63hewfhawa@muzebwimx4oi>
On 5/13/2026 7:21 PM, Dmitry Baryshkov wrote:
> On Mon, May 11, 2026 at 09:42:43PM +0530, Vishnu Reddy wrote:
>> On 5/9/2026 2:30 AM, Dmitry Baryshkov wrote:
>>> On Sat, May 09, 2026 at 12:30:00AM +0530, Vishnu Reddy wrote:
>>>> On platforms with dual vcodec cores, select the hardware core for a
>>>> session based on current load. Assign the session to vcodec0 if its
>>>> MBPF/MBPS capacity allows it, otherwise assign to vcodec1. Communicate
>>>> the selected core to firmware using the new HFI_PROP_CORE_ID property.
>>>>
>>>> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>
>>>> ---
>>>> drivers/media/platform/qcom/iris/iris_common.c | 10 +++
>>>> drivers/media/platform/qcom/iris/iris_common.h | 1 +
>>>> drivers/media/platform/qcom/iris/iris_core.h | 5 ++
>>>> drivers/media/platform/qcom/iris/iris_hfi_common.h | 1 +
>>>> .../platform/qcom/iris/iris_hfi_gen2_command.c | 19 ++++++
>>>> .../platform/qcom/iris/iris_hfi_gen2_defines.h | 1 +
>>>> drivers/media/platform/qcom/iris/iris_instance.h | 2 +
>>>> .../platform/qcom/iris/iris_platform_common.h | 1 +
>>>> drivers/media/platform/qcom/iris/iris_power.c | 11 ++--
>>>> drivers/media/platform/qcom/iris/iris_utils.c | 75 ++++++++++++++++------
>>>> drivers/media/platform/qcom/iris/iris_vb2.c | 4 ++
>>>> drivers/media/platform/qcom/iris/iris_vidc.c | 6 +-
>>>> 12 files changed, 113 insertions(+), 23 deletions(-)
>>>>
>>>> diff --git a/drivers/media/platform/qcom/iris/iris_common.c b/drivers/media/platform/qcom/iris/iris_common.c
>>>> index 7f1c7fe144f7..3b3fc482e194 100644
>>>> --- a/drivers/media/platform/qcom/iris/iris_common.c
>>>> +++ b/drivers/media/platform/qcom/iris/iris_common.c
>>>> @@ -46,6 +46,16 @@ void iris_set_ts_metadata(struct iris_inst *inst, struct vb2_v4l2_buffer *vbuf)
>>>> inst->metadata_idx++;
>>>> }
>>>>
>>>> +int iris_set_core_id(struct iris_inst *inst)
>>>> +{
>>>> + const struct iris_hfi_command_ops *hfi_ops = inst->core->hfi_ops;
>>>> +
>>>> + if (!inst->core->iris_platform_data->dual_core)
>>>> + return 0;
>>>> +
>>>> + return hfi_ops->session_set_core_id(inst, inst->core_id);
>>>> +}
>>>> +
>>>> int iris_process_streamon_input(struct iris_inst *inst)
>>>> {
>>>> const struct iris_hfi_command_ops *hfi_ops = inst->core->hfi_ops;
>>>> diff --git a/drivers/media/platform/qcom/iris/iris_common.h b/drivers/media/platform/qcom/iris/iris_common.h
>>>> index b2a27b781c9a..34e32c60f768 100644
>>>> --- a/drivers/media/platform/qcom/iris/iris_common.h
>>>> +++ b/drivers/media/platform/qcom/iris/iris_common.h
>>>> @@ -11,6 +11,7 @@ struct iris_buffer;
>>>>
>>>> int iris_vb2_buffer_to_driver(struct vb2_buffer *vb2, struct iris_buffer *buf);
>>>> void iris_set_ts_metadata(struct iris_inst *inst, struct vb2_v4l2_buffer *vbuf);
>>>> +int iris_set_core_id(struct iris_inst *inst);
>>>> int iris_process_streamon_input(struct iris_inst *inst);
>>>> int iris_process_streamon_output(struct iris_inst *inst);
>>>> int iris_session_streamoff(struct iris_inst *inst, u32 plane);
>>>> diff --git a/drivers/media/platform/qcom/iris/iris_core.h b/drivers/media/platform/qcom/iris/iris_core.h
>>>> index b396c8cf595e..54a8649841e4 100644
>>>> --- a/drivers/media/platform/qcom/iris/iris_core.h
>>>> +++ b/drivers/media/platform/qcom/iris/iris_core.h
>>>> @@ -30,6 +30,11 @@ enum domain_type {
>>>> DECODER = BIT(1),
>>>> };
>>>>
>>>> +enum iris_vcodec_core_id {
>>>> + IRIS_VCODEC0 = 1,
>>>> + IRIS_VCODEC1,
>>>> +};
>>>> +
>>>> /**
>>>> * struct iris_core - holds core parameters valid for all instances
>>>> *
>>>> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_common.h b/drivers/media/platform/qcom/iris/iris_hfi_common.h
>>>> index 3edb5ae582b4..fbaf852a6b99 100644
>>>> --- a/drivers/media/platform/qcom/iris/iris_hfi_common.h
>>>> +++ b/drivers/media/platform/qcom/iris/iris_hfi_common.h
>>>> @@ -124,6 +124,7 @@ struct iris_hfi_command_ops {
>>>> int (*session_drain)(struct iris_inst *inst, u32 plane);
>>>> int (*session_resume_drain)(struct iris_inst *inst, u32 plane);
>>>> int (*session_close)(struct iris_inst *inst);
>>>> + int (*session_set_core_id)(struct iris_inst *inst, u32 core_id);
>>>> };
>>>>
>>>> struct iris_hfi_response_ops {
>>>> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>>>> index 30bfd90d423b..9d9fae587297 100644
>>>> --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>>>> +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>>>> @@ -1300,6 +1300,24 @@ static int iris_hfi_gen2_session_release_buffer(struct iris_inst *inst, struct i
>>>> inst_hfi_gen2->packet->size);
>>>> }
>>>>
>>>> +static int iris_hfi_gen2_set_core_id(struct iris_inst *inst, u32 core_id)
>>>> +{
>>>> + struct iris_inst_hfi_gen2 *inst_hfi_gen2 = to_iris_inst_hfi_gen2(inst);
>>>> + u32 payload = core_id;
>>>> +
>>>> + iris_hfi_gen2_packet_session_command(inst,
>>>> + HFI_PROP_CORE_ID,
>>>> + HFI_HOST_FLAGS_NONE,
>>>> + HFI_PORT_NONE,
>>>> + inst->session_id,
>>>> + HFI_PAYLOAD_U32,
>>>> + &payload,
>>>> + sizeof(u32));
>>>> +
>>>> + return iris_hfi_queue_cmd_write(inst->core, inst_hfi_gen2->packet,
>>>> + inst_hfi_gen2->packet->size);
>>>> +}
>>>> +
>>>> static const struct iris_hfi_command_ops iris_hfi_gen2_command_ops = {
>>>> .sys_init = iris_hfi_gen2_sys_init,
>>>> .sys_image_version = iris_hfi_gen2_sys_image_version,
>>>> @@ -1317,6 +1335,7 @@ static const struct iris_hfi_command_ops iris_hfi_gen2_command_ops = {
>>>> .session_drain = iris_hfi_gen2_session_drain,
>>>> .session_resume_drain = iris_hfi_gen2_session_resume_drain,
>>>> .session_close = iris_hfi_gen2_session_close,
>>>> + .session_set_core_id = iris_hfi_gen2_set_core_id,
>>>> };
>>>>
>>>> void iris_hfi_gen2_command_ops_init(struct iris_core *core)
>>>> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_defines.h b/drivers/media/platform/qcom/iris/iris_hfi_gen2_defines.h
>>>> index cecf771c55dd..600e9dc07669 100644
>>>> --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_defines.h
>>>> +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_defines.h
>>>> @@ -56,6 +56,7 @@
>>>> #define HFI_PROP_BUFFER_HOST_MAX_COUNT 0x03000123
>>>> #define HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT 0x03000124
>>>> #define HFI_PROP_PIC_ORDER_CNT_TYPE 0x03000128
>>>> +#define HFI_PROP_CORE_ID 0x030001a9
>>>>
>>>> enum hfi_rate_control {
>>>> HFI_RC_VBR_CFR = 0x00000000,
>>>> diff --git a/drivers/media/platform/qcom/iris/iris_instance.h b/drivers/media/platform/qcom/iris/iris_instance.h
>>>> index 16965150f427..dd341ca5be57 100644
>>>> --- a/drivers/media/platform/qcom/iris/iris_instance.h
>>>> +++ b/drivers/media/platform/qcom/iris/iris_instance.h
>>>> @@ -37,6 +37,7 @@ struct iris_fmt {
>>>> *
>>>> * @list: used for attach an instance to the core
>>>> * @core: pointer to core structure
>>>> + * @core_id: specifies the hardware core on which the session runs
>>>> * @session_id: id of current video session
>>>> * @ctx_q_lock: lock to serialize queues related ioctls
>>>> * @lock: lock to seralise forward and reverse threads
>>>> @@ -79,6 +80,7 @@ struct iris_fmt {
>>>> struct iris_inst {
>>>> struct list_head list;
>>>> struct iris_core *core;
>>>> + u32 core_id;
>>>> u32 session_id;
>>>> struct mutex ctx_q_lock;/* lock to serialize queues related ioctls */
>>>> struct mutex lock; /* lock to serialize forward and reverse threads */
>>>> diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/drivers/media/platform/qcom/iris/iris_platform_common.h
>>>> index 8995136ad29e..502d7099085c 100644
>>>> --- a/drivers/media/platform/qcom/iris/iris_platform_common.h
>>>> +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h
>>>> @@ -258,6 +258,7 @@ struct iris_platform_data {
>>>> const struct tz_cp_config *tz_cp_config_data;
>>>> u32 tz_cp_config_data_size;
>>>> u32 core_arch;
>>>> + bool dual_core;
>>>> u32 hw_response_timeout;
>>>> struct ubwc_config_data *ubwc_config;
>>>> u32 num_vpp_pipe;
>>>> diff --git a/drivers/media/platform/qcom/iris/iris_power.c b/drivers/media/platform/qcom/iris/iris_power.c
>>>> index 91aa21d4070e..b72ce5b596b8 100644
>>>> --- a/drivers/media/platform/qcom/iris/iris_power.c
>>>> +++ b/drivers/media/platform/qcom/iris/iris_power.c
>>>> @@ -77,9 +77,9 @@ static int iris_vote_interconnects(struct iris_inst *inst)
>>>>
>>>> static int iris_set_clocks(struct iris_inst *inst)
>>>> {
>>>> + u64 vcodec0_freq = 0, vcodec1_freq = 0;
>>>> struct iris_core *core = inst->core;
>>>> struct iris_inst *instance;
>>>> - u64 freq = 0;
>>>> int ret;
>>>>
>>>> mutex_lock(&core->lock);
>>>> @@ -87,11 +87,14 @@ static int iris_set_clocks(struct iris_inst *inst)
>>>> if (!instance->max_input_data_size)
>>>> continue;
>>>>
>>>> - freq += instance->power.min_freq;
>>>> + if (instance->core_id == IRIS_VCODEC0)
>>>> + vcodec0_freq += instance->power.min_freq;
>>>> + else
>>>> + vcodec1_freq += instance->power.min_freq;
>>>> }
>>>>
>>>> - core->power.clk_freq = freq;
>>>> - ret = iris_opp_set_rate(core->dev, freq);
>>>> + core->power.clk_freq = max(vcodec0_freq, vcodec1_freq);
>>>> + ret = iris_opp_set_rate(core->dev, core->power.clk_freq);
>>>> mutex_unlock(&core->lock);
>>>>
>>>> return ret;
>>>> diff --git a/drivers/media/platform/qcom/iris/iris_utils.c b/drivers/media/platform/qcom/iris/iris_utils.c
>>>> index cfc5b576ec56..da8a89d3dd41 100644
>>>> --- a/drivers/media/platform/qcom/iris/iris_utils.c
>>>> +++ b/drivers/media/platform/qcom/iris/iris_utils.c
>>>> @@ -90,40 +90,79 @@ struct iris_inst *iris_get_instance(struct iris_core *core, u32 session_id)
>>>> return NULL;
>>>> }
>>>>
>>>> -int iris_check_core_mbpf(struct iris_inst *inst)
>>>> +static u32 iris_get_mbps(struct iris_inst *inst)
>>>> {
>>>> - struct iris_core *core = inst->core;
>>>> + u32 fps = max(inst->frame_rate, inst->operating_rate);
>>>> +
>>>> + return iris_get_mbpf(inst) * fps;
>>>> +}
>>>> +
>>>> +static int iris_check_and_assign_core(struct iris_inst *inst, bool mbpf)
>>>> +{
>>>> + const struct iris_platform_data *platform_data = inst->core->iris_platform_data;
>>>> + u32 max_load = mbpf ? platform_data->max_core_mbpf : platform_data->max_core_mbps;
>>>> + u32 max_session_cnt = platform_data->max_session_count;
>>>> + u32 core0_session_cnt = 0, core1_session_cnt = 0;
>>>> + bool dual_core = platform_data->dual_core;
>>> num_cores
>> A num_cores field would require updating all platform data entries. For two
> I was thinking about adding num_cores to platform_data and to iris_inst
> (or iris_core) and setting it to 1 if the value is unset in
> platform_data.
>
> A better option would be to move all these multi-core functions to a
> separate file.
Thanks for your point, Adding num_cores to platform_data makes sense if the
number of cores grows beyond two. For now, since we only handle single and
dual core, the current logic feels simpler and sufficient to cover both cases.
Happy to adopt the num_cores approach in the future if we have any platform
with more than dual core.
>> cores, a simple boolean flag feels sufficient here.
>>
>>>> + u32 core0_load = 0, core1_load = 0;
>>>> + bool select_core0, select_core1;
>>>> struct iris_inst *instance;
>>>> - u32 total_mbpf = 0;
>>>> + u32 load, new_load;
>>>>
>>>> - mutex_lock(&core->lock);
>>>> - list_for_each_entry(instance, &core->instances, list)
>>>> - total_mbpf += iris_get_mbpf(instance);
>>>> - mutex_unlock(&core->lock);
>>>> + inst->core_id = 0;
>>>>
>>>> - if (total_mbpf > core->iris_platform_data->max_core_mbpf)
>>>> + list_for_each_entry(instance, &inst->core->instances, list) {
>>>> + load = mbpf ? iris_get_mbpf(instance) : iris_get_mbps(instance);
>>>> +
>>>> + if (instance->core_id == IRIS_VCODEC0) {
>>>> + core0_load += load;
>>>> + core0_session_cnt++;
>>>> + } else if (instance->core_id == IRIS_VCODEC1) {
>>>> + core1_load += load;
>>>> + core1_session_cnt++;
>>> Arrays, please.
>> Since we only have two cores, explicit variables feel cleaner and easier to
>> read than arrays.
>>
>>>> + }
>>>> + }
>>>> +
>>>> + new_load = mbpf ? iris_get_mbpf(inst) : iris_get_mbps(inst);
>>>> +
>>>> + select_core0 = core0_load + new_load <= max_load && core0_session_cnt < max_session_cnt;
>>>> + select_core1 = dual_core && core1_load + new_load <= max_load &&
>>>> + core1_session_cnt < max_session_cnt;
>>>> +
>>>> + if (select_core0 && select_core1)
>>>> + inst->core_id = (core0_load <= core1_load) ? IRIS_VCODEC0 : IRIS_VCODEC1;
>>>> + else if (select_core0)
>>>> + inst->core_id = IRIS_VCODEC0;
>>>> + else if (select_core1)
>>>> + inst->core_id = IRIS_VCODEC1;
>>>> + else
>>>> return -ENOMEM;
>>>>
>>>> return 0;
>>>> }
>>>>
>>>> -int iris_check_core_mbps(struct iris_inst *inst)
>>>> +int iris_check_core_mbpf(struct iris_inst *inst)
>>>> {
>>>> struct iris_core *core = inst->core;
>>>> - struct iris_inst *instance;
>>>> - u32 total_mbps = 0, fps = 0;
>>>> + int ret;
>>>>
>>>> mutex_lock(&core->lock);
>>>> - list_for_each_entry(instance, &core->instances, list) {
>>>> - fps = max(instance->frame_rate, instance->operating_rate);
>>>> - total_mbps += iris_get_mbpf(instance) * fps;
>>>> - }
>>>> + ret = iris_check_and_assign_core(inst, true);
>>>> mutex_unlock(&core->lock);
>>>>
>>>> - if (total_mbps > core->iris_platform_data->max_core_mbps)
>>>> - return -ENOMEM;
>>>> + return ret;
>>>> +}
>>>>
>>>> - return 0;
>>>> +int iris_check_core_mbps(struct iris_inst *inst)
>>>> +{
>>>> + struct iris_core *core = inst->core;
>>>> + int ret;
>>>> +
>>>> + mutex_lock(&core->lock);
>>>> + ret = iris_check_and_assign_core(inst, false);
>>>> + mutex_unlock(&core->lock);
>>>> +
>>>> + return ret;
>>>> }
>>>>
>>>> bool is_rotation_90_or_270(struct iris_inst *inst)
>>>> diff --git a/drivers/media/platform/qcom/iris/iris_vb2.c b/drivers/media/platform/qcom/iris/iris_vb2.c
>>>> index bf0b8400996e..5a05f7d65501 100644
>>>> --- a/drivers/media/platform/qcom/iris/iris_vb2.c
>>>> +++ b/drivers/media/platform/qcom/iris/iris_vb2.c
>>>> @@ -176,6 +176,10 @@ int iris_vb2_start_streaming(struct vb2_queue *q, unsigned int count)
>>>> if (ret)
>>>> goto error;
>>>>
>>>> + ret = iris_set_core_id(inst);
>>>> + if (ret)
>>>> + goto error;
>>>> +
>>>> if (V4L2_TYPE_IS_OUTPUT(q->type)) {
>>>> if (inst->domain == DECODER)
>>>> ret = iris_vdec_streamon_input(inst);
>>>> diff --git a/drivers/media/platform/qcom/iris/iris_vidc.c b/drivers/media/platform/qcom/iris/iris_vidc.c
>>>> index 5eb1786b0737..a1ce3cd524a3 100644
>>>> --- a/drivers/media/platform/qcom/iris/iris_vidc.c
>>>> +++ b/drivers/media/platform/qcom/iris/iris_vidc.c
>>>> @@ -41,16 +41,20 @@ static void iris_v4l2_fh_deinit(struct iris_inst *inst, struct file *filp)
>>>>
>>>> static void iris_add_session(struct iris_inst *inst)
>>>> {
>>>> + u32 max_session_count = inst->core->iris_platform_data->max_session_count;
>>>> struct iris_core *core = inst->core;
>>>> struct iris_inst *iter;
>>>> u32 count = 0;
>>>>
>>>> + if (inst->core->iris_platform_data->dual_core)
>>>> + max_session_count *= 2;
>>> max_session_count *= num_cores.
>>>
>>>> +
>>>> mutex_lock(&core->lock);
>>>>
>>>> list_for_each_entry(iter, &core->instances, list)
>>>> count++;
>>>>
>>>> - if (count < core->iris_platform_data->max_session_count)
>>>> + if (count < max_session_count)
>>>> list_add_tail(&inst->list, &core->instances);
>>>>
>>>> mutex_unlock(&core->lock);
>>>>
>>>> --
>>>> 2.34.1
>>>>
next prev parent reply other threads:[~2026-05-13 18:56 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-08 18:59 [PATCH v5 00/14] media: iris: Add support for glymur platform Vishnu Reddy
2026-05-08 18:59 ` [PATCH v5 01/14] media: iris: Add iris vpu bus support Vishnu Reddy
2026-05-08 19:16 ` Dmitry Baryshkov
2026-05-09 17:05 ` Vishnu Reddy
2026-05-08 23:20 ` sashiko-bot
2026-05-08 18:59 ` [PATCH v5 02/14] iommu: Add iris-vpu-bus to iommu_buses Vishnu Reddy
2026-05-08 19:16 ` Dmitry Baryshkov
2026-05-08 23:42 ` sashiko-bot
2026-05-13 13:09 ` Vikash Garodia
2026-05-08 18:59 ` [PATCH v5 03/14] media: iris: Fix VM count passed to firmware Vishnu Reddy
2026-05-08 19:20 ` Dmitry Baryshkov
2026-05-08 18:59 ` [PATCH v5 04/14] dt-bindings: media: qcom,venus: Remove clock, power-domain, and iommus from common schema Vishnu Reddy
2026-05-08 19:22 ` Dmitry Baryshkov
2026-05-09 17:04 ` Vishnu Reddy
2026-05-13 13:29 ` Dmitry Baryshkov
2026-05-13 18:54 ` Vishnu Reddy
2026-05-13 19:07 ` Dmitry Baryshkov
2026-05-08 18:59 ` [PATCH v5 05/14] dt-bindings: media: qcom,glymur-iris: Add glymur video codec Vishnu Reddy
2026-05-08 18:59 ` [PATCH v5 06/14] media: iris: Add context bank hooks for platform specific initialization Vishnu Reddy
2026-05-09 0:41 ` sashiko-bot
2026-05-08 18:59 ` [PATCH v5 07/14] media: iris: Enable Secure PAS support with IOMMU managed by Linux Vishnu Reddy
2026-05-08 19:05 ` Trilok Soni
2026-05-11 8:06 ` Mukesh Ojha
2026-05-08 20:20 ` Dmitry Baryshkov
2026-05-11 8:01 ` Mukesh Ojha
2026-05-13 13:42 ` Dmitry Baryshkov
2026-05-13 18:54 ` Vishnu Reddy
2026-05-13 19:09 ` Dmitry Baryshkov
2026-05-09 2:05 ` sashiko-bot
2026-05-08 18:59 ` [PATCH v5 08/14] media: iris: Rename clock and power domain macros to use vcodec prefix Vishnu Reddy
2026-05-08 20:22 ` Dmitry Baryshkov
2026-05-09 17:07 ` Vishnu Reddy
2026-05-13 13:47 ` Dmitry Baryshkov
2026-05-13 14:10 ` Vikash Garodia
2026-05-13 14:18 ` Dmitry Baryshkov
2026-05-09 2:18 ` sashiko-bot
2026-05-08 18:59 ` [PATCH v5 09/14] media: iris: Use power domain type to look up pd_devs index Vishnu Reddy
2026-05-08 20:44 ` Dmitry Baryshkov
2026-05-09 17:02 ` Vishnu Reddy
2026-05-08 18:59 ` [PATCH v5 10/14] media: iris: Add power sequence for Glymur Vishnu Reddy
2026-05-08 20:54 ` Dmitry Baryshkov
2026-05-11 16:12 ` Vishnu Reddy
2026-05-13 13:49 ` Dmitry Baryshkov
2026-05-13 18:55 ` Vishnu Reddy
2026-05-09 2:56 ` sashiko-bot
2026-05-08 19:00 ` [PATCH v5 11/14] media: iris: Add support to select core for dual core platforms Vishnu Reddy
2026-05-08 21:00 ` Dmitry Baryshkov
2026-05-11 16:12 ` Vishnu Reddy
2026-05-13 13:51 ` Dmitry Baryshkov
2026-05-13 18:55 ` Vishnu Reddy [this message]
2026-05-13 19:10 ` Dmitry Baryshkov
2026-05-13 19:23 ` Vishnu Reddy
2026-05-13 20:51 ` Dmitry Baryshkov
2026-05-09 3:55 ` sashiko-bot
2026-05-08 19:00 ` [PATCH v5 12/14] media: iris: Add platform data for glymur Vishnu Reddy
2026-05-08 21:05 ` Dmitry Baryshkov
2026-05-11 16:15 ` Vishnu Reddy
2026-05-13 14:17 ` Dmitry Baryshkov
2026-05-13 14:30 ` Vikash Garodia
2026-05-13 16:03 ` Dmitry Baryshkov
2026-05-13 17:01 ` Vikash Garodia
2026-05-13 18:50 ` Dmitry Baryshkov
2026-05-09 4:23 ` sashiko-bot
2026-05-08 19:00 ` [PATCH v5 13/14] arm64: dts: qcom: glymur: Add iris video node Vishnu Reddy
2026-05-08 19:27 ` Dmitry Baryshkov
2026-05-09 16:56 ` Vishnu Reddy
2026-05-13 13:55 ` Dmitry Baryshkov
2026-05-13 18:56 ` Vishnu Reddy
2026-05-08 19:00 ` [PATCH v5 14/14] arm64: dts: qcom: glymur-crd: Enable iris video codec node Vishnu Reddy
2026-05-08 23:54 ` Dmitry Baryshkov
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=fa2eb472-92f9-9bf0-be62-93a88785b405@oss.qualcomm.com \
--to=busanna.reddy@oss.qualcomm.com \
--cc=abhinav.kumar@linux.dev \
--cc=andersson@kernel.org \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bod@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dikshita.agarwal@oss.qualcomm.com \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=hverkuil@kernel.org \
--cc=iommu@lists.linux.dev \
--cc=jorge.ramirez@oss.qualcomm.com \
--cc=joro@8bytes.org \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=robh@kernel.org \
--cc=robin.murphy@arm.com \
--cc=stanimir.varbanov@linaro.org \
--cc=stefan.schmidt@linaro.org \
--cc=vikash.garodia@oss.qualcomm.com \
--cc=will@kernel.org \
/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