Lines Matching +full:board +full:- +full:specific

2  * linux/drivers/video/hecubafb.c -- FB driver for Hecuba/Apollo controller
12 * This work was possible because of apollo display code from E-Ink's website
15 * available by E-Ink on its support site. Some commands such as 0xA4
24 * It is intended to be architecture independent. A board specific driver
46 /* Display specific information */
75 par->board->set_data(par, data); in apollo_send_data()
78 par->board->set_ctl(par, HCB_DS_BIT, 0); in apollo_send_data()
81 par->board->wait_for_ack(par, 0); in apollo_send_data()
84 par->board->set_ctl(par, HCB_DS_BIT, 1); in apollo_send_data()
87 par->board->wait_for_ack(par, 1); in apollo_send_data()
93 par->board->set_ctl(par, HCB_CD_BIT, 1); in apollo_send_command()
99 par->board->set_ctl(par, HCB_CD_BIT, 0); in apollo_send_command()
105 unsigned char *buf = par->info->screen_buffer; in hecubafb_dpy_update()
120 hecubafb_dpy_update(info->par); in hecubafb_dpy_deferred_io()
125 struct hecubafb_par *par = info->par; in hecubafb_defio_damage_range()
133 struct hecubafb_par *par = info->par; in hecubafb_defio_damage_area()
155 struct hecuba_board *board; in hecubafb_probe() local
156 int retval = -ENOMEM; in hecubafb_probe()
161 /* pick up board specific routines */ in hecubafb_probe()
162 board = dev->dev.platform_data; in hecubafb_probe()
163 if (!board) in hecubafb_probe()
164 return -EINVAL; in hecubafb_probe()
166 /* try to count device specific driver, if can't, platform recalls */ in hecubafb_probe()
167 if (!try_module_get(board->owner)) in hecubafb_probe()
168 return -ENODEV; in hecubafb_probe()
176 info = framebuffer_alloc(sizeof(struct hecubafb_par), &dev->dev); in hecubafb_probe()
180 info->screen_buffer = videomemory; in hecubafb_probe()
181 info->fbops = &hecubafb_ops; in hecubafb_probe()
183 info->var = hecubafb_var; in hecubafb_probe()
184 info->fix = hecubafb_fix; in hecubafb_probe()
185 info->fix.smem_len = videomemorysize; in hecubafb_probe()
186 par = info->par; in hecubafb_probe()
187 par->info = info; in hecubafb_probe()
188 par->board = board; in hecubafb_probe()
189 par->send_command = apollo_send_command; in hecubafb_probe()
190 par->send_data = apollo_send_data; in hecubafb_probe()
192 info->flags = FBINFO_VIRTFB; in hecubafb_probe()
194 info->fbdefio = &hecubafb_defio; in hecubafb_probe()
206 retval = par->board->init(par); in hecubafb_probe()
216 module_put(board->owner); in hecubafb_probe()
225 struct hecubafb_par *par = info->par; in hecubafb_remove()
228 vfree(info->screen_buffer); in hecubafb_remove()
229 if (par->board->remove) in hecubafb_remove()
230 par->board->remove(par); in hecubafb_remove()
231 module_put(par->board->owner); in hecubafb_remove()