Send commitlog mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
        [EMAIL PROTECTED]

You can reach the person managing the list at
        [EMAIL PROTECTED]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:

   1. r3684 - in trunk/src/target/gsm: include/libgsmd src/gsmd
      src/libgsmd       src/util ([EMAIL PROTECTED])
   2. r3685 - branches/src/target/kernel/2.6.24.x/patches
      ([EMAIL PROTECTED])
   3. r3686 - branches/src/target/kernel/2.6.24.x/patches
      ([EMAIL PROTECTED])
--- Begin Message ---
Author: erin_yueh
Date: 2007-12-19 10:34:34 +0100 (Wed, 19 Dec 2007)
New Revision: 3684

Modified:
   trunk/src/target/gsm/include/libgsmd/misc.h
   trunk/src/target/gsm/include/libgsmd/sms.h
   trunk/src/target/gsm/src/gsmd/usock.c
   trunk/src/target/gsm/src/libgsmd/libgsmd_network.c
   trunk/src/target/gsm/src/util/shell.c
Log:
gsmd: set and get Voicemail number (Erin Yueh)


Modified: trunk/src/target/gsm/include/libgsmd/misc.h
===================================================================
--- trunk/src/target/gsm/include/libgsmd/misc.h 2007-12-18 18:18:39 UTC (rev 
3683)
+++ trunk/src/target/gsm/include/libgsmd/misc.h 2007-12-19 09:34:34 UTC (rev 
3684)
@@ -34,14 +34,6 @@
 /* Get Signal Strehngth (Chapter 8.5) */
 extern int lgsm_signal_quality(struct lgsm_handle *h);
 
-/* Set voice mail number */
-extern int lgsm_voicemail_set(struct lgsm_handle *lh,
-                             struct lgsm_addr *addr);
-
-/* Get currently configured voice mail number */
-extern int lgsm_voicemail_get(struct lgsm_handle *lh,
-                             struct lgsm_addr *addr);
-
 /* Operator Selection, Network Registration */
 extern int lgsm_oper_get(struct lgsm_handle *lh);
 extern int lgsm_opers_get(struct lgsm_handle *lh);

Modified: trunk/src/target/gsm/include/libgsmd/sms.h
===================================================================
--- trunk/src/target/gsm/include/libgsmd/sms.h  2007-12-18 18:18:39 UTC (rev 
3683)
+++ trunk/src/target/gsm/include/libgsmd/sms.h  2007-12-19 09:34:34 UTC (rev 
3684)
@@ -79,6 +79,8 @@
 extern int lgsm_sms_set_storage(struct lgsm_handle *lh,
                enum ts0705_mem_type mem1, enum ts0705_mem_type mem2,
                enum ts0705_mem_type mem3);
+extern int lgsm_number2addr(struct gsmd_addr *dst, const char *src,
+       int skipplus);
 
 /* Retrieve current default service centre address */
 extern int lgsm_sms_get_smsc(struct lgsm_handle *lh);

Modified: trunk/src/target/gsm/src/gsmd/usock.c
===================================================================
--- trunk/src/target/gsm/src/gsmd/usock.c       2007-12-18 18:18:39 UTC (rev 
3683)
+++ trunk/src/target/gsm/src/gsmd/usock.c       2007-12-19 09:34:34 UTC (rev 
3684)
@@ -520,55 +520,38 @@
 static int network_vmail_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
 {
        struct gsmd_user *gu = ctx;
-       struct gsmd_voicemail *vmail;
-       struct gsmd_ucmd *ucmd;
-       char *comma;
+       struct gsmd_voicemail vmail;
+       struct gsm_extrsp *er;
+       int rc;
+       int ret = cmd->ret;
 
-       DEBUGP("entering(cmd=%p, gu=%p)\n", cmd, gu);
+       DEBUGP("cmd = '%s', resp: '%s'\n", cmd->buf, resp);
 
-       ucmd = ucmd_alloc(sizeof(*vmail));
-       if (!ucmd)
-               return -ENOMEM;
-       
-       /* FIXME: pass error values back somehow */
-       ucmd->hdr.version = GSMD_PROTO_VERSION;
-       ucmd->hdr.msg_type = GSMD_MSG_NETWORK;
-       ucmd->hdr.len = sizeof(*vmail);
-       ucmd->hdr.id = cmd->id;
-
        if (cmd->buf[7] == '=') {
                /* response to set command */
-               ucmd->hdr.msg_subtype = GSMD_NETWORK_VMAIL_SET;
-               /* FIXME: */
-               return 0;
+               rc = gsmd_ucmd_submit(gu, GSMD_MSG_NETWORK, 
+                               GSMD_NETWORK_VMAIL_SET,cmd->id, sizeof(ret), 
&ret);
        } else {
                /* response to get command */
-               char *tok = strtok(resp, ",");
-               if (!tok)
-                       goto out_free_einval;
-               ucmd->hdr.msg_subtype = GSMD_NETWORK_VMAIL_GET;
-               vmail->enable = atoi(tok);
-
-               tok = strtok(NULL, ",");
-               if (!tok)
-                       goto out_free_einval;
-               strncpy(vmail->addr.number, tok, GSMD_ADDR_MAXLEN);
-               vmail->addr.number[GSMD_ADDR_MAXLEN] = '\0';
-
-               tok = strtok(NULL, ",");
-               if (!tok)
-                       goto out_free_einval;
-               vmail->addr.type = atoi(tok);
+               if (strncmp(resp, "+CSVM: ", 7))
+                       return -EINVAL;
+               resp += 7;
+               er = extrsp_parse(gsmd_tallocs, resp);
+               if(!er)
+                       return -ENOMEM;
+               if(er->num_tokens == 3 &&
+                       er->tokens[0].type == GSMD_ECMD_RTT_NUMERIC &&
+                       er->tokens[1].type == GSMD_ECMD_RTT_STRING &&
+                       er->tokens[2].type == GSMD_ECMD_RTT_NUMERIC) {
+                               vmail.enable = er->tokens[0].u.numeric;
+                               strcpy(vmail.addr.number, 
er->tokens[1].u.string);
+                               vmail.addr.type = er->tokens[2].u.numeric;
+               }
+               rc = gsmd_ucmd_submit(gu, GSMD_MSG_NETWORK, 
GSMD_NETWORK_VMAIL_GET,
+                       cmd->id, sizeof(vmail), &vmail);
+               talloc_free(er);
        }
-
-       usock_cmd_enqueue(ucmd, gu);
-
-       return 0;
-
-out_free_einval:
-       gsmd_log(GSMD_ERROR, "can't understand voicemail response\n");
-       talloc_free(ucmd);
-       return -EINVAL;
+       return rc;
 }
 
 int gsmd_ucmd_submit(struct gsmd_user *gu, u_int8_t msg_type,
@@ -813,7 +796,9 @@
                cmd = atcmd_fill("AT+CSVM?", 8+1, &network_vmail_cb, gu, 0, 
NULL);
                break;
        case GSMD_NETWORK_VMAIL_SET:
-               cmd = atcmd_fill("AT+CSVM=", 8+1, &network_vmail_cb, gu, 0, 
NULL);
+               cmdlen = sprintf(buffer, "AT+CSVM=1,\"%s\",%d",
+                       vmail->addr.number, vmail->addr.type);
+               cmd = atcmd_fill(buffer, cmdlen + 1, &network_vmail_cb, gu, 0, 
NULL);
                break;
        case GSMD_NETWORK_SIGQ_GET:
                cmd = atcmd_fill("AT+CSQ", 6+1, &network_sigq_cb, gu, 0, NULL);

Modified: trunk/src/target/gsm/src/libgsmd/libgsmd_network.c
===================================================================
--- trunk/src/target/gsm/src/libgsmd/libgsmd_network.c  2007-12-18 18:18:39 UTC 
(rev 3683)
+++ trunk/src/target/gsm/src/libgsmd/libgsmd_network.c  2007-12-19 09:34:34 UTC 
(rev 3684)
@@ -26,6 +26,7 @@
 
 #include <libgsmd/libgsmd.h>
 #include <libgsmd/misc.h>
+#include <libgsmd/sms.h>
 
 #include <gsmd/usock.h>
 #include <gsmd/event.h>
@@ -133,3 +134,36 @@
 {
        return lgsm_send_simple(lh, GSMD_MSG_NETWORK, GSMD_NETWORK_GET_NUMBER);
 }
+
+int lgsm_voicemail_set(struct lgsm_handle *lh, const char *number)
+{
+       struct gsmd_msg_hdr *gmh;
+       struct gsmd_voicemail *vmail;
+       int rc;
+
+       gmh = lgsm_gmh_fill(GSMD_MSG_NETWORK,
+                       GSMD_NETWORK_VMAIL_SET, sizeof(*vmail));
+       if (!gmh)
+               return -ENOMEM;
+
+       vmail = (struct gsmd_voicemail *) gmh->data;
+       vmail->enable = 1;
+       if (lgsm_number2addr(&vmail->addr, number, 0)){
+               lgsm_gmh_free(gmh);
+               return -EINVAL;
+       }
+
+       if (lgsm_send(lh, gmh) < gmh->len + sizeof(*gmh)) {
+               lgsm_gmh_free(gmh);
+               return -EIO;
+       }
+
+       lgsm_gmh_free(gmh);
+       return 0;
+}
+
+/* Get currently configured voice mail number */
+int lgsm_voicemail_get(struct lgsm_handle *lh)
+{
+       return lgsm_send_simple(lh, GSMD_MSG_NETWORK, GSMD_NETWORK_VMAIL_GET);
+}

Modified: trunk/src/target/gsm/src/util/shell.c
===================================================================
--- trunk/src/target/gsm/src/util/shell.c       2007-12-18 18:18:39 UTC (rev 
3683)
+++ trunk/src/target/gsm/src/util/shell.c       2007-12-19 09:34:34 UTC (rev 
3684)
@@ -285,6 +285,9 @@
                ((void *) gmh + sizeof(*gmh));
        const struct gsmd_own_number *num = (struct gsmd_own_number *)
                ((void *) gmh + sizeof(*gmh));
+       const struct gsmd_voicemail *vmail = (struct gsmd_voicemail *)
+               ((void *) gmh + sizeof(*gmh));
+       int result = *(int *) gmh->data;
        static const char *oper_stat[] = {
                [GSMD_OPER_UNKNOWN] = "of unknown status",
                [GSMD_OPER_AVAILABLE] = "available",
@@ -341,6 +344,18 @@
                                "" : " services");
                pending_responses --;
                break;
+       case GSMD_NETWORK_VMAIL_SET:
+               if (result)
+                       printf("Set voicemail error %i\n", result);
+               else
+                       printf("Set voicemail OK \n");
+               pending_responses --;
+               break;
+       case GSMD_NETWORK_VMAIL_GET:
+               if(vmail->addr.number)
+                       printf ("voicemail number is %s \n",vmail->addr.number);
+               pending_responses --;
+               break;
        default:
                return -EINVAL;
        }
@@ -481,6 +496,8 @@
                "\tsM\tSMS Set preferred storage (sM=mem1,mem2,mem3)\n"
                "\tsc\tSMS Show Service Centre\n"
                "\tsC\tSMS Set Service Centre (sC=number)\n"
+               "\tgvm\tGet Voicemail number\n"
+               "\tsvm\tSet Voicemail number(svm=number)\n"
                "\tim\tGet imsi\n"
                "\tcs\tGet Call status\n"
                "\tgp\tGet PIN status\n"
@@ -766,6 +783,18 @@
                        } else if (!strcmp(buf, "n")) {
                                lgsm_get_subscriber_num(lgsmh);
                                pending_responses ++;
+                       } else if ( !strncmp(buf, "gvm", 3)) {
+                               printf("Get Voicemail Number\n");
+                               lgsm_voicemail_get(lgsmh);
+                               pending_responses ++;
+                       } else if ( !strncmp(buf, "svm", 3)) {
+                               printf("Set Voicemail Number\n");
+                               ptr = strchr(buf, '=');
+                               if (!ptr || strlen(ptr) < 3)
+                                       printf("No.\n");
+                               else
+                                       lgsm_voicemail_set(lgsmh, ptr + 1);
+                               pending_responses ++;
                        } else if (!strncmp(buf, "im", 2)) {
                                printf("Get imsi\n");
                                lgsm_get_imsi(lgsmh);




--- End Message ---
--- Begin Message ---
Author: laforge
Date: 2007-12-19 10:56:49 +0100 (Wed, 19 Dec 2007)
New Revision: 3685

Modified:
   branches/src/target/kernel/2.6.24.x/patches/gta01-jbt6k74.patch
Log:
JBT6K74: 
* add more verbose description
* rename CONFIG_SPI_SLAVE_JBT6K74 to CONFIG_SPI_JBT6K74
* remove inconsistent naming (JP6K74)


Modified: branches/src/target/kernel/2.6.24.x/patches/gta01-jbt6k74.patch
===================================================================
--- branches/src/target/kernel/2.6.24.x/patches/gta01-jbt6k74.patch     
2007-12-19 09:34:34 UTC (rev 3684)
+++ branches/src/target/kernel/2.6.24.x/patches/gta01-jbt6k74.patch     
2007-12-19 09:56:49 UTC (rev 3685)
@@ -1,34 +1,45 @@
-This driver adds support for LCM initialization of the JBT6K74 LCM
-as found on the FIC GTA01 hardware
+This driver adds support for the SPI-based control interface of the LCM (LCD
+Panel) found on the FIC GTA01 hardware.  
 
+The specific panel in this hardware is a TPO TD028TTEC1, but the driver should
+be able to drive any other diplay based on the JBT6K74-AS controller ASIC.
+
 Signed-off-by: Harald Welte <[EMAIL PROTECTED]>
 
 Index: linux-2.6/drivers/spi/Kconfig
 ===================================================================
 --- linux-2.6.orig/drivers/spi/Kconfig
 +++ linux-2.6/drivers/spi/Kconfig
-@@ -237,5 +237,11 @@
+@@ -231,6 +231,17 @@
+         sysfs interface, with each line presented as a kind of GPIO
+         exposing both switch control and diagnostic feedback.
  
- # (slave support would go here)
- 
-+config SPI_SLAVE_JBT6K74
-+      tristate "tpo JP6K74 LCM ASIC control interface"
++config SPI_JBT6K74
++      tristate "TPO JBT6K74-AS TFT display ASIC control interface"
 +      depends on SPI_MASTER && SYSFS
 +      help
-+        Driver for the tpo JP6K74-AS LCM SPI control interface.
++        SPI driver for the control interface of TFT panels containing
++        the TPO JBT6K74-AS controller ASIC, such as the TPO TD028TTEC1
++        TFT diplay module used in the FIC/OpenMoko Neo1973 GSM phones.
 +
- endmenu # "SPI support"
- 
++        The control interface is required for display operation, as it
++        controls power management, display timing and gamma calibration.
++
+ #
+ # Add new SPI protocol masters in alphabetical order above this line
+ #
 Index: linux-2.6/drivers/spi/Makefile
 ===================================================================
 --- linux-2.6.orig/drivers/spi/Makefile
 +++ linux-2.6/drivers/spi/Makefile
-@@ -39,4 +39,5 @@
+@@ -33,6 +33,7 @@
+ obj-$(CONFIG_SPI_AT25)                += at25.o
+ obj-$(CONFIG_SPI_SPIDEV)      += spidev.o
+ obj-$(CONFIG_SPI_TLE62X0)     += tle62x0.o
++obj-$(CONFIG_SPI_JBT6K74)     += jbt6k74.o
  #     ... add above this line ...
  
- # SPI slave drivers (protocol for that link)
-+obj-$(CONFIG_SPI_SLAVE_JBT6K74)               += jbt6k74.o
- #     ... add above this line ...
+ # SPI slave controller drivers (upstream link)
 Index: linux-2.6/drivers/spi/jbt6k74.c
 ===================================================================
 --- /dev/null
@@ -670,7 +681,7 @@
  config MACH_QT2410
        bool "QT2410"
        select CPU_S3C2410
-+      select SPI_SLAVE_JBT6K74
++      select SPI_JBT6K74
        help
           Say Y here if you are using the Armzone QT2410
  




--- End Message ---
--- Begin Message ---
Author: laforge
Date: 2007-12-19 11:03:34 +0100 (Wed, 19 Dec 2007)
New Revision: 3686

Modified:
   branches/src/target/kernel/2.6.24.x/patches/s3c_mci.patch
Log:
s3c_mci: major codingstyle cleanup (based on checkpatch.pl)


Modified: branches/src/target/kernel/2.6.24.x/patches/s3c_mci.patch
===================================================================
--- branches/src/target/kernel/2.6.24.x/patches/s3c_mci.patch   2007-12-19 
09:56:49 UTC (rev 3685)
+++ branches/src/target/kernel/2.6.24.x/patches/s3c_mci.patch   2007-12-19 
10:03:34 UTC (rev 3686)
@@ -1,5 +1,7 @@
 This is the latest S3C MMC/SD driver by Thomas Kleffel
 
+Signed-off-by: Harald Welte <[EMAIL PROTECTED]>
+
 Index: linux-2.6/include/asm-arm/arch-s3c2410/regs-sdi.h
 ===================================================================
 --- linux-2.6.orig/include/asm-arm/arch-s3c2410/regs-sdi.h
@@ -71,85 +73,11 @@
  #define S3C2410_SDIFSTA_RFLAST         (1<<9)
  #define S3C2410_SDIFSTA_RFFULL         (1<<8)
  #define S3C2410_SDIFSTA_RFHALF         (1<<7)
-Index: linux-2.6/drivers/mmc/host/mmc_debug.c
-===================================================================
---- /dev/null
-+++ linux-2.6/drivers/mmc/host/mmc_debug.c
-@@ -0,0 +1,57 @@
-+/*
-+ *  linux/drivers/mmc/mmc_debug.c
-+ *
-+ *  Copyright (C) 2003 maintech GmbH, Thomas Kleffel <[EMAIL PROTECTED]>
-+ *
-+ * This file contains debug helper functions for the MMC/SD stack
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/mmc/core.h>
-+#include <linux/mmc/mmc.h>
-+#include "mmc_debug.h"
-+
-+char *mmc_cmd2str(int cmd)
-+{
-+      switch(cmd) {
-+              case  0: return "GO_IDLE_STATE";
-+              case  1: return "ALL_SEND_OCR";
-+              case  2: return "ALL_SEND_CID";
-+              case  3: return "ALL_SEND_RELATIVE_ADD";
-+              case  6: return "ACMD: SD_SET_BUSWIDTH";
-+              case  7: return "SEL_DESEL_CARD";
-+              case  9: return "SEND_CSD";
-+              case 10: return "SEND_CID";
-+              case 11: return "READ_UNTIL_STOP";
-+              case 12: return "STOP_TRANSMISSION";
-+              case 13: return "SEND_STATUS";
-+              case 15: return "GO_INACTIVE_STATE";
-+              case 16: return "SET_BLOCKLEN";
-+              case 17: return "READ_SINGLE_BLOCK";
-+              case 18: return "READ_MULTIPLE_BLOCK";
-+              case 24: return "WRITE_SINGLE_BLOCK";
-+              case 25: return "WRITE_MULTIPLE_BLOCK";
-+              case 41: return "ACMD: SD_APP_OP_COND";
-+              case 55: return "APP_CMD";
-+              default: return "UNKNOWN";
-+      }
-+}
-+EXPORT_SYMBOL(mmc_cmd2str);
-+
-+char *mmc_err2str(int err)
-+{
-+      switch(err) {
-+              case 0: return "OK";
-+              case -ETIMEDOUT:        return "TIMEOUT";
-+              case -EILSEQ:           return "BADCRC";
-+              case -EINVAL:           return "EINVAL";
-+              case -ENOMEDIUM:        return "NOMEDIUM";
-+              default: return "UNKNOWN";
-+      }
-+}
-+EXPORT_SYMBOL(mmc_err2str);
-Index: linux-2.6/drivers/mmc/host/mmc_debug.h
-===================================================================
---- /dev/null
-+++ linux-2.6/drivers/mmc/host/mmc_debug.h
-@@ -0,0 +1,7 @@
-+#ifndef MMC_DEBUG_H
-+#define MMC_DEBUG_H
-+
-+char *mmc_cmd2str(int err);
-+char *mmc_err2str(int err);
-+
-+#endif /* MMC_DEBUG_H */
 Index: linux-2.6/drivers/mmc/host/s3cmci.c
 ===================================================================
 --- /dev/null
 +++ linux-2.6/drivers/mmc/host/s3cmci.c
-@@ -0,0 +1,1384 @@
+@@ -0,0 +1,1409 @@
 +/*
 + *  linux/drivers/mmc/s3cmci.h - Samsung S3C MCI driver
 + *
@@ -177,7 +105,6 @@
 +#include <asm/arch/regs-gpio.h>
 +#include <asm/arch/mci.h>
 +
-+#include "mmc_debug.h"
 +#include "s3cmci.h"
 +
 +#define DRIVER_NAME "s3c-mci"
@@ -199,12 +126,14 @@
 +static const int dbgmap_debug = dbg_debug;
 +
 +#define dbg(host, channels, args...)           \
++      do {                                     \
 +      if (dbgmap_err & channels)               \
 +              dev_err(&host->pdev->dev, args); \
 +      else if (dbgmap_info & channels)         \
 +              dev_info(&host->pdev->dev, args);\
 +      else if (dbgmap_debug & channels)        \
-+              dev_dbg(&host->pdev->dev, args);
++              dev_dbg(&host->pdev->dev, args); \
++      } while (0)
 +
 +#define RESSIZE(ressource) (((ressource)->end - (ressource)->start)+1)
 +
@@ -218,6 +147,44 @@
 +
 +#ifdef CONFIG_MMC_DEBUG
 +
++static char *mmc_cmd2str(int cmd)
++{
++      switch (cmd) {
++      case  0: return "GO_IDLE_STATE";
++      case  1: return "ALL_SEND_OCR";
++      case  2: return "ALL_SEND_CID";
++      case  3: return "ALL_SEND_RELATIVE_ADD";
++      case  6: return "ACMD: SD_SET_BUSWIDTH";
++      case  7: return "SEL_DESEL_CARD";
++      case  9: return "SEND_CSD";
++      case 10: return "SEND_CID";
++      case 11: return "READ_UNTIL_STOP";
++      case 12: return "STOP_TRANSMISSION";
++      case 13: return "SEND_STATUS";
++      case 15: return "GO_INACTIVE_STATE";
++      case 16: return "SET_BLOCKLEN";
++      case 17: return "READ_SINGLE_BLOCK";
++      case 18: return "READ_MULTIPLE_BLOCK";
++      case 24: return "WRITE_SINGLE_BLOCK";
++      case 25: return "WRITE_MULTIPLE_BLOCK";
++      case 41: return "ACMD: SD_APP_OP_COND";
++      case 55: return "APP_CMD";
++      default: return "UNKNOWN";
++      }
++}
++
++static char *mmc_err2str(int err)
++{
++      switch (err) {
++      case 0:                 return "OK";
++      case -ETIMEDOUT:        return "TIMEOUT";
++      case -EILSEQ:           return "BADCRC";
++      case -EINVAL:           return "EINVAL";
++      case -ENOMEDIUM:        return "NOMEDIUM";
++      default:                return "UNKNOWN";
++      }
++}
++
 +static inline void dbg_dumpregs(struct s3cmci_host *host, char *prefix)
 +{
 +      u32 con, pre, cmdarg, cmdcon, cmdsta, r0, r1, r2, r3, timer, bsize;
@@ -258,7 +225,7 @@
 +static void prepare_dbgmsg(struct s3cmci_host *host, struct mmc_command *cmd,
 +                                                              int stop)
 +{
-+      snprintf(host->dbgmsg_cmd, 300,
++      snprintf(host->dbgmsg_cmd, 300,
 +              "#%u%s op:%s(%i) arg:0x%08x flags:0x08%x retries:%u",
 +              host->ccnt, (stop?" (STOP)":""), mmc_cmd2str(cmd->opcode),
 +              cmd->opcode, cmd->arg, cmd->flags, cmd->retries);
@@ -311,7 +278,7 @@
 +      u32 newmask;
 +
 +      newmask = readl(host->base + host->sdiimsk);
-+      newmask|= imask;
++      newmask |= imask;
 +
 +      writel(newmask, host->base + host->sdiimsk);
 +
@@ -323,7 +290,7 @@
 +      u32 newmask;
 +
 +      newmask = readl(host->base + host->sdiimsk);
-+      newmask&= ~imask;
++      newmask &= ~imask;
 +
 +      writel(newmask, host->base + host->sdiimsk);
 +
@@ -336,7 +303,7 @@
 +}
 +
 +static inline int get_data_buffer(struct s3cmci_host *host,
-+                      volatile u32 *words, volatile u32 **pointer)
++                                u32 *words, u32 **pointer)
 +{
 +      struct scatterlist *sg;
 +
@@ -353,8 +320,8 @@
 +      }
 +      sg = &host->mrq->data->sg[host->pio_sgptr];
 +
-+      *words  = sg->length >> 2;
-+      *pointer= page_address(sg_page(sg)) + sg->offset;
++      *words = sg->length >> 2;
++      *pointer = page_address(sg_page(sg)) + sg->offset;
 +
 +      host->pio_sgptr++;
 +
@@ -364,8 +331,10 @@
 +      return 0;
 +}
 +
-+#define FIFO_FILL(host) ((readl(host->base + S3C2410_SDIFSTA) & 
S3C2410_SDIFSTA_COUNTMASK) >> 2)
-+#define FIFO_FREE(host) ((63 - (readl(host->base + S3C2410_SDIFSTA) & 
S3C2410_SDIFSTA_COUNTMASK)) >> 2)
++#define FIFO_FILL(host) ((readl(host->base + S3C2410_SDIFSTA) &       \
++                              S3C2410_SDIFSTA_COUNTMASK) >> 2)
++#define FIFO_FREE(host) ((63 - (readl(host->base + S3C2410_SDIFSTA)   \
++                              & S3C2410_SDIFSTA_COUNTMASK)) >> 2)
 +
 +static inline void do_pio_read(struct s3cmci_host *host)
 +{
@@ -373,7 +342,7 @@
 +      u32 fifo;
 +      void __iomem *from_ptr;
 +
-+      //write real prescaler to host, it might be set slow to fix
++      /* write real prescaler to host, it might be set slow to fix */
 +      writel(host->prescaler, host->base + S3C2410_SDIPRE);
 +
 +      from_ptr = host->base + host->sdidata;
@@ -387,35 +356,33 @@
 +                              host->complete_what = COMPLETION_FINALIZE;
 +
 +                              dbg(host, dbg_pio, "pio_read(): "
-+                                      "complete (no more data).\n");
++                                  "complete (no more data).\n");
 +                              return;
 +                      }
 +
-+                      dbg(host, dbg_pio, "pio_read(): new target: [EMAIL 
PROTECTED]",
-+                             host->pio_words, host->pio_ptr);
++                      dbg(host, dbg_pio, "pio_read(): new target: "
++                          "[EMAIL PROTECTED]", host->pio_words, 
host->pio_ptr);
 +              }
 +
 +              dbg(host, dbg_pio, "pio_read(): fifo:[%02i] "
-+                                 "buffer:[%03i] dcnt:[%08X]\n",
-+                                 fifo, host->pio_words,
-+                                 readl(host->base + S3C2410_SDIDCNT));
++                  "buffer:[%03i] dcnt:[%08X]\n", fifo, host->pio_words,
++                  readl(host->base + S3C2410_SDIDCNT));
 +
 +              if (fifo > host->pio_words)
 +                      fifo = host->pio_words;
 +
-+              host->pio_words-= fifo;
-+              host->pio_count+= fifo;
++              host->pio_words -= fifo;
++              host->pio_count += fifo;
 +
-+              while(fifo--) {
++              while (fifo--)
 +                      *(host->pio_ptr++) = readl(from_ptr);
-+              }
 +      }
 +
 +      if (!host->pio_words) {
 +              res = get_data_buffer(host, &host->pio_words, &host->pio_ptr);
 +              if (res) {
 +                      dbg(host, dbg_pio, "pio_read(): "
-+                              "complete (no more buffers).\n");
++                          "complete (no more buffers).\n");
 +                      host->pio_active = XFER_NONE;
 +                      host->complete_what = COMPLETION_FINALIZE;
 +
@@ -423,7 +390,8 @@
 +              }
 +      }
 +
