diff mbox series

[1/2] dt-bindings: soc: mediatek: add mdp3 mutex support for mt8186

Message ID 20220705122627.2273-2-allen-kh.cheng@mediatek.com (mailing list archive)
State New, archived
Headers show
Series Add mt8186 mutex support for mdp3 | expand

Commit Message

Allen-KH Cheng July 5, 2022, 12:26 p.m. UTC
Add mdp3 mutex compatible for mt8186 SoC.

Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.com>
---
 .../devicetree/bindings/soc/mediatek/mediatek,mutex.yaml         | 1 +
 1 file changed, 1 insertion(+)

Comments

AngeloGioacchino Del Regno July 7, 2022, 8:52 a.m. UTC | #1
Il 05/07/22 14:26, Allen-KH Cheng ha scritto:
> Add mdp3 mutex compatible for mt8186 SoC.
> 
> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
> Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.com>


Please drop this commit. Adding a mdp3-mutex compatible is not needed here.

> ---
>   .../devicetree/bindings/soc/mediatek/mediatek,mutex.yaml         | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
> index 627dcc3e8b32..234fa5dc07c2 100644
> --- a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
> +++ b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
> @@ -30,6 +30,7 @@ properties:
>         - mediatek,mt8173-disp-mutex
>         - mediatek,mt8183-disp-mutex
>         - mediatek,mt8186-disp-mutex
> +      - mediatek,mt8186-mdp3-mutex
>         - mediatek,mt8192-disp-mutex
>         - mediatek,mt8195-disp-mutex
>
Matthias Brugger July 7, 2022, 10:41 a.m. UTC | #2
On 07/07/2022 10:52, AngeloGioacchino Del Regno wrote:
> Il 05/07/22 14:26, Allen-KH Cheng ha scritto:
>> Add mdp3 mutex compatible for mt8186 SoC.
>>
>> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
>> Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.com>
> 
> 
> Please drop this commit. Adding a mdp3-mutex compatible is not needed here.
> 

Thanks for checking. We probably would need a fallback compatible. We can only 
know from the HW engineers that can confirm if the IP block is the same as the 
disp mutex or a different one.

I'll drop both patches for now until things got clear.

Regards,
Matthias

>> ---
>>   .../devicetree/bindings/soc/mediatek/mediatek,mutex.yaml         | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git 
>> a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml 
>> b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
>> index 627dcc3e8b32..234fa5dc07c2 100644
>> --- a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
>> +++ b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
>> @@ -30,6 +30,7 @@ properties:
>>         - mediatek,mt8173-disp-mutex
>>         - mediatek,mt8183-disp-mutex
>>         - mediatek,mt8186-disp-mutex
>> +      - mediatek,mt8186-mdp3-mutex
>>         - mediatek,mt8192-disp-mutex
>>         - mediatek,mt8195-disp-mutex
> 
> 
>
AngeloGioacchino Del Regno July 7, 2022, 10:59 a.m. UTC | #3
Il 07/07/22 12:41, Matthias Brugger ha scritto:
> 
> 
> On 07/07/2022 10:52, AngeloGioacchino Del Regno wrote:
>> Il 05/07/22 14:26, Allen-KH Cheng ha scritto:
>>> Add mdp3 mutex compatible for mt8186 SoC.
>>>
>>> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
>>> Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.com>
>>
>>
>> Please drop this commit. Adding a mdp3-mutex compatible is not needed here.
>>
> 
> Thanks for checking. We probably would need a fallback compatible. We can only know 
> from the HW engineers that can confirm if the IP block is the same as the disp 
> mutex or a different one.
> 
> I'll drop both patches for now until things got clear.
> 

They're located in a different iospace from each other, but either the platform
data needs to *not be* joined together, or if they're together, I would not like
having two different compatible strings for essentially the same thing.

I would at this point prefer dropping '-disp' from 'mediatek,mt8186-disp-mutex'
so that we would be able to declare two 'mediatek,mt8186-mutex' in devicetree...
...or simply have two mediatek,mt8186-disp-mutex (although logically incorrect?).

Cheers,
Angelo

> Regards,
> Matthias
> 
>>> ---
>>>   .../devicetree/bindings/soc/mediatek/mediatek,mutex.yaml         | 1 +
>>>   1 file changed, 1 insertion(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml 
>>> b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
>>> index 627dcc3e8b32..234fa5dc07c2 100644
>>> --- a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
>>> +++ b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
>>> @@ -30,6 +30,7 @@ properties:
>>>         - mediatek,mt8173-disp-mutex
>>>         - mediatek,mt8183-disp-mutex
>>>         - mediatek,mt8186-disp-mutex
>>> +      - mediatek,mt8186-mdp3-mutex
>>>         - mediatek,mt8192-disp-mutex
>>>         - mediatek,mt8195-disp-mutex
>>
>>
>>
Allen-KH Cheng July 8, 2022, 8:14 a.m. UTC | #4
Hi Angelo,

On Thu, 2022-07-07 at 12:59 +0200, AngeloGioacchino Del Regno wrote:
> Il 07/07/22 12:41, Matthias Brugger ha scritto:
> > 
> > 
> > On 07/07/2022 10:52, AngeloGioacchino Del Regno wrote:
> > > Il 05/07/22 14:26, Allen-KH Cheng ha scritto:
> > > > Add mdp3 mutex compatible for mt8186 SoC.
> > > > 
> > > > Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
> > > > Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.com>
> > > 
> > > 
> > > Please drop this commit. Adding a mdp3-mutex compatible is not
> > > needed here.
> > > 
> > 
> > Thanks for checking. We probably would need a fallback compatible.
> > We can only know 
> > from the HW engineers that can confirm if the IP block is the same
> > as the disp 
> > mutex or a different one.
> > 
> > I'll drop both patches for now until things got clear.
> > 
> 
> They're located in a different iospace from each other, but either
> the platform
> data needs to *not be* joined together, or if they're together, I
> would not like
> having two different compatible strings for essentially the same
> thing.
> 
> I would at this point prefer dropping '-disp' from 'mediatek,mt8186-
> disp-mutex'
> so that we would be able to declare two 'mediatek,mt8186-mutex' in
> devicetree...
> ...or simply have two mediatek,mt8186-disp-mutex (although logically
> incorrect?).
> 
> Cheers,
> Angelo
> 

Thanks for your opinion.

They are two different hardwares for different address spaces. 

I think we drop '-disp' from 'mediatek,mt8186-disp-mutex' will be
excessive because we also need to modify mutex node in all exited dts
files.

I prefer havingg two mediatek,mt8186-disp-mutex. 

ex:
mutex: mutex@14001000 {
	compatible = "mediatek,mt8186-disp-mutex";
	..
}

mdp3_mutex0: mutex@1b001000 {
	compatible = "mediatek,mt8186-disp-mutex";
	...
}

What do you think?

Best regards,
Allen

> > Regards,
> > Matthias
> > 
> > > > ---
> > > >  
> > > > .../devicetree/bindings/soc/mediatek/mediatek,mutex.yaml       
> > > >   | 1 +
> > > >   1 file changed, 1 insertion(+)
> > > > 
> > > > diff --git
> > > > a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex
> > > > .yaml 
> > > > b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex
> > > > .yaml
> > > > index 627dcc3e8b32..234fa5dc07c2 100644
> > > > ---
> > > > a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex
> > > > .yaml
> > > > +++
> > > > b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex
> > > > .yaml
> > > > @@ -30,6 +30,7 @@ properties:
> > > >         - mediatek,mt8173-disp-mutex
> > > >         - mediatek,mt8183-disp-mutex
> > > >         - mediatek,mt8186-disp-mutex
> > > > +      - mediatek,mt8186-mdp3-mutex
> > > >         - mediatek,mt8192-disp-mutex
> > > >         - mediatek,mt8195-disp-mutex
> > > 
> > > 
> > > 
> 
>
Matthias Brugger July 8, 2022, 8:19 a.m. UTC | #5
On 08/07/2022 10:14, allen-kh.cheng wrote:
> Hi Angelo,
> 
> On Thu, 2022-07-07 at 12:59 +0200, AngeloGioacchino Del Regno wrote:
>> Il 07/07/22 12:41, Matthias Brugger ha scritto:
>>>
>>>
>>> On 07/07/2022 10:52, AngeloGioacchino Del Regno wrote:
>>>> Il 05/07/22 14:26, Allen-KH Cheng ha scritto:
>>>>> Add mdp3 mutex compatible for mt8186 SoC.
>>>>>
>>>>> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
>>>>> Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.com>
>>>>
>>>>
>>>> Please drop this commit. Adding a mdp3-mutex compatible is not
>>>> needed here.
>>>>
>>>
>>> Thanks for checking. We probably would need a fallback compatible.
>>> We can only know
>>> from the HW engineers that can confirm if the IP block is the same
>>> as the disp
>>> mutex or a different one.
>>>
>>> I'll drop both patches for now until things got clear.
>>>
>>
>> They're located in a different iospace from each other, but either
>> the platform
>> data needs to *not be* joined together, or if they're together, I
>> would not like
>> having two different compatible strings for essentially the same
>> thing.
>>
>> I would at this point prefer dropping '-disp' from 'mediatek,mt8186-
>> disp-mutex'
>> so that we would be able to declare two 'mediatek,mt8186-mutex' in
>> devicetree...
>> ...or simply have two mediatek,mt8186-disp-mutex (although logically
>> incorrect?).
>>
>> Cheers,
>> Angelo
>>
> 
> Thanks for your opinion.
> 
> They are two different hardwares for different address spaces.
> 
> I think we drop '-disp' from 'mediatek,mt8186-disp-mutex' will be
> excessive because we also need to modify mutex node in all exited dts
> files.
> 
> I prefer havingg two mediatek,mt8186-disp-mutex.
> 
> ex:
> mutex: mutex@14001000 {
> 	compatible = "mediatek,mt8186-disp-mutex";
> 	..
> }
> 
> mdp3_mutex0: mutex@1b001000 {
> 	compatible = "mediatek,mt8186-disp-mutex";
> 	...
> }
> 
> What do you think?

I think that's an acceptable solution.

Regards,
Matthias

> 
> Best regards,
> Allen
> 
>>> Regards,
>>> Matthias
>>>
>>>>> ---
>>>>>   
>>>>> .../devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
>>>>>    | 1 +
>>>>>    1 file changed, 1 insertion(+)
>>>>>
>>>>> diff --git
>>>>> a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex
>>>>> .yaml
>>>>> b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex
>>>>> .yaml
>>>>> index 627dcc3e8b32..234fa5dc07c2 100644
>>>>> ---
>>>>> a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex
>>>>> .yaml
>>>>> +++
>>>>> b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex
>>>>> .yaml
>>>>> @@ -30,6 +30,7 @@ properties:
>>>>>          - mediatek,mt8173-disp-mutex
>>>>>          - mediatek,mt8183-disp-mutex
>>>>>          - mediatek,mt8186-disp-mutex
>>>>> +      - mediatek,mt8186-mdp3-mutex
>>>>>          - mediatek,mt8192-disp-mutex
>>>>>          - mediatek,mt8195-disp-mutex
>>>>
>>>>
>>>>
>>
>>
>
AngeloGioacchino Del Regno July 8, 2022, 8:28 a.m. UTC | #6
Il 08/07/22 10:19, Matthias Brugger ha scritto:
> 
> 
> On 08/07/2022 10:14, allen-kh.cheng wrote:
>> Hi Angelo,
>>
>> On Thu, 2022-07-07 at 12:59 +0200, AngeloGioacchino Del Regno wrote:
>>> Il 07/07/22 12:41, Matthias Brugger ha scritto:
>>>>
>>>>
>>>> On 07/07/2022 10:52, AngeloGioacchino Del Regno wrote:
>>>>> Il 05/07/22 14:26, Allen-KH Cheng ha scritto:
>>>>>> Add mdp3 mutex compatible for mt8186 SoC.
>>>>>>
>>>>>> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
>>>>>> Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.com>
>>>>>
>>>>>
>>>>> Please drop this commit. Adding a mdp3-mutex compatible is not
>>>>> needed here.
>>>>>
>>>>
>>>> Thanks for checking. We probably would need a fallback compatible.
>>>> We can only know
>>>> from the HW engineers that can confirm if the IP block is the same
>>>> as the disp
>>>> mutex or a different one.
>>>>
>>>> I'll drop both patches for now until things got clear.
>>>>
>>>
>>> They're located in a different iospace from each other, but either
>>> the platform
>>> data needs to *not be* joined together, or if they're together, I
>>> would not like
>>> having two different compatible strings for essentially the same
>>> thing.
>>>
>>> I would at this point prefer dropping '-disp' from 'mediatek,mt8186-
>>> disp-mutex'
>>> so that we would be able to declare two 'mediatek,mt8186-mutex' in
>>> devicetree...
>>> ...or simply have two mediatek,mt8186-disp-mutex (although logically
>>> incorrect?).
>>>
>>> Cheers,
>>> Angelo
>>>
>>
>> Thanks for your opinion.
>>
>> They are two different hardwares for different address spaces.
>>
>> I think we drop '-disp' from 'mediatek,mt8186-disp-mutex' will be
>> excessive because we also need to modify mutex node in all exited dts
>> files.
>>
>> I prefer havingg two mediatek,mt8186-disp-mutex.
>>
>> ex:
>> mutex: mutex@14001000 {
>>     compatible = "mediatek,mt8186-disp-mutex";
>>     ..
>> }
>>
>> mdp3_mutex0: mutex@1b001000 {
>>     compatible = "mediatek,mt8186-disp-mutex";
>>     ...
>> }
>>
>> What do you think?
> 
> I think that's an acceptable solution.
> 

I'm a bit undecided instead, now... because from what I understand now,
the platform data fields

	.mutex_mod  and  .mutex_sof

are *not valid* for mutex at 0x1b001000 but only for the instance at 0x14001000.

If we go this way, at this point, we would be free (and allowed by the driver)
to try to set these for 0x1b001000, and to try to set MDP3 table paths on
0x14001000, which is something that shouldn't be logically allowed, as the
hardware does *not* support that.

Unless I got that wrong, and these fields for MUTEX_MOD_DISP_xxxx do exist in
the mutex instance at 0xb001000, in which case, I fully agree with Matthias.

But otherwise, I have my doubts.

Cheers,
Angelo

> Regards,
> Matthias
> 
>>
>> Best regards,
>> Allen
>>
>>>> Regards,
>>>> Matthias
>>>>
>>>>>> ---
>>>>>> .../devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
>>>>>>    | 1 +
>>>>>>    1 file changed, 1 insertion(+)
>>>>>>
>>>>>> diff --git
>>>>>> a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex
>>>>>> .yaml
>>>>>> b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex
>>>>>> .yaml
>>>>>> index 627dcc3e8b32..234fa5dc07c2 100644
>>>>>> ---
>>>>>> a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex
>>>>>> .yaml
>>>>>> +++
>>>>>> b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex
>>>>>> .yaml
>>>>>> @@ -30,6 +30,7 @@ properties:
>>>>>>          - mediatek,mt8173-disp-mutex
>>>>>>          - mediatek,mt8183-disp-mutex
>>>>>>          - mediatek,mt8186-disp-mutex
>>>>>> +      - mediatek,mt8186-mdp3-mutex
>>>>>>          - mediatek,mt8192-disp-mutex
>>>>>>          - mediatek,mt8195-disp-mutex
>>>>>
>>>>>
>>>>>
>>>
>>>
>>
Allen-KH Cheng July 8, 2022, 11:58 a.m. UTC | #7
Hi Angelo,

On Fri, 2022-07-08 at 10:28 +0200, AngeloGioacchino Del Regno wrote:
> Il 08/07/22 10:19, Matthias Brugger ha scritto:
> > 
> > 
> > On 08/07/2022 10:14, allen-kh.cheng wrote:
> > > Hi Angelo,
> > > 
> > > On Thu, 2022-07-07 at 12:59 +0200, AngeloGioacchino Del Regno
> > > wrote:
> > > > Il 07/07/22 12:41, Matthias Brugger ha scritto:
> > > > > 
> > > > > 
> > > > > On 07/07/2022 10:52, AngeloGioacchino Del Regno wrote:
> > > > > > Il 05/07/22 14:26, Allen-KH Cheng ha scritto:
> > > > > > > Add mdp3 mutex compatible for mt8186 SoC.
> > > > > > > 
> > > > > > > Signed-off-by: Allen-KH Cheng <
> > > > > > > allen-kh.cheng@mediatek.com>
> > > > > > > Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.com>
> > > > > > 
> > > > > > 
> > > > > > Please drop this commit. Adding a mdp3-mutex compatible is
> > > > > > not
> > > > > > needed here.
> > > > > > 
> > > > > 
> > > > > Thanks for checking. We probably would need a fallback
> > > > > compatible.
> > > > > We can only know
> > > > > from the HW engineers that can confirm if the IP block is the
> > > > > same
> > > > > as the disp
> > > > > mutex or a different one.
> > > > > 
> > > > > I'll drop both patches for now until things got clear.
> > > > > 
> > > > 
> > > > They're located in a different iospace from each other, but
> > > > either
> > > > the platform
> > > > data needs to *not be* joined together, or if they're together,
> > > > I
> > > > would not like
> > > > having two different compatible strings for essentially the
> > > > same
> > > > thing.
> > > > 
> > > > I would at this point prefer dropping '-disp' from
> > > > 'mediatek,mt8186-
> > > > disp-mutex'
> > > > so that we would be able to declare two 'mediatek,mt8186-mutex' 
> > > > in
> > > > devicetree...
> > > > ...or simply have two mediatek,mt8186-disp-mutex (although
> > > > logically
> > > > incorrect?).
> > > > 
> > > > Cheers,
> > > > Angelo
> > > > 
> > > 
> > > Thanks for your opinion.
> > > 
> > > They are two different hardwares for different address spaces.
> > > 
> > > I think we drop '-disp' from 'mediatek,mt8186-disp-mutex' will be
> > > excessive because we also need to modify mutex node in all exited
> > > dts
> > > files.
> > > 
> > > I prefer havingg two mediatek,mt8186-disp-mutex.
> > > 
> > > ex:
> > > mutex: mutex@14001000 {
> > >     compatible = "mediatek,mt8186-disp-mutex";
> > >     ..
> > > }
> > > 
> > > mdp3_mutex0: mutex@1b001000 {
> > >     compatible = "mediatek,mt8186-disp-mutex";
> > >     ...
> > > }
> > > 
> > > What do you think?
> > 
> > I think that's an acceptable solution.
> > 
> 
> I'm a bit undecided instead, now... because from what I understand
> now,
> the platform data fields
> 
> 	.mutex_mod  and  .mutex_sof
> 
> are *not valid* for mutex at 0x1b001000 but only for the instance at
> 0x14001000.
> 
> If we go this way, at this point, we would be free (and allowed by
> the driver)
> to try to set these for 0x1b001000, and to try to set MDP3 table
> paths on
> 0x14001000, which is something that shouldn't be logically allowed,
> as the
> hardware does *not* support that.
> 
> Unless I got that wrong, and these fields for MUTEX_MOD_DISP_xxxx do
> exist in
> the mutex instance at 0xb001000, in which case, I fully agree with
> Matthias.
> 
> But otherwise, I have my doubts.
> 
> Cheers,
> Angelo
> 

I got your point. 

The disp and mdp3 drivers work with the same data field beacase 
14001000 (disp mutex) would not use .mutex_table_mod and 1b001000 (mdp3
mutex) would not use .mutex_mod/.mutex_sof.


How about ...

static const struct mtk_mutex_data mt8186_mutex_driver_data = {
	.mutex_mod = mt8186_mutex_mod,
	.mutex_sof = mt8186_mutex_sof,
	.mutex_mod_reg = MT8183_MUTEX0_MOD0,
	.mutex_sof_reg = MT8183_MUTEX0_SOF0,
};

static const struct mtk_mutex_data mt8186_mutex_mdp_driver_data = {
	.mutex_table_mod = mt8186_mutex_table_mod,
};

{ .compatible = "mediatek,mt8186-disp-mutex",
.data = &mt8186_mutex_driver_data},
{ .compatible = "mediatek,mt8186-mdp3-mutex",
.data = &mt8186_mutex_mdp_driver_data},


 mutex: mutex@14001000 {
    compatible = "mediatek,mt8186-disp-mutex";
    ..
 }
 mdp3_mutex0: mutex@1b001000 {
    compatible = "mediatek,mt8186-mdp3-mutex";
    ...
 }

Do you think that is feasible?

Best Regards,
Allen

> > Regards,
> > Matthias
> > 
> > > 
> > > Best regards,
> > > Allen
> > > 
> > > > > Regards,
> > > > > Matthias
> > > > > 
> > > > > > > ---
> > > > > > > .../devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
> > > > > > >    | 1 +
> > > > > > >    1 file changed, 1 insertion(+)
> > > > > > > 
> > > > > > > diff --git
> > > > > > > a/Documentation/devicetree/bindings/soc/mediatek/mediatek
> > > > > > > ,mutex
> > > > > > > .yaml
> > > > > > > b/Documentation/devicetree/bindings/soc/mediatek/mediatek
> > > > > > > ,mutex
> > > > > > > .yaml
> > > > > > > index 627dcc3e8b32..234fa5dc07c2 100644
> > > > > > > ---
> > > > > > > a/Documentation/devicetree/bindings/soc/mediatek/mediatek
> > > > > > > ,mutex
> > > > > > > .yaml
> > > > > > > +++
> > > > > > > b/Documentation/devicetree/bindings/soc/mediatek/mediatek
> > > > > > > ,mutex
> > > > > > > .yaml
> > > > > > > @@ -30,6 +30,7 @@ properties:
> > > > > > >          - mediatek,mt8173-disp-mutex
> > > > > > >          - mediatek,mt8183-disp-mutex
> > > > > > >          - mediatek,mt8186-disp-mutex
> > > > > > > +      - mediatek,mt8186-mdp3-mutex
> > > > > > >          - mediatek,mt8192-disp-mutex
> > > > > > >          - mediatek,mt8195-disp-mutex
> > > > > > 
> > > > > > 
> > > > > > 
> > > > 
> > > >
AngeloGioacchino Del Regno July 8, 2022, 3:37 p.m. UTC | #8
Il 08/07/22 13:58, allen-kh.cheng ha scritto:
> Hi Angelo,
> 
> On Fri, 2022-07-08 at 10:28 +0200, AngeloGioacchino Del Regno wrote:
>> Il 08/07/22 10:19, Matthias Brugger ha scritto:
>>>
>>>
>>> On 08/07/2022 10:14, allen-kh.cheng wrote:
>>>> Hi Angelo,
>>>>
>>>> On Thu, 2022-07-07 at 12:59 +0200, AngeloGioacchino Del Regno
>>>> wrote:
>>>>> Il 07/07/22 12:41, Matthias Brugger ha scritto:
>>>>>>
>>>>>>
>>>>>> On 07/07/2022 10:52, AngeloGioacchino Del Regno wrote:
>>>>>>> Il 05/07/22 14:26, Allen-KH Cheng ha scritto:
>>>>>>>> Add mdp3 mutex compatible for mt8186 SoC.
>>>>>>>>
>>>>>>>> Signed-off-by: Allen-KH Cheng <
>>>>>>>> allen-kh.cheng@mediatek.com>
>>>>>>>> Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.com>
>>>>>>>
>>>>>>>
>>>>>>> Please drop this commit. Adding a mdp3-mutex compatible is
>>>>>>> not
>>>>>>> needed here.
>>>>>>>
>>>>>>
>>>>>> Thanks for checking. We probably would need a fallback
>>>>>> compatible.
>>>>>> We can only know
>>>>>> from the HW engineers that can confirm if the IP block is the
>>>>>> same
>>>>>> as the disp
>>>>>> mutex or a different one.
>>>>>>
>>>>>> I'll drop both patches for now until things got clear.
>>>>>>
>>>>>
>>>>> They're located in a different iospace from each other, but
>>>>> either
>>>>> the platform
>>>>> data needs to *not be* joined together, or if they're together,
>>>>> I
>>>>> would not like
>>>>> having two different compatible strings for essentially the
>>>>> same
>>>>> thing.
>>>>>
>>>>> I would at this point prefer dropping '-disp' from
>>>>> 'mediatek,mt8186-
>>>>> disp-mutex'
>>>>> so that we would be able to declare two 'mediatek,mt8186-mutex'
>>>>> in
>>>>> devicetree...
>>>>> ...or simply have two mediatek,mt8186-disp-mutex (although
>>>>> logically
>>>>> incorrect?).
>>>>>
>>>>> Cheers,
>>>>> Angelo
>>>>>
>>>>
>>>> Thanks for your opinion.
>>>>
>>>> They are two different hardwares for different address spaces.
>>>>
>>>> I think we drop '-disp' from 'mediatek,mt8186-disp-mutex' will be
>>>> excessive because we also need to modify mutex node in all exited
>>>> dts
>>>> files.
>>>>
>>>> I prefer havingg two mediatek,mt8186-disp-mutex.
>>>>
>>>> ex:
>>>> mutex: mutex@14001000 {
>>>>      compatible = "mediatek,mt8186-disp-mutex";
>>>>      ..
>>>> }
>>>>
>>>> mdp3_mutex0: mutex@1b001000 {
>>>>      compatible = "mediatek,mt8186-disp-mutex";
>>>>      ...
>>>> }
>>>>
>>>> What do you think?
>>>
>>> I think that's an acceptable solution.
>>>
>>
>> I'm a bit undecided instead, now... because from what I understand
>> now,
>> the platform data fields
>>
>> 	.mutex_mod  and  .mutex_sof
>>
>> are *not valid* for mutex at 0x1b001000 but only for the instance at
>> 0x14001000.
>>
>> If we go this way, at this point, we would be free (and allowed by
>> the driver)
>> to try to set these for 0x1b001000, and to try to set MDP3 table
>> paths on
>> 0x14001000, which is something that shouldn't be logically allowed,
>> as the
>> hardware does *not* support that.
>>
>> Unless I got that wrong, and these fields for MUTEX_MOD_DISP_xxxx do
>> exist in
>> the mutex instance at 0xb001000, in which case, I fully agree with
>> Matthias.
>>
>> But otherwise, I have my doubts.
>>
>> Cheers,
>> Angelo
>>
> 
> I got your point.
> 
> The disp and mdp3 drivers work with the same data field beacase
> 14001000 (disp mutex) would not use .mutex_table_mod and 1b001000 (mdp3
> mutex) would not use .mutex_mod/.mutex_sof.
> 
> 
> How about ...
> 
> static const struct mtk_mutex_data mt8186_mutex_driver_data = {
> 	.mutex_mod = mt8186_mutex_mod,
> 	.mutex_sof = mt8186_mutex_sof,
> 	.mutex_mod_reg = MT8183_MUTEX0_MOD0,
> 	.mutex_sof_reg = MT8183_MUTEX0_SOF0,
> };
> 
> static const struct mtk_mutex_data mt8186_mutex_mdp_driver_data = {
> 	.mutex_table_mod = mt8186_mutex_table_mod,
> };
> 
> { .compatible = "mediatek,mt8186-disp-mutex",
> .data = &mt8186_mutex_driver_data},
> { .compatible = "mediatek,mt8186-mdp3-mutex",
> .data = &mt8186_mutex_mdp_driver_data},
> 
> 
>   mutex: mutex@14001000 {
>      compatible = "mediatek,mt8186-disp-mutex";
>      ..
>   }
>   mdp3_mutex0: mutex@1b001000 {
>      compatible = "mediatek,mt8186-mdp3-mutex";
>      ...
>   }
> 
> Do you think that is feasible?
> 

This makes a lot more sense to me.

Though, you have to also add the mod and sof regs, because the mutex instance
for MDP_MUTEX does have these registers, even though they are used for different
mods/sofs.

static const struct mtk_mutex_data mt8186_mutex_driver_data = {
	.mutex_mod = mt8186_mutex_mod,
	.mutex_sof = mt8186_mutex_sof,
	.mutex_mod_reg = MT8183_MUTEX0_MOD0,
	.mutex_sof_reg = MT8183_MUTEX0_SOF0,
};

static const struct mtk_mutex_data mt8186_mdp_mutex_driver_data = {
  	.mutex_mod_reg = MT8183_MUTEX0_MOD0,
  	.mutex_sof_reg = MT8183_MUTEX0_SOF0,
	.mutex_table_mod = mt8186_mdp_mutex_table_mod,
};

P.S.: Notice that mt8186_mdp_mutex_driver_data instead of
       mt8186_mutex_mdp_driver_data was chosen on purpose:
       like that, we're referencing to real block names.

Regards,
Angelo

> Best Regards,
> Allen
> 
>>> Regards,
>>> Matthias
>>>
>>>>
>>>> Best regards,
>>>> Allen
>>>>
>>>>>> Regards,
>>>>>> Matthias
>>>>>>
>>>>>>>> ---
>>>>>>>> .../devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
>>>>>>>>     | 1 +
>>>>>>>>     1 file changed, 1 insertion(+)
>>>>>>>>
>>>>>>>> diff --git
>>>>>>>> a/Documentation/devicetree/bindings/soc/mediatek/mediatek
>>>>>>>> ,mutex
>>>>>>>> .yaml
>>>>>>>> b/Documentation/devicetree/bindings/soc/mediatek/mediatek
>>>>>>>> ,mutex
>>>>>>>> .yaml
>>>>>>>> index 627dcc3e8b32..234fa5dc07c2 100644
>>>>>>>> ---
>>>>>>>> a/Documentation/devicetree/bindings/soc/mediatek/mediatek
>>>>>>>> ,mutex
>>>>>>>> .yaml
>>>>>>>> +++
>>>>>>>> b/Documentation/devicetree/bindings/soc/mediatek/mediatek
>>>>>>>> ,mutex
>>>>>>>> .yaml
>>>>>>>> @@ -30,6 +30,7 @@ properties:
>>>>>>>>           - mediatek,mt8173-disp-mutex
>>>>>>>>           - mediatek,mt8183-disp-mutex
>>>>>>>>           - mediatek,mt8186-disp-mutex
>>>>>>>> +      - mediatek,mt8186-mdp3-mutex
>>>>>>>>           - mediatek,mt8192-disp-mutex
>>>>>>>>           - mediatek,mt8195-disp-mutex
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>
Allen-KH Cheng July 11, 2022, 11:28 a.m. UTC | #9
Hi Angelo,

On Fri, 2022-07-08 at 07:37 -0800, AngeloGioacchino Del Regno wrote:
> Il 08/07/22 13:58, allen-kh.cheng ha scritto:
> > Hi Angelo,
> > 
> > On Fri, 2022-07-08 at 10:28 +0200, AngeloGioacchino Del Regno
> > wrote:
> > > Il 08/07/22 10:19, Matthias Brugger ha scritto:
> > > > 
> > > > 
> > > > On 08/07/2022 10:14, allen-kh.cheng wrote:
> > > > > Hi Angelo,
> > > > > 
> > > > > On Thu, 2022-07-07 at 12:59 +0200, AngeloGioacchino Del Regno
> > > > > wrote:
> > > > > > Il 07/07/22 12:41, Matthias Brugger ha scritto:
> > > > > > > 
> > > > > > > 
> > > > > > > On 07/07/2022 10:52, AngeloGioacchino Del Regno wrote:
> > > > > > > > Il 05/07/22 14:26, Allen-KH Cheng ha scritto:
> > > > > > > > > Add mdp3 mutex compatible for mt8186 SoC.
> > > > > > > > > 
> > > > > > > > > Signed-off-by: Allen-KH Cheng <
> > > > > > > > > allen-kh.cheng@mediatek.com>
> > > > > > > > > Signed-off-by: Xiandong Wang <
> > > > > > > > > xiandong.wang@mediatek.com>
> > > > > > > > 
> > > > > > > > 
> > > > > > > > Please drop this commit. Adding a mdp3-mutex compatible
> > > > > > > > is
> > > > > > > > not
> > > > > > > > needed here.
> > > > > > > > 
> > > > > > > 
> > > > > > > Thanks for checking. We probably would need a fallback
> > > > > > > compatible.
> > > > > > > We can only know
> > > > > > > from the HW engineers that can confirm if the IP block is
> > > > > > > the
> > > > > > > same
> > > > > > > as the disp
> > > > > > > mutex or a different one.
> > > > > > > 
> > > > > > > I'll drop both patches for now until things got clear.
> > > > > > > 
> > > > > > 
> > > > > > They're located in a different iospace from each other, but
> > > > > > either
> > > > > > the platform
> > > > > > data needs to *not be* joined together, or if they're
> > > > > > together,
> > > > > > I
> > > > > > would not like
> > > > > > having two different compatible strings for essentially the
> > > > > > same
> > > > > > thing.
> > > > > > 
> > > > > > I would at this point prefer dropping '-disp' from
> > > > > > 'mediatek,mt8186-
> > > > > > disp-mutex'
> > > > > > so that we would be able to declare two 'mediatek,mt8186-
> > > > > > mutex'
> > > > > > in
> > > > > > devicetree...
> > > > > > ...or simply have two mediatek,mt8186-disp-mutex (although
> > > > > > logically
> > > > > > incorrect?).
> > > > > > 
> > > > > > Cheers,
> > > > > > Angelo
> > > > > > 
> > > > > 
> > > > > Thanks for your opinion.
> > > > > 
> > > > > They are two different hardwares for different address
> > > > > spaces.
> > > > > 
> > > > > I think we drop '-disp' from 'mediatek,mt8186-disp-mutex'
> > > > > will be
> > > > > excessive because we also need to modify mutex node in all
> > > > > exited
> > > > > dts
> > > > > files.
> > > > > 
> > > > > I prefer havingg two mediatek,mt8186-disp-mutex.
> > > > > 
> > > > > ex:
> > > > > mutex: mutex@14001000 {
> > > > >      compatible = "mediatek,mt8186-disp-mutex";
> > > > >      ..
> > > > > }
> > > > > 
> > > > > mdp3_mutex0: mutex@1b001000 {
> > > > >      compatible = "mediatek,mt8186-disp-mutex";
> > > > >      ...
> > > > > }
> > > > > 
> > > > > What do you think?
> > > > 
> > > > I think that's an acceptable solution.
> > > > 
> > > 
> > > I'm a bit undecided instead, now... because from what I
> > > understand
> > > now,
> > > the platform data fields
> > > 
> > > 	.mutex_mod  and  .mutex_sof
> > > 
> > > are *not valid* for mutex at 0x1b001000 but only for the instance
> > > at
> > > 0x14001000.
> > > 
> > > If we go this way, at this point, we would be free (and allowed
> > > by
> > > the driver)
> > > to try to set these for 0x1b001000, and to try to set MDP3 table
> > > paths on
> > > 0x14001000, which is something that shouldn't be logically
> > > allowed,
> > > as the
> > > hardware does *not* support that.
> > > 
> > > Unless I got that wrong, and these fields for MUTEX_MOD_DISP_xxxx
> > > do
> > > exist in
> > > the mutex instance at 0xb001000, in which case, I fully agree
> > > with
> > > Matthias.
> > > 
> > > But otherwise, I have my doubts.
> > > 
> > > Cheers,
> > > Angelo
> > > 
> > 
> > I got your point.
> > 
> > The disp and mdp3 drivers work with the same data field beacase
> > 14001000 (disp mutex) would not use .mutex_table_mod and 1b001000
> > (mdp3
> > mutex) would not use .mutex_mod/.mutex_sof.
> > 
> > 
> > How about ...
> > 
> > static const struct mtk_mutex_data mt8186_mutex_driver_data = {
> > 	.mutex_mod = mt8186_mutex_mod,
> > 	.mutex_sof = mt8186_mutex_sof,
> > 	.mutex_mod_reg = MT8183_MUTEX0_MOD0,
> > 	.mutex_sof_reg = MT8183_MUTEX0_SOF0,
> > };
> > 
> > static const struct mtk_mutex_data mt8186_mutex_mdp_driver_data = {
> > 	.mutex_table_mod = mt8186_mutex_table_mod,
> > };
> > 
> > { .compatible = "mediatek,mt8186-disp-mutex",
> > .data = &mt8186_mutex_driver_data},
> > { .compatible = "mediatek,mt8186-mdp3-mutex",
> > .data = &mt8186_mutex_mdp_driver_data},
> > 
> > 
> >   mutex: mutex@14001000 {
> >      compatible = "mediatek,mt8186-disp-mutex";
> >      ..
> >   }
> >   mdp3_mutex0: mutex@1b001000 {
> >      compatible = "mediatek,mt8186-mdp3-mutex";
> >      ...
> >   }
> > 
> > Do you think that is feasible?
> > 
> 
> This makes a lot more sense to me.
> 
> Though, you have to also add the mod and sof regs, because the mutex
> instance
> for MDP_MUTEX does have these registers, even though they are used
> for different
> mods/sofs.
> 
> static const struct mtk_mutex_data mt8186_mutex_driver_data = {
> 	.mutex_mod = mt8186_mutex_mod,
> 	.mutex_sof = mt8186_mutex_sof,
> 	.mutex_mod_reg = MT8183_MUTEX0_MOD0,
> 	.mutex_sof_reg = MT8183_MUTEX0_SOF0,
> };
> 
> static const struct mtk_mutex_data mt8186_mdp_mutex_driver_data = {
>   	.mutex_mod_reg = MT8183_MUTEX0_MOD0,
>   	.mutex_sof_reg = MT8183_MUTEX0_SOF0,
> 	.mutex_table_mod = mt8186_mdp_mutex_table_mod,
> };
> 
> P.S.: Notice that mt8186_mdp_mutex_driver_data instead of
>        mt8186_mutex_mdp_driver_data was chosen on purpose:
>        like that, we're referencing to real block names.
> 
> Regards,
> Angelo
> 

Thanks for your suggestion.

According to our discussion, I will update in next version.

Best Regards,
Allen


> > Best Regards,
> > Allen
> > 
> > > > Regards,
> > > > Matthias
> > > > 
> > > > > 
> > > > > Best regards,
> > > > > Allen
> > > > > 
> > > > > > > Regards,
> > > > > > > Matthias
> > > > > > > 
> > > > > > > > > ---
> > > > > > > > > .../devicetree/bindings/soc/mediatek/mediatek,mutex.y
> > > > > > > > > aml
> > > > > > > > >     | 1 +
> > > > > > > > >     1 file changed, 1 insertion(+)
> > > > > > > > > 
> > > > > > > > > diff --git
> > > > > > > > > a/Documentation/devicetree/bindings/soc/mediatek/medi
> > > > > > > > > atek
> > > > > > > > > ,mutex
> > > > > > > > > .yaml
> > > > > > > > > b/Documentation/devicetree/bindings/soc/mediatek/medi
> > > > > > > > > atek
> > > > > > > > > ,mutex
> > > > > > > > > .yaml
> > > > > > > > > index 627dcc3e8b32..234fa5dc07c2 100644
> > > > > > > > > ---
> > > > > > > > > a/Documentation/devicetree/bindings/soc/mediatek/medi
> > > > > > > > > atek
> > > > > > > > > ,mutex
> > > > > > > > > .yaml
> > > > > > > > > +++
> > > > > > > > > b/Documentation/devicetree/bindings/soc/mediatek/medi
> > > > > > > > > atek
> > > > > > > > > ,mutex
> > > > > > > > > .yaml
> > > > > > > > > @@ -30,6 +30,7 @@ properties:
> > > > > > > > >           - mediatek,mt8173-disp-mutex
> > > > > > > > >           - mediatek,mt8183-disp-mutex
> > > > > > > > >           - mediatek,mt8186-disp-mutex
> > > > > > > > > +      - mediatek,mt8186-mdp3-mutex
> > > > > > > > >           - mediatek,mt8192-disp-mutex
> > > > > > > > >           - mediatek,mt8195-disp-mutex
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > 
> > > > > > 
> 
> 
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
index 627dcc3e8b32..234fa5dc07c2 100644
--- a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
+++ b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml
@@ -30,6 +30,7 @@  properties:
       - mediatek,mt8173-disp-mutex
       - mediatek,mt8183-disp-mutex
       - mediatek,mt8186-disp-mutex
+      - mediatek,mt8186-mdp3-mutex
       - mediatek,mt8192-disp-mutex
       - mediatek,mt8195-disp-mutex