Lines Matching defs:par
115 static void ks108_writeb_ctl(struct arcfb_par *par,
118 unsigned char chipselval = par->cslut[chipindex];
120 outb(chipselval|KS_CEHI|KS_SEL_CMD, par->cio_addr);
121 outb(value, par->dio_addr);
123 outb(chipselval|KS_CELO|KS_SEL_CMD, par->cio_addr);
126 static void ks108_writeb_mainctl(struct arcfb_par *par, unsigned char value)
129 outb(value, par->cio_addr);
133 static unsigned char ks108_readb_ctl2(struct arcfb_par *par)
135 return inb(par->c2io_addr);
138 static void ks108_writeb_data(struct arcfb_par *par,
141 unsigned char chipselval = par->cslut[chipindex];
143 outb(chipselval|KS_CEHI|KS_SEL_DATA, par->cio_addr);
144 outb(value, par->dio_addr);
146 outb(chipselval|KS_CELO|KS_SEL_DATA, par->cio_addr);
149 static void ks108_set_start_line(struct arcfb_par *par,
152 ks108_writeb_ctl(par, chipindex, KS_SET_DPY_START_LINE|y);
155 static void ks108_set_yaddr(struct arcfb_par *par,
158 ks108_writeb_ctl(par, chipindex, KS_SET_PAGE_NUM|y);
161 static void ks108_set_xaddr(struct arcfb_par *par,
164 ks108_writeb_ctl(par, chipindex, KS_SET_X|x);
167 static void ks108_clear_lcd(struct arcfb_par *par, unsigned int chipindex)
172 ks108_set_yaddr(par, chipindex, i);
173 ks108_set_xaddr(par, chipindex, 0);
175 ks108_writeb_data(par, chipindex,
185 struct arcfb_par *par = info->par;
187 atomic_inc(&par->ref_count);
193 struct arcfb_par *par = info->par;
194 int count = atomic_read(&par->ref_count);
198 atomic_dec(&par->ref_count);
206 struct arcfb_par *par = info->par;
211 ks108_set_start_line(par, i, var->yoffset);
224 struct arcfb_par *par = info->par;
226 ctl2status = ks108_readb_ctl2(par);
231 ks108_writeb_mainctl(par, KS_CLRINT);
233 spin_lock(&par->lock);
237 spin_unlock(&par->lock);
248 static void arcfb_lcd_update_page(struct arcfb_par *par, unsigned int upper,
261 ks108_set_yaddr(par, chipindex, upper/8);
263 linesize = par->info->var.xres/8;
264 src = (unsigned char *)par->info->screen_buffer + (left/8) +
266 ks108_set_xaddr(par, chipindex, left);
281 ks108_writeb_data(par, chipindex, val);
300 static void arcfb_lcd_update_vert(struct arcfb_par *par, unsigned int top,
311 arcfb_lcd_update_page(par, upper, left, right, 8);
322 static void arcfb_lcd_update_horiz(struct arcfb_par *par, unsigned int left,
333 arcfb_lcd_update_vert(par, upper, lower, left, right);
344 static void arcfb_lcd_update(struct arcfb_par *par, unsigned int dx,
359 arcfb_lcd_update_horiz(par, left, right, y, h);
369 struct arcfb_par *par = info->par;
374 arcfb_lcd_update(par, rect->dx, rect->dy, rect->width, rect->height);
380 struct arcfb_par *par = info->par;
385 arcfb_lcd_update(par, area->dx, area->dy, area->width, area->height);
390 struct arcfb_par *par = info->par;
395 arcfb_lcd_update(par, image->dx, image->dy, image->width,
403 struct arcfb_par *par = info->par;
411 if (!par->irq)
416 spin_lock_irqsave(&par->lock, flags);
419 spin_unlock_irqrestore(&par->lock, flags);
429 ctl2 = ks108_readb_ctl2(info->par);
452 struct arcfb_par *par;
459 par = info->par;
491 arcfb_lcd_update(par, x, y, w, h);
517 struct arcfb_par *par;
537 par = info->par;
538 par->info = info;
544 par->dio_addr = dio_addr;
545 par->cio_addr = cio_addr;
546 par->c2io_addr = c2io_addr;
547 par->cslut[0] = 0x00;
548 par->cslut[1] = 0x06;
549 spin_lock_init(&par->lock);
551 par->irq = irq;
552 if (request_irq(par->irq, &arcfb_interrupt, IRQF_SHARED,
555 "arcfb: Failed req IRQ %d\n", par->irq);
569 ks108_writeb_ctl(par, i, KS_DPY_OFF);
570 ks108_set_start_line(par, i, 0);
571 ks108_set_yaddr(par, i, 0);
572 ks108_set_xaddr(par, i, 0);
573 ks108_writeb_ctl(par, i, KS_DPY_ON);
580 ks108_set_start_line(par, i, 0);
581 ks108_clear_lcd(par, i);
588 free_irq(par->irq, info);
603 free_irq(((struct arcfb_par *)(info->par))->irq, info);