-+      enable_imask(host, S3C2410_SDIIMSK_RXFIFOHALF | 
S3C2410_SDIIMSK_RXFIFOLAST);
++      enable_imask(host, S3C2410_SDIIMSK_RXFIFOHALF
++                                              | S3C2410_SDIIMSK_RXFIFOLAST);
 +}
 +
 +static inline void do_pio_write(struct s3cmci_host *host)
@@ -456,12 +424,11 @@
 +              if (fifo > host->pio_words)
 +                      fifo = host->pio_words;
 +
-+              host->pio_words-= fifo;
-+              host->pio_count+= fifo;
++              host->pio_words -= fifo;
++              host->pio_count += fifo;
 +
-+              while(fifo--) {
++              while (fifo--)
 +                      writel(*(host->pio_ptr++), to_ptr);
-+              }
 +      }
 +
 +      enable_imask(host, S3C2410_SDIIMSK_TXFIFOHALF);
@@ -499,7 +466,7 @@
 + * ISR for SDI Interface IRQ
 + * Communication between driver and ISR works as follows:
 + *   host->mrq                        points to current request
-+ *   host->complete_what      tells the ISR when the request is considered 
done
++ *   host->complete_what      tells ISR when the request is considered done
 + *     COMPLETION_CMDSENT       when the command was sent
 + *     COMPLETION_RSPFIN          when a response was received
 + *     COMPLETION_XFERFINISH    when the data transfer is finished
@@ -575,8 +542,8 @@
 +              if ((host->pio_active == XFER_READ) &&
 +                              (mci_fsta & S3C2410_SDIFSTA_RFDET)) {
 +
-+                      disable_imask(host,
-+                              S3C2410_SDIIMSK_RXFIFOHALF | 
S3C2410_SDIIMSK_RXFIFOLAST);
++                      disable_imask(host, S3C2410_SDIIMSK_RXFIFOHALF |
++                                              S3C2410_SDIIMSK_RXFIFOLAST);
 +
 +                      tasklet_schedule(&host->pio_tasklet);
 +                      host->status = "pio rx";
@@ -670,9 +637,8 @@
 +                      goto close_transfer;
 +              }
 +
-+              if (host->complete_what == COMPLETION_XFERFINISH_RSPFIN) {
++              if (host->complete_what == COMPLETION_XFERFINISH_RSPFIN)
 +                      host->complete_what = COMPLETION_RSPFIN;
-+              }
 +
 +              mci_dclear |= S3C2410_SDIDSTA_XFERFINISH;
 +      }
@@ -798,13 +764,13 @@
 +              }
 +      }
 +
-+      // Read response
++      /* Read response */
 +      cmd->resp[0] = readl(host->base + S3C2410_SDIRSP0);
 +      cmd->resp[1] = readl(host->base + S3C2410_SDIRSP1);
 +      cmd->resp[2] = readl(host->base + S3C2410_SDIRSP2);
 +      cmd->resp[3] = readl(host->base + S3C2410_SDIRSP3);
 +
-+      // reset clock speed, as it could still be set low for
++      /* reset clock speed, as it could still be set low for */
 +      writel(host->prescaler, host->base + S3C2410_SDIPRE);
 +
 +      if (cmd->error)
@@ -813,12 +779,10 @@
 +      if (cmd->data && cmd->data->error)
 +              debug_as_failure = 1;
 +
-+      //if(cmd->flags & MMC_RSP_MAYFAIL) debug_as_failure = 0;
-+
 +#ifdef CONFIG_MMC_DEBUG
 +      dbg_dumpcmd(host, cmd, debug_as_failure);
 +#endif
-+      //Cleanup controller
++      /* Cleanup controller */
 +      writel(0, host->base + S3C2410_SDICMDARG);
 +      writel(S3C2410_SDIDCON_STOP, host->base + S3C2410_SDIDCON);
 +      writel(0, host->base + S3C2410_SDICMDCON);
@@ -833,36 +797,35 @@
 +              return;
 +      }
 +
-+      // If we have no data transfer we are finished here
++      /* If we have no data transfer we are finished here */
 +      if (!mrq->data)
 +              goto request_done;
 +
-+      // Calulate the amout of bytes transfer, but only if there was
-+      // no error
-+      if (mrq->data->error == 0) {
++      /* Calulate the amout of bytes transfer, but only if there was
++       * no error */
++      if (mrq->data->error == 0)
 +              mrq->data->bytes_xfered =
 +                      (mrq->data->blocks * mrq->data->blksz);
-+      } else {
++      else
 +              mrq->data->bytes_xfered = 0;
-+      }
 +
-+      // If we had an error while transfering data we flush the
-+      // DMA channel and the fifo to clear out any garbage
++      /* If we had an error while transfering data we flush the
++       * DMA channel and the fifo to clear out any garbage */
 +      if (mrq->data->error) {
 +              if (host->dodma)
 +                      s3c2410_dma_ctrl(host->dma, S3C2410_DMAOP_FLUSH);
 +
 +              if (host->is2440) {
-+                      //Clear failure register and reset fifo
++                      /* Clear failure register and reset fifo */
 +                      writel(S3C2440_SDIFSTA_FIFORESET |
 +                             S3C2440_SDIFSTA_FIFOFAIL,
 +                             host->base + S3C2410_SDIFSTA);
 +              } else {
 +                      u32 mci_con;
 +
-+                      //reset fifo
++                      /* reset fifo */
 +                      mci_con = readl(host->base + S3C2410_SDICON);
-+                      mci_con|= S3C2410_SDICON_FIFORESET;
++                      mci_con |= S3C2410_SDICON_FIFORESET;
 +
 +                      writel(mci_con, host->base + S3C2410_SDICON);
 +              }
@@ -877,7 +840,7 @@
 +
 +void s3cmci_dma_setup(struct s3cmci_host *host, enum s3c2410_dmasrc source)
 +{
-+      static int setup_ok = 0;
++      static int setup_ok;
 +      static enum s3c2410_dmasrc last_source = -1;
 +
 +      if (last_source == source)
@@ -891,7 +854,8 @@
 +      if (!setup_ok) {
 +              s3c2410_dma_config(host->dma, 4,
 +                      (S3C2410_DCON_HWTRIG | S3C2410_DCON_CH0_SDI));
-+              s3c2410_dma_set_buffdone_fn(host->dma, 
s3cmci_dma_done_callback);
++              s3c2410_dma_set_buffdone_fn(host->dma,
++                                          s3cmci_dma_done_callback);
 +              s3c2410_dma_setflags(host->dma, S3C2410_DMAF_AUTOSTART);
 +              setup_ok = 1;
 +      }
@@ -908,31 +872,30 @@
 +
 +      enable_imask(host, imsk);
 +
-+      if (cmd->data) {
++      if (cmd->data)
 +              host->complete_what = COMPLETION_XFERFINISH_RSPFIN;
-+      } else if (cmd->flags & MMC_RSP_PRESENT) {
++      else if (cmd->flags & MMC_RSP_PRESENT)
 +              host->complete_what = COMPLETION_RSPFIN;
-+      } else {
++      else
 +              host->complete_what = COMPLETION_CMDSENT;
-+      }
 +
 +      writel(cmd->arg, host->base + S3C2410_SDICMDARG);
 +
 +      ccon = cmd->opcode & S3C2410_SDICMDCON_INDEX;
-+      ccon|= S3C2410_SDICMDCON_SENDERHOST | S3C2410_SDICMDCON_CMDSTART;
++      ccon |= S3C2410_SDICMDCON_SENDERHOST | S3C2410_SDICMDCON_CMDSTART;
 +
 +      if (cmd->flags & MMC_RSP_PRESENT)
 +              ccon |= S3C2410_SDICMDCON_WAITRSP;
 +
 +      if (cmd->flags & MMC_RSP_136)
-+              ccon|= S3C2410_SDICMDCON_LONGRSP;
++              ccon |= S3C2410_SDICMDCON_LONGRSP;
 +
 +      writel(ccon, host->base + S3C2410_SDICMDCON);
 +}
 +
 +static int s3cmci_setup_data(struct s3cmci_host *host, struct mmc_data *data)
 +{
-+      u32 dcon, imsk, stoptries=3;
++      u32 dcon, imsk, stoptries = 3;
 +
 +      /* write DCON register */
 +
@@ -941,11 +904,11 @@
 +              return 0;
 +      }
 +
-+      while(readl(host->base + S3C2410_SDIDSTA) &
++      while (readl(host->base + S3C2410_SDIDSTA) &
 +              (S3C2410_SDIDSTA_TXDATAON | S3C2410_SDIDSTA_RXDATAON)) {
 +
 +              dbg(host, dbg_err,
-+                      "mci_setup_data() transfer stillin progress.\n");
++                  "mci_setup_data() transfer stillin progress.\n");
 +
 +              writel(S3C2410_SDIDCON_STOP, host->base + S3C2410_SDIDCON);
 +              s3cmci_reset(host);
@@ -961,17 +924,14 @@
 +
 +      dcon  = data->blocks & S3C2410_SDIDCON_BLKNUM_MASK;
 +
-+      if (host->dodma) {
++      if (host->dodma)
 +              dcon |= S3C2410_SDIDCON_DMAEN;
-+      }
 +
-+      if (host->bus_width == MMC_BUS_WIDTH_4) {
++      if (host->bus_width == MMC_BUS_WIDTH_4)
 +              dcon |= S3C2410_SDIDCON_WIDEBUS;
-+      }
 +
-+      if (!(data->flags & MMC_DATA_STREAM)) {
++      if (!(data->flags & MMC_DATA_STREAM))
 +              dcon |= S3C2410_SDIDCON_BLOCKMODE;
-+      }
 +
 +      if (data->flags & MMC_DATA_WRITE) {
 +              dcon |= S3C2410_SDIDCON_TXAFTERRESP;
@@ -1007,14 +967,11 @@
 +      } else {
 +              writel(0x0000FFFF, host->base + S3C2410_SDITIMER);
 +
-+              //FIX: set slow clock to prevent timeouts on read
-+              if (data->flags & MMC_DATA_READ) {
++              /* FIX: set slow clock to prevent timeouts on read */
++              if (data->flags & MMC_DATA_READ)
 +                      writel(0xFF, host->base + S3C2410_SDIPRE);
-+              }
 +      }
 +
-+      //debug_dump_registers(host, "Data setup:");
-+
 +      return 0;
 +}
 +
@@ -1078,7 +1035,7 @@
 +                      s3c2410_dma_ctrl(host->dma, S3C2410_DMAOP_FLUSH);
 +                      return -EBUSY;
 +              }
