Re: [PATCH v5 2/2] OMAP4 HSMMC: Adding card detect support for MMC1 Controller

2010-06-29 Thread Adrian Hunter

ext kishore kadiyala wrote:

Adrian ,

Sorry for the late response

snip

As per my email 5/5/10, I would suggest the only change to omap_hsmmc is:


Agreed  and followed the changes mostly but made some more changes on top of it.

snip

And that the late init function is used to do the rest e.g.
find a home for these 3 functions:


I agree just having the 3 functions makes it work.


static int omap4_twl6030_hsmmc_late_init(struct device *dev)
{
   int ret = 0;
   struct platform_device *pdev = container_of(dev,
   struct platform_device, dev);
   struct omap_mmc_platform_data *pdata = dev-platform_data;

   /* MMC1 Card detect Configuration */
   if (pdev-id == 0) {
   ret = omap4_hsmmc1_card_detect_config();
   if (ret  0)
   pr_err(Unable to configure Card detect for MMC1\n);
   pdata-slots[0].card_detect = twl6030_mmc_card_detect;
   pdata-slots[0].card_detect_irq = TWL6030_IRQ_BASE +
 MMCDETECT_INTR_OFFSET;
   }
   return ret;


snip

Few Comments below:

1) In the above function, initializing card_detect  in the driver as
done in omap_hsmmc_gpio_init might be more readable and this has been
done in nongpio_init instead.
Even having initialization of  card_detect_irq inside nongpio_init is fine.


The problem is that referencing twl6030 from omap_hsmmc.c is not ok.
The driver must work with any platform and that is the reason that
platform data provides callbacks.



2)Also calling omap_hsmmc_gpio_init in case of a card detect line
which is not GPIO
doesn't make sense though it assigns -EINVAL to switch_pin in case of
invalid GPIO
which is intended for a non-removable card .

3) And also having some thing like GPIO and NON_GPIO flag to
distinguish might make sense.

Regards,
Kishore



--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v5 2/2] OMAP4 HSMMC: Adding card detect support for MMC1 Controller

2010-06-29 Thread kishore kadiyala
On Tue, Jun 29, 2010 at 1:00 PM, Adrian Hunter adrian.hun...@nokia.com wrote:
 ext kishore kadiyala wrote:

 Adrian ,

 Sorry for the late response

 snip

 As per my email 5/5/10, I would suggest the only change to omap_hsmmc is:

 Agreed  and followed the changes mostly but made some more changes on top
 of it.

 snip

 And that the late init function is used to do the rest e.g.
 find a home for these 3 functions:

 I agree just having the 3 functions makes it work.

 static int omap4_twl6030_hsmmc_late_init(struct device *dev)
 {
       int ret = 0;
       struct platform_device *pdev = container_of(dev,
                                       struct platform_device, dev);
       struct omap_mmc_platform_data *pdata = dev-platform_data;

       /* MMC1 Card detect Configuration */
       if (pdev-id == 0) {
               ret = omap4_hsmmc1_card_detect_config();
               if (ret  0)
                       pr_err(Unable to configure Card detect for
 MMC1\n);
               pdata-slots[0].card_detect = twl6030_mmc_card_detect;
               pdata-slots[0].card_detect_irq = TWL6030_IRQ_BASE +
                                                 MMCDETECT_INTR_OFFSET;
       }
       return ret;

 snip

 Few Comments below:

 1) In the above function, initializing card_detect  in the driver as
 done in omap_hsmmc_gpio_init might be more readable and this has been
 done in nongpio_init instead.
 Even having initialization of  card_detect_irq inside nongpio_init is
 fine.

 The problem is that referencing twl6030 from omap_hsmmc.c is not ok.
 The driver must work with any platform and that is the reason that
 platform data provides callbacks.

ok, in that case how about having handler initialized in
mach-omap2/hsmmc.c  for both gpio and non-gpio case.

-Kishore


 2)Also calling omap_hsmmc_gpio_init in case of a card detect line
 which is not GPIO
 doesn't make sense though it assigns -EINVAL to switch_pin in case of
 invalid GPIO
 which is intended for a non-removable card .

 3) And also having some thing like GPIO and NON_GPIO flag to
 distinguish might make sense.

 Regards,
 Kishore



--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v5 2/2] OMAP4 HSMMC: Adding card detect support for MMC1 Controller

2010-06-29 Thread Adrian Hunter

kishore kadiyala wrote:

On Tue, Jun 29, 2010 at 1:00 PM, Adrian Hunter adrian.hun...@nokia.com wrote:

ext kishore kadiyala wrote:

Adrian ,

Sorry for the late response

snip

As per my email 5/5/10, I would suggest the only change to omap_hsmmc is:

Agreed  and followed the changes mostly but made some more changes on top
of it.

snip

And that the late init function is used to do the rest e.g.
find a home for these 3 functions:

I agree just having the 3 functions makes it work.


static int omap4_twl6030_hsmmc_late_init(struct device *dev)
{
  int ret = 0;
  struct platform_device *pdev = container_of(dev,
  struct platform_device, dev);
  struct omap_mmc_platform_data *pdata = dev-platform_data;

  /* MMC1 Card detect Configuration */
  if (pdev-id == 0) {
  ret = omap4_hsmmc1_card_detect_config();
  if (ret  0)
  pr_err(Unable to configure Card detect for
MMC1\n);
  pdata-slots[0].card_detect = twl6030_mmc_card_detect;
  pdata-slots[0].card_detect_irq = TWL6030_IRQ_BASE +
MMCDETECT_INTR_OFFSET;
  }
  return ret;

snip

Few Comments below:

1) In the above function, initializing card_detect  in the driver as
done in omap_hsmmc_gpio_init might be more readable and this has been
done in nongpio_init instead.
Even having initialization of  card_detect_irq inside nongpio_init is
fine.

The problem is that referencing twl6030 from omap_hsmmc.c is not ok.
The driver must work with any platform and that is the reason that
platform data provides callbacks.


ok, in that case how about having handler initialized in
mach-omap2/hsmmc.c  for both gpio and non-gpio case.


Unless twl6030 is part of OMAP4 then it doesn't belong in hsmmc.c either



-Kishore

2)Also calling omap_hsmmc_gpio_init in case of a card detect line
which is not GPIO
doesn't make sense though it assigns -EINVAL to switch_pin in case of
invalid GPIO
which is intended for a non-removable card .

3) And also having some thing like GPIO and NON_GPIO flag to
distinguish might make sense.

Regards,
Kishore







--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v5 2/2] OMAP4 HSMMC: Adding card detect support for MMC1 Controller

2010-06-29 Thread kishore kadiyala
On Tue, Jun 29, 2010 at 1:48 PM, Adrian Hunter adrian.hun...@nokia.com wrote:
 kishore kadiyala wrote:

 On Tue, Jun 29, 2010 at 1:00 PM, Adrian Hunter adrian.hun...@nokia.com
 wrote:

 ext kishore kadiyala wrote:

 Adrian ,

 Sorry for the late response

 snip

 As per my email 5/5/10, I would suggest the only change to omap_hsmmc
 is:

 Agreed  and followed the changes mostly but made some more changes on
 top
 of it.

 snip

 And that the late init function is used to do the rest e.g.
 find a home for these 3 functions:

 I agree just having the 3 functions makes it work.

 static int omap4_twl6030_hsmmc_late_init(struct device *dev)
 {
      int ret = 0;
      struct platform_device *pdev = container_of(dev,
                                      struct platform_device, dev);
      struct omap_mmc_platform_data *pdata = dev-platform_data;

      /* MMC1 Card detect Configuration */
      if (pdev-id == 0) {
              ret = omap4_hsmmc1_card_detect_config();
              if (ret  0)
                      pr_err(Unable to configure Card detect for
 MMC1\n);
              pdata-slots[0].card_detect = twl6030_mmc_card_detect;
              pdata-slots[0].card_detect_irq = TWL6030_IRQ_BASE +
                                                MMCDETECT_INTR_OFFSET;
      }
      return ret;

 snip

 Few Comments below:

 1) In the above function, initializing card_detect  in the driver as
 done in omap_hsmmc_gpio_init might be more readable and this has been
 done in nongpio_init instead.
 Even having initialization of  card_detect_irq inside nongpio_init is
 fine.

 The problem is that referencing twl6030 from omap_hsmmc.c is not ok.
 The driver must work with any platform and that is the reason that
 platform data provides callbacks.

 ok, in that case how about having handler initialized in
 mach-omap2/hsmmc.c  for both gpio and non-gpio case.

 Unless twl6030 is part of OMAP4 then it doesn't belong in hsmmc.c either

ok, I'll make changes as suggested and post next version.

Regards,
Kishore


 -Kishore

 2)Also calling omap_hsmmc_gpio_init in case of a card detect line
 which is not GPIO
 doesn't make sense though it assigns -EINVAL to switch_pin in case of
 invalid GPIO
 which is intended for a non-removable card .

 3) And also having some thing like GPIO and NON_GPIO flag to
 distinguish might make sense.

 Regards,
 Kishore





