On 11/13/25 12:03 AM, Alexandre Courbot wrote:
> On Wed Nov 12, 2025 at 1:30 PM JST, John Hubbard wrote:
...
>>  impl NV_PMC_BOOT_0 {
>> -    /// Combines `architecture_0` and `architecture_1` to obtain the 
>> architecture of the chip.
>> -    pub(crate) fn architecture(self) -> Result<Architecture> {
>> -        Architecture::try_from(
>> -            self.architecture_0() | (self.architecture_1() << 
>> Self::ARCHITECTURE_0_RANGE.len()),
>> -        )
>> +    pub(crate) fn is_older_than_fermi(self) -> bool {
>> +        // From https://github.com/NVIDIA/open-gpu-doc/tree/master/manuals :
>> +        const NV_PMC_BOOT_0_ARCHITECTURE_GF100: u8 = 0xc;
>> +
>> +        // Older chips left arch1 zeroed out. That, combined with an arch0 
>> value that is less than
>> +        // GF100, means "older than Fermi".
>> +        self.architecture_1() == 0 && self.architecture_0() < 
>> NV_PMC_BOOT_0_ARCHITECTURE_GF100
> 
> We could also keep `architecture` (making it private) and just test for
> `self.architecture < NV_PMC_BOOT_0_ARCHITECTURE_GF100`. John, I can do
> that when applying the series if you think that makes sense.
> 
> Considering that the series has been extensively reviewed during the
> previous iterations, I think we can safely apply it for 6.19, so will
> proceed once I have an answer.

Hi Alex,

It turns out that this doesn't work well, because architecture()
returns an Architecture, not a u8, and then we have to map it back
and the whole things looks a lot worse: complexity on the screen
that serves no purpose.

After looking at several approaches, I've come full circle back to
what this patch has.


thanks,
-- 
John Hubbard

Reply via email to