From: Sascha Hauer <s.hauer@pengutronix.de>
To: barebox@lists.infradead.org
Subject: Re: [PATCH] nor flash: integrate into mtd
Date: Fri, 15 Feb 2013 09:12:51 +0100 [thread overview]
Message-ID: <20130215081251.GJ1906@pengutronix.de> (raw)
In-Reply-To: <1360915901-3420-1-git-send-email-s.hauer@pengutronix.de>
On Fri, Feb 15, 2013 at 09:11:40AM +0100, Sascha Hauer wrote:
> CFI Flash is currently handled outside the mtd layer which makes it
> a special case. Integrate it into mtd so that we get rid of this
> special status.
>
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Last patch was blocked due to message size. Resent with -M which makes
more sense here anyway.
Sascha
> ---
> arch/arm/configs/edb93xx_defconfig | 1 +
> arch/arm/configs/eukrea_cpuimx27_defconfig | 1 +
> arch/arm/configs/freescale_mx51_babbage_defconfig | 1 +
> arch/arm/configs/mmccpu_defconfig | 1 +
> arch/arm/configs/mx21ads_defconfig | 1 +
> arch/arm/configs/mx27ads_defconfig | 1 +
> arch/arm/configs/netx_nxdb500_defconfig | 1 +
> arch/arm/configs/pcm027_defconfig | 1 +
> arch/arm/configs/pm9263_defconfig | 1 +
> arch/arm/configs/scb9328_defconfig | 1 +
> arch/blackfin/configs/ipe337_defconfig | 1 +
> arch/nios2/configs/generic_defconfig | 1 +
> arch/ppc/configs/pcm030_defconfig | 1 +
> drivers/Kconfig | 1 -
> drivers/Makefile | 1 -
> drivers/mtd/Kconfig | 1 +
> drivers/mtd/Makefile | 1 +
> drivers/{ => mtd}/nor/Kconfig | 6 +-
> drivers/{ => mtd}/nor/Makefile | 0
> drivers/{ => mtd}/nor/cfi_flash.c | 82 +++++----------------
> drivers/{ => mtd}/nor/cfi_flash.h | 1 -
> drivers/{ => mtd}/nor/cfi_flash_amd.c | 0
> drivers/{ => mtd}/nor/cfi_flash_intel.c | 0
> 23 files changed, 35 insertions(+), 71 deletions(-)
> rename drivers/{ => mtd}/nor/Kconfig (96%)
> rename drivers/{ => mtd}/nor/Makefile (100%)
> rename drivers/{ => mtd}/nor/cfi_flash.c (93%)
> rename drivers/{ => mtd}/nor/cfi_flash.h (99%)
> rename drivers/{ => mtd}/nor/cfi_flash_amd.c (100%)
> rename drivers/{ => mtd}/nor/cfi_flash_intel.c (100%)
>
> diff --git a/arch/arm/configs/edb93xx_defconfig b/arch/arm/configs/edb93xx_defconfig
> index 363e511..86b1040 100644
> --- a/arch/arm/configs/edb93xx_defconfig
> +++ b/arch/arm/configs/edb93xx_defconfig
> @@ -30,4 +30,5 @@ CONFIG_CMD_TFTP=y
> CONFIG_FS_TFTP=y
> CONFIG_DRIVER_NET_EP93XX=y
> # CONFIG_SPI is not set
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> diff --git a/arch/arm/configs/eukrea_cpuimx27_defconfig b/arch/arm/configs/eukrea_cpuimx27_defconfig
> index 880941d..bd0c470 100644
> --- a/arch/arm/configs/eukrea_cpuimx27_defconfig
> +++ b/arch/arm/configs/eukrea_cpuimx27_defconfig
> @@ -46,6 +46,7 @@ CONFIG_DRIVER_NET_FEC_IMX=y
> CONFIG_I2C=y
> CONFIG_I2C_IMX=y
> CONFIG_I2C_LP3972=y
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> # CONFIG_DRIVER_CFI_AMD is not set
> # CONFIG_DRIVER_CFI_BANK_WIDTH_1 is not set
> diff --git a/arch/arm/configs/freescale_mx51_babbage_defconfig b/arch/arm/configs/freescale_mx51_babbage_defconfig
> index 0817cfa..97963c1 100644
> --- a/arch/arm/configs/freescale_mx51_babbage_defconfig
> +++ b/arch/arm/configs/freescale_mx51_babbage_defconfig
> @@ -55,6 +55,7 @@ CONFIG_NET_PING=y
> CONFIG_NET_RESOLV=y
> CONFIG_DRIVER_NET_FEC_IMX=y
> CONFIG_DRIVER_SPI_IMX=y
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> CONFIG_CFI_BUFFER_WRITE=y
> CONFIG_MCI=y
> diff --git a/arch/arm/configs/mmccpu_defconfig b/arch/arm/configs/mmccpu_defconfig
> index 334c5e8..0e6914f 100644
> --- a/arch/arm/configs/mmccpu_defconfig
> +++ b/arch/arm/configs/mmccpu_defconfig
> @@ -34,5 +34,6 @@ CONFIG_FS_TFTP=y
> CONFIG_DRIVER_NET_MACB=y
> # CONFIG_SPI is not set
> CONFIG_I2C=y
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> CONFIG_CFI_BUFFER_WRITE=y
> diff --git a/arch/arm/configs/mx21ads_defconfig b/arch/arm/configs/mx21ads_defconfig
> index 28ad013..dbc2962 100644
> --- a/arch/arm/configs/mx21ads_defconfig
> +++ b/arch/arm/configs/mx21ads_defconfig
> @@ -35,6 +35,7 @@ CONFIG_CMD_TFTP=y
> CONFIG_FS_TFTP=y
> CONFIG_DRIVER_NET_CS8900=y
> # CONFIG_SPI is not set
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> # CONFIG_DRIVER_CFI_INTEL is not set
> CONFIG_CFI_BUFFER_WRITE=y
> diff --git a/arch/arm/configs/mx27ads_defconfig b/arch/arm/configs/mx27ads_defconfig
> index 077e799..b3fdf84 100644
> --- a/arch/arm/configs/mx27ads_defconfig
> +++ b/arch/arm/configs/mx27ads_defconfig
> @@ -33,6 +33,7 @@ CONFIG_NET_PING=y
> CONFIG_CMD_TFTP=y
> CONFIG_FS_TFTP=y
> CONFIG_DRIVER_SPI_IMX=y
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> # CONFIG_DRIVER_CFI_INTEL is not set
> CONFIG_CFI_BUFFER_WRITE=y
> diff --git a/arch/arm/configs/netx_nxdb500_defconfig b/arch/arm/configs/netx_nxdb500_defconfig
> index 6d32c56..8e7a0b3 100644
> --- a/arch/arm/configs/netx_nxdb500_defconfig
> +++ b/arch/arm/configs/netx_nxdb500_defconfig
> @@ -26,5 +26,6 @@ CONFIG_NET_PING=y
> CONFIG_CMD_TFTP=y
> CONFIG_FS_TFTP=y
> CONFIG_DRIVER_NET_NETX=y
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> CONFIG_CFI_BUFFER_WRITE=y
> diff --git a/arch/arm/configs/pcm027_defconfig b/arch/arm/configs/pcm027_defconfig
> index ac9269d..f911951 100644
> --- a/arch/arm/configs/pcm027_defconfig
> +++ b/arch/arm/configs/pcm027_defconfig
> @@ -54,6 +54,7 @@ CONFIG_FS_TFTP=y
> CONFIG_DRIVER_SERIAL_PXA=y
> CONFIG_DRIVER_NET_SMC91111=y
> # CONFIG_SPI is not set
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> CONFIG_VIDEO=y
> CONFIG_DRIVER_VIDEO_PXA=y
> diff --git a/arch/arm/configs/pm9263_defconfig b/arch/arm/configs/pm9263_defconfig
> index e223e77..c9a7141 100644
> --- a/arch/arm/configs/pm9263_defconfig
> +++ b/arch/arm/configs/pm9263_defconfig
> @@ -33,6 +33,7 @@ CONFIG_CMD_TFTP=y
> CONFIG_FS_TFTP=y
> CONFIG_DRIVER_NET_MACB=y
> # CONFIG_SPI is not set
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> CONFIG_CFI_BUFFER_WRITE=y
> CONFIG_W1=y
> diff --git a/arch/arm/configs/scb9328_defconfig b/arch/arm/configs/scb9328_defconfig
> index 818bbd0..21a2571 100644
> --- a/arch/arm/configs/scb9328_defconfig
> +++ b/arch/arm/configs/scb9328_defconfig
> @@ -52,6 +52,7 @@ CONFIG_FS_TFTP=y
> CONFIG_NET_NETCONSOLE=y
> CONFIG_NET_RESOLV=y
> CONFIG_DRIVER_NET_DM9K=y
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> # CONFIG_DRIVER_CFI_BANK_WIDTH_4 is not set
> CONFIG_CFI_BUFFER_WRITE=y
> diff --git a/arch/blackfin/configs/ipe337_defconfig b/arch/blackfin/configs/ipe337_defconfig
> index d01c7e7..086a971 100644
> --- a/arch/blackfin/configs/ipe337_defconfig
> +++ b/arch/blackfin/configs/ipe337_defconfig
> @@ -25,5 +25,6 @@ CONFIG_NET_PING=y
> CONFIG_CMD_TFTP=y
> CONFIG_FS_TFTP=y
> CONFIG_DRIVER_NET_SMC911X=y
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> CONFIG_CFI_BUFFER_WRITE=y
> diff --git a/arch/nios2/configs/generic_defconfig b/arch/nios2/configs/generic_defconfig
> index 5e27cc8..4189990 100644
> --- a/arch/nios2/configs/generic_defconfig
> +++ b/arch/nios2/configs/generic_defconfig
> @@ -27,6 +27,7 @@ CONFIG_CMD_PARTITION=y
> CONFIG_NET=y
> CONFIG_NET_PING=y
> CONFIG_DRIVER_NET_TSE=y
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> CONFIG_FS_TFTP=y
> CONFIG_ZLIB=y
> diff --git a/arch/ppc/configs/pcm030_defconfig b/arch/ppc/configs/pcm030_defconfig
> index d2ff16c..9743841 100644
> --- a/arch/ppc/configs/pcm030_defconfig
> +++ b/arch/ppc/configs/pcm030_defconfig
> @@ -36,6 +36,7 @@ CONFIG_FS_TFTP=y
> CONFIG_ARCH_MPC5XXX=y
> CONFIG_MACH_PHYCORE_MPC5200B_TINY=y
> CONFIG_DRIVER_NET_MPC5200=y
> +CONFIG_MTD=y
> CONFIG_DRIVER_CFI=y
> CONFIG_CFI_BUFFER_WRITE=y
> CONFIG_ZLIB=y
> diff --git a/drivers/Kconfig b/drivers/Kconfig
> index 988ec9e..2ae05c2 100644
> --- a/drivers/Kconfig
> +++ b/drivers/Kconfig
> @@ -4,7 +4,6 @@ source "drivers/serial/Kconfig"
> source "drivers/net/Kconfig"
> source "drivers/spi/Kconfig"
> source "drivers/i2c/Kconfig"
> -source "drivers/nor/Kconfig"
> source "drivers/mtd/Kconfig"
> source "drivers/ata/Kconfig"
> source "drivers/usb/Kconfig"
> diff --git a/drivers/Makefile b/drivers/Makefile
> index 1fddee0..f81bf99 100644
> --- a/drivers/Makefile
> +++ b/drivers/Makefile
> @@ -3,7 +3,6 @@ obj-$(CONFIG_ARM_AMBA) += amba/
> obj-y += net/
> obj-y += serial/
> obj-y += mtd/
> -obj-y += nor/
> obj-y += usb/
> obj-$(CONFIG_DISK) += ata/
> obj-$(CONFIG_SPI) += spi/
> diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
> index 9450f5d..e94e6b1 100644
> --- a/drivers/mtd/Kconfig
> +++ b/drivers/mtd/Kconfig
> @@ -21,6 +21,7 @@ config MTD_RAW_DEVICE
> prompt "mtdraw device to read/write both data+oob"
>
> source "drivers/mtd/devices/Kconfig"
> +source "drivers/mtd/nor/Kconfig"
> source "drivers/mtd/nand/Kconfig"
> source "drivers/mtd/ubi/Kconfig"
>
> diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
> index 4f97d9a..82b2cc9 100644
> --- a/drivers/mtd/Makefile
> +++ b/drivers/mtd/Makefile
> @@ -1,4 +1,5 @@
> obj-$(CONFIG_NAND) += nand/
> +obj-$(CONFIG_DRIVER_CFI) += nor/
> obj-$(CONFIG_UBI) += ubi/
> obj-y += devices/
> obj-$(CONFIG_PARTITION_NEED_MTD) += partition.o
> diff --git a/drivers/nor/Kconfig b/drivers/mtd/nor/Kconfig
> similarity index 96%
> rename from drivers/nor/Kconfig
> rename to drivers/mtd/nor/Kconfig
> index c8ce24f..591d1ac 100644
> --- a/drivers/nor/Kconfig
> +++ b/drivers/mtd/nor/Kconfig
> @@ -1,7 +1,5 @@
> -menu "flash drivers"
> -
> menuconfig DRIVER_CFI
> - bool "CFI"
> + bool "CFI NOR flash support"
> help
> If you have NOR Flash devices connected to your system and wish
> to use them say yes here.
> @@ -55,5 +53,3 @@ config CFI_BUFFER_WRITE
> depends on DRIVER_CFI || DRIVER_CFI
>
> endif
> -
> -endmenu
> diff --git a/drivers/nor/Makefile b/drivers/mtd/nor/Makefile
> similarity index 100%
> rename from drivers/nor/Makefile
> rename to drivers/mtd/nor/Makefile
> diff --git a/drivers/nor/cfi_flash.c b/drivers/mtd/nor/cfi_flash.c
> similarity index 93%
> rename from drivers/nor/cfi_flash.c
> rename to drivers/mtd/nor/cfi_flash.c
> index 637f98b..76fed02 100644
> --- a/drivers/nor/cfi_flash.c
> +++ b/drivers/mtd/nor/cfi_flash.c
> @@ -454,10 +454,8 @@ flash_sect_t find_sector (struct flash_info *info, ulong addr)
> return sector;
> }
>
> -static int __cfi_erase(struct cdev *cdev, size_t count, loff_t offset,
> - int verbose)
> +static int cfi_erase(struct flash_info *finfo, size_t count, loff_t offset)
> {
> - struct flash_info *finfo = (struct flash_info *)cdev->priv;
> unsigned long start, end;
> int i, ret = 0;
>
> @@ -467,9 +465,6 @@ static int __cfi_erase(struct cdev *cdev, size_t count, loff_t offset,
> end = find_sector(finfo, (unsigned long)finfo->base + offset +
> count - 1);
>
> - if (verbose)
> - init_progression_bar(end - start);
> -
> for (i = start; i <= end; i++) {
> ret = finfo->cfi_cmd_set->flash_erase_one(finfo, i);
> if (ret)
> @@ -479,21 +474,11 @@ static int __cfi_erase(struct cdev *cdev, size_t count, loff_t offset,
> ret = -EINTR;
> goto out;
> }
> -
> - if (verbose)
> - show_progress(i - start);
> }
> out:
> - if (verbose)
> - putchar('\n');
> return ret;
> }
>
> -static int cfi_erase(struct cdev *cdev, size_t count, loff_t offset)
> -{
> - return __cfi_erase(cdev, count, offset, 1);
> -}
> -
> /*
> * Copy memory to flash, returns:
> * 0 - OK
> @@ -626,18 +611,13 @@ static int flash_real_protect (struct flash_info *info, long sector, int prot)
> return retcode;
> }
>
> -static int cfi_protect(struct cdev *cdev, size_t count, loff_t offset, int prot)
> +static int cfi_mtd_protect(struct flash_info *finfo, loff_t offset, size_t len, int prot)
> {
> - struct flash_info *finfo = (struct flash_info *)cdev->priv;
> unsigned long start, end;
> int i, ret = 0;
> - const char *action = (prot? "protect" : "unprotect");
> -
> - printf("%s: %s 0x%p (size %zu)\n", __func__,
> - action, finfo->base + offset, count);
>
> start = find_sector(finfo, (unsigned long)finfo->base + offset);
> - end = find_sector(finfo, (unsigned long)finfo->base + offset + count - 1);
> + end = find_sector(finfo, (unsigned long)finfo->base + offset + len - 1);
>
> for (i = start; i <= end; i++) {
> ret = flash_real_protect (finfo, i, prot);
> @@ -645,20 +625,21 @@ static int cfi_protect(struct cdev *cdev, size_t count, loff_t offset, int prot)
> goto out;
> }
> out:
> - putchar('\n');
> return ret;
> }
>
> -static ssize_t cfi_write(struct cdev *cdev, const void *buf, size_t count, loff_t offset, ulong flags)
> +static int cfi_mtd_lock(struct mtd_info *mtd, loff_t offset, size_t len)
> {
> - struct flash_info *finfo = (struct flash_info *)cdev->priv;
> - int ret;
> + struct flash_info *finfo = container_of(mtd, struct flash_info, mtd);
> +
> + return cfi_mtd_protect(finfo, offset, len, 1);
> +}
>
> - debug("cfi_write: buf=0x%p addr=0x%p count=0x%08zx\n",
> - buf, finfo->base + offset, count);
> +static int cfi_mtd_unlock(struct mtd_info *mtd, loff_t offset, size_t len)
> +{
> + struct flash_info *finfo = container_of(mtd, struct flash_info, mtd);
>
> - ret = write_buff(finfo, buf, (unsigned long)finfo->base + offset, count);
> - return ret == 0 ? count : -1;
> + return cfi_mtd_protect(finfo, offset, len, 0);
> }
>
> static void cfi_info (struct device_d* dev)
> @@ -908,15 +889,6 @@ int flash_isset(struct flash_info *info, flash_sect_t sect,
> return retval;
> }
>
> -struct file_operations cfi_ops = {
> - .read = mem_read,
> - .write = cfi_write,
> - .lseek = dev_lseek_default,
> - .erase = cfi_erase,
> - .protect = cfi_protect,
> - .memmap = generic_memmap_ro,
> -};
> -
> static int cfi_mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
> size_t *retlen, u_char *buf)
> {
> @@ -943,10 +915,9 @@ static int cfi_mtd_write(struct mtd_info *mtd, loff_t to, size_t len,
> static int cfi_mtd_erase(struct mtd_info *mtd, struct erase_info *instr)
> {
> struct flash_info *info = container_of(mtd, struct flash_info, mtd);
> - struct cdev *cdev = &info->cdev;
> int ret;
>
> - ret = __cfi_erase(cdev, instr->len, instr->addr, 0);
> + ret = cfi_erase(info, instr->len, instr->addr);
>
> if (ret) {
> instr->state = MTD_ERASE_FAILED;
> @@ -966,21 +937,23 @@ static void cfi_init_mtd(struct flash_info *info)
> mtd->read = cfi_mtd_read;
> mtd->write = cfi_mtd_write;
> mtd->erase = cfi_mtd_erase;
> + mtd->lock = cfi_mtd_lock;
> + mtd->unlock = cfi_mtd_unlock;
> mtd->size = info->size;
> - mtd->name = info->cdev.name;
> mtd->erasesize = info->eraseregions[1].erasesize; /* FIXME */
> mtd->writesize = 1;
> mtd->subpage_sft = 0;
> mtd->eraseregions = info->eraseregions;
> mtd->numeraseregions = info->numeraseregions;
> mtd->flags = MTD_CAP_NORFLASH;
> - info->cdev.mtd = mtd;
> + mtd->type = MTD_NORFLASH;
> +
> + add_mtd_device(mtd, "nor");
> }
>
> static int cfi_probe (struct device_d *dev)
> {
> struct flash_info *info = xzalloc(sizeof(*info));
> - int cfinum;
>
> dev->priv = (void *)info;
>
> @@ -999,24 +972,7 @@ static int cfi_probe (struct device_d *dev)
> dev_info(dev, "found cfi flash at %p, size %ld\n",
> info->base, info->size);
>
> - if (dev->id < 0)
> - cfinum = cdev_find_free_index("nor");
> - else
> - cfinum = dev->id;
> -
> - info->cdev.name = asprintf("nor%d", cfinum);
> - info->cdev.size = info->size;
> - info->cdev.dev = dev;
> - info->cdev.ops = &cfi_ops;
> - info->cdev.priv = info;
> -
> - if (IS_ENABLED(CONFIG_PARTITION_NEED_MTD))
> - cfi_init_mtd(info);
> -
> - devfs_create(&info->cdev);
> -
> - if (dev->device_node)
> - of_parse_partitions(info->cdev.name, dev->device_node);
> + cfi_init_mtd(info);
>
> return 0;
> }
> diff --git a/drivers/nor/cfi_flash.h b/drivers/mtd/nor/cfi_flash.h
> similarity index 99%
> rename from drivers/nor/cfi_flash.h
> rename to drivers/mtd/nor/cfi_flash.h
> index 944cdde..bcf5c40 100644
> --- a/drivers/nor/cfi_flash.h
> +++ b/drivers/mtd/nor/cfi_flash.h
> @@ -74,7 +74,6 @@ struct flash_info {
> ulong addr_unlock1; /* unlock address 1 for AMD flash roms */
> ulong addr_unlock2; /* unlock address 2 for AMD flash roms */
> struct cfi_cmd_set *cfi_cmd_set;
> - struct cdev cdev;
> struct mtd_info mtd;
> int numeraseregions;
> struct mtd_erase_region_info *eraseregions;
> diff --git a/drivers/nor/cfi_flash_amd.c b/drivers/mtd/nor/cfi_flash_amd.c
> similarity index 100%
> rename from drivers/nor/cfi_flash_amd.c
> rename to drivers/mtd/nor/cfi_flash_amd.c
> diff --git a/drivers/nor/cfi_flash_intel.c b/drivers/mtd/nor/cfi_flash_intel.c
> similarity index 100%
> rename from drivers/nor/cfi_flash_intel.c
> rename to drivers/mtd/nor/cfi_flash_intel.c
> --
> 1.7.10.4
>
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2013-02-15 8:12 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-15 8:04 [PATCH] integrate CFI Flash driver " Sascha Hauer
2013-02-15 8:04 ` [PATCH 1/6] libmtd: rename functions from mtd_* to libmtd_* Sascha Hauer
2013-02-15 8:04 ` [PATCH 2/6] mtd: rename mtd file operations callback functions Sascha Hauer
2013-02-15 8:04 ` [PATCH 3/6] mtd: Add mtd_* functions Sascha Hauer
2013-02-15 8:04 ` [PATCH 4/6] mtd: Use mtd_* functions where appropriate Sascha Hauer
2013-02-15 8:04 ` [PATCH 5/6] mtd: implement mtd_lock and mtd_unlock Sascha Hauer
2013-02-15 8:04 ` [PATCH 6/6] nor flash: integrate into mtd Sascha Hauer
2013-02-15 8:11 ` [PATCH] " Sascha Hauer
2013-02-15 8:12 ` Sascha Hauer [this message]
2013-02-17 10:59 ` Alexander Aring
2013-02-18 10:24 ` Sascha Hauer
2013-02-19 13:23 ` Alexander Aring
2013-02-19 18:45 ` Sascha Hauer
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=20130215081251.GJ1906@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=barebox@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox