The fb_videomode structure stores the front porch and back porch in the right_margin and left_margin fields respectively. right_margin should thus be computed with hsync_start - hdisplay, and left_margin with htotal - hsync_end. The same holds for the vertical direction.
Active Front Sync Back Region Porch Porch
<-------------------><----------------><-------------><---------------->
//////////////////| ////////////////// | ////////////////// |.................. .................. _______________
<------ xres -------><- right_margin -><- hsync_len -><- left_margin -->
<---- hdisplay -----> <------------ hsync_start ------------> <--------------------- hsync_end --------------------> <--------------------------------- htotal ----------------------------->
Fix the fb_videomode <-> drm_mode_modeinfo conversion functions accordingly.
Wow I see this has remegered. Some time last year I posted a patch that had these routines in a generic format for people to use. I can repost them again if people are interested.