-+      }
++      }
 +
 +      s3c2410_dma_ctrl(host->dma, S3C2410_DMAOP_START);
 +
@@ -1095,8 +1052,8 @@
 +#ifdef CONFIG_MMC_DEBUG
 +      prepare_dbgmsg(host, cmd, host->cmd_is_stop);
 +#endif
-+      //Clear command, data and fifo status registers
-+      //Fifo clear only necessary on 2440, but doesn't hurt on 2410
++      /* clear command, data and fifo status registers;
++       * Fifo clear only necessary on 2440, but doesn't hurt on 2410 */
 +      writel(0xFFFFFFFF, host->base + S3C2410_SDICMDSTAT);
 +      writel(0xFFFFFFFF, host->base + S3C2410_SDIDSTA);
 +      writel(0xFFFFFFFF, host->base + S3C2410_SDIFSTA);
@@ -1116,11 +1073,10 @@
 +              }
 +
 +
-+              if (host->dodma) {
++              if (host->dodma)
 +                      res = s3cmci_prepare_dma(host, cmd->data);
-+              } else {
++              else
 +                      res = s3cmci_prepare_pio(host, cmd->data);
-+              }
 +
 +              if (res) {
 +                      cmd->error = -EIO;
@@ -1132,16 +1088,13 @@
 +
 +      }
 +
-+      // Send command
 +      s3cmci_send_command(host, cmd);
