18 Feb, 2019

1 commit


10 Nov, 2018

1 commit

  • This patch adds check for command response CRC failure. The driver
    is currently ignoring CRC check failure on command resposes which
    have CRC atteched to it, which can be potentially dangerous. Even
    more grueling problem happens when the command response is followed
    by data transfer though, as in that case, the dwmci_data_transfer()
    function will spin until it reaches the 240s timeout.

    Signed-off-by: Marek Vasut
    Cc: Heiko Stuebner
    Cc: Philipp Tomsich

    Marek Vasut
     

02 Oct, 2018

1 commit

  • While trying to enable the dw_mmc on rk3188 I managed to confuse
    and hang the dw_mmc controller into not delivering further data.
    The fifo state never became ready and the driver was iterating in
    the while loop reading 0-byte packets forever.

    So inspired by how other implementations handle this, check the fifo-
    state beforhand and add a timeout to catch any glaring fifo issues
    without hanging uboot altogether.

    Signed-off-by: Heiko Stuebner
    Reviewed-by: Philipp Tomsich
    Acked-by: Philipp Tomsich

    Heiko Stuebner
     

07 May, 2018

1 commit

  • When U-Boot started using SPDX tags we were among the early adopters and
    there weren't a lot of other examples to borrow from. So we picked the
    area of the file that usually had a full license text and replaced it
    with an appropriate SPDX-License-Identifier: entry. Since then, the
    Linux Kernel has adopted SPDX tags and they place it as the very first
    line in a file (except where shebangs are used, then it's second line)
    and with slightly different comment styles than us.

    In part due to community overlap, in part due to better tag visibility
    and in part for other minor reasons, switch over to that style.

    This commit changes all instances where we have a single declared
    license in the tag as both the before and after are identical in tag
    contents. There's also a few places where I found we did not have a tag
    and have introduced one.

    Signed-off-by: Tom Rini

    Tom Rini
     

17 Aug, 2017

1 commit


10 Oct, 2016

1 commit


05 Aug, 2016

1 commit


28 Jul, 2016

2 commits


12 Jul, 2016

2 commits


28 May, 2016

1 commit


01 Dec, 2015

1 commit


03 Sep, 2015

1 commit


22 Jul, 2015

1 commit


24 Feb, 2015

1 commit


06 Oct, 2014

1 commit

  • The DMA descriptors used by the DW MMC block must be aligned to cacheline
    size, otherwise we are unable to properly flush/inval cache over them and
    we get data corruption.

    The reason I chose this approach of expanding the structure is because
    the driver allocates the descriptors in bulk. This approach does waste
    space by inserting slop inbetween the descriptors, but it makes access
    to the descriptors easy as the compiler does know the real size of the
    structure. It also makes cache operations easy, since the size of the
    structure is cache aligned and the structure start address is as well.

    Signed-off-by: Marek Vasut
    Cc: Chin Liang See
    Cc: Dinh Nguyen
    Cc: Albert Aribaud
    Cc: Tom Rini
    Cc: Wolfgang Denk
    Cc: Pavel Machek
    Cc: Pantelis Antoniou
    Acked-by: Pavel Machek

    Marek Vasut
     

16 May, 2014

2 commits


24 Mar, 2014

1 commit

  • The way that struct mmc was implemented was a bit of a mess;
    configuration and internal state all jumbled up in a single structure.

    On top of that the way initialization is done with mmc_register leads
    to a lot of duplicated code in drivers.

    Typically the initialization got something like this in every driver.

    struct mmc *mmc = malloc(sizeof(struct mmc));
    memset(mmc, 0, sizeof(struct mmc);
    /* fill in fields of mmc struct */
    /* store private data pointer */
    mmc_register(mmc);

    By using the new mmc_create call one just passes an mmc config struct
    and an optional private data pointer like this:

    struct mmc = mmc_create(&cfg, priv);

    All in tree drivers have been updated to the new form, and expect
    mmc_register to go away before long.

    Changes since v1:

    * Use calloc instead of manually calling memset.
    * Mark mmc_register as deprecated.

    Signed-off-by: Pantelis Antoniou

    Pantelis Antoniou
     

07 Feb, 2014

1 commit

  • This patch corrects the divider value written to CLKDIV register.
    Since SDCLKIN is divided inside controller by the DIVRATIO value set
    in the CLKSEL register, we need to use the same output clock value to
    calculate the CLKDIV value.
    as per user manual: cclk_in = SDCLKIN / (DIVRATIO + 1)

    Input parameter to mmc_clk is changed to dwmci_host, since
    we need the same to read DWMCI_CLKSEL register.

    This improves the read timing values for channel 0 on SMDK5250
    from 0.288sec to 0.144sec

    Signed-off-by: Rajeshwari S Shinde
    Acked-by: Jaehoon Chung
    Signed-off-by: Pantelis Antoniou

    Rajeshwari S Shinde
     

08 Dec, 2013

1 commit


31 Oct, 2013

2 commits


24 Jul, 2013

1 commit


13 Jun, 2013

1 commit

  • This patch adds FDT support for DWMMC, by reading the DWMMC node data
    from the device tree and initialising DWMMC channels as per data
    obtained from the node.

    Signed-off-by: Vivek Gautam
    Signed-off-by: Amar
    Acked-by: Simon Glass
    Signed-off-by: Minkyu Kang

    Amar
     

22 Oct, 2012

1 commit