Currently at f94dfa927190619ed70b20a548a7090a142e717f
the 2 NV5X SOR0 BRIGHTNESS OFFSETS are 0xc084 and 0xd084
in the nouveau driver there is a macro for the offsets that looks like this:
#define NV50_PDISP_SOR_PWM_CTL(i) (0x0061c084 + (i) * 0x800)
in my case, using a GTX 970M, the correct offset to have the backlight controls work is 0xc884, which would be the value for i==1 in the nouveau macro.
It appears that nouveau is a bit more complicated and actually queries the device to determine the 'screen type' basically solving for i in the macro.
It might be worthwhile to at least add this third hard coded offset to the #defines and add additional logic to the nv5x_map function to check all 3 offsets when the screen type is not defined (i.e. auto)
For the GTX 970M, I have the driver working with the above 0xc884 offset in place + the fix for issue #111 with the following identifiers for my Sager laptop:
Currently at f94dfa927190619ed70b20a548a7090a142e717f
the 2 NV5X SOR0 BRIGHTNESS OFFSETS are 0xc084 and 0xd084
in the nouveau driver there is a macro for the offsets that looks like this:
#define NV50_PDISP_SOR_PWM_CTL(i) (0x0061c084 + (i) * 0x800)
in my case, using a GTX 970M, the correct offset to have the backlight controls work is 0xc884, which would be the value for i==1 in the nouveau macro.
It appears that nouveau is a bit more complicated and actually queries the device to determine the 'screen type' basically solving for i in the macro.
It might be worthwhile to at least add this third hard coded offset to the #defines and add additional logic to the nv5x_map function to check all 3 offsets when the screen type is not defined (i.e. auto)
For the GTX 970M, I have the driver working with the above 0xc884 offset in place + the fix for issue #111 with the following identifiers for my Sager laptop: