All of lore.kernel.org
 help / color / mirror / Atom feed
From: "stanley.miao" <stanley.miao@windriver.com>
To: Maxim Levitsky <maximlevitsky@gmail.com>
Cc: Alex Dubov <oakad@yahoo.com>,
	Artem Bityutskiy <dedekind1@gmail.com>, joern <joern@logfs.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-mtd <linux-mtd@lists.infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH 13/17] MTD: export few functions from nand_base.c
Date: Fri, 05 Feb 2010 10:32:24 +0800	[thread overview]
Message-ID: <4B6B8338.5060608@windriver.com> (raw)
In-Reply-To: <1265326257-4446-14-git-send-email-maximlevitsky@gmail.com>

Maxim Levitsky wrote:
> This exports:
>
> nand_do_read_oob
> nand_do_write_oob
>   

nand_do_read_oob and nand_do_write_oob can't be exported. They are internal
functions in NAND subsystem. If you want use them, please use mtd->read_oob
and mtd->write_oob.

Stanley.

> nand_get_device
> nand_put_device
>
> This functions will be used to implement custom oob based
> bad block handling in upcoming smartmedia common module
>
> Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
> ---
>  drivers/mtd/nand/nand_base.c |   18 +++++++++---------
>  include/linux/mtd/nand.h     |   12 ++++++++++++
>  2 files changed, 21 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index 961c98f..3949d8c 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -96,11 +96,6 @@ static struct nand_ecclayout nand_oob_128 = {
>  		 .length = 78}}
>  };
>  
> -static int nand_get_device(struct nand_chip *chip, struct mtd_info *mtd,
> -			   int new_state);
> -
> -static int nand_do_write_oob(struct mtd_info *mtd, loff_t to,
> -			     struct mtd_oob_ops *ops);
>  
>  /*
>   * For devices which display every fart in the system on a separate LED. Is
> @@ -114,7 +109,7 @@ DEFINE_LED_TRIGGER(nand_led_trigger);
>   *
>   * Deselect, release chip lock and wake up anyone waiting on the device
>   */
> -static void nand_release_device(struct mtd_info *mtd)
> +void nand_release_device(struct mtd_info *mtd)
>  {
>  	struct nand_chip *chip = mtd->priv;
>  
> @@ -128,6 +123,7 @@ static void nand_release_device(struct mtd_info *mtd)
>  	wake_up(&chip->controller->wq);
>  	spin_unlock(&chip->controller->lock);
>  }
> +EXPORT_SYMBOL_GPL(nand_release_device);
>  
>  /**
>   * nand_read_byte - [DEFAULT] read one byte from the chip
> @@ -721,7 +717,7 @@ static void panic_nand_get_device(struct nand_chip *chip,
>   *
>   * Get the device and lock it for exclusive access
>   */
> -static int
> +int
>  nand_get_device(struct nand_chip *chip, struct mtd_info *mtd, int new_state)
>  {
>  	spinlock_t *lock = &chip->controller->lock;
> @@ -753,6 +749,7 @@ nand_get_device(struct nand_chip *chip, struct mtd_info *mtd, int new_state)
>  	remove_wait_queue(wq, &wait);
>  	goto retry;
>  }
> +EXPORT_SYMBOL_GPL(nand_get_device);
>  
>  /**
>   * panic_nand_wait - [GENERIC]  wait until the command is done
> @@ -1532,7 +1529,7 @@ static int nand_write_oob_syndrome(struct mtd_info *mtd,
>   *
>   * NAND read out-of-band data from the spare area
>   */
> -static int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
> +int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
>  			    struct mtd_oob_ops *ops)
>  {
>  	int page, realpage, chipnr, sndcmd = 1;
> @@ -1616,6 +1613,7 @@ static int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
>  	ops->oobretlen = ops->ooblen;
>  	return 0;
>  }
> +EXPORT_SYMBOL_GPL(nand_do_read_oob);
>  
>  /**
>   * nand_read_oob - [MTD Interface] NAND read data and/or out-of-band
> @@ -2108,7 +2106,7 @@ static int nand_write(struct mtd_info *mtd, loff_t to, size_t len,
>   *
>   * NAND write out-of-band
>   */
> -static int nand_do_write_oob(struct mtd_info *mtd, loff_t to,
> +int nand_do_write_oob(struct mtd_info *mtd, loff_t to,
>  			     struct mtd_oob_ops *ops)
>  {
>  	int chipnr, page, status, len;
> @@ -2179,6 +2177,7 @@ static int nand_do_write_oob(struct mtd_info *mtd, loff_t to,
>  
>  	return 0;
>  }
> +EXPORT_SYMBOL_GPL(nand_do_write_oob);
>  
>  /**
>   * nand_write_oob - [MTD Interface] NAND write data and/or out-of-band
> @@ -3080,6 +3079,7 @@ EXPORT_SYMBOL_GPL(nand_scan_ident);
>  EXPORT_SYMBOL_GPL(nand_scan_tail);
>  EXPORT_SYMBOL_GPL(nand_release);
>  
> +
>  static int __init nand_base_init(void)
>  {
>  	led_trigger_register_simple("nand-disk", &nand_led_trigger);
> diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
> index ccab9df..8c2333a 100644
> --- a/include/linux/mtd/nand.h
> +++ b/include/linux/mtd/nand.h
> @@ -469,6 +469,18 @@ extern int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr,
>  extern int nand_do_read(struct mtd_info *mtd, loff_t from, size_t len,
>  			size_t * retlen, uint8_t * buf);
>  
> +extern int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
> +			    struct mtd_oob_ops *ops);
> +
> +extern int nand_do_write_oob(struct mtd_info *mtd, loff_t to,
> +			     struct mtd_oob_ops *ops);
> +
> +extern int nand_get_device(struct nand_chip *chip,
> +			struct mtd_info *mtd, int new_state);
> +
> +extern void nand_release_device(struct mtd_info *mtd);
> +
> +
>  /**
>   * struct platform_nand_chip - chip level device structure
>   * @nr_chips:		max. number of chips to scan for
>   

WARNING: multiple messages have this Message-ID (diff)
From: "stanley.miao" <stanley.miao@windriver.com>
To: Maxim Levitsky <maximlevitsky@gmail.com>
Cc: David Woodhouse <dwmw2@infradead.org>,
	Alex Dubov <oakad@yahoo.com>,
	Artem Bityutskiy <dedekind1@gmail.com>, joern <joern@logfs.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-mtd <linux-mtd@lists.infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH 13/17] MTD: export few functions from nand_base.c
Date: Fri, 05 Feb 2010 10:32:24 +0800	[thread overview]
Message-ID: <4B6B8338.5060608@windriver.com> (raw)
In-Reply-To: <1265326257-4446-14-git-send-email-maximlevitsky@gmail.com>

Maxim Levitsky wrote:
> This exports:
>
> nand_do_read_oob
> nand_do_write_oob
>   

nand_do_read_oob and nand_do_write_oob can't be exported. They are internal
functions in NAND subsystem. If you want use them, please use mtd->read_oob
and mtd->write_oob.

Stanley.

> nand_get_device
> nand_put_device
>
> This functions will be used to implement custom oob based
> bad block handling in upcoming smartmedia common module
>
> Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
> ---
>  drivers/mtd/nand/nand_base.c |   18 +++++++++---------
>  include/linux/mtd/nand.h     |   12 ++++++++++++
>  2 files changed, 21 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index 961c98f..3949d8c 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -96,11 +96,6 @@ static struct nand_ecclayout nand_oob_128 = {
>  		 .length = 78}}
>  };
>  
> -static int nand_get_device(struct nand_chip *chip, struct mtd_info *mtd,
> -			   int new_state);
> -
> -static int nand_do_write_oob(struct mtd_info *mtd, loff_t to,
> -			     struct mtd_oob_ops *ops);
>  
>  /*
>   * For devices which display every fart in the system on a separate LED. Is
> @@ -114,7 +109,7 @@ DEFINE_LED_TRIGGER(nand_led_trigger);
>   *
>   * Deselect, release chip lock and wake up anyone waiting on the device
>   */
> -static void nand_release_device(struct mtd_info *mtd)
> +void nand_release_device(struct mtd_info *mtd)
>  {
>  	struct nand_chip *chip = mtd->priv;
>  
> @@ -128,6 +123,7 @@ static void nand_release_device(struct mtd_info *mtd)
>  	wake_up(&chip->controller->wq);
>  	spin_unlock(&chip->controller->lock);
>  }
> +EXPORT_SYMBOL_GPL(nand_release_device);
>  
>  /**
>   * nand_read_byte - [DEFAULT] read one byte from the chip
> @@ -721,7 +717,7 @@ static void panic_nand_get_device(struct nand_chip *chip,
>   *
>   * Get the device and lock it for exclusive access
>   */
> -static int
> +int
>  nand_get_device(struct nand_chip *chip, struct mtd_info *mtd, int new_state)
>  {
>  	spinlock_t *lock = &chip->controller->lock;
> @@ -753,6 +749,7 @@ nand_get_device(struct nand_chip *chip, struct mtd_info *mtd, int new_state)
>  	remove_wait_queue(wq, &wait);
>  	goto retry;
>  }
> +EXPORT_SYMBOL_GPL(nand_get_device);
>  
>  /**
>   * panic_nand_wait - [GENERIC]  wait until the command is done
> @@ -1532,7 +1529,7 @@ static int nand_write_oob_syndrome(struct mtd_info *mtd,
>   *
>   * NAND read out-of-band data from the spare area
>   */
> -static int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
> +int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
>  			    struct mtd_oob_ops *ops)
>  {
>  	int page, realpage, chipnr, sndcmd = 1;
> @@ -1616,6 +1613,7 @@ static int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
>  	ops->oobretlen = ops->ooblen;
>  	return 0;
>  }
> +EXPORT_SYMBOL_GPL(nand_do_read_oob);
>  
>  /**
>   * nand_read_oob - [MTD Interface] NAND read data and/or out-of-band
> @@ -2108,7 +2106,7 @@ static int nand_write(struct mtd_info *mtd, loff_t to, size_t len,
>   *
>   * NAND write out-of-band
>   */
> -static int nand_do_write_oob(struct mtd_info *mtd, loff_t to,
> +int nand_do_write_oob(struct mtd_info *mtd, loff_t to,
>  			     struct mtd_oob_ops *ops)
>  {
>  	int chipnr, page, status, len;
> @@ -2179,6 +2177,7 @@ static int nand_do_write_oob(struct mtd_info *mtd, loff_t to,
>  
>  	return 0;
>  }
> +EXPORT_SYMBOL_GPL(nand_do_write_oob);
>  
>  /**
>   * nand_write_oob - [MTD Interface] NAND write data and/or out-of-band
> @@ -3080,6 +3079,7 @@ EXPORT_SYMBOL_GPL(nand_scan_ident);
>  EXPORT_SYMBOL_GPL(nand_scan_tail);
>  EXPORT_SYMBOL_GPL(nand_release);
>  
> +
>  static int __init nand_base_init(void)
>  {
>  	led_trigger_register_simple("nand-disk", &nand_led_trigger);
> diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
> index ccab9df..8c2333a 100644
> --- a/include/linux/mtd/nand.h
> +++ b/include/linux/mtd/nand.h
> @@ -469,6 +469,18 @@ extern int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr,
>  extern int nand_do_read(struct mtd_info *mtd, loff_t from, size_t len,
>  			size_t * retlen, uint8_t * buf);
>  
> +extern int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
> +			    struct mtd_oob_ops *ops);
> +
> +extern int nand_do_write_oob(struct mtd_info *mtd, loff_t to,
> +			     struct mtd_oob_ops *ops);
> +
> +extern int nand_get_device(struct nand_chip *chip,
> +			struct mtd_info *mtd, int new_state);
> +
> +extern void nand_release_device(struct mtd_info *mtd);
> +
> +
>  /**
>   * struct platform_nand_chip - chip level device structure
>   * @nr_chips:		max. number of chips to scan for
>   


  reply	other threads:[~2010-02-05  2:27 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-04 23:30 [PATCH V6] Work to enable SmartMedia/xD support Maxim Levitsky
2010-02-04 23:30 ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 01/17] MTD: create lockless versions of {get, put}_mtd_device This will be used to resolve deadlock in block translation layer Maxim Levitsky
2010-02-04 23:30   ` [PATCH 01/17] MTD: create lockless versions of {get,put}_mtd_device " Maxim Levitsky
2010-02-04 23:30 ` [PATCH 02/17] blktrans: nuke mtd_blkcore_priv and make both thread and disk queue be per device Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 03/17] blktrans: track open and close calls Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 04/17] blktrans: don't free mtd_blktrans_dev, core will do that for you Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 05/17] blktrans: add proper locking Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 06/17] blktrans: flush all requests before we remove the device Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 07/17] blktrans: allow FTL drivers to export sysfs attributes Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 08/17] MTD: call remove notifiers before removing the device Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 09/17] MTD: nand: make MTD_OOB_PLACE work correctly Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 10/17] MTD: nand: make reads using MTD_OOB_RAW affect only ECC validation Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-05  2:48   ` stanley.miao
2010-02-05  2:48     ` stanley.miao
2010-02-05  8:56   ` Vitaly Wool
2010-02-05  8:56     ` Vitaly Wool
2010-02-05  9:25     ` Maxim Levitsky
2010-02-05  9:25       ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 11/17] MTD: nand: fix bug that prevented write of more that one page by ->write_oob Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-05  2:25   ` stanley.miao
2010-02-05  2:25     ` stanley.miao
2010-02-05  9:44     ` Maxim Levitsky
2010-02-05  9:44       ` Maxim Levitsky
2010-02-05  2:34   ` stanley.miao
2010-02-05  2:34     ` stanley.miao
2010-02-04 23:30 ` [PATCH 12/17] MTD: nand: make suspend work if device is accessed by kernel threads Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 13/17] MTD: export few functions from nand_base.c Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-05  2:32   ` stanley.miao [this message]
2010-02-05  2:32     ` stanley.miao
2010-02-05  9:30     ` Maxim Levitsky
2010-02-05  9:30       ` Maxim Levitsky
2010-02-05 17:05     ` Maxim Levitsky
2010-02-05 17:05       ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 14/17] MTD: common module for smartmedia/xD support Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 15/17] MTD: add few workarounds to nand system for SmartMedia/xD chips Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 16/17] MTD: Add nand driver for ricoh xD/SmartMedia reader Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
2010-02-04 23:30 ` [PATCH 17/17] MTD: Add new SmartMedia/xD FTL Maxim Levitsky
2010-02-04 23:30   ` Maxim Levitsky
  -- strict thread matches above, loose matches on Subject: below --
2010-01-30 15:02 [PATCH V5] Work to enable SmartMedia/xD support Maxim Levitsky
2010-01-30 15:02 ` [PATCH 13/17] MTD: export few functions from nand_base.c Maxim Levitsky
2010-01-30 15:02   ` Maxim Levitsky

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=4B6B8338.5060608@windriver.com \
    --to=stanley.miao@windriver.com \
    --cc=dedekind1@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=joern@logfs.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=maximlevitsky@gmail.com \
    --cc=oakad@yahoo.com \
    --cc=tglx@linutronix.de \
    /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.