Lines Matching refs:par
114 static void ks108_writeb_ctl(struct arcfb_par *par, in ks108_writeb_ctl() argument
117 unsigned char chipselval = par->cslut[chipindex]; in ks108_writeb_ctl()
119 outb(chipselval|KS_CEHI|KS_SEL_CMD, par->cio_addr); in ks108_writeb_ctl()
120 outb(value, par->dio_addr); in ks108_writeb_ctl()
122 outb(chipselval|KS_CELO|KS_SEL_CMD, par->cio_addr); in ks108_writeb_ctl()
125 static void ks108_writeb_mainctl(struct arcfb_par *par, unsigned char value) in ks108_writeb_mainctl() argument
128 outb(value, par->cio_addr); in ks108_writeb_mainctl()
132 static unsigned char ks108_readb_ctl2(struct arcfb_par *par) in ks108_readb_ctl2() argument
134 return inb(par->c2io_addr); in ks108_readb_ctl2()
137 static void ks108_writeb_data(struct arcfb_par *par, in ks108_writeb_data() argument
140 unsigned char chipselval = par->cslut[chipindex]; in ks108_writeb_data()
142 outb(chipselval|KS_CEHI|KS_SEL_DATA, par->cio_addr); in ks108_writeb_data()
143 outb(value, par->dio_addr); in ks108_writeb_data()
145 outb(chipselval|KS_CELO|KS_SEL_DATA, par->cio_addr); in ks108_writeb_data()
148 static void ks108_set_start_line(struct arcfb_par *par, in ks108_set_start_line() argument
151 ks108_writeb_ctl(par, chipindex, KS_SET_DPY_START_LINE|y); in ks108_set_start_line()
154 static void ks108_set_yaddr(struct arcfb_par *par, in ks108_set_yaddr() argument
157 ks108_writeb_ctl(par, chipindex, KS_SET_PAGE_NUM|y); in ks108_set_yaddr()
160 static void ks108_set_xaddr(struct arcfb_par *par, in ks108_set_xaddr() argument
163 ks108_writeb_ctl(par, chipindex, KS_SET_X|x); in ks108_set_xaddr()
166 static void ks108_clear_lcd(struct arcfb_par *par, unsigned int chipindex) in ks108_clear_lcd() argument
171 ks108_set_yaddr(par, chipindex, i); in ks108_clear_lcd()
172 ks108_set_xaddr(par, chipindex, 0); in ks108_clear_lcd()
174 ks108_writeb_data(par, chipindex, in ks108_clear_lcd()
184 struct arcfb_par *par = info->par; in arcfb_open() local
186 atomic_inc(&par->ref_count); in arcfb_open()
192 struct arcfb_par *par = info->par; in arcfb_release() local
193 int count = atomic_read(&par->ref_count); in arcfb_release()
197 atomic_dec(&par->ref_count); in arcfb_release()
205 struct arcfb_par *par = info->par; in arcfb_pan_display() local
210 ks108_set_start_line(par, i, var->yoffset); in arcfb_pan_display()
223 struct arcfb_par *par = info->par; in arcfb_interrupt() local
225 ctl2status = ks108_readb_ctl2(par); in arcfb_interrupt()
230 ks108_writeb_mainctl(par, KS_CLRINT); in arcfb_interrupt()
232 spin_lock(&par->lock); in arcfb_interrupt()
236 spin_unlock(&par->lock); in arcfb_interrupt()
247 static void arcfb_lcd_update_page(struct arcfb_par *par, unsigned int upper, in arcfb_lcd_update_page() argument
260 ks108_set_yaddr(par, chipindex, upper/8); in arcfb_lcd_update_page()
262 linesize = par->info->var.xres/8; in arcfb_lcd_update_page()
263 src = (unsigned char __force *) par->info->screen_base + (left/8) + in arcfb_lcd_update_page()
265 ks108_set_xaddr(par, chipindex, left); in arcfb_lcd_update_page()
280 ks108_writeb_data(par, chipindex, val); in arcfb_lcd_update_page()
299 static void arcfb_lcd_update_vert(struct arcfb_par *par, unsigned int top, in arcfb_lcd_update_vert() argument
310 arcfb_lcd_update_page(par, upper, left, right, 8); in arcfb_lcd_update_vert()
321 static void arcfb_lcd_update_horiz(struct arcfb_par *par, unsigned int left, in arcfb_lcd_update_horiz() argument
332 arcfb_lcd_update_vert(par, upper, lower, left, right); in arcfb_lcd_update_horiz()
343 static void arcfb_lcd_update(struct arcfb_par *par, unsigned int dx, in arcfb_lcd_update() argument
358 arcfb_lcd_update_horiz(par, left, right, y, h); in arcfb_lcd_update()
368 struct arcfb_par *par = info->par; in arcfb_fillrect() local
373 arcfb_lcd_update(par, rect->dx, rect->dy, rect->width, rect->height); in arcfb_fillrect()
379 struct arcfb_par *par = info->par; in arcfb_copyarea() local
384 arcfb_lcd_update(par, area->dx, area->dy, area->width, area->height); in arcfb_copyarea()
389 struct arcfb_par *par = info->par; in arcfb_imageblit() local
394 arcfb_lcd_update(par, image->dx, image->dy, image->width, in arcfb_imageblit()
402 struct arcfb_par *par = info->par; in arcfb_ioctl() local
410 if (!par->irq) in arcfb_ioctl()
415 spin_lock_irqsave(&par->lock, flags); in arcfb_ioctl()
418 spin_unlock_irqrestore(&par->lock, flags); in arcfb_ioctl()
426 ctl2 = ks108_readb_ctl2(info->par); in arcfb_ioctl()
449 struct arcfb_par *par; in arcfb_write() local
453 par = info->par; in arcfb_write()
485 arcfb_lcd_update(par, x, y, w, h); in arcfb_write()
511 struct arcfb_par *par; in arcfb_probe() local
531 par = info->par; in arcfb_probe()
532 par->info = info; in arcfb_probe()
538 par->dio_addr = dio_addr; in arcfb_probe()
539 par->cio_addr = cio_addr; in arcfb_probe()
540 par->c2io_addr = c2io_addr; in arcfb_probe()
541 par->cslut[0] = 0x00; in arcfb_probe()
542 par->cslut[1] = 0x06; in arcfb_probe()
544 spin_lock_init(&par->lock); in arcfb_probe()
550 par->irq = irq; in arcfb_probe()
551 if (request_irq(par->irq, &arcfb_interrupt, IRQF_SHARED, in arcfb_probe()
554 "arcfb: Failed req IRQ %d\n", par->irq); in arcfb_probe()
564 ks108_writeb_ctl(par, i, KS_DPY_OFF); in arcfb_probe()
565 ks108_set_start_line(par, i, 0); in arcfb_probe()
566 ks108_set_yaddr(par, i, 0); in arcfb_probe()
567 ks108_set_xaddr(par, i, 0); in arcfb_probe()
568 ks108_writeb_ctl(par, i, KS_DPY_ON); in arcfb_probe()
575 ks108_set_start_line(par, i, 0); in arcfb_probe()
576 ks108_clear_lcd(par, i); in arcfb_probe()