Esempio n. 1
0
static int chipsfb_set_par(struct fb_info *info)
{
    if (info->var.bits_per_pixel == 16) {
        write_cr(0x13, 200);
        write_xr(0x81, 0x14);
        write_xr(0x82, 0x00);
        write_xr(0x20, 0x10);

        info->fix.line_length = 800*2;
        info->fix.visual = FB_VISUAL_TRUECOLOR;

        info->var.red.offset = 10;
        info->var.green.offset = 5;
        info->var.blue.offset = 0;
        info->var.red.length = info->var.green.length =
                                   info->var.blue.length = 5;

    } else {

        write_cr(0x13, 100);
        write_xr(0x81, 0x12);
        write_xr(0x82, 0x08);
        write_xr(0x20, 0x00);

        info->fix.line_length = 800;
        info->fix.visual = FB_VISUAL_PSEUDOCOLOR;

        info->var.red.offset = info->var.green.offset =
                                   info->var.blue.offset = 0;
        info->var.red.length = info->var.green.length =
                                   info->var.blue.length = 8;

    }
    return 0;
}
Esempio n. 2
0
File: chipsfb.c Progetto: 7799/linux
static int chipsfb_set_par(struct fb_info *info)
{
	if (info->var.bits_per_pixel == 16) {
		write_cr(0x13, 200);		// Set line length (doublewords)
		write_xr(0x81, 0x14);		// 15 bit (555) color mode
		write_xr(0x82, 0x00);		// Disable palettes
		write_xr(0x20, 0x10);		// 16 bit blitter mode

		info->fix.line_length = 800*2;
		info->fix.visual = FB_VISUAL_TRUECOLOR;

		info->var.red.offset = 10;
		info->var.green.offset = 5;
		info->var.blue.offset = 0;
		info->var.red.length = info->var.green.length =
			info->var.blue.length = 5;
		
	} else {
		/* p->var.bits_per_pixel == 8 */
		write_cr(0x13, 100);		// Set line length (doublewords)
		write_xr(0x81, 0x12);		// 8 bit color mode
		write_xr(0x82, 0x08);		// Graphics gamma enable
		write_xr(0x20, 0x00);		// 8 bit blitter mode

		info->fix.line_length = 800;
		info->fix.visual = FB_VISUAL_PSEUDOCOLOR;		

 		info->var.red.offset = info->var.green.offset =
			info->var.blue.offset = 0;
		info->var.red.length = info->var.green.length =
			info->var.blue.length = 8;
		
	}
	return 0;
}
Esempio n. 3
0
rtems_device_driver ac97_open(
   rtems_device_major_number major,
   rtems_device_minor_number minor,
   void *arg
)
{
  int codec_id;
  
  if (minor == 0) {
    /* snd */
    return RTEMS_SUCCESSFUL;
  } else {
    /* mixer */
    codec_id = read_cr(0x00);
    if ((codec_id != 0x0d50) && (codec_id != 0x6150)) {
      printk("AC97 codec detection failed\n");
      return RTEMS_UNSATISFIED;
    }
    write_cr(0x02, 0x0000); /* master volume */
    write_cr(0x04, 0x0f0f); /* headphones volume */
    write_cr(0x18, 0x0000); /* PCM out volume */
    write_cr(0x1c, 0x0f0f); /* record gain */

    write_cr(0x1a, 0x0505); /* record select: stereo mix */

    return RTEMS_SUCCESSFUL;
  }
}
Esempio n. 4
0
File: chipsfb.c Progetto: 7799/linux
static void __init chips_hw_init(void)
{
	int i;

	for (i = 0; i < ARRAY_SIZE(chips_init_xr); ++i)
		write_xr(chips_init_xr[i].addr, chips_init_xr[i].data);
	outb(0x29, 0x3c2); /* set misc output reg */
	for (i = 0; i < ARRAY_SIZE(chips_init_sr); ++i)
		write_sr(chips_init_sr[i].addr, chips_init_sr[i].data);
	for (i = 0; i < ARRAY_SIZE(chips_init_gr); ++i)
		write_gr(chips_init_gr[i].addr, chips_init_gr[i].data);
	for (i = 0; i < ARRAY_SIZE(chips_init_ar); ++i)
		write_ar(chips_init_ar[i].addr, chips_init_ar[i].data);
	for (i = 0; i < ARRAY_SIZE(chips_init_cr); ++i)
		write_cr(chips_init_cr[i].addr, chips_init_cr[i].data);
	for (i = 0; i < ARRAY_SIZE(chips_init_fr); ++i)
		write_fr(chips_init_fr[i].addr, chips_init_fr[i].data);
}