lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 10 Sep 2014 09:48:05 +0200
From:	Ulf Hansson <ulf.hansson@...aro.org>
To:	Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
Cc:	linux-mmc <linux-mmc@...r.kernel.org>,
	Linus Walleij <linus.walleij@...aro.org>,
	Chris Ball <chris@...ntf.net>,
	Russell King <linux@....linux.org.uk>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"linux-arm-msm@...r.kernel.org" <linux-arm-msm@...r.kernel.org>
Subject: Re: [PATCH v3 3/3] mmc: mmci: rename sdio flag in vendor data to st_sdio

On 22 August 2014 06:55, Srinivas Kandagatla
<srinivas.kandagatla@...aro.org> wrote:
> This patch renames sdio flag in vendor data to st_sdio, as this flag is
> only used to enable ST specific sdio setup. This will also ensure that
> the ST specfic setup is not done on other vendor like Qualcomm.
>
> Originally the issue was detected while testing WLAN ath6kl on IFC6410
> board with APQ8064 SOC.
>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@...aro.org>

Thanks! Applied for next!

Kind regards
Uffe

> ---
>  drivers/mmc/host/mmci.c | 48 ++++++++++++++++++++++++------------------------
>  1 file changed, 24 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
> index a25759e..264c947 100644
> --- a/drivers/mmc/host/mmci.c
> +++ b/drivers/mmc/host/mmci.c
> @@ -61,7 +61,7 @@ static unsigned int fmax = 515633;
>   * @fifohalfsize: number of bytes that can be written when MCI_TXFIFOHALFEMPTY
>   *               is asserted (likewise for RX)
>   * @data_cmd_enable: enable value for data commands.
> - * @sdio: variant supports SDIO
> + * @st_sdio: enable ST specific SDIO logic
>   * @st_clkdiv: true if using a ST-specific clock divider algorithm
>   * @datactrl_mask_ddrmode: ddr mode mask in datactrl register.
>   * @blksz_datactrl16: true if Block size is at b16..b30 position in datactrl register
> @@ -91,7 +91,7 @@ struct variant_data {
>         unsigned int            data_cmd_enable;
>         unsigned int            datactrl_mask_ddrmode;
>         unsigned int            datactrl_mask_sdio;
> -       bool                    sdio;
> +       bool                    st_sdio;
>         bool                    st_clkdiv;
>         bool                    blksz_datactrl16;
>         bool                    blksz_datactrl4;
> @@ -141,7 +141,7 @@ static struct variant_data variant_u300 = {
>         .clkreg_8bit_bus_enable = MCI_ST_8BIT_BUS,
>         .datalength_bits        = 16,
>         .datactrl_mask_sdio     = MCI_ST_DPSM_SDIOEN,
> -       .sdio                   = true,
> +       .st_sdio                        = true,
>         .pwrreg_powerup         = MCI_PWR_ON,
>         .f_max                  = 100000000,
>         .signal_direction       = true,
> @@ -155,7 +155,7 @@ static struct variant_data variant_nomadik = {
>         .clkreg                 = MCI_CLK_ENABLE,
>         .datalength_bits        = 24,
>         .datactrl_mask_sdio     = MCI_ST_DPSM_SDIOEN,
> -       .sdio                   = true,
> +       .st_sdio                = true,
>         .st_clkdiv              = true,
>         .pwrreg_powerup         = MCI_PWR_ON,
>         .f_max                  = 100000000,
> @@ -173,7 +173,7 @@ static struct variant_data variant_ux500 = {
>         .clkreg_neg_edge_enable = MCI_ST_UX500_NEG_EDGE,
>         .datalength_bits        = 24,
>         .datactrl_mask_sdio     = MCI_ST_DPSM_SDIOEN,
> -       .sdio                   = true,
> +       .st_sdio                = true,
>         .st_clkdiv              = true,
>         .pwrreg_powerup         = MCI_PWR_ON,
>         .f_max                  = 100000000,
> @@ -193,7 +193,7 @@ static struct variant_data variant_ux500v2 = {
>         .datactrl_mask_ddrmode  = MCI_ST_DPSM_DDRMODE,
>         .datalength_bits        = 24,
>         .datactrl_mask_sdio     = MCI_ST_DPSM_SDIOEN,
> -       .sdio                   = true,
> +       .st_sdio                = true,
>         .st_clkdiv              = true,
>         .blksz_datactrl16       = true,
>         .pwrreg_powerup         = MCI_PWR_ON,
> @@ -818,26 +818,26 @@ static void mmci_start_data(struct mmci_host *host, struct mmc_data *data)
>         if (data->flags & MMC_DATA_READ)
>                 datactrl |= MCI_DPSM_DIRECTION;
>
> -       if (variant->sdio && host->mmc->card)
> -               if (mmc_card_sdio(host->mmc->card)) {
> -                       u32 clk;
> -                       datactrl |= variant->datactrl_mask_sdio;
> +       if (host->mmc->card && mmc_card_sdio(host->mmc->card)) {
> +               u32 clk;
>
> -                       /*
> -                        * The ST Micro variant for SDIO small write transfers
> -                        * needs to have clock H/W flow control disabled,
> -                        * otherwise the transfer will not start. The threshold
> -                        * depends on the rate of MCLK.
> -                        */
> -                       if (data->flags & MMC_DATA_WRITE &&
> -                           (host->size < 8 ||
> -                            (host->size <= 8 && host->mclk > 50000000)))
> -                               clk = host->clk_reg & ~variant->clkreg_enable;
> -                       else
> -                               clk = host->clk_reg | variant->clkreg_enable;
> +               datactrl |= variant->datactrl_mask_sdio;
>
> -                       mmci_write_clkreg(host, clk);
> -               }
> +               /*
> +                * The ST Micro variant for SDIO small write transfers
> +                * needs to have clock H/W flow control disabled,
> +                * otherwise the transfer will not start. The threshold
> +                * depends on the rate of MCLK.
> +                */
> +               if (variant->st_sdio && data->flags & MMC_DATA_WRITE &&
> +                   (host->size < 8 ||
> +                    (host->size <= 8 && host->mclk > 50000000)))
> +                       clk = host->clk_reg & ~variant->clkreg_enable;
> +               else
> +                       clk = host->clk_reg | variant->clkreg_enable;
> +
> +               mmci_write_clkreg(host, clk);
> +       }
>
>         if (host->mmc->ios.timing == MMC_TIMING_UHS_DDR50 ||
>             host->mmc->ios.timing == MMC_TIMING_MMC_DDR52)
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