Well, pretty sure that hgdc_display_pixels() is hooked up wrong in the driver. Removing that should fix the garbage.