Revision 5309809129ca3ab14f8bd5e5ef66c1b7686eb639 authored by Linus Torvalds on 26 September 2007, 16:16:21 UTC, committed by Linus Torvalds on 26 September 2007, 16:16:21 UTC
As Stephen Hemminger says, this is a "belt and suspenders" patch that
zeroes the envp array at allocation time, even though all the users
should NULL-terminate it anyway (and we've hopefully fixed everybody
that doesn't do that).

And we'll apparently clean the whole envp thing up for 2.6.24 anyway.

But let's just be robust, and do both this *and* make sure that all
users are doing the right thing.

Acked-by: Stephen Hemminger <shemminger@linux-foundation.org>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 544002e
Raw File
hp6xx.h
#ifndef __ASM_SH_HP6XX_H
#define __ASM_SH_HP6XX_H

/*
 * Copyright (C) 2003, 2004, 2005  Andriy Skulysh
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 *
 */

#define HP680_BTN_IRQ		32            /* IRQ0_IRQ */
#define HP680_TS_IRQ		35            /* IRQ3_IRQ */
#define HP680_HD64461_IRQ	36            /* IRQ4_IRQ */

#define DAC_LCD_BRIGHTNESS	0
#define DAC_SPEAKER_VOLUME	1

#define PGDR_OPENED		0x01
#define PGDR_MAIN_BATTERY_OUT	0x04
#define PGDR_PLAY_BUTTON	0x08
#define PGDR_REWIND_BUTTON	0x10
#define PGDR_RECORD_BUTTON	0x20

#define PHDR_TS_PEN_DOWN	0x08

#define PJDR_LED_BLINK		0x02

#define PKDR_LED_GREEN		0x10

#define SCPDR_TS_SCAN_ENABLE	0x20
#define SCPDR_TS_SCAN_Y		0x02
#define SCPDR_TS_SCAN_X		0x01

#define SCPCR_TS_ENABLE		0x405
#define SCPCR_TS_MASK		0xc0f

#define ADC_CHANNEL_TS_Y	1
#define ADC_CHANNEL_TS_X	2
#define ADC_CHANNEL_BATTERY	3
#define ADC_CHANNEL_BACKUP	4
#define ADC_CHANNEL_CHARGE	5

#define HD64461_GPADR_SPEAKER	0x01
#define HD64461_GPADR_PCMCIA0	(0x02|0x08)

#define HD64461_GPBDR_LCDOFF	0x01
#define HD64461_GPBDR_LCD_CONTRAST_MASK	0x78
#define HD64461_GPBDR_LED_RED	0x80

#include <asm/hd64461.h>
#include <asm/io.h>

#define PJDR	0xa4000130
#define PKDR	0xa4000132

static inline void hp6xx_led_red(int on)
{
	u16 v16;
	v16 = ctrl_inw(CONFIG_HD64461_IOBASE + HD64461_GPBDR - 0x10000);
	if (on)
	    ctrl_outw(v16 & (~HD64461_GPBDR_LED_RED), CONFIG_HD64461_IOBASE + HD64461_GPBDR - 0x10000);
	else
	    ctrl_outw(v16 | HD64461_GPBDR_LED_RED, CONFIG_HD64461_IOBASE + HD64461_GPBDR - 0x10000);
}

static inline void hp6xx_led_green(int on)
{
	u8 v8;

	v8 = ctrl_inb(PKDR);
	if (on)
	    ctrl_outb(v8 & (~PKDR_LED_GREEN), PKDR);
	else
	    ctrl_outb(v8 | PKDR_LED_GREEN, PKDR);
}


#endif /* __ASM_SH_HP6XX_H */
back to top