Lines Matching defs:par
171 struct metronomefb_par *par)
183 u8 *metromem = par->metromem_wfm;
184 struct device *dev = par->info->dev;
187 epd_frame_table[par->dt].wfm_size = user_wfm_size;
189 if (size != epd_frame_table[par->dt].wfm_size) {
191 epd_frame_table[par->dt].wfm_size);
303 par->frame_count = (mem_idx/64);
308 static int metronome_display_cmd(struct metronomefb_par *par)
320 if (par->metromem_cmd->opcode == 0xCC40)
327 par->metromem_cmd->args[i] = 1 << 3 /* border update */
329 | (par->frame_count - 1) << 8;
330 cs += par->metromem_cmd->args[i++];
333 memset((u8 *) (par->metromem_cmd->args + i), 0, (32-i)*2);
335 par->metromem_cmd->csum = cs;
336 par->metromem_cmd->opcode = opcode; /* display cmd */
338 return par->board->met_wait_event_intr(par);
341 static int metronome_powerup_cmd(struct metronomefb_par *par)
347 par->metromem_cmd->opcode = 0x1234; /* pwr up pseudo cmd */
348 cs = par->metromem_cmd->opcode;
352 par->metromem_cmd->args[i] = 1024;
353 cs += par->metromem_cmd->args[i];
357 memset(&par->metromem_cmd->args[i], 0,
358 (ARRAY_SIZE(par->metromem_cmd->args) - i) * 2);
360 par->metromem_cmd->csum = cs;
363 par->board->set_rst(par, 1);
366 par->board->set_stdby(par, 1);
368 return par->board->met_wait_event(par);
371 static int metronome_config_cmd(struct metronomefb_par *par)
377 memcpy(par->metromem_cmd->args, epd_frame_table[par->dt].config,
378 sizeof(epd_frame_table[par->dt].config));
380 memset(&par->metromem_cmd->args[4], 0,
381 (ARRAY_SIZE(par->metromem_cmd->args) - 4) * 2);
383 par->metromem_cmd->csum = 0xCC10;
384 par->metromem_cmd->csum += calc_img_cksum(par->metromem_cmd->args, 4);
385 par->metromem_cmd->opcode = 0xCC10; /* config cmd */
387 return par->board->met_wait_event(par);
390 static int metronome_init_cmd(struct metronomefb_par *par)
404 par->metromem_cmd->args[i] = 0;
405 cs += par->metromem_cmd->args[i++];
408 memset((u8 *) (par->metromem_cmd->args + i), 0, (32-i)*2);
410 par->metromem_cmd->csum = cs;
411 par->metromem_cmd->opcode = 0xCC20; /* init cmd */
413 return par->board->met_wait_event(par);
416 static int metronome_init_regs(struct metronomefb_par *par)
420 res = par->board->setup_io(par);
424 res = metronome_powerup_cmd(par);
428 res = metronome_config_cmd(par);
432 res = metronome_init_cmd(par);
437 static void metronomefb_dpy_update(struct metronomefb_par *par)
441 unsigned char *buf = (unsigned char __force *)par->info->screen_base;
443 fbsize = par->info->fix.smem_len;
445 memcpy(par->metromem_img, buf, fbsize);
447 cksum = calc_img_cksum((u16 *) par->metromem_img, fbsize/2);
448 *((u16 *)(par->metromem_img) + fbsize/2) = cksum;
449 metronome_display_cmd(par);
452 static u16 metronomefb_dpy_update_page(struct metronomefb_par *par, int index)
456 u16 *buf = (u16 __force *)(par->info->screen_base + index);
457 u16 *img = (u16 *)(par->metromem_img + index);
474 struct metronomefb_par *par = info->par;
478 cksum = metronomefb_dpy_update_page(par,
480 par->metromem_img_csum -= par->csum_table[cur->index];
481 par->csum_table[cur->index] = cksum;
482 par->metromem_img_csum += cksum;
485 metronome_display_cmd(par);
491 struct metronomefb_par *par = info->par;
494 metronomefb_dpy_update(par);
500 struct metronomefb_par *par = info->par;
503 metronomefb_dpy_update(par);
509 struct metronomefb_par *par = info->par;
512 metronomefb_dpy_update(par);
522 struct metronomefb_par *par = info->par;
556 metronomefb_dpy_update(par);
581 struct metronomefb_par *par;
603 par->metromem which is physically contiguous memory and
648 par = info->par;
649 par->info = info;
650 par->board = board;
651 par->dt = epd_dt_index;
652 init_waitqueue_head(&par->waitq);
655 par->csum_table = vmalloc(videomemorysize/PAGE_SIZE);
656 if (!par->csum_table)
662 retval = board->setup_fb(par);
669 if ((!par->metromem_wfm) || (!par->metromem_img) ||
670 (!par->metromem_dma)) {
676 info->fix.smem_start = par->metromem_dma;
688 par);
699 retval = metronome_init_regs(par);
735 board->cleanup(par);
737 vfree(par->csum_table);
752 struct metronomefb_par *par = info->par;
757 par->board->cleanup(par);
758 vfree(par->csum_table);
760 module_put(par->board->owner);