r3737 - trunk/src/host/qemu-neo1973/openmoko

andrew at sita.openmoko.org andrew at sita.openmoko.org
Wed Dec 26 22:39:16 CET 2007


Author: andrew
Date: 2007-12-26 22:39:15 +0100 (Wed, 26 Dec 2007)
New Revision: 3737

Modified:
   trunk/src/host/qemu-neo1973/openmoko/linux-gta02-pseudo.patch
Log:
Patch the kernel to see S3C2410 register map, rather than 2440.


Modified: trunk/src/host/qemu-neo1973/openmoko/linux-gta02-pseudo.patch
===================================================================
--- trunk/src/host/qemu-neo1973/openmoko/linux-gta02-pseudo.patch	2007-12-26 21:33:38 UTC (rev 3736)
+++ trunk/src/host/qemu-neo1973/openmoko/linux-gta02-pseudo.patch	2007-12-26 21:39:15 UTC (rev 3737)
@@ -1074,6 +1074,143 @@
              end_request(pRequest, 0);
                  /* reset */
              outstandingReq = 1;
+diff --git a/drivers/sdio/hcd/s3c24xx/s3c24xx_hcd.c b/drivers/sdio/hcd/s3c24xx/s3c24xx_hcd.c
+index a1b8953..8dc88d2 100644
+--- a/drivers/sdio/hcd/s3c24xx/s3c24xx_hcd.c
++++ b/drivers/sdio/hcd/s3c24xx/s3c24xx_hcd.c
+@@ -100,7 +100,7 @@ static void s3c24xx_dump_regs(struct s3c24xx_hcd_context * context)
+ 	datcnt 	= readl(context->base + S3C2410_SDIDCNT);
+ 	datsta 	= readl(context->base + S3C2410_SDIDSTA);
+ 	fsta 	= readl(context->base + S3C2410_SDIFSTA);
+-	imask   = readl(context->base + S3C2440_SDIIMSK);
++	imask   = readl(context->base + S3C2410_SDIIMSK);
+ 
+ 	printk("SDICON:    0x%08x\n", con);
+ 	printk("SDIPRE:    0x%08x\n", pre);
+@@ -127,15 +127,15 @@ static inline void s3c24xx_hcd_clear_imask(struct s3c24xx_hcd_context * context)
+ 
+ 	if (context->int_sdio) {
+ 		writel(S3C2410_SDIIMSK_SDIOIRQ | S3C2410_SDIIMSK_READWAIT,
+-		       context->base + S3C2440_SDIIMSK);
++		       context->base + S3C2410_SDIIMSK);
+ 	}  else {
+-		writel(0, context->base + S3C2440_SDIIMSK);
++		writel(0, context->base + S3C2410_SDIIMSK);
+ 	}
+ }
+ 
+ static inline void s3c24xx_hcd_set_imask(struct s3c24xx_hcd_context * context)
+ {
+-	writel(context->int_mask, context->base + S3C2440_SDIIMSK);
++	writel(context->int_mask, context->base + S3C2410_SDIIMSK);
+ }
+ 
+ 
+@@ -456,11 +456,11 @@ static void s3c24xx_hcd_pio_complete(struct s3c24xx_hcd_context * context)
+ 			req->DataRemaining -= fifo_count;
+ 			while (fifo_count > 0) {
+ 				if (context->data_size == 4)
+-					*(ptr) = readl(context->base + S3C2440_SDIDATA);
++					*(ptr) = readl(context->base + S3C2410_SDIDATA);
+ 				else if (context->data_size == 2)
+-					*(ptr) = readw(context->base + S3C2440_SDIDATA);
++					*(ptr) = readw(context->base + S3C2410_SDIDATA);
+ 				else
+-					*(ptr) = readb(context->base + S3C2440_SDIDATA);
++					*(ptr) = readb(context->base + S3C2410_SDIDATA);
+ 
+ 				ptr += context->data_size;
+ 				fifo_count -= context->data_size;
+@@ -524,11 +524,11 @@ static void s3c24xx_hcd_pio_complete(struct s3c24xx_hcd_context * context)
+ 
+ 				while (fifo_count > 0) {
+ 					if (context->data_size == 4)
+-						writel(*(ptr), context->base + S3C2440_SDIDATA);
++						writel(*(ptr), context->base + S3C2410_SDIDATA);
+ 					else if (context->data_size == 2)
+-						writew(*(ptr), context->base + S3C2440_SDIDATA);
++						writew(*(ptr), context->base + S3C2410_SDIDATA);
+ 					else
+-						writeb(*(ptr), context->base + S3C2440_SDIDATA);
++						writeb(*(ptr), context->base + S3C2410_SDIDATA);
+ 
+ 					ptr += context->data_size;
+ 					fifo_count -= context->data_size;
+@@ -691,7 +691,7 @@ static int s3c24xx_hcd_prepare_dma(struct s3c24xx_hcd_context * context)
+ 	}
+ 
+ 	s3c2410_dma_devconfig(context->dma_channel, source, hwcfg,
+-			      (unsigned long)context->mem->start + S3C2440_SDIDATA);
++			      (unsigned long)context->mem->start + S3C2410_SDIDATA);
+ 
+ 	s3c2410_dma_config(context->dma_channel, context->data_size,
+ 			   S3C2410_DCON_CH0_SDI);
+@@ -741,9 +741,9 @@ static irqreturn_t s3c24xx_hcd_irq(int irq, void *dev_id)
+ 
+ 			context->int_sdio = 0;
+ 
+-			imask = readl(context->base + S3C2440_SDIIMSK);
++			imask = readl(context->base + S3C2410_SDIIMSK);
+ 			imask &= ~S3C2410_SDIIMSK_SDIOIRQ;
+-			writel(imask, context->base + S3C2440_SDIIMSK);
++			writel(imask, context->base + S3C2410_SDIIMSK);
+ 			SDIO_HandleHcdEvent(&context->hcd, EVENT_HCD_SDIO_IRQ_PENDING);
+ 		}
+ 
+@@ -875,20 +875,20 @@ SDIO_STATUS s3c24xx_hcd_config(PSDHCD hcd, PSDCONFIG config)
+ 
+ 		if (int_data->SlotIRQEnable &
+ 		    (IRQ_DETECT_1_BIT | IRQ_DETECT_4_BIT | IRQ_DETECT_MULTI_BLK) ) {
+-			imsk = readl(context->base + S3C2440_SDIIMSK);
++			imsk = readl(context->base + S3C2410_SDIIMSK);
+ 
+ 			if (int_data->SlotIRQEnable) {
+ 				printk("SDIO_INT_CTRL enable IRQ\n");
+ 				DBG_PRINT(SDDBG_TRACE, ("SDIO_INT_CTRL enable IRQ\n"));
+ 				context->int_sdio = 1;
+ 				imsk |= S3C2410_SDIIMSK_SDIOIRQ;
+-				writel(imsk, context->base + S3C2440_SDIIMSK);
++				writel(imsk, context->base + S3C2410_SDIIMSK);
+ 			} else {
+ 				printk("SDIO_INT_CTRL disable IRQ\n");
+ 				DBG_PRINT(SDDBG_TRACE, ("SDIO_INT_CTRL disable IRQ\n"));
+ 				context->int_sdio = 0;
+ 				imsk &= ~S3C2410_SDIIMSK_SDIOIRQ;
+-				writel(imsk, context->base + S3C2440_SDIIMSK);
++				writel(imsk, context->base + S3C2410_SDIIMSK);
+ 			}
+ 		}
+ 		status = SDIO_STATUS_SUCCESS;
+@@ -898,9 +898,9 @@ SDIO_STATUS s3c24xx_hcd_config(PSDHCD hcd, PSDCONFIG config)
+ 		spin_lock_irqsave(&context->lock,flags);
+ 
+ 		context->int_sdio = 1;
+-		imsk = readl(context->base + S3C2440_SDIIMSK);
++		imsk = readl(context->base + S3C2410_SDIIMSK);
+ 		imsk |= S3C2410_SDIIMSK_SDIOIRQ;
+-		writel(imsk, context->base + S3C2440_SDIIMSK);
++		writel(imsk, context->base + S3C2410_SDIIMSK);
+ 
+ 		spin_unlock_irqrestore(&context->lock,flags);
+ 
+@@ -1090,7 +1090,7 @@ SDIO_STATUS s3c24xx_hcd_request(PSDHCD hcd)
+ 	if (context->int_sdio)
+ 		imask |= S3C2410_SDIIMSK_SDIOIRQ;
+ 	context->int_mask = imask;
+-	writel(imask, context->base + S3C2440_SDIIMSK);
++	writel(imask, context->base + S3C2410_SDIIMSK);
+ 	writel(req->Argument, context->base + S3C2410_SDICMDARG);
+ 	writel(cmdcon, context->base + S3C2410_SDICMDCON);
+ 
+@@ -1376,7 +1376,7 @@ static int s3c24xx_hcd_debugfs_show(struct seq_file *s, void *data)
+ 	datcnt 	= readl(context->base + S3C2410_SDIDCNT);
+ 	datsta 	= readl(context->base + S3C2410_SDIDSTA);
+ 	fsta 	= readl(context->base + S3C2410_SDIFSTA);
+-	imask   = readl(context->base + S3C2440_SDIIMSK);
++	imask   = readl(context->base + S3C2410_SDIIMSK);
+ 
+ 	seq_printf(s, "SDICON:    0x%08x\n", con);
+ 	seq_printf(s, "SDIPRE:    0x%08x\n", pre);
 diff --git a/include/asm-arm/plat-s3c24xx/pm.h b/include/asm-arm/plat-s3c24xx/pm.h
 index cc62366..20e03b3 100644
 --- a/include/asm-arm/plat-s3c24xx/pm.h





More information about the commitlog mailing list