--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/3] add non-standard SDIO card support

2010-06-29 Thread Grazvydas Ignotas
This is my attempt to make SDIO interfaced TI WL1251 wifi chip usable
on mainline kernels. It's driver has already been merged several releases
back, but the problem is current SDIO core can't detect the card because
it's not following SDIO standards and does not have any required SDIO
registers. Currenty attempting to use this chip only results in several
pages of complains about invalid register data from SDIO core.
WL1251 is used on various HTC devices and Pandora handheld at least.

People wanting to use this are forced to use forked trees or patches.
My solution to this problem is to add new MMC quirk that will tell SDIO
core not to access any SDIO registers and rely on host's init_card
callback instead, which is now responsible for filling card related
structures for SDIO core to function. Patches 2 and 3 set up the card
for pandora, similar method could be used for MSM too.

Only patches 2,3 depend on each other, so patch 1 can be merged separately.

Grazvydas Ignotas (3):
  sdio: allow non-standard SDIO cards
  omap_hsmmc: add init_card pass-through callback
  omap: pandora: pass information about wl1251 to SDIO core

 arch/arm/mach-omap2/board-omap3pandora.c |   16 +
 arch/arm/mach-omap2/hsmmc.c  |1 +
 arch/arm/mach-omap2/hsmmc.h  |4 +++
 arch/arm/plat-omap/include/plat/mmc.h|2 +
 drivers/mmc/core/sdio.c  |   36 +-
 drivers/mmc/host/omap_hsmmc.c|   10 
 include/linux/mmc/card.h |2 +
 7 files changed, 65 insertions(+), 6 deletions(-)

--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/3] sdio: allow non-standard SDIO cards

2010-06-29 Thread Grazvydas Ignotas
There are some chips (like TI WL12xx series) that can be interfaced
over SDIO but don't support the SDIO specification, meaning that they
are missing CIA (Common I/O Area) with all it's registers. Current
Linux SDIO implementation relies on those registers to identify and
configure the card, so non-standard cards can not function and cause
lots of warnings from the core when it reads invalid data from
non-existent registers.

After this patch, init_card() host callback can now set new quirk
MMC_QUIRK_NONSTD_SDIO, which means that SDIO core should not try to
access any standard SDIO registers and rely on init_card() to fill all
SDIO structures instead. As those cards are usually embedded chips,
all the required information can be obtained from machine board files
by the host driver when it's called through init_card() callback.

Signed-off-by: Grazvydas Ignotas nota...@gmail.com
---
 drivers/mmc/core/sdio.c  |   36 ++--
 include/linux/mmc/card.h |2 ++
 2 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index b9dee28..cb66833 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -62,13 +62,19 @@ static int sdio_init_func(struct mmc_card *card, unsigned 
int fn)
 
func-num = fn;
 
-   ret = sdio_read_fbr(func);
-   if (ret)
-   goto fail;
+   if (!(card-quirks  MMC_QUIRK_NONSTD_SDIO)) {
+   ret = sdio_read_fbr(func);
+   if (ret)
+   goto fail;
 
-   ret = sdio_read_func_cis(func);
-   if (ret)
-   goto fail;
+   ret = sdio_read_func_cis(func);
+   if (ret)
+   goto fail;
+   } else {
+   func-vendor = func-card-cis.vendor;
+   func-device = func-card-cis.device;
+   func-max_blksize = func-card-cis.blksize;
+   }
 
card-sdio_func[fn - 1] = func;
 
@@ -321,6 +327,23 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 
ocr,
goto remove;
}
 
+   if (card-quirks  MMC_QUIRK_NONSTD_SDIO) {
+   /*
+* This is non-standard SDIO device, meaning it doesn't
+* have any CIA (Common I/O area) registers present.
+* It's host's responsibility to fill cccr and cis
+* structures in init_card().
+*/
+   mmc_set_clock(host, card-cis.max_dtr);
+
+   if (card-cccr.high_speed) {
+   mmc_card_set_highspeed(card);
+   mmc_set_timing(card-host, MMC_TIMING_SD_HS);
+   }
+
+   goto finish;
+   }
+
/*
 * Read the common registers.
 */
@@ -376,6 +399,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 
ocr,
if (err)
goto remove;
 
