Lines Matching refs:data
82 * Private data.
102 char curimage[512]; /* cursor image data */
103 char curmask[512]; /* cursor mask data */
125 bt485_wr_i(struct bt485data *data, u_int8_t ireg, u_int8_t val)
127 data->ramdac_wr(data->cookie, BT485_REG_PCRAM_WRADDR, ireg);
128 data->ramdac_wr(data->cookie, BT485_REG_EXTENDED, val);
132 bt485_rd_i(struct bt485data *data, u_int8_t ireg)
134 data->ramdac_wr(data->cookie, BT485_REG_PCRAM_WRADDR, ireg);
135 return (data->ramdac_rd(data->cookie, BT485_REG_EXTENDED));
157 struct bt485data *data;
164 data = malloc(sizeof *data, M_DEVBUF, M_WAITOK);
165 /* XXX -- if !data */
166 data->cookie = v;
167 data->ramdac_sched_update = sched_update;
168 data->ramdac_wr = wr;
169 data->ramdac_rd = rd;
170 return (struct ramdac_cookie *)data;
185 struct bt485data tmp, *data = &tmp;
186 data->cookie = v;
187 data->ramdac_sched_update = sched_update;
188 data->ramdac_wr = wr;
189 data->ramdac_rd = rd;
190 bt485_init((struct ramdac_cookie *)data);
197 struct bt485data *data = (struct bt485data *)rc;
209 regval = data->ramdac_rd(data->cookie, BT485_REG_COMMAND_0);
216 data->ramdac_wr(data->cookie, BT485_REG_COMMAND_0, regval);
219 data->ramdac_wr(data->cookie, BT485_REG_COMMAND_1, 0x40);
222 regval = data->ramdac_rd(data->cookie, BT485_REG_COMMAND_2);
225 data->ramdac_wr(data->cookie, BT485_REG_COMMAND_2, regval);
228 regval = bt485_rd_i(data, BT485_IREG_COMMAND_3);
231 bt485_wr_i(data, BT485_IREG_COMMAND_3, regval);
234 data->ramdac_wr(data->cookie, BT485_REG_PIXMASK, 0xff);
238 * data, and fill it in.
240 data->changed = DATA_ALL_CHANGED;
242 data->curenb = 0; /* cursor disabled */
243 data->curpos.x = data->curpos.y = 0; /* right now at 0,0 */
244 data->curhot.x = data->curhot.y = 0; /* hot spot at 0,0 */
247 data->curcmap_r[0] = data->curcmap_g[0] = data->curcmap_b[0] = 0;
248 data->curcmap_r[1] = data->curcmap_g[1] = data->curcmap_b[1] = 0xff;
250 /* initial cursor data: 64x64 block of white. */
251 data->cursize.x = data->cursize.y = 64;
253 data->curimage[i] = data->curmask[i] = 0xff;
256 data->cmap_r[0] = data->cmap_g[0] = data->cmap_b[0] = 0;
258 data->cmap_r[i] = data->cmap_g[i] = data->cmap_b[i] = 255;
260 bt485_update((void *)data);
266 struct bt485data *data = (struct bt485data *)rc;
286 memcpy(&data->cmap_r[index], &r[index], count);
287 memcpy(&data->cmap_g[index], &g[index], count);
288 memcpy(&data->cmap_b[index], &b[index], count);
289 data->changed |= DATA_CMAP_CHANGED;
290 data->ramdac_sched_update(data->cookie, bt485_update);
298 struct bt485data *data = (struct bt485data *)rc;
307 error = copyout(&data->cmap_r[index], cmapp->red, count);
310 error = copyout(&data->cmap_g[index], cmapp->green, count);
313 error = copyout(&data->cmap_b[index], cmapp->blue, count);
320 struct bt485data *data = (struct bt485data *)rc;
328 * For DOCMAP and DOSHAPE, copy in the new data
351 icount = (CURSOR_MAX_SIZE / NBBY) * data->cursize.y;
362 data->curpos = cursorp->pos;
364 data->curhot = cursorp->hot;
365 bt485_update_curpos(data);
370 /* Data is all available; perform the requested operations. */
372 data->curenb = cursorp->enable;
373 data->changed |= DATA_ENB_CHANGED;
376 memcpy(&data->curcmap_r[index], &r[index], count);
377 memcpy(&data->curcmap_g[index], &g[index], count);
378 memcpy(&data->curcmap_b[index], &b[index], count);
379 data->changed |= DATA_CURCMAP_CHANGED;
382 data->cursize = cursorp->size;
383 count = (CURSOR_MAX_SIZE / NBBY) * data->cursize.y;
384 memset(data->curimage, 0, sizeof data->curimage);
385 memset(data->curmask, 0, sizeof data->curmask);
386 memcpy(data->curimage, image, icount);
387 memcpy(data->curmask, mask, icount);
388 data->changed |= DATA_CURSHAPE_CHANGED;
391 if (data->changed)
392 data->ramdac_sched_update(data->cookie, bt485_update);
401 struct bt485data *data = (struct bt485data *)rc;
407 cursorp->enable = data->curenb; /* DOCUR */
408 cursorp->pos = data->curpos; /* DOPOS */
409 cursorp->hot = data->curhot; /* DOHOT */
414 error = copyout(data->curcmap_r, cursorp->cmap.red, 2);
419 error = copyout(data->curcmap_g, cursorp->cmap.green, 2);
424 error = copyout(data->curcmap_b, cursorp->cmap.blue, 2);
429 cursorp->size = data->cursize; /* DOSHAPE */
431 count = (CURSOR_MAX_SIZE / NBBY) * data->cursize.y;
432 error = copyout(data->curimage, cursorp->image, count);
435 error = copyout(data->curmask, cursorp->mask, count);
446 struct bt485data *data = (struct bt485data *)rc;
448 data->curpos = *curposp;
449 bt485_update_curpos(data);
457 struct bt485data *data = (struct bt485data *)rc;
459 *curposp = data->curpos;
480 struct bt485data *data = vp;
484 v = data->changed;
485 data->changed = 0;
488 regval = data->ramdac_rd(data->cookie, BT485_REG_COMMAND_2);
489 if (data->curenb)
493 data->ramdac_wr(data->cookie, BT485_REG_COMMAND_2, regval);
499 data->ramdac_wr(data->cookie, BT485_REG_COC_WRADDR, 0x01);
501 /* spit out the cursor data */
503 data->ramdac_wr(data->cookie, BT485_REG_COCDATA,
504 data->curcmap_r[i]);
505 data->ramdac_wr(data->cookie, BT485_REG_COCDATA,
506 data->curcmap_g[i]);
507 data->ramdac_wr(data->cookie, BT485_REG_COCDATA,
508 data->curcmap_b[i]);
513 count = (CURSOR_MAX_SIZE / NBBY) * data->cursize.y;
516 * Write the cursor image data:
521 regval = bt485_rd_i(data, BT485_IREG_COMMAND_3);
523 bt485_wr_i(data, BT485_IREG_COMMAND_3, regval);
524 data->ramdac_wr(data->cookie, BT485_REG_PCRAM_WRADDR, 0);
526 data->ramdac_wr(data->cookie, BT485_REG_CURSOR_RAM,
527 data->curimage[i]);
530 * Write the cursor mask data:
535 regval = bt485_rd_i(data, BT485_IREG_COMMAND_3);
537 bt485_wr_i(data, BT485_IREG_COMMAND_3, regval);
538 data->ramdac_wr(data->cookie, BT485_REG_PCRAM_WRADDR, 0);
540 data->ramdac_wr(data->cookie, BT485_REG_CURSOR_RAM,
541 data->curmask[i]);
544 regval = bt485_rd_i(data, BT485_IREG_COMMAND_3);
546 bt485_wr_i(data, BT485_IREG_COMMAND_3, regval);
552 data->ramdac_wr(data->cookie, BT485_REG_PCRAM_WRADDR, 0x00);
554 /* spit out the cursor data */
556 data->ramdac_wr(data->cookie, BT485_REG_PALETTE,
557 data->cmap_r[i]);
558 data->ramdac_wr(data->cookie, BT485_REG_PALETTE,
559 data->cmap_g[i]);
560 data->ramdac_wr(data->cookie, BT485_REG_PALETTE,
561 data->cmap_b[i]);
567 bt485_update_curpos(struct bt485data *data)
569 void *cookie = data->cookie;
574 x = data->curpos.x + CURSOR_MAX_SIZE - data->curhot.x;
575 y = data->curpos.y + CURSOR_MAX_SIZE - data->curhot.y;
576 data->ramdac_wr(cookie, BT485_REG_CURSOR_X_LOW, x & 0xff);
577 data->ramdac_wr(cookie, BT485_REG_CURSOR_X_HIGH, (x >> 8) & 0x0f);
578 data->ramdac_wr(cookie, BT485_REG_CURSOR_Y_LOW, y & 0xff);
579 data->ramdac_wr(cookie, BT485_REG_CURSOR_Y_HIGH, (y >> 8) & 0x0f);