Lines Matching refs:timings
1217 static void fb_timings_vfreq(struct __fb_timings *timings) in fb_timings_vfreq() argument
1219 timings->hfreq = fb_get_hfreq(timings->vfreq, timings->vactive); in fb_timings_vfreq()
1220 timings->vblank = fb_get_vblank(timings->hfreq); in fb_timings_vfreq()
1221 timings->vtotal = timings->vactive + timings->vblank; in fb_timings_vfreq()
1222 timings->hblank = fb_get_hblank_by_hfreq(timings->hfreq, in fb_timings_vfreq()
1223 timings->hactive); in fb_timings_vfreq()
1224 timings->htotal = timings->hactive + timings->hblank; in fb_timings_vfreq()
1225 timings->dclk = timings->htotal * timings->hfreq; in fb_timings_vfreq()
1228 static void fb_timings_hfreq(struct __fb_timings *timings) in fb_timings_hfreq() argument
1230 timings->vblank = fb_get_vblank(timings->hfreq); in fb_timings_hfreq()
1231 timings->vtotal = timings->vactive + timings->vblank; in fb_timings_hfreq()
1232 timings->vfreq = timings->hfreq/timings->vtotal; in fb_timings_hfreq()
1233 timings->hblank = fb_get_hblank_by_hfreq(timings->hfreq, in fb_timings_hfreq()
1234 timings->hactive); in fb_timings_hfreq()
1235 timings->htotal = timings->hactive + timings->hblank; in fb_timings_hfreq()
1236 timings->dclk = timings->htotal * timings->hfreq; in fb_timings_hfreq()
1239 static void fb_timings_dclk(struct __fb_timings *timings) in fb_timings_dclk() argument
1241 timings->hblank = fb_get_hblank_by_dclk(timings->dclk, in fb_timings_dclk()
1242 timings->hactive); in fb_timings_dclk()
1243 timings->htotal = timings->hactive + timings->hblank; in fb_timings_dclk()
1244 timings->hfreq = timings->dclk/timings->htotal; in fb_timings_dclk()
1245 timings->vblank = fb_get_vblank(timings->hfreq); in fb_timings_dclk()
1246 timings->vtotal = timings->vactive + timings->vblank; in fb_timings_dclk()
1247 timings->vfreq = timings->hfreq/timings->vtotal; in fb_timings_dclk()
1286 struct __fb_timings *timings; in fb_get_mode() local
1291 timings = kzalloc(sizeof(struct __fb_timings), GFP_KERNEL); in fb_get_mode()
1293 if (!timings) in fb_get_mode()
1317 timings->hactive = var->xres; in fb_get_mode()
1318 timings->vactive = var->yres; in fb_get_mode()
1320 timings->vactive /= 2; in fb_get_mode()
1324 timings->vactive *= 2; in fb_get_mode()
1330 timings->hfreq = hfmax; in fb_get_mode()
1331 fb_timings_hfreq(timings); in fb_get_mode()
1332 if (timings->vfreq > vfmax) { in fb_get_mode()
1333 timings->vfreq = vfmax; in fb_get_mode()
1334 fb_timings_vfreq(timings); in fb_get_mode()
1336 if (timings->dclk > dclkmax) { in fb_get_mode()
1337 timings->dclk = dclkmax; in fb_get_mode()
1338 fb_timings_dclk(timings); in fb_get_mode()
1342 timings->vfreq = val; in fb_get_mode()
1343 fb_timings_vfreq(timings); in fb_get_mode()
1346 timings->hfreq = val; in fb_get_mode()
1347 fb_timings_hfreq(timings); in fb_get_mode()
1350 timings->dclk = PICOS2KHZ(val) * 1000; in fb_get_mode()
1351 fb_timings_dclk(timings); in fb_get_mode()
1359 (timings->vfreq < vfmin || timings->vfreq > vfmax || in fb_get_mode()
1360 timings->hfreq < hfmin || timings->hfreq > hfmax || in fb_get_mode()
1361 timings->dclk < dclkmin || timings->dclk > dclkmax))) { in fb_get_mode()
1364 var->pixclock = KHZ2PICOS(timings->dclk/1000); in fb_get_mode()
1365 var->hsync_len = (timings->htotal * 8)/100; in fb_get_mode()
1366 var->right_margin = (timings->hblank/2) - var->hsync_len; in fb_get_mode()
1367 var->left_margin = timings->hblank - var->right_margin - in fb_get_mode()
1371 var->upper_margin = (timings->vblank * interlace)/dscan - in fb_get_mode()
1375 kfree(timings); in fb_get_mode()