Daniel Vetter has written, on his blog, a very nifty i915/GEM Crashcourse. It is divided in 4 parts and all of them are transcripted here.
Daniel Vetter has published a short writeup and his slides.