Re: [PATCH v6 00/12] Qualcomm SD Card Controller support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2 June 2014 11:03,  <srinivas.kandagatla@xxxxxxxxxx> wrote:
> From: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
>
> Thankyou Linus W, Ulf H, Russell K and everyone for reviewing RFC to v5 patches.
>
> This patch series adds Qualcomm SD Card Controller support in pl180 mmci
> driver. QCom SDCC is basically a pl180, but bit more customized, some of the
> register layouts and offsets are different to the ones mentioned in pl180
> datasheet. The plan is to totally remove the standalone SDCC driver
> drivers/mmc/host/msm_sdcc.* and start using generic mmci driver for all
> Qualcomm parts, as we get chance to test on other Qcom boards.
>
> To start using the existing mmci driver, a fake amba id for Qualcomm is added
> in patches:
>  mmc: mmci: Add Qualcomm specific register defines.
>  mmc: mmci: Add Qualcomm Id to amba id table.
>
> Second change is, adding a 3 clock cycle delay in between writes to
> CLKCTRL/POWER/DATACTRL/COMMAND registers. Most of the delays are taken care with
> the existing driver except delay for the COMMAND register was too small.
> This patch fixes it.
>   mmc: mmci: Add enough delay between writes to CMD register.
>
> Third change is to accommodate CLK, DATCTRL and MMCICLK register layout changes
> in Qcom SDCC and provide more flexibity in driver to specify these changes via
> variant datastructure. Which are done in patches:
>   mmc: mmci: Add Qcom datactrl register variant
>   mmc: mmci: add ddrmode mask to variant data
>   mmc: mmci: add 8bit bus support in variant data
>   mmc: mmci: add edge support to data and command out in variant data.
>   mmc: mmci: add Qcom specifics of clk and datactrl registers.
>   mmc: mmci: Add support to data commands via variant structure.
>   mmc: mmci: add f_max to variant structure
>   mmc: mmci: add explicit clk control
>
> Fourth change was to add qcom specfic fifocnt logic, the need for
> this is because the way MCIFIFOCNT register behaved in QCOM SDCC is very
>  different to the one in pl180. This change is done in patch:
>   mmc: mmci: Add Qcom specific rx_fifocnt logic.
>
> Last some Qcom unrelated changes/cleanup to driver are done in patches:
>   mmc: mmci: use NSEC_PER_SEC macro
>
> This patches are tested in PIO mode on IFC8064 board with both eMMC and
> external SD card. I would like to get this support in v3.16.

Thanks Srinivas, great work!

We didn't reach 3.16, but now I have applied this for my next branch
intended for 3.17.

For you information, the v6 patchset needed a minor re-base, and one
of the patches had a checkpatch error. I managed to fix them, hope you
are fine with that.

Russell, if you have any concerns with the patches - just let me know,
then I can easily drop them.

Kind regards
Uffe

>
> Changes from v5:
>         - removed BIT conversion patch as suggested by Russell K.
>         - removed extra parens as pointed by Russell K.
>         - correct the f_max for explicit clk control
>
> Changes from v4:
>         - moved the amba id table addition to the end of the patchset as suggested by Ulf.
>         - reused the mmci_pio_read function after experimenting with the fifo behaviour.
>         - simplify f_max/f_min calcuation logic as suggested by Ulf.
>         - created a new patch for the register defination as suggested by Ulf.
>
> Changes from v3:
>         - moved pio_read to a function pointer so as to reduce additional cycles
>         in hot-path, suggested by Ulf.
>         - simplify the flags used for explicit mclk control, suggested by Ulf.
>         - fixed issues in cacluating f_max and f_min pointed and suggested by Ulf.
>         - removed unessary DDR flags on un-supported STE variants.
>         - used BIT macros as suggested by Ulf.
>         - removed the read/write wrappers with delays, and used most optimal way
>         to introduce the delays to the only registers that require delays.
>
> Changes from v2:
>         - merged fbclk latch patch with clkreg_enable patch as suggested by Linus W.
>         - remove qcom prefix for explicit clk control pointed by Linus W.
>         - cleaned up mmci_qcom_pio_read and consider SDIO as suggested by Linus W.
>
> Changes from v1:
>         - moved most of the SOC specifics to variant parameters as suggested
>           by Linus W.
>         - renamed registers as suggested by Linus W.
>         - Added comments in the code as suggested by Linus W.
>         - moved out AMBA ID addition patch from this series.
>         - rebased the patches to
>                 git://git.linaro.org/people/ulf.hansson/mmc.git next
>           as suggested by Ulf H.
>
> Changes from RFC:
>         - moved out clk setup out of spinlock as pointed by Stephen B.
>
> Am hoping to get this for v3.16.
>
> All these patches are tested on IF6410 board on both eMMC and external SD card.
>
> Thanks,
> srini
>
>
> Srinivas Kandagatla (12):
>   mmc: mmci: use NSEC_PER_SEC macro
>   mmc: mmci: Add Qualcomm specific register defines.
>   mmc: mmci: Add enough delay between writes to CMD register.
>   mmc: mmci: Add Qcom datactrl register variant
>   mmc: mmci: add ddrmode mask to variant data
>   mmc: mmci: add 8bit bus support in variant data
>   mmc: mmci: add edge support to data and command out in variant data.
>   mmc: mmci: Add support to data commands via variant structure.
>   mmc: mmci: add f_max to variant structure
>   mmc: mmci: add explicit clk control
>   mmc: mmci: Add Qcom specific rx_fifocnt logic.
>   mmc: mmci: Add Qualcomm Id to amba id table
>
>  drivers/mmc/host/mmci.c | 128 +++++++++++++++++++++++++++++++++++++++++++-----
>  drivers/mmc/host/mmci.h |  20 ++++++++
>  2 files changed, 136 insertions(+), 12 deletions(-)
>
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux