Re: [PATCH v9 27/28] media: iris: enable video driver probe of SM8250 SoC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 1/8/2025 8:22 PM, Mauro Carvalho Chehab wrote:
> Em Wed, 8 Jan 2025 16:42:03 +0530
> Dikshita Agarwal <quic_dikshita@xxxxxxxxxxx> escreveu:
> 
>> On 1/8/2025 4:13 PM, Hans Verkuil wrote:
>>> On 1/8/25 11:21, Dikshita Agarwal wrote:  
>>>>
>>>>
>>>> On 1/8/2025 2:25 PM, Hans Verkuil wrote:  
>>>>> On 08/01/2025 09:51, Dikshita Agarwal wrote:  
>>>>>>
>>>>>>
>>>>>> On 1/8/2025 1:17 PM, Hans Verkuil wrote:  
>>>>>>> On 08/01/2025 08:43, Dikshita Agarwal wrote:  
>>>>>>>>
>>>>>>>>
>>>>>>>> On 1/7/2025 7:27 PM, Nicolas Dufresne wrote:  
>>>>>>>>> Le lundi 23 décembre 2024 à 16:21 +0530, Dikshita Agarwal a écrit :  
>>>>>>>>>>
>>>>>>>>>> On 12/23/2024 4:00 PM, Mauro Carvalho Chehab wrote:  
>>>>>>>>>>> Em Thu, 12 Dec 2024 17:21:49 +0530
>>>>>>>>>>> Dikshita Agarwal <quic_dikshita@xxxxxxxxxxx> escreveu:
>>>>>>>>>>>  
>>>>>>>>>>>> +	.dma_mask = GENMASK(31, 29) - 1,  
>>>>>>>>>>>
>>>>>>>>>>> Setting a mask to GENMASK() - 1 sounds weird. Is it really what you want?
>>>>>>>>>>> I so, why?
>>>>>>>>>>>  
>>>>>>>>>> Hi Mauro,
>>>>>>>>>>
>>>>>>>>>> the value of this dma mask should be 0xe0000000 -1.
>>>>>>>>>>
>>>>>>>>>> The background for the same is, 0xe0000000 onward memory space is allocated
>>>>>>>>>> for IO register space so we are restricting the driver buffer allocations
>>>>>>>>>> to 0xe0000000 - 1.
>>>>>>>>>>
>>>>>>>>>> Based on the comments received in the past, we are using GENMASK to
>>>>>>>>>> generate 0xe0000000.
>>>>>>>>>>
>>>>>>>>>> Does this answer your query or I missed something?  
>>>>>>>>>
>>>>>>>>> I'm not sure it will do what you want. (0xe0000000 -1) matches ~BIT(29). Perhaps
>>>>>>>>> you wanted to use ~0xe0000000. 
>>>>>>>>>  
>>>>>>>> value of dma mask is coming as expected with GENMASK(31, 29) - 1
>>>>>>>>
>>>>>>>> qcom-iris aa00000.video-codec: dma_mask DFFFFFFF (0xe0000000 -1)  
>>>>>>>
>>>>>>> Isn't this just the equivalent of GENMASK(28, 0)? Can't you use that?  
>>>>>
>>>>> Too early in the morning, this suggestion was clearly wrong.
>>>>>  
>>>>>>>
>>>>>>> It's much easier to understand than GENMASK()-1.  
>>>>>>
>>>>>> Sure, I can use either ~GENMASK(29, 29) or ~BIT(29),  
>>>>>
>>>>> ~BIT(29).
>>>>>
>>>>> It's really weird to just disable a single bit, so I think some comments
>>>>> explaining why this mask is needed would be good (if there aren't comments
>>>>> already).
>>>>>  
>>>> I tested this some more, and seems ~BIT(29) doesn't work, as its still
>>>> conflicting with the register space.  
>>>
>>> Odd, perhaps a 64 vs 32 bit issue?
>>>   
>>>> Correct value would be GENMASK(31,30) + GENMASK(28,0) to set the exact bits
>>>> to get the desired value i.e 0xe0000000 -1  
>>> Honestly, in this case I would prefer to just go with the actual hex value
>>> 0xdfffffff together with an explanatory comment.
>>>   
>> We moved to GENMASK way to address comment on previous version, but sure
>> can directly use 0xdfffffff with a comment.
> 
> If I understood it right, bits 0-31 can be used, but the hardware has some
> issue using bit 29 at the mask. Could you please comment why it can't be
> used?
> 
That would not be a correct statement, We don't have issue with using BIT
29 with mask but upper limit of DMA address available to use is 0xdfffffff.

Thanks,
Dikshita
> Btw, as this is a mask, IMO the better would be to document that all bits
> except for BIT(29) can be used with something like:
> 
> 	/* Bit 29 can't be used because ... */
> 	 .dma_mask = GENMASK(31, 0) - BIT(29)
> 
> Thanks,
> Mauro




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux