GPU hardware runs software designed for it, so in the end if it doesn't work properly it's not the hardware that's at fault.
http://www.opengl.org/registry/specs/EXT/texture_sRGB.txt
http://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.tx...
See this, for example:
http://www.x.org/docs/AMD/R5xx_Acceleration_v1.5.pdf
Bit 21 of TXFORMAT0:
GAMMA 21 none Optionally remove gamma from texture before passing to
shader. Only apply to 8bit or less components.
POSSIBLE VALUES:
00 - Disable gamma removal
01 - Enable gamma removal
There is also support for re-applying gamma before storing to a color buffer.