Bug#383465: Contains obfuscated source code, DFSG violation?
Package: xserver-xorg-video-nv
Version: 1:1.0.1.5-2
Severity: serious
The nv driver appears to be heavily obfuscated and is effectively
unmodifiable. Rather than symbolic constants, almost every reference to
hardware is performed using undocumented hex. The only registers that
appear to be documented are the legacy CRTC ones which are effectively
identical over all hardware. Take for example NVBacklightEnable:
if((pNv->Chipset == 0x10DE0179) ||
(pNv->Chipset == 0x10DE0189) ||
(pNv->Chipset == 0x10DE0329))
{
/* NV17,18,34 Apple iMac, iBook, PowerBook */
CARD32 tmp_pmc, tmp_pcrt;
tmp_pmc = pNv->PMC[0x10F0/4] & 0x7FFFFFFF;
tmp_pcrt = pNv->PCRTC0[0x081C/4] & 0xFFFFFFFC;
if(on) {
tmp_pmc |= (1 << 31);
tmp_pcrt |= 0x1;
}
pNv->PMC[0x10F0/4] = tmp_pmc;
pNv->PCRTC0[0x081C/4] = tmp_pcrt;
}
The idea that nvidia do not posess an electronic list of register names
and offsets is entirely implausible. The only rational explanation is
that register information is postprocessed out in order to reduce
information leakage. The shipped code is certainly not the preferred
form for modification, and according to prevailing attitudes on
debian-legal should be removed from Debian.
--
Matthew Garrett | mjg59@srcf.ucam.org
Reply to: