I had some progress here. I attached Vista to WinDbg and traced inside the kernel and drivers. I found what it does to change the backlight, but I need some more work in order to port this to Linux. The actual change happens with a call to WRITE_REGISTER_ULONG in a kernel virtual address (9XXXXXXX) with values from 800000f0 (low) to 80000401(full). It seems prety straighforward. There is no port IO as in the pommed driver, and I dont know how this address (9XXXXXXX) is translated to nvidia register addresses and/or physical bus addresses. There are calls to HalTranslateBusAddress and mmMapIoSpace at the initialization of the driver, I'll have to trace those and see where they map the used address spaces. I will work some more on it and post the results.
If anyone is experienced with memory mapped I/O stuff in both Win and Linux, please help!
I had some progress here. I attached Vista to WinDbg and traced inside the kernel and drivers. I found what it does to change the backlight, but I need some more work in order to port this to Linux. The actual change happens with a call to WRITE_REGISTER_ ULONG in a kernel virtual address (9XXXXXXX) with values from 800000f0 (low) to 80000401(full). It seems prety straighforward. There is no port IO as in the pommed driver, and I dont know how this address (9XXXXXXX) is translated to nvidia register addresses and/or physical bus addresses. There are calls to HalTranslateBus Address and mmMapIoSpace at the initialization of the driver, I'll have to trace those and see where they map the used address spaces. I will work some more on it and post the results.
If anyone is experienced with memory mapped I/O stuff in both Win and Linux, please help!