+finish:
if (!oldcard)
host-card = card;
return 0;
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index d02d2c6..cbc745c 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -101,6 +101,8 @@ struct mmc_card {
 #define MMC_QUIRK_LENIENT_FN0  (10)  /* allow SDIO FN0 writes 
outside of the VS CCCR range */
 #define MMC_QUIRK_BLKSZ_FOR_BYTE_MODE (11)   /* use func-cur_blksize */
/* for byte mode */
+#define MMC_QUIRK_NONSTD_SDIO  (12)  /* non-standard SDIO card 
attached */
+   /* (missing CIA registers) */
 
u32 raw_cid[4]; /* raw card CID */
u32 raw_csd[4]; /* raw card CSD */
-- 
1.6.3.3

--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/3] omap_hsmmc: add init_card pass-through callback

2010-06-29 Thread Grazvydas Ignotas
This will allow us to set up special cards in machine drivers just
after they are detected by MMC core.

Signed-off-by: Grazvydas Ignotas nota...@gmail.com
---
 arch/arm/plat-omap/include/plat/mmc.h |2 ++
 drivers/mmc/host/omap_hsmmc.c |   10 ++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/arch/arm/plat-omap/include/plat/mmc.h 
b/arch/arm/plat-omap/include/plat/mmc.h
index c835f1e..9b89ec6 100644
--- a/arch/arm/plat-omap/include/plat/mmc.h
+++ b/arch/arm/plat-omap/include/plat/mmc.h
@@ -122,6 +122,8 @@ struct omap_mmc_platform_data {
/* Call back after enabling / disabling regulators */
void (*after_set_reg)(struct device *dev, int slot,
  int power_on, int vdd);
+   /* if we have special card, init it using this callback */
+   void (*init_card)(struct mmc_card *card);
 
/* return MMC cover switch state, can be NULL if not supported.
 *
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index b032828..e8eb39e 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1598,6 +1598,14 @@ static int omap_hsmmc_get_ro(struct mmc_host *mmc)
return mmc_slot(host).get_ro(host-dev, 0);
 }
 
+static void omap_hsmmc_init_card(struct mmc_host *mmc, struct mmc_card *card)
+{
+   struct omap_hsmmc_host *host = mmc_priv(mmc);
+
+   if (mmc_slot(host).init_card)
+   mmc_slot(host).init_card(card);
+}
+
 static void omap_hsmmc_conf_bus_power(struct omap_hsmmc_host *host)
 {
u32 hctl, capa, value;
@@ -1869,6 +1877,7 @@ static const struct mmc_host_ops omap_hsmmc_ops = {
.set_ios = omap_hsmmc_set_ios,
.get_cd = omap_hsmmc_get_cd,
.get_ro = omap_hsmmc_get_ro,
+   .init_card = omap_hsmmc_init_card,
/* NYET -- enable_sdio_irq */
 };
 
@@ -1879,6 +1888,7 @@ static const struct mmc_host_ops omap_hsmmc_ps_ops = {
.set_ios = omap_hsmmc_set_ios,
.get_cd = omap_hsmmc_get_cd,
.get_ro = omap_hsmmc_get_ro,
+   .init_card = omap_hsmmc_init_card,
/* NYET -- enable_sdio_irq */
 };
 
-- 
1.6.3.3

--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/3] omap: pandora: pass wl1251 information to SDIO core

2010-06-29 Thread Grazvydas Ignotas
Pandora has TI WL1251 attached on MMC3, which is non-standard SDIO chip.
Make use MMC_QUIRK_NONSTD_SDIO to tell SDIO core about it.

Signed-off-by: Grazvydas Ignotas nota...@gmail.com
---
 arch/arm/mach-omap2/board-omap3pandora.c |   16 
 arch/arm/mach-omap2/hsmmc.c  |1 +
 arch/arm/mach-omap2/hsmmc.h  |4 
 3 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/board-omap3pandora.c 
b/arch/arm/mach-omap2/board-omap3pandora.c
index db06dc9..ebbfb49 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -29,6 +29,7 @@
 #include linux/input.h
 #include linux/input/matrix_keypad.h
 #include linux/gpio_keys.h
+#include linux/mmc/card.h
 
 #include asm/mach-types.h
 #include asm/mach/arch.h
@@ -227,6 +228,20 @@ static struct platform_device pandora_dss_device = {
},
 };
 
