Re: [PATCH v2 01/12] mmc: add none blocking mmc request function

2011-04-20 Thread Per Forlin
Hi, On 15 April 2011 12:34, David Vrabel david.vra...@csr.com wrote: On 06/04/11 20:07, Per Forlin wrote: Previously there has only been one function mmc_wait_for_req to start and wait for a request. This patch adds  * mmc_start_req - starts a request wihtout waiting  * mmc_wait_for_req_done

Re: [PATCH v2 03/12] mmc: mmc_test: add test for none blocking transfers

2011-04-20 Thread Per Forlin
On 17 April 2011 09:09, Lin Tony-B19295 b19...@freescale.com wrote: Hi Per        Just have a glance of your patch, good thinking. But I have a question about this patch. You modified mmc_test to test your driver. Does it mean your driver's performance enhancement depends on application? I

Re: [PATCH v2 03/12] mmc: mmc_test: add test for none blocking transfers

2011-04-20 Thread Per Forlin
On 17 April 2011 17:46, Shawn Guo shawn@freescale.com wrote: On Wed, Apr 06, 2011 at 09:07:04PM +0200, Per Forlin wrote: [...] +static int mmc_test_rw_multiple(struct mmc_test_card *test, +                             struct mmc_test_multiple_rw *tdata, +                            

Re: [PATCH] mmc: mxs-mmc: add support for pre_req and post_req

2011-04-20 Thread Per Forlin
On 17 April 2011 18:33, Shawn Guo shawn@linaro.org wrote: pre_req() runs dma_map_sg() post_req() runs dma_unmap_sg. If not calling pre_req() before mxs_mmc_request(), request() will prepare the cache just like it did it before. It is optional to use pre_req() and post_req().

Re: [PATCH] mmc: mxs-mmc: add support for pre_req and post_req

2011-04-20 Thread Per Forlin
On 17 April 2011 18:48, Shawn Guo shawn@freescale.com wrote: On Mon, Apr 18, 2011 at 12:33:30AM +0800, Shawn Guo wrote: pre_req() runs dma_map_sg() post_req() runs dma_unmap_sg. If not calling pre_req() before mxs_mmc_request(), request() will prepare the cache just like it did it before.

Re: [PATCH] mmc: mxs-mmc: add support for pre_req and post_req

2011-04-20 Thread Shawn Guo
On Wed, Apr 20, 2011 at 09:58:48AM +0200, Per Forlin wrote:  static struct dma_async_tx_descriptor *mxs_mmc_prep_dma(        struct mxs_mmc_host *host, unsigned int append)  { @@ -312,8 +342,8 @@ static struct dma_async_tx_descriptor *mxs_mmc_prep_dma(        if (data) {              

Re: [PATCH v2 00/12] mmc: use nonblock mmc requests to minimize latency

2011-04-20 Thread Per Forlin
On 16 April 2011 17:48, Shawn Guo shawn@freescale.com wrote: Hi Per, On Wed, Apr 06, 2011 at 09:07:01PM +0200, Per Forlin wrote: [...] Per Forlin (12):   mmc: add none blocking mmc request function   mmc: mmc_test: add debugfs file to list all tests   mmc: mmc_test: add test for none

[PATCH v3 00/11] add support for host controller v3.00

2011-04-20 Thread Arindam Nath
V3 [01/11]: Set bit 24 and bit 28 of OCR within mmc_sd_get_cid(), and only retry sending ACMD41 with bit 24 reset in case signal voltage switch procedure fails. [01/11]: Change (*rocr 0x4100) to ((*rocr 0x4100) == 0x4100) to check for both CCS and S18A

[PATCH v3 02/11] mmc: sd: query function modes for uhs cards

2011-04-20 Thread Arindam Nath
SD cards which conform to Physical Layer Spec v3.01 can support additional Bus Speed Modes, Driver Strength, and Current Limit other than the default values. We use CMD6 mode 0 to read these additional card functions. The values read here will be used during UHS-I initialization steps.

[PATCH v3 03/11] mmc: sd: add support for driver type selection

2011-04-20 Thread Arindam Nath
This patch adds support for setting driver strength during UHS-I initialization prcedure. Since UHS-I cards set S18A (bit 24) in response to ACMD41, we use this as a base for UHS-I initialization. We modify the parameter list of mmc_sd_get_cid() so that we can save the ROCR from ACMD41 to check

[PATCH v3 04/11] mmc: sdhci: reset sdclk before setting high speed enable

2011-04-20 Thread Arindam Nath
As per Host Controller spec v3.00, we reset SDCLK before setting High Speed Enable, and then set it back to avoid generating clock gliches. Before enabling SDCLK again, we make sure the clock is stable, so we use sdhci_set_clock(). Signed-off-by: Arindam Nath arindam.n...@amd.com ---

[PATCH v3 05/11] mmc: sd: add support for uhs bus speed mode selection

2011-04-20 Thread Arindam Nath
This patch adds support for setting UHS-I bus speed mode during UHS-I initialization procedure. Since both the host and card can support more than one bus speed, we select the highest speed based on both of their capabilities. First we set the bus speed mode for the card using CMD6 mode 1, and

[PATCH v3 06/11] mmc: sd: set current limit for uhs cards

2011-04-20 Thread Arindam Nath
We decide on the current limit to be set for the card based on the Capability of Host Controller to provide current at 1.8V signalling, and the maximum current limit of the card as indicated by CMD6 mode 0. We then set the current limit for the card using CMD6 mode 1. As per the Physical Layer

[PATCH v3 07/11] mmc: sd: report correct speed and capacity of uhs cards

2011-04-20 Thread Arindam Nath
Since only UHS-I cards respond with S18A set in response to ACMD41, we set the card as ultra-high-speed after successfull initialization. We need to decide whether a card is SDXC based on the C_SIZE field of CSDv2.0 register. According to Physical Layer spec v3.01, the minimum value of C_SIZE for

[PATCH v3 08/11] mmc: sd: add support for tuning during uhs initialization

2011-04-20 Thread Arindam Nath
Host Controller needs tuning during initialization to operate SDR50 and SDR104 UHS-I cards. Whether SDR50 mode actually needs tuning is indicated by bit 45 of the Host Controller Capabilities register. A new command CMD19 has been defined in the Physical Layer spec v3.01 to request the card to

[PATCH v3 09/11] mmc: sdhci: enable preset value after uhs initialization

2011-04-20 Thread Arindam Nath
According to the Host Controller spec v3.00, setting Preset Value Enable in the Host Control2 register lets SDCLK Frequency Select, Clock Generator Select and Driver Strength Select to be set automatically by the Host Controller based on the UHS-I mode set. This patch enables this feature. We also

[PATCH v3 10/11] mmc: sdhci: add support for programmable clock mode

2011-04-20 Thread Arindam Nath
Host Controller v3.00 supports programmable clock mode as an optional feature. The support for this mode is indicated by non-zero value in bits 48-55 of the Capabilities register. If supported, the actual value of Clock Multiplier is one more than the value provided in the bit fields. We only set

Re: [PATCH v2 08/12] mmc: add handling for two parallel block requests in issue_rw_rq

2011-04-20 Thread Per Forlin
On 6 April 2011 21:07, Per Forlin per.for...@linaro.org wrote: Change mmc_blk_issue_rw_rq() to become asynchronous. The execution flow looks like this: The mmc-queue calls issue_rw_rq(), which sends the request to the host and returns back to the mmc-queue. The mmc-queue calls isuue_rw_rq()

[PATCH v2] mmc: mxs-mmc: add support for pre_req and post_req

2011-04-20 Thread Shawn Guo
pre_req() runs dma_map_sg() post_req() runs dma_unmap_sg. If not calling pre_req() before mxs_mmc_request(), request() will prepare the cache just like it did it before. It is optional to use pre_req() and post_req(). Signed-off-by: Shawn Guo shawn@linaro.org --- Changes since v1: * Get

Re: [PATCH] mmc: mxs-mmc: add support for pre_req and post_req

2011-04-20 Thread Shawn Guo
On Wed, Apr 20, 2011 at 10:01:22AM +0200, Per Forlin wrote: On 17 April 2011 18:48, Shawn Guo shawn@freescale.com wrote: On Mon, Apr 18, 2011 at 12:33:30AM +0800, Shawn Guo wrote: pre_req() runs dma_map_sg() post_req() runs dma_unmap_sg. If not calling pre_req() before

Re: [PATCH/RFC] MMC: remove unbalanced pm_runtime_suspend()

2011-04-20 Thread Alan Stern
On Wed, 20 Apr 2011, Guennadi Liakhovetski wrote: As I said above - I did mean probe() and remove(). Now, I have now traced down the cause of my problem. In dd.c::driver_probe_device(): pm_runtime_get_noresume(dev); pm_runtime_barrier(dev); ret = really_probe(dev, drv);

Re: [PATCH] mmc: mxs-mmc: add support for pre_req and post_req

2011-04-20 Thread Per Forlin
On 20 April 2011 16:01, Shawn Guo shawn@freescale.com wrote: On Wed, Apr 20, 2011 at 10:01:22AM +0200, Per Forlin wrote: On 17 April 2011 18:48, Shawn Guo shawn@freescale.com wrote: On Mon, Apr 18, 2011 at 12:33:30AM +0800, Shawn Guo wrote: pre_req() runs dma_map_sg() post_req() runs

Re: [PATCH] mmc: mxs-mmc: add support for pre_req and post_req

2011-04-20 Thread Per Forlin
On 20 April 2011 16:01, Shawn Guo shawn@freescale.com wrote: On Wed, Apr 20, 2011 at 10:01:22AM +0200, Per Forlin wrote: On 17 April 2011 18:48, Shawn Guo shawn@freescale.com wrote: On Mon, Apr 18, 2011 at 12:33:30AM +0800, Shawn Guo wrote: pre_req() runs dma_map_sg() post_req() runs

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread John Calixto
Chris, Have you had the chance to look at v6 of this patch? If so, what do you think? John -- 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 v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread Chris Ball
Hi John, On Wed, Apr 20 2011, John Calixto wrote: Have you had the chance to look at v6 of this patch? If so, what do you think? Looks good to me. Since Arnd's been reviewing, it'd be nice to get a Reviewed-by: tag from him and acknowledgement that his concerns are all addressed, and then

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread Michał Mirosław
2011/4/14 John Calixto john.cali...@modsystems.com: [...] +       /* DAT buffer */ +       __u32 data_ptr_size;  /* size of the *pointer* */ +       __u64 data_ptr; So... again... What's the problem with anonymous union of pointer and u64? Example implementation: struct mmc_ioc_cmd { ...

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread John Calixto
Hi Michal, On Wed, 20 Apr 2011, Michał Mirosław wrote: So... again... What's the problem with anonymous union of pointer and u64? As Arnd pointed out, this would not work for big endian machines. John

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread Michał Mirosław
W dniu 20 kwietnia 2011 19:38 użytkownik John Calixto john.cali...@modsystems.com napisał: Hi Michal, On Wed, 20 Apr 2011, Michał Mirosław wrote: So... again... What's the problem with anonymous union of pointer and u64? As Arnd pointed out, this would not work for big endian machines.

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread Michał Mirosław
W dniu 20 kwietnia 2011 19:31 użytkownik Michał Mirosław mir...@gmail.com napisał: 2011/4/14 John Calixto john.cali...@modsystems.com: [...] +       /* DAT buffer */ +       __u32 data_ptr_size;  /* size of the *pointer* */ +       __u64 data_ptr; So... again... What's the problem with

[PATCH] mmc: tmio: Fix tmio MMC_POWER_UP

2011-04-20 Thread Paul Parsons
Fix tmio MMC_POWER_UP invocation which had been broken in linux-2.6.39-rc1. In tmio_mmc_set_ios() an affirmative test for ios-clock == 0 executes the MMC_POWER_OFF block regardless of ios-power_mode. Because mmc_power_up() invokes MMC_POWER_UP before setting ios-clock, tmio_mmc_set_ios() turns

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread John Calixto
Hi Michał, On Wed, 20 Apr 2011, Michał Mirosław wrote: Hmm. This might be even better: static int mmc_blk_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) {  struct mmc_ioc_cmd blk;  if (cmd != MMC_IOC_CMD)    return -EINVAL;  

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread Arnd Bergmann
On Wednesday 20 April 2011 21:06:49 John Calixto wrote: On Wed, 20 Apr 2011, Michał Mirosław wrote: Hmm. This might be even better: static int mmc_blk_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) { struct mmc_ioc_cmd blk; if (cmd !=

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread John Calixto
Hi Arnd, On Wed, 20 Apr 2011, Arnd Bergmann wrote: No need for a union or a ptr_size member in the struct. Just use a single __u64 and let the user cast the pointer to that. This will work on all architectures. However, I still think it should be implemented in compat_ioctl() because

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread Arnd Bergmann
On Wednesday 20 April 2011 21:34:20 John Calixto wrote: On Wed, 20 Apr 2011, Arnd Bergmann wrote: No need for a union or a ptr_size member in the struct. Just use a single __u64 and let the user cast the pointer to that. This will work on all architectures. However, I still think

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread Michał Mirosław
2011/4/20 Arnd Bergmann a...@arndb.de: On Wednesday 20 April 2011 21:06:49 John Calixto wrote: On Wed, 20 Apr 2011, Michał Mirosław wrote: Hmm. This might be even better: static int mmc_blk_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) {   struct

Re: [PATCH/RFC] MMC: remove unbalanced pm_runtime_suspend()

2011-04-20 Thread Rafael J. Wysocki
[Added linux-pm to the CC list.] On Wednesday, April 20, 2011, Alan Stern wrote: On Wed, 20 Apr 2011, Guennadi Liakhovetski wrote: ... Ah, now I see the problem. It looks like we did not give sufficient thought to the case where a device starts off (and therefore should finish up) in a

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread John Calixto
On Wed, 20 Apr 2011, Michał Mirosław wrote: I'm okay with the anon union + ``compat_ptr(*(u32 *))`` part of your solution.  If everyone else thinks it is reasonable, I'll submit a v7 with it. No need for a union or a ptr_size member in the struct. Just use a single __u64 and let the user

Re: [PATCH/RFC] MMC: remove unbalanced pm_runtime_suspend()

2011-04-20 Thread Rafael J. Wysocki
On Wednesday, April 20, 2011, Alan Stern wrote: On Wed, 20 Apr 2011, Rafael J. Wysocki wrote: On Wednesday, April 20, 2011, Alan Stern wrote: On Wed, 20 Apr 2011, Guennadi Liakhovetski wrote: ... Ah, now I see the problem. It looks like we did not give sufficient thought to the

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread Chris Ball
Hi John, On Wed, Apr 20 2011, John Calixto wrote: Do you have a preference here? I do not have a preference. On the one hand, not having the union makes for a cleaner-to-read struct. On the other hand, not having to cast the pointer in 32-bit userspace is nice especially since I foresee

Re: [patchv3 4/4] MMC: MMC boot partitions support.

2011-04-20 Thread Chris Ball
Hi Andrei, On Mon, Apr 11 2011, Andrei Warkentin wrote: Allows device MMC boot partitions to be accessed. MMC partitions are treated effectively as separate block devices on the same MMC card. Booted this with a Sandisk SEM04G eMMC: [2.469921] mmcblk0boot0: mmc2:0001 SEM04G partition 1

Re: [patchv3 4/4] MMC: MMC boot partitions support.

2011-04-20 Thread Chris Ball
Hi, On Wed, Apr 20 2011, Chris Ball wrote: On Mon, Apr 11 2011, Andrei Warkentin wrote: Allows device MMC boot partitions to be accessed. MMC partitions are treated effectively as separate block devices on the same MMC card. Booted this with a Sandisk SEM04G eMMC: [2.469921]

Re: CMD23 plumbing and support patchset.

2011-04-20 Thread Chris Ball
Hi, On Sat, Apr 16 2011, Andrei Warkentin wrote: This is the third version of the CMD23 plumbing and host driver support patch set. Changes: 1) CMD23 support (used for features such as reliable writes) is decoupled from general multiblock trans through use of a quirk for affected cards.

Re: [patchv3 4/4] MMC: MMC boot partitions support.

2011-04-20 Thread Jaehoon Chung
Hi Chris. Chris Ball wrote: Hi Andrei, On Mon, Apr 11 2011, Andrei Warkentin wrote: Allows device MMC boot partitions to be accessed. MMC partitions are treated effectively as separate block devices on the same MMC card. Booted this with a Sandisk SEM04G eMMC: [2.469921]

Re: [patchv3 4/4] MMC: MMC boot partitions support.

2011-04-20 Thread Philip Rakity
Chris, I have also seen this on mmc-next. [2.489403] mmcblk0boot1: unknown partition table [2.495921] mmcblk0boot0: unknown partition table Aren't these the hidden partitions ? Only available at boot time? I need to apply my patch to reset the boot partition -- or is that now

Re: [PATCH v6] mmc: Add mmc CMD+ACMD passthrough ioctl

2011-04-20 Thread Arnd Bergmann
On Wednesday 20 April 2011 21:46:04 Michał Mirosław wrote: 2011/4/20 Arnd Bergmann a...@arndb.de: No, please don't try to invent random new ways of doing this. Your example relies on the assumption that the task is calling the entry point for its native word size. Some architectures

Re: [patchv3 4/4] MMC: MMC boot partitions support.

2011-04-20 Thread Chris Ball
Hi, On Thu, Apr 21 2011, Philip Rakity wrote: Aren't these the hidden partitions ? Only available at boot time? Yes, it's the previously-hidden boot partitions -- Andrei's patch exposes them to Linux. I need to apply my patch to reset the boot partition -- or is that now in mmc-next Your

Re: [patchv3 4/4] MMC: MMC boot partitions support.

2011-04-20 Thread Andrei Warkentin
On Thu, Apr 21, 2011 at 12:22 AM, Chris Ball c...@laptop.org wrote: Hi, On Thu, Apr 21 2011, Philip Rakity wrote: Aren't these the hidden partitions ?  Only available at boot time? Yes, it's the previously-hidden boot partitions -- Andrei's patch exposes them to Linux. I need to apply my