On 4/18/26 5:34 PM, Erikas Bitovtas wrote:
> 
> 
> On 4/16/26 5:31 PM, Bryan O'Donoghue wrote:
>> On 16/04/2026 14:43, Erikas Bitovtas wrote:
>>> +            video-decoder {
>>> +                compatible = "venus-decoder";
>>> +                clocks = <&gcc GCC_VENUS0_CORE0_VCODEC0_CLK>,
>>> +                     <&gcc GCC_VENUS0_CORE1_VCODEC0_CLK>;
>>> +                clock-names = "core0", "core1";
>>> +                power-domains = <&gcc VENUS_CORE0_GDSC>,
>>> +                        <&gcc VENUS_CORE1_GDSC>;
>>
>> This doesn't make sense.
>>
>> You have two cores => assign one to encoder and the other to decoder.
>>
> 
> This way during decode only one of the cores gets powered up instead of
> both, resulting in power collapse fails.
> Core clocks and power domains can be moved into Venus node instead of
> sub-nodes, like this:
> venus: video-codec@1d00000 {
>       compatible = "qcom,msm8939-venus";
>       reg = <0x01d00000 0xff000>;
>       interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
>       clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
>                <&gcc GCC_VENUS0_AHB_CLK>,
>                <&gcc GCC_VENUS0_AXI_CLK>,
>                <&gcc GCC_VENUS0_CORE0_VCODEC0_CLK>,
>                <&gcc GCC_VENUS0_CORE1_VCODEC0_CLK>;
>       clock-names = "core",
>                     "iface",
>                     "bus",
>                     "core0",
>                     "core1";
>       power-domains = <&gcc VENUS_GDSC>,
>                       <&gcc VENUS_C0RE0_GDSC>,
>                       <&gcc VENUS_CORE1_GDSC>;
>       power-domain-names = "venus", "core0", "core1";
> };
> 
> And then they can be powered up regardless if the session is for
> encoding or decoding.
> My first question was actually about this - whether these cores should
> be powered up only decoding or for encoding as well. Bus configs
> downstream signify they are only for decoding:
> https://github.com/msm8916-mainline/linux-downstream/blob/b20608408caff817ec874f325127b07609fbaeb8/arch/arm/boot/dts/qcom/msm8939-common.dtsi#L1589
> https://github.com/msm8916-mainline/linux-downstream/blob/b20608408caff817ec874f325127b07609fbaeb8/Documentation/devicetree/bindings/media/video/msm-vidc.txt#L35
> Unfortunately, I couldn't test encoding on my device. It appears to be
> broken.

Do we know whether it works on msm8916? (+Stephan)

Konrad

Reply via email to