+static void pandora_wl1251_init_card(struct mmc_card *card)
+{
+   /*
+* We have TI wl1251 attached to MMC3. Pass this information to
+* SDIO core because it can't be probed by normal methods.
+*/
+   card-quirks |= MMC_QUIRK_NONSTD_SDIO;
+   card-cccr.wide_bus = 1;
+   card-cis.vendor = 0x104c;
+   card-cis.device = 0x9066;
+   card-cis.blksize = 512;
+   card-cis.max_dtr = 2000;
+}
+
 static struct omap2_hsmmc_info omap3pandora_mmc[] = {
{
.mmc= 1,
@@ -248,6 +263,7 @@ static struct omap2_hsmmc_info omap3pandora_mmc[] = {
.wires  = 4,
.gpio_cd= -EINVAL,
.gpio_wp= -EINVAL,
+   .init_card  = pandora_wl1251_init_card,
},
{}  /* Terminator */
 };
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c
index 1ef54b0..c8f647b 100644
--- a/arch/arm/mach-omap2/hsmmc.c
+++ b/arch/arm/mach-omap2/hsmmc.c
@@ -268,6 +268,7 @@ void __init omap2_hsmmc_init(struct omap2_hsmmc_info 
*controllers)
mmc-slots[0].gpio_wp = c-gpio_wp;
 
mmc-slots[0].remux = c-remux;
+   mmc-slots[0].init_card = c-init_card;
 
if (c-cover_only)
mmc-slots[0].cover = 1;
diff --git a/arch/arm/mach-omap2/hsmmc.h b/arch/arm/mach-omap2/hsmmc.h
index 36f0ba8..1fe6f01 100644
--- a/arch/arm/mach-omap2/hsmmc.h
+++ b/arch/arm/mach-omap2/hsmmc.h
@@ -6,6 +6,8 @@
  * published by the Free Software Foundation.
  */
 
+struct mmc_card;
+
 struct omap2_hsmmc_info {
u8  mmc;/* controller 1/2/3 */
u8  wires;  /* 1/4/8 wires */
@@ -23,6 +25,8 @@ struct omap2_hsmmc_info {
int ocr_mask;   /* temporary HACK */
/* Remux (pad configuation) when powering on/off */
void (*remux)(struct device *dev, int slot, int power_on);
+   /* init some special card */
+   void (*init_card)(struct mmc_card *card);
 };
 
 #if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
-- 
1.6.3.3

--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


+ sdhci-8-bit-data-transfer-width-support.patch added to -mm tree

2010-06-29 Thread akpm

The patch titled
 sdhci: 8-bit data transfer width support
has been added to the -mm tree.  Its filename is
 sdhci-8-bit-data-transfer-width-support.patch

Before you just go and hit reply, please:
   a) Consider who else should be cc'ed
   b) Prefer to cc a suitable mailing list as well
   c) Ideally: find the original patch on the mailing list and do a
  reply-to-all to that, adding suitable additional cc's

*** Remember to use Documentation/SubmitChecklist when testing your code ***

See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find
out what to do about this

The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/

--
Subject: sdhci: 8-bit data transfer width support
From: Kyungmin Park kyungmin.p...@samsung.com

Some host controllers such as s5pc110 support the WIDE8 feature.

Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com
Cc: Grant Likely grant.lik...@secretlab.ca
Cc: linux-mmc@vger.kernel.org
Signed-off-by: Andrew Morton a...@linux-foundation.org
---

 drivers/mmc/host/sdhci.c |5 +
 drivers/mmc/host/sdhci.h |1 +
 2 files changed, 6 insertions(+)

diff -puN drivers/mmc/host/sdhci.c~sdhci-8-bit-data-transfer-width-support 
drivers/mmc/host/sdhci.c
--- a/drivers/mmc/host/sdhci.c~sdhci-8-bit-data-transfer-width-support
+++ a/drivers/mmc/host/sdhci.c
@@ -1159,6 +1159,11 @@ static void sdhci_set_ios(struct mmc_hos
 
ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
 
+   if (ios-bus_width == MMC_BUS_WIDTH_8)
+   ctrl |= SDHCI_CTRL_8BITBUS;
+   else
+   ctrl = ~SDHCI_CTRL_8BITBUS;
+
if (ios-bus_width == MMC_BUS_WIDTH_4)
ctrl |= SDHCI_CTRL_4BITBUS;
else
diff -puN drivers/mmc/host/sdhci.h~sdhci-8-bit-data-transfer-width-support 
drivers/mmc/host/sdhci.h
--- a/drivers/mmc/host/sdhci.h~sdhci-8-bit-data-transfer-width-support
+++ a/drivers/mmc/host/sdhci.h
@@ -72,6 +72,7 @@
 #define   SDHCI_CTRL_ADMA1 0x08
 #define   SDHCI_CTRL_ADMA320x10
 #define   SDHCI_CTRL_ADMA640x18
+#define  SDHCI_CTRL_8BITBUS0x20
 
 #define SDHCI_POWER_CONTROL0x29
 #define  SDHCI_POWER_ON0x01
_

Patches currently in -mm which might be from kyungmin.p...@samsung.com are

linux-next.patch
mmc-recognize-csd-structure.patch
mmc-recognize-csd-structure-fix.patch
s5pc110-sdhci-s3c-can-override-host-capabilities.patch
s5pc110-sdhci-s3c-support-on-s5pc110.patch
sdhci-add-no-hi-speed-bit-quirk-support.patch
sdhci-remove-useless-set_clock-check.patch
sdhci-8-bit-data-transfer-width-support.patch
sdhci-dont-assign-mmc-caps-at-sdhci-directly.patch

--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/3] SDHCI: 8-bit data transfer width support