-+
-+      // Enable Interrupt
 +      enable_irq(host->irq);
 +}
 +
 +static void s3cmci_request(struct mmc_host *mmc, struct mmc_request *mrq)
 +{
-+      struct s3cmci_host *host = mmc_priv(mmc);
++      struct s3cmci_host *host = mmc_priv(mmc);
 +
 +      host->cmd_is_stop = 0;
 +      host->mrq = mrq;
@@ -1154,70 +1107,71 @@
 +      struct s3cmci_host *host = mmc_priv(mmc);
 +      u32 mci_psc, mci_con;
 +
-+      //Set power
++      /* Set power */
 +      mci_con = readl(host->base + S3C2410_SDICON);
-+      switch(ios->power_mode) {
-+              case MMC_POWER_ON:
-+              case MMC_POWER_UP:
-+                      s3c2410_gpio_cfgpin(S3C2410_GPE5, S3C2410_GPE5_SDCLK);
-+                      s3c2410_gpio_cfgpin(S3C2410_GPE6, S3C2410_GPE6_SDCMD);
-+                      s3c2410_gpio_cfgpin(S3C2410_GPE7, S3C2410_GPE7_SDDAT0);
-+                      s3c2410_gpio_cfgpin(S3C2410_GPE8, S3C2410_GPE8_SDDAT1);
-+                      s3c2410_gpio_cfgpin(S3C2410_GPE9, S3C2410_GPE9_SDDAT2);
-+                      s3c2410_gpio_cfgpin(S3C2410_GPE10, 
S3C2410_GPE10_SDDAT3);
++      switch (ios->power_mode) {
++      case MMC_POWER_ON:
++      case MMC_POWER_UP:
++              s3c2410_gpio_cfgpin(S3C2410_GPE5, S3C2410_GPE5_SDCLK);
++              s3c2410_gpio_cfgpin(S3C2410_GPE6, S3C2410_GPE6_SDCMD);
++              s3c2410_gpio_cfgpin(S3C2410_GPE7, S3C2410_GPE7_SDDAT0);
++              s3c2410_gpio_cfgpin(S3C2410_GPE8, S3C2410_GPE8_SDDAT1);
++              s3c2410_gpio_cfgpin(S3C2410_GPE9, S3C2410_GPE9_SDDAT2);
++              s3c2410_gpio_cfgpin(S3C2410_GPE10, S3C2410_GPE10_SDDAT3);
 +
-+                      if (host->pdata->set_power)
-+                              host->pdata->set_power(ios->power_mode, 
ios->vdd);
++              if (host->pdata->set_power)
++                      host->pdata->set_power(ios->power_mode, ios->vdd);
 +
-+                      if (!host->is2440)
-+                              mci_con|=S3C2410_SDICON_FIFORESET;
++              if (!host->is2440)
++                      mci_con |= S3C2410_SDICON_FIFORESET;
 +
-+                      break;
++              break;
 +
-+              case MMC_POWER_OFF:
-+              default:
-+                      s3c2410_gpio_setpin(S3C2410_GPE5, 0);
-+                      s3c2410_gpio_cfgpin(S3C2410_GPE5, S3C2410_GPE5_OUTP);
++      case MMC_POWER_OFF:
++      default:
++              s3c2410_gpio_setpin(S3C2410_GPE5, 0);
++              s3c2410_gpio_cfgpin(S3C2410_GPE5, S3C2410_GPE5_OUTP);
 +
-+                      if (host->pdata->set_power)
-+                              host->pdata->set_power(ios->power_mode, 
ios->vdd);
++              if (host->pdata->set_power)
++                      host->pdata->set_power(ios->power_mode, ios->vdd);
 +
-+                      if (host->is2440)
-+                              mci_con|=S3C2440_SDICON_SDRESET;
++              if (host->is2440)
++                      mci_con |= S3C2440_SDICON_SDRESET;
 +
-+                      break;
++              break;
 +      }
 +
-+      //Set clock
-+      for (mci_psc=0; mci_psc<255; mci_psc++) {
++      /* Set clock */
++      for (mci_psc = 0; mci_psc < 255; mci_psc++) {
 +              host->real_rate = host->clk_rate / (host->clk_div*(mci_psc+1));
 +
 +              if (host->real_rate <= ios->clock)
 +                      break;
 +      }
 +
-+      if(mci_psc > 255) mci_psc = 255;
++      if (mci_psc > 255)
++              mci_psc = 255;
 +      host->prescaler = mci_psc;
 +
 +      writel(host->prescaler, host->base + S3C2410_SDIPRE);
 +
-+      //If requested clock is 0, real_rate will be 0, too
++      /* If requested clock is 0, real_rate will be 0, too */
 +      if (ios->clock == 0)
 +              host->real_rate = 0;
 +
-+      //Set CLOCK_ENABLE
++      /* Set CLOCK_ENABLE */
 +      if (ios->clock)
 +              mci_con |= S3C2410_SDICON_CLOCKTYPE;
 +      else
-+              mci_con &=~S3C2410_SDICON_CLOCKTYPE;
++              mci_con &= ~S3C2410_SDICON_CLOCKTYPE;
 +
 +      writel(mci_con, host->base + S3C2410_SDICON);
 +
-+      if ((ios->power_mode==MMC_POWER_ON)
-+              || (ios->power_mode==MMC_POWER_UP)) {
++      if ((ios->power_mode == MMC_POWER_ON)
++              || (ios->power_mode == MMC_POWER_UP)) {
 +
 +              dbg(host, dbg_conf, "running at %lukHz (requested: %ukHz).\n",
-+                      host->real_rate/1000, ios->clock/1000);
++                  host->real_rate/1000, ios->clock/1000);
 +      } else {
 +              dbg(host, dbg_conf, "powered down.\n");
 +      }
@@ -1370,7 +1324,8 @@
 +              goto probe_free_host;
 +      }
 +
-+      if ((ret = clk_enable(host->clk))) {
++      ret = clk_enable(host->clk);
++      if (ret) {
 +              dev_err(&pdev->dev, "failed to enable clock source.\n");
 +              goto clk_free;
 +      }
@@ -1391,18 +1346,19 @@
 +      mmc->max_phys_segs      = 128;
 +      mmc->max_hw_segs        = 128;
 +
-+      dbg(host, dbg_debug, "probe: mode:%s mapped mci_base:%p irq:%u 
irq_cd:%u dma:%u.\n",
-+              (host->is2440?"2440":""),
-+              host->base, host->irq, host->irq_cd, host->dma);
++      dbg(host, dbg_debug, "probe: mode:%s mapped mci_base:%p irq:%u "
++          "irq_cd:%u dma:%u.\n", (host->is2440?"2440":""),
++          host->base, host->irq, host->irq_cd, host->dma);
 +
-+      if ((ret = mmc_add_host(mmc))) {
++      ret = mmc_add_host(mmc);
++      if (ret) {
 +              dev_err(&pdev->dev, "failed to add mmc host.\n");
 +              goto free_dmabuf;
 +      }
 +
 +      platform_set_drvdata(pdev, mmc);
 +
-+      dev_info(&pdev->dev,"initialisation done.\n");
++      dev_info(&pdev->dev, "initialisation done.\n");
 +      return 0;
 +
 + free_dmabuf:
@@ -1412,10 +1368,10 @@
 +      clk_put(host->clk);
 +
 + probe_free_irq_cd:
-+      free_irq(host->irq_cd, host);
++      free_irq(host->irq_cd, host);
 +
 + probe_free_irq:
-+      free_irq(host->irq, host);
++      free_irq(host->irq, host);
 +
 + probe_iounmap:
 +      iounmap(host->base);
@@ -1438,8 +1394,8 @@
 +      clk_disable(host->clk);
 +      clk_put(host->clk);
 +      s3c2410_dma_free(S3CMCI_DMA, &s3cmci_dma_client);
-+      free_irq(host->irq_cd, host);
-+      free_irq(host->irq, host);
++      free_irq(host->irq_cd, host);
++      free_irq(host->irq, host);
 +      iounmap(host->base);
 +      release_mem_region(host->mem->start, RESSIZE(host->mem));
 +      mmc_free_host(mmc);
@@ -1484,8 +1440,7 @@
 +#endif /* CONFIG_PM */
 +
 +
-+static struct platform_driver s3cmci_driver_2410 =
-+{
++static struct platform_driver s3cmci_driver_2410 = {
 +      .driver.name    = "s3c2410-sdi",
 +      .probe          = s3cmci_probe_2410,
 +      .remove         = s3cmci_remove,
@@ -1493,8 +1448,7 @@
 +      .resume         = s3cmci_resume,
 +};
 +
-+static struct platform_driver s3cmci_driver_2412 =
-+{
++static struct platform_driver s3cmci_driver_2412 = {
 +      .driver.name    = "s3c2412-sdi",
 +      .probe          = s3cmci_probe_2412,
 +      .remove         = s3cmci_remove,
@@ -1502,8 +1456,7 @@
 +      .resume         = s3cmci_resume,
 +};
 +
-+static struct platform_driver s3cmci_driver_2440 =
-+{
++static struct platform_driver s3cmci_driver_2440 = {
 +      .driver.name    = "s3c2440-sdi",
 +      .probe          = s3cmci_probe_2440,
 +      .remove         = s3cmci_remove,
@@ -1538,7 +1491,7 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6/drivers/mmc/host/s3cmci.h
-@@ -0,0 +1,72 @@
+@@ -0,0 +1,71 @@
 +/*
 + *  linux/drivers/mmc/s3cmci.h - Samsung S3C MCI driver
 + *
@@ -1549,7 +1502,7 @@
 + * published by the Free Software Foundation.
 + */
 +
-+//FIXME: DMA Resource management ?!
++/* FIXME: DMA Resource management ?! */
 +#define S3CMCI_DMA 0
 +
 +enum s3cmci_waitfor {
@@ -1582,31 +1535,30 @@
 +      unsigned                sdidata;
 +      int                     dodma;
 +
-+      volatile int            dmatogo;
++      int                     dmatogo;
 +
 +      struct mmc_request      *mrq;
 +      int                     cmd_is_stop;
 +
 +      spinlock_t              complete_lock;
-+      volatile enum s3cmci_waitfor
-+                              complete_what;
++      enum s3cmci_waitfor     complete_what;
 +
-+      volatile int            dma_complete;
++      int                     dma_complete;
 +
-+      volatile u32            pio_sgptr;
-+      volatile u32            pio_words;
-+      volatile u32            pio_count;
-+      volatile u32            *pio_ptr;
++      u32                     pio_sgptr;
++      u32                     pio_words;
++      u32                     pio_count;
++      u32                     *pio_ptr;
 +#define XFER_NONE 0
 +#define XFER_READ 1
 +#define XFER_WRITE 2
-+      volatile u32            pio_active;
++      u32                     pio_active;
 +
 +      int                     bus_width;
 +
 +      char                    dbgmsg_cmd[301];
 +      char                    dbgmsg_dat[301];
-+      volatile char           *status;
++      char                    *status;
 +
 +      unsigned int            ccnt, dcnt;
 +      struct tasklet_struct   pio_tasklet;
@@ -1634,10 +1586,9 @@
 ===================================================================
 --- linux-2.6.orig/drivers/mmc/host/Makefile
 +++ linux-2.6/drivers/mmc/host/Makefile
-@@ -17,4 +17,5 @@
+@@ -17,4 +17,4 @@
  obj-$(CONFIG_MMC_AT91)                += at91_mci.o
  obj-$(CONFIG_MMC_TIFM_SD)     += tifm_sd.o
  obj-$(CONFIG_MMC_SPI)         += mmc_spi.o
 -
 +obj-$(CONFIG_MMC_S3C)         += s3cmci.o
-+obj-$(CONFIG_MMC)             += mmc_debug.o




--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog

Reply via email to