Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb1b74e0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/home/rmk/linux-2.6-arm

parents 50f72b57 7dead80c
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@ struct scoop_pcmcia_dev *scoop_devs;
struct  scoop_dev {
	void  *base;
	spinlock_t scoop_lock;
	unsigned short suspend_clr;
	unsigned short suspend_set;
	u32 scoop_gpwr;
};

@@ -90,14 +92,24 @@ EXPORT_SYMBOL(reset_scoop);
EXPORT_SYMBOL(read_scoop_reg);
EXPORT_SYMBOL(write_scoop_reg);

static void check_scoop_reg(struct scoop_dev *sdev)
{
	unsigned short mcr;

	mcr = SCOOP_REG(sdev->base, SCOOP_MCR);
	if ((mcr & 0x100) == 0)
		SCOOP_REG(sdev->base, SCOOP_MCR) = 0x0101;
}

#ifdef CONFIG_PM
static int scoop_suspend(struct device *dev, pm_message_t state, uint32_t level)
{
	if (level == SUSPEND_POWER_DOWN) {
		struct scoop_dev *sdev = dev_get_drvdata(dev);

		check_scoop_reg(sdev);
  		sdev->scoop_gpwr = SCOOP_REG(sdev->base, SCOOP_GPWR);
		SCOOP_REG(sdev->base,SCOOP_GPWR) = 0;
		SCOOP_REG(sdev->base, SCOOP_GPWR) = (sdev->scoop_gpwr & ~sdev->suspend_clr) | sdev->suspend_set;
	}
	return 0;
}
@@ -107,6 +119,7 @@ static int scoop_resume(struct device *dev, uint32_t level)
	if (level == RESUME_POWER_ON) {
		struct scoop_dev *sdev = dev_get_drvdata(dev);

		check_scoop_reg(sdev);
		SCOOP_REG(sdev->base,SCOOP_GPWR) = sdev->scoop_gpwr;
	}
	return 0;
@@ -151,6 +164,9 @@ int __init scoop_probe(struct device *dev)
	SCOOP_REG(devptr->base, SCOOP_GPCR) = inf->io_dir & 0xffff;
	SCOOP_REG(devptr->base, SCOOP_GPWR) = inf->io_out & 0xffff;

	devptr->suspend_clr = inf->suspend_clr;
	devptr->suspend_set = inf->suspend_set;

	return 0;
}

+1 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@
#include <asm/arch/mmc.h>
#include <asm/arch/udc.h>
#include <asm/arch/corgi.h>
#include <asm/arch/sharpsl.h>

#include <asm/mach/sharpsl_param.h>
#include <asm/hardware/scoop.h>
+3 −3
Original line number Diff line number Diff line
@@ -111,11 +111,11 @@ static struct mtd_partition collie_partitions[] = {

static void collie_set_vpp(int vpp)
{
	write_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(SCOOP_GPCR) | COLLIE_SCP_VPEN);
	write_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR) | COLLIE_SCP_VPEN);
	if (vpp)
		write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) | COLLIE_SCP_VPEN);
		write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR) | COLLIE_SCP_VPEN);
	else
		write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) & ~COLLIE_SCP_VPEN);
		write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR) & ~COLLIE_SCP_VPEN);
}

static struct flash_platform_data collie_flash_data = {
+10 −1
Original line number Diff line number Diff line
@@ -330,6 +330,9 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
{
	unsigned int rd = RD_BITS(instr);

	if (((rd & 1) == 1) || (rd == 14))
		goto bad;

	ai_dword += 1;

	if (user_mode(regs))
@@ -361,7 +364,8 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
	}

	return TYPE_LDST;

 bad:
	return TYPE_ERROR;
 fault:
	return TYPE_FAULT;
}
@@ -663,6 +667,8 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
		else if ((instr & 0x001000f0) == 0x000000d0 || /* LDRD */
			 (instr & 0x001000f0) == 0x000000f0)   /* STRD */
			handler = do_alignment_ldrdstrd;
		else if ((instr & 0x01f00ff0) == 0x01000090) /* SWP */
			goto swp;
		else
			goto bad;
		break;
@@ -733,6 +739,9 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
	do_bad_area(current, current->mm, addr, fsr, regs);
	return 0;

 swp:
	printk(KERN_ERR "Alignment trap: not handling swp instruction\n");

 bad:
	/*
	 * Oops, we didn't handle the instruction.
+86 −4
Original line number Diff line number Diff line
@@ -2,11 +2,17 @@
#
# This file is linux/arch/arm/tools/mach-types
#
# Up to date versions of this file can be obtained from:
#
#   http://www.arm.linux.org.uk/developer/machines/?action=download
#
# Please do not send patches to this file; it is automatically generated!
# To add an entry into this database, please see Documentation/arm/README,
# or contact rmk@arm.linux.org.uk
# or visit:
#
#   http://www.arm.linux.org.uk/developer/machines/?action=new
#
# Last update: Thu Jun 23 20:19:33 2005
# Last update: Mon Oct 10 09:46:25 2005
#
# machine_is_xxx	CONFIG_xxxx		MACH_TYPE_xxx		number
#
@@ -421,7 +427,7 @@ mt02 MACH_MT02 MT02 410
mport3s			MACH_MPORT3S		MPORT3S			411
ra_alpha		MACH_RA_ALPHA		RA_ALPHA		412
xcep			MACH_XCEP		XCEP			413
arcom_mercury		MACH_ARCOM_MERCURY	ARCOM_MERCURY		414
arcom_vulcan		MACH_ARCOM_VULCAN	ARCOM_VULCAN		414
stargate		MACH_STARGATE		STARGATE		415
armadilloj		MACH_ARMADILLOJ		ARMADILLOJ		416
elroy_jack		MACH_ELROY_JACK		ELROY_JACK		417
@@ -454,7 +460,7 @@ esl_sarva MACH_ESL_SARVA ESL_SARVA 443
xm250			MACH_XM250		XM250			444
t6tc1xb			MACH_T6TC1XB		T6TC1XB			445
ess710			MACH_ESS710		ESS710			446
mx3ads			MACH_MX3ADS		MX3ADS			447
mx31ads			MACH_MX3ADS		MX3ADS			447
himalaya		MACH_HIMALAYA		HIMALAYA		448
bolfenk			MACH_BOLFENK		BOLFENK			449
at91rm9200kr		MACH_AT91RM9200KR	AT91RM9200KR		450
@@ -787,3 +793,79 @@ ez_ixp42x MACH_EZ_IXP42X EZ_IXP42X 778
tapwave_zodiac		MACH_TAPWAVE_ZODIAC	TAPWAVE_ZODIAC		779
universalmeter		MACH_UNIVERSALMETER	UNIVERSALMETER		780
hicoarm9		MACH_HICOARM9		HICOARM9		781
pnx4008			MACH_PNX4008		PNX4008			782
kws6000			MACH_KWS6000		KWS6000			783
portux920t		MACH_PORTUX920T		PORTUX920T		784
ez_x5			MACH_EZ_X5		EZ_X5			785
omap_rudolph		MACH_OMAP_RUDOLPH	OMAP_RUDOLPH		786
cpuat91			MACH_CPUAT91		CPUAT91			787
rea9200			MACH_REA9200		REA9200			788
acts_pune_sa1110	MACH_ACTS_PUNE_SA1110	ACTS_PUNE_SA1110	789
ixp425			MACH_IXP425		IXP425			790
argonplusodyssey	MACH_ODYSSEY		ODYSSEY			791
perch			MACH_PERCH		PERCH			792
eis05r1			MACH_EIS05R1		EIS05R1			793
pepperpad		MACH_PEPPERPAD		PEPPERPAD		794
sb3010			MACH_SB3010		SB3010			795
rm9200			MACH_RM9200		RM9200			796
dma03			MACH_DMA03		DMA03			797
road_s101		MACH_ROAD_S101		ROAD_S101		798
iq_nextgen_a		MACH_IQ_NEXTGEN_A	IQ_NEXTGEN_A		799
iq_nextgen_b		MACH_IQ_NEXTGEN_B	IQ_NEXTGEN_B		800
iq_nextgen_c		MACH_IQ_NEXTGEN_C	IQ_NEXTGEN_C		801
iq_nextgen_d		MACH_IQ_NEXTGEN_D	IQ_NEXTGEN_D		802
iq_nextgen_e		MACH_IQ_NEXTGEN_E	IQ_NEXTGEN_E		803
mallow_at91		MACH_MALLOW_AT91	MALLOW_AT91		804
cybertracker		MACH_CYBERTRACKER	CYBERTRACKER		805
gesbc931x		MACH_GESBC931X		GESBC931X		806
centipad		MACH_CENTIPAD		CENTIPAD		807
armsoc			MACH_ARMSOC		ARMSOC			808
se4200			MACH_SE4200		SE4200			809
ems197a			MACH_EMS197A		EMS197A			810
micro9			MACH_MICRO9		MICRO9			811
micro9l			MACH_MICRO9L		MICRO9L			812
uc5471dsp		MACH_UC5471DSP		UC5471DSP		813
sj5471eng		MACH_SJ5471ENG		SJ5471ENG		814
none			MACH_CMPXA26X		CMPXA26X		815
nc			MACH_NC			NC			816
omap_palmte		MACH_OMAP_PALMTE	OMAP_PALMTE		817
ajax52x			MACH_AJAX52X		AJAX52X			818
siriustar		MACH_SIRIUSTAR		SIRIUSTAR		819
iodata_hdlg		MACH_IODATA_HDLG	IODATA_HDLG		820
at91rm9200utl		MACH_AT91RM9200UTL	AT91RM9200UTL		821
biosafe			MACH_BIOSAFE		BIOSAFE			822
mp1000			MACH_MP1000		MP1000			823
parsy			MACH_PARSY		PARSY			824
ccxp270			MACH_CCXP		CCXP			825
omap_gsample		MACH_OMAP_GSAMPLE	OMAP_GSAMPLE		826
realview_eb		MACH_REALVIEW_EB	REALVIEW_EB		827
samoa			MACH_SAMOA		SAMOA			828
t3xscale		MACH_T3XSCALE		T3XSCALE		829
i878			MACH_I878		I878			830
borzoi			MACH_BORZOI		BORZOI			831
gecko			MACH_GECKO		GECKO			832
ds101			MACH_DS101		DS101			833
omap_palmtt2		MACH_OMAP_PALMTT2	OMAP_PALMTT2		834
xscale_palmld		MACH_XSCALE_PALMLD	XSCALE_PALMLD		835
cc9c			MACH_CC9C		CC9C			836
sbc1670			MACH_SBC1670		SBC1670			837
ixdp28x5		MACH_IXDP28X5		IXDP28X5		838
omap_palmtt		MACH_OMAP_PALMTT	OMAP_PALMTT		839
ml696k			MACH_ML696K		ML696K			840
arcom_zeus		MACH_ARCOM_ZEUS		ARCOM_ZEUS		841
osiris			MACH_OSIRIS		OSIRIS			842
maestro			MACH_MAESTRO		MAESTRO			843
tunge2			MACH_TUNGE2		TUNGE2			844
ixbbm			MACH_IXBBM		IXBBM			845
mx27			MACH_MX27		MX27			846
ax8004			MACH_AX8004		AX8004			847
at91sam9261ek		MACH_AT91SAM9261EK	AT91SAM9261EK		848
loft			MACH_LOFT		LOFT			849
magpie			MACH_MAGPIE		MAGPIE			850
mx21			MACH_MX21		MX21			851
mb87m3400		MACH_MB87M3400		MB87M3400		852
mguard_delta		MACH_MGUARD_DELTA	MGUARD_DELTA		853
davinci_dvdp		MACH_DAVINCI_DVDP	DAVINCI_DVDP		854
htcuniversal		MACH_HTCUNIVERSAL	HTCUNIVERSAL		855
tpad			MACH_TPAD		TPAD			856
roverp3			MACH_ROVERP3		ROVERP3			857
Loading