All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Rodolfo Giometti <giometti@linux.it>
Cc: linux-mips@linux-mips.org
Subject: Re: [PATCH] 2/7 AU1100 MMC support
Date: Thu, 10 Aug 2006 17:29:38 +0400	[thread overview]
Message-ID: <44DB34C2.3090302@ru.mvista.com> (raw)
In-Reply-To: <20060809210843.GC13145@enneenne.com>

Hello.

Rodolfo Giometti wrote:
> Protect code on "BCSR" device.

> Signed-off-by: Rodolfo Giometti <giometti@linux.it>

> ------------------------------------------------------------------------

> diff --git a/drivers/mmc/au1xmmc.c b/drivers/mmc/au1xmmc.c
> index b0dc1d0..6084bb8 100644
> --- a/drivers/mmc/au1xmmc.c
> +++ b/drivers/mmc/au1xmmc.c
> @@ -65,8 +65,8 @@ #endif
>  const struct {
>  	u32 iobase;
>  	u32 tx_devid, rx_devid;
> -	u16 bcsrpwr;
> -	u16 bcsrstatus;
> +	u16 power;
> +	u16 status;
>  	u16 wpstatus;
>  } au1xmmc_card_table[] = {
>  	{ SD0_BASE, DSCR_CMD0_SDMS_TX0, DSCR_CMD0_SDMS_RX0,
> @@ -138,24 +138,42 @@ static inline void SEND_STOP(struct au1x
>  static void au1xmmc_set_power(struct au1xmmc_host *host, int state)
>  {
>  
> -	u32 val = au1xmmc_card_table[host->id].bcsrpwr;
> +	u32 val;
>  
> +	val = au1xmmc_card_table[host->id].power;
> +
> +#if defined(CONFIG_MIPS_DB1200)
>  	bcsr->board &= ~val;
>  	if (state) bcsr->board |= val;
> +#endif
>  
>  	au_sync_delay(1);
>  }

    If DBAu1100 doesn't allow to control slot power, then I don't think 
pretending it does is a good thing. Shouldn't these #ifdef's be in 
au1xmmc_set_ios() instead (the function is void anyway but that would allow us 
to save on the code size a bit more)?

>  static inline int au1xmmc_card_inserted(struct au1xmmc_host *host)
>  {
> -	return (bcsr->sig_status & au1xmmc_card_table[host->id].bcsrstatus)
> -		? 1 : 0;
> +	u32 val, data = 1;
> +
> +	val = au1xmmc_card_table[host->id].status;
> +
> +#if defined(CONFIG_MIPS_DB1200)
> +	data = bcsr->sig_status & val;
> +#endif
> +
> +	return !!data;
>  }

    Hrm, are you sure there's no way to sense that the card is *really* 
inserted or not?

>  static inline int au1xmmc_card_readonly(struct au1xmmc_host *host)
>  {
> -	return (bcsr->status & au1xmmc_card_table[host->id].wpstatus)
> -		? 1 : 0;
> +	u32 val, data = 0;
> +
> +	val = au1xmmc_card_table[host->id].wpstatus;
> +
> +#if defined(CONFIG_MIPS_DB1200)
> +	data = bcsr->status & val;
> +#endif
> +
> +	return !!data;
>  }

    Ditto.

WBR, Sergei

  reply	other threads:[~2006-08-10 13:28 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-09 21:08 [PATCH] 2/7 AU1100 MMC support Rodolfo Giometti
2006-08-10 13:29 ` Sergei Shtylyov [this message]
2006-08-10 13:36   ` Rodolfo Giometti
2006-08-10 14:29     ` Manuel Lauss
2006-08-10 16:12     ` Sergei Shtylyov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44DB34C2.3090302@ru.mvista.com \
    --to=sshtylyov@ru.mvista.com \
    --cc=giometti@linux.it \
    --cc=linux-mips@linux-mips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.