[PATCH v2 0/5] Introduce "non-pixel" sub node within iris video node

Vikash Garodia posted 5 patches 3 months, 1 week ago
There is a newer version of this series
.../bindings/media/qcom,sm8550-iris.yaml           | 40 ++++++++++++++++-
drivers/media/platform/qcom/iris/iris_buffer.c     | 15 ++++++-
drivers/media/platform/qcom/iris/iris_core.h       |  2 +
drivers/media/platform/qcom/iris/iris_hfi_queue.c  | 20 ++++++---
drivers/media/platform/qcom/iris/iris_probe.c      | 50 +++++++++++++++++++++-
drivers/media/platform/qcom/iris/iris_vb2.c        |  4 ++
6 files changed, 119 insertions(+), 12 deletions(-)
[PATCH v2 0/5] Introduce "non-pixel" sub node within iris video node
Posted by Vikash Garodia 3 months, 1 week ago
This series introduces a sub node "non-pixel" within iris video node.
Video driver registers this sub node as a platform device and configure 
it for DMA operations. All non pixel buffers, i.e bitstream, HFI queues 
and internal buffers related to bitstream processing, would be managed 
by this non_pixel device.

Purpose to add this sub-node:
Iris device limits the IOVA to an addressable range of 4GiB, and even 
within that range, some of the space is used by IO registers, thereby 
limiting the available IOVA to even lesser. For certain video usecase, 
this limited range in not sufficient enough, hence it brings the need to 
extend the possibility of higher IOVA range.

Video hardware is designed to emit different stream-ID for pixel and 
non-pixel buffers, thereby introduce a non-pixel sub node to handle 
non-pixel stream-ID into a separate platform device.
With this, both iris and non-pixel device can have IOVA range of 
approximately 0-4GiB individually for each device, thereby doubling the 
range of addressable IOVA.

Tested on SM8550 and SA8775p hardwares.

Signed-off-by: Vikash Garodia <quic_vgarodia@quicinc.com>
---
Changes in v2:
- Add ref to reserve-memory schema and drop it from redefining it in 
iris schema (Thanks Krzysztof)
- Drop underscores and add info about non pixel buffers (Thanks Dmitry)
- Link to v1: https://lore.kernel.org/r/20250620-video_cb-v1-0-9bcac1c8800c@quicinc.com

---
Vikash Garodia (5):
      media: dt-bindings: add non-pixel property in iris schema
      media: iris: register and configure non-pixel node as platform device
      media: iris: use np_dev as preferred DMA device in HFI queue management
      media: iris: select appropriate DMA device for internal buffers
      media: iris: configure DMA device for vb2 queue on OUTPUT plane

 .../bindings/media/qcom,sm8550-iris.yaml           | 40 ++++++++++++++++-
 drivers/media/platform/qcom/iris/iris_buffer.c     | 15 ++++++-
 drivers/media/platform/qcom/iris/iris_core.h       |  2 +
 drivers/media/platform/qcom/iris/iris_hfi_queue.c  | 20 ++++++---
 drivers/media/platform/qcom/iris/iris_probe.c      | 50 +++++++++++++++++++++-
 drivers/media/platform/qcom/iris/iris_vb2.c        |  4 ++
 6 files changed, 119 insertions(+), 12 deletions(-)
---
base-commit: 8d2b7fde56597ca912f5daaf3ab58915458ba1fc
change-id: 20250619-video_cb-ea872d6e6627

Best regards,
-- 
Vikash Garodia <quic_vgarodia@quicinc.com>
Re: [PATCH v2 0/5] Introduce "non-pixel" sub node within iris video node
Posted by Vikash Garodia 3 months, 1 week ago
On 6/27/2025 9:02 PM, Vikash Garodia wrote:
> This series introduces a sub node "non-pixel" within iris video node.
> Video driver registers this sub node as a platform device and configure 
> it for DMA operations. All non pixel buffers, i.e bitstream, HFI queues 
> and internal buffers related to bitstream processing, would be managed 
> by this non_pixel device.
> 
> Purpose to add this sub-node:
> Iris device limits the IOVA to an addressable range of 4GiB, and even 
> within that range, some of the space is used by IO registers, thereby 
> limiting the available IOVA to even lesser. For certain video usecase, 
> this limited range in not sufficient enough, hence it brings the need to 
> extend the possibility of higher IOVA range.
> 
> Video hardware is designed to emit different stream-ID for pixel and 
> non-pixel buffers, thereby introduce a non-pixel sub node to handle 
> non-pixel stream-ID into a separate platform device.
> With this, both iris and non-pixel device can have IOVA range of 
> approximately 0-4GiB individually for each device, thereby doubling the 
> range of addressable IOVA.
> 
> Tested on SM8550 and SA8775p hardwares.

Please ignore V2 revision as i missed to address a comment on V1. Posted V3 now
with all comments addressed.

Apologies for the inconvenience.

Regards,
Vikash

> 
> Signed-off-by: Vikash Garodia <quic_vgarodia@quicinc.com>
> ---
> Changes in v2:
> - Add ref to reserve-memory schema and drop it from redefining it in 
> iris schema (Thanks Krzysztof)
> - Drop underscores and add info about non pixel buffers (Thanks Dmitry)
> - Link to v1: https://lore.kernel.org/r/20250620-video_cb-v1-0-9bcac1c8800c@quicinc.com
> 
> ---
> Vikash Garodia (5):
>       media: dt-bindings: add non-pixel property in iris schema
>       media: iris: register and configure non-pixel node as platform device
>       media: iris: use np_dev as preferred DMA device in HFI queue management
>       media: iris: select appropriate DMA device for internal buffers
>       media: iris: configure DMA device for vb2 queue on OUTPUT plane
> 
>  .../bindings/media/qcom,sm8550-iris.yaml           | 40 ++++++++++++++++-
>  drivers/media/platform/qcom/iris/iris_buffer.c     | 15 ++++++-
>  drivers/media/platform/qcom/iris/iris_core.h       |  2 +
>  drivers/media/platform/qcom/iris/iris_hfi_queue.c  | 20 ++++++---
>  drivers/media/platform/qcom/iris/iris_probe.c      | 50 +++++++++++++++++++++-
>  drivers/media/platform/qcom/iris/iris_vb2.c        |  4 ++
>  6 files changed, 119 insertions(+), 12 deletions(-)
> ---
> base-commit: 8d2b7fde56597ca912f5daaf3ab58915458ba1fc
> change-id: 20250619-video_cb-ea872d6e6627
> 
> Best regards,