示例#1
0
static void hp680bl_send_intensity(struct backlight_device *bd)
{
	unsigned long flags;
	u16 v;
	int intensity = bd->props.brightness;

	if (bd->props.power != FB_BLANK_UNBLANK)
		intensity = 0;
	if (bd->props.fb_blank != FB_BLANK_UNBLANK)
		intensity = 0;
	if (hp680bl_suspended)
		intensity = 0;

	spin_lock_irqsave(&bl_lock, flags);
	if (intensity && current_intensity == 0) {
		sh_dac_enable(DAC_LCD_BRIGHTNESS);
		v = inw(HD64461_GPBDR);
		v &= ~HD64461_GPBDR_LCDOFF;
		outw(v, HD64461_GPBDR);
		sh_dac_output(255-(u8)intensity, DAC_LCD_BRIGHTNESS);
	} else if (intensity == 0 && current_intensity != 0) {
		sh_dac_output(255-(u8)intensity, DAC_LCD_BRIGHTNESS);
		sh_dac_disable(DAC_LCD_BRIGHTNESS);
		v = inw(HD64461_GPBDR);
		v |= HD64461_GPBDR_LCDOFF;
		outw(v, HD64461_GPBDR);
	} else if (intensity) {
		sh_dac_output(255-(u8)intensity, DAC_LCD_BRIGHTNESS);
	}
	spin_unlock_irqrestore(&bl_lock, flags);

	current_intensity = intensity;
}
示例#2
0
static void dac_audio_stop(void)
{
#ifdef MACH_HP600
	u16 v;
#endif
	dac_audio_stop_timer();
#ifdef MACH_HP600
	v = inw(HD64461_GPADR);
	v |= HD64461_GPADR_SPEAKER;
	outw(v, HD64461_GPADR);
#endif
	sh_dac_disable(CONFIG_SOUND_SH_DAC_AUDIO_CHANNEL);
}
示例#3
0
static void dac_audio_stop(void)
{
	dac_audio_stop_timer();

	if (mach_is_hp6xx()) {
		u16 v = inw(HD64461_GPADR);
		v |= HD64461_GPADR_SPEAKER;
		outw(v, HD64461_GPADR);
	}

 	sh_dac_output(0, CONFIG_SOUND_SH_DAC_AUDIO_CHANNEL);
	sh_dac_disable(CONFIG_SOUND_SH_DAC_AUDIO_CHANNEL);
}
示例#4
0
文件: setup.c 项目: 0-T-0/ps4-linux
static void dac_audio_stop(struct dac_audio_pdata *pdata)
{
	u16 v;
	u8 v8;

	/* HP Jornada 680/690 speaker off */
	v = inw(HD64461_GPADR);
	v |= HD64461_GPADR_SPEAKER;
	outw(v, HD64461_GPADR);

	/* HP Palmtop 620lx/660lx speaker off */
	v8 = inb(PKDR);
	v8 |= PKDR_SPEAKER;
	outb(v8, PKDR);

	sh_dac_output(0, pdata->channel);
	sh_dac_disable(pdata->channel);
}
示例#5
0
文件: setup.c 项目: 0-T-0/ps4-linux
static void __init hp6xx_setup(char **cmdline_p)
{
	u8 v8;
	u16 v;

	v = inw(HD64461_STBCR);
	v |=	HD64461_STBCR_SURTST | HD64461_STBCR_SIRST	|
		HD64461_STBCR_STM1ST | HD64461_STBCR_STM0ST	|
		HD64461_STBCR_SAFEST | HD64461_STBCR_SPC0ST	|
		HD64461_STBCR_SMIAST | HD64461_STBCR_SAFECKE_OST|
		HD64461_STBCR_SAFECKE_IST;
#ifndef CONFIG_HD64461_ENABLER
	v |= HD64461_STBCR_SPC1ST;
#endif
	outw(v, HD64461_STBCR);
	v = inw(HD64461_GPADR);
	v |= HD64461_GPADR_SPEAKER | HD64461_GPADR_PCMCIA0;
	outw(v, HD64461_GPADR);

	outw(HD64461_PCCGCR_VCC0 | HD64461_PCCSCR_VCC1, HD64461_PCC0GCR);

#ifndef CONFIG_HD64461_ENABLER
	outw(HD64461_PCCGCR_VCC0 | HD64461_PCCSCR_VCC1, HD64461_PCC1GCR);
#endif

	sh_dac_output(0, DAC_SPEAKER_VOLUME);
	sh_dac_disable(DAC_SPEAKER_VOLUME);
	v8 = __raw_readb(DACR);
	v8 &= ~DACR_DAE;
	__raw_writeb(v8,DACR);

	v8 = __raw_readb(SCPDR);
	v8 |= SCPDR_TS_SCAN_X | SCPDR_TS_SCAN_Y;
	v8 &= ~SCPDR_TS_SCAN_ENABLE;
	__raw_writeb(v8, SCPDR);

	v = __raw_readw(SCPCR);
	v &= ~SCPCR_TS_MASK;
	v |= SCPCR_TS_ENABLE;
	__raw_writew(v, SCPCR);
}