2010-06-29 Thread Andrew Morton
On Mon, 28 Jun 2010 12:48:29 -0700
Grant Likely grant.lik...@secretlab.ca wrote:

 On Mon, Jun 28, 2010 at 12:33 PM, Olof Johansson o...@lixom.net wrote:
  On Mon, Jun 28, 2010 at 11:56:26AM -0700, Colin Cross wrote:
  These patches are not coming from the tegra/for-next branch, they are
  coming from Grant's devicetree-next branch. __Grant, why are these
  patches in your tree, and why is tegra/for-next in your tree? __It's
  going to cause conflicts when we rebase our for-next branch. __Please
  remove tegra and this sdhci patch from your tree.
 
  Yeah, this seems to be a mixup by Grant. I gave him a few patches I had
  picked up locally to work with, and he seems to have published the
  work accidentally.
 
 Hi Colin,
 
 I've fixed it now.  Profuse apologies, sorry for the noise, and I owe
 you a beer or 3.

Thanks, guys - I resurrected
sdhci-8-bit-data-transfer-width-support.patch and
sdhci-dont-assign-mmc-caps-at-sdhci-directly.patch

--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3] MMC: Add JZ4740 mmc driver

2010-06-29 Thread Matt Fleming
On Mon, 28 Jun 2010 03:20:41 +0200, Lars-Peter Clausen l...@metafoo.de wrote:
 This patch adds support for the mmc controller on JZ4740 SoCs.
 
 Signed-off-by: Lars-Peter Clausen l...@metafoo.de
 Cc: Andrew Morton a...@linux-foundation.org
 Cc: Matt Fleming m...@console-pimps.org
 Cc: linux-mmc@vger.kernel.org
 
 ---
 Changes since v1
 - Do not request IRQ with IRQF_DISABLED since it is a noop now
 - Use a generous slack for the timeout timer. It does not need to be accurate.
 Changes since v2
 - Use sg_mapping_to iterate over sg elements in mmc read and write functions
 - Use bitops instead of a spinlock and a variable for testing whether a 
 request
   has been finished.
 - Rework irq and timeout handling in order to get rid of locking in hot paths

Acked-by: Matt Fleming m...@console-pimps.org

Are you planning on maintaining this driver? If so, it'd be a good idea
to update MAINTAINERS.
--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Request for SPI testing

2010-06-29 Thread Grant Likely
I've pushed out Ernst's spi bus locking API patches to the following
branch.  Before I push them into linux-next, I'd like to get some
testing.  Can I have some volunteers please to pull this branch and
give it a spin?  Bonus points for people who have mmc cards
multiplexed with other devices on their SPI bus.

Cheers,
g.

The following changes since commit 5904b3b81d25166e5e39b9727645bb47937618e3:
  Linus Torvalds (1):
Merge branch 'perf-fixes-for-linus' of
git://git.kernel.org/.../tip/linux-2.6-tip

are available in the git repository at:

  git://git.secretlab.ca/git/linux-2.6 spi/test

Cory Maccarrone (1):
  SPI100k: Fix 8-bit and RX-only transfers

Ernst Schwab (2):
  spi/mmc_spi: SPI bus locking API, using mutex
  spi/mmc_spi: mmc_spi adaptations for SPI bus locking API

 drivers/mmc/host/mmc_spi.c  |   59 ++-
 drivers/spi/omap_spi_100k.c |   23 +++--
 drivers/spi/spi.c   |  225 ---
 include/linux/spi/spi.h |   12 +++
 4 files changed, 227 insertions(+), 92 deletions(-)

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html