From 679628b64fe11d58db34f5447184c881cbea0ac9 Mon Sep 17 00:00:00 2001 From: Antony Pavlov Date: Sun, 12 May 2013 23:37:10 +0400 Subject: [PATCH 1/6] ppc: boards: add barebox.lds to .gitignore Without this patch after compiling barebox for a PowerPC board we have 'git status' output looking like this: # Untracked files: # (use "git add ..." to include in what will be committed) # # arch/ppc/boards/pcm030/barebox.lds Signed-off-by: Antony Pavlov Signed-off-by: Sascha Hauer --- arch/ppc/boards/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 arch/ppc/boards/.gitignore diff --git a/arch/ppc/boards/.gitignore b/arch/ppc/boards/.gitignore new file mode 100644 index 000000000..d1165788c --- /dev/null +++ b/arch/ppc/boards/.gitignore @@ -0,0 +1 @@ +barebox.lds From 66f6e99a39ed9e7b950a4d7909da65d4d147ce03 Mon Sep 17 00:00:00 2001 From: Alexander Shiyan Date: Thu, 16 May 2013 02:13:28 +0400 Subject: [PATCH 2/6] GPIO: Add gpio_to_desc helper Patch adds gpio_to_desc helper for validate GPIO. A bit optimization is performed (about -160 bytes on ARM). Signed-off-by: Alexander Shiyan Signed-off-by: Sascha Hauer --- drivers/gpio/gpiolib.c | 95 +++++++++++++++++++++++------------------- 1 file changed, 51 insertions(+), 44 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 6398268ea..ca6e8adab 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -1,3 +1,5 @@ +#define pr_fmt(fmt) "gpiolib: " fmt + #include #include #include @@ -32,20 +34,30 @@ static int gpio_ensure_requested(struct gpio_info *gi, int gpio) return gpio_request(gpio, "gpio"); } +static struct gpio_info *gpio_to_desc(unsigned gpio) +{ + if (gpio_is_valid(gpio)) + if (gpio_desc[gpio].chip) + return &gpio_desc[gpio]; + + pr_warning("invalid GPIO %d\n", gpio); + + return NULL; +} + int gpio_request(unsigned gpio, const char *label) { - struct gpio_info *gi = &gpio_desc[gpio]; - struct gpio_chip *chip = gi->chip; + struct gpio_info *gi = gpio_to_desc(gpio); int ret; - if (!gpio_is_valid(gpio)) - return -EINVAL; - if (!chip) - return -EINVAL; + if (!gi) + return -ENODEV; + if (gi->requested) return -EBUSY; - if (chip->ops->request) { - ret = chip->ops->request(chip, gpio - chip->base); + + if (gi->chip->ops->request) { + ret = gi->chip->ops->request(gi->chip, gpio - gi->chip->base); if (ret) return ret; } @@ -58,17 +70,16 @@ int gpio_request(unsigned gpio, const char *label) void gpio_free(unsigned gpio) { - struct gpio_info *gi = &gpio_desc[gpio]; - struct gpio_chip *chip = gi->chip; + struct gpio_info *gi = gpio_to_desc(gpio); - if (!gpio_is_valid(gpio)) - return; - if (!chip) + if (!gi) return; + if (!gi->requested) return; - if (chip->ops->free) - chip->ops->free(chip, gpio - chip->base); + + if (gi->chip->ops->free) + gi->chip->ops->free(gi->chip, gpio - gi->chip->base); gi->requested = false; free(gi->label); @@ -76,75 +87,71 @@ void gpio_free(unsigned gpio) void gpio_set_value(unsigned gpio, int value) { - struct gpio_info *gi = &gpio_desc[gpio]; - struct gpio_chip *chip = gi->chip; + struct gpio_info *gi = gpio_to_desc(gpio); - if (!gpio_is_valid(gpio)) - return; - if (!chip) + if (!gi) return; + if (gpio_ensure_requested(gi, gpio)) return; - if (!chip->ops->set) - return; - chip->ops->set(chip, gpio - chip->base, value); + + if (gi->chip->ops->set) + gi->chip->ops->set(gi->chip, gpio - gi->chip->base, value); } EXPORT_SYMBOL(gpio_set_value); int gpio_get_value(unsigned gpio) { - struct gpio_info *gi = &gpio_desc[gpio]; - struct gpio_chip *chip = gi->chip; + struct gpio_info *gi = gpio_to_desc(gpio); int ret; - if (!gpio_is_valid(gpio)) - return -EINVAL; - if (!chip) + if (!gi) return -ENODEV; + ret = gpio_ensure_requested(gi, gpio); if (ret) return ret; - if (!chip->ops->get) + + if (!gi->chip->ops->get) return -ENOSYS; - return chip->ops->get(chip, gpio - chip->base); + return gi->chip->ops->get(gi->chip, gpio - gi->chip->base); } EXPORT_SYMBOL(gpio_get_value); int gpio_direction_output(unsigned gpio, int value) { - struct gpio_info *gi = &gpio_desc[gpio]; - struct gpio_chip *chip = gi->chip; + struct gpio_info *gi = gpio_to_desc(gpio); int ret; - if (!gpio_is_valid(gpio)) - return -EINVAL; - if (!chip) + if (!gi) return -ENODEV; + ret = gpio_ensure_requested(gi, gpio); if (ret) return ret; - if (!chip->ops->direction_output) + + if (!gi->chip->ops->direction_output) return -ENOSYS; - return chip->ops->direction_output(chip, gpio - chip->base, value); + return gi->chip->ops->direction_output(gi->chip, gpio - gi->chip->base, + value); } EXPORT_SYMBOL(gpio_direction_output); int gpio_direction_input(unsigned gpio) { - struct gpio_info *gi = &gpio_desc[gpio]; - struct gpio_chip *chip = gi->chip; + struct gpio_info *gi = gpio_to_desc(gpio); int ret; - if (!gpio_is_valid(gpio)) - return -EINVAL; - if (!chip) + if (!gi) return -ENODEV; + ret = gpio_ensure_requested(gi, gpio); if (ret) return ret; - if (!chip->ops->direction_input) + + if (!gi->chip->ops->direction_input) return -ENOSYS; - return chip->ops->direction_input(chip, gpio - chip->base); + return gi->chip->ops->direction_input(gi->chip, gpio - gi->chip->base); } EXPORT_SYMBOL(gpio_direction_input); From fe85ff47611d91a80223adc48d251bf555913a1b Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Thu, 4 Apr 2013 15:23:22 +0200 Subject: [PATCH 3/6] treewide: Fix typo seperate -> separate Signed-off-by: Sascha Hauer --- arch/arm/cpu/cpuinfo.c | 2 +- common/globalvar.c | 4 ++-- common/hush.c | 2 +- drivers/mci/imx.c | 2 +- include/globalvar.h | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/arm/cpu/cpuinfo.c b/arch/arm/cpu/cpuinfo.c index 3c8fe4147..8aea4b472 100644 --- a/arch/arm/cpu/cpuinfo.c +++ b/arch/arm/cpu/cpuinfo.c @@ -155,7 +155,7 @@ static int do_cpuinfo(int argc, char *argv[]) implementer, architecture); if (cache & (1 << 24)) { - /* seperate I/D cache */ + /* separate I/D cache */ printf("I-cache: "); decode_cache(cache & 0xfff); printf("D-cache: "); diff --git a/common/globalvar.c b/common/globalvar.c index a8aaa7255..abcd881ad 100644 --- a/common/globalvar.c +++ b/common/globalvar.c @@ -22,7 +22,7 @@ int globalvar_add(const char *name, * get a concatenated string of all globalvars beginning with 'match'. * This adds whitespaces between the different globalvars */ -char *globalvar_get_match(const char *match, const char *seperator) +char *globalvar_get_match(const char *match, const char *separator) { char *val = NULL; struct param_d *param; @@ -31,7 +31,7 @@ char *globalvar_get_match(const char *match, const char *seperator) if (!strncmp(match, param->name, strlen(match))) { const char *p = dev_get_param(&global_device, param->name); if (val) { - char *new = asprintf("%s%s%s", val, seperator, p); + char *new = asprintf("%s%s%s", val, separator, p); free(val); val = new; } else { diff --git a/common/hush.c b/common/hush.c index b5e111a01..a3235ba19 100644 --- a/common/hush.c +++ b/common/hush.c @@ -1959,7 +1959,7 @@ BAREBOX_CMD_START(getopt) BAREBOX_CMD_END #endif -BAREBOX_MAGICVAR(PATH, "colon seperated list of pathes to search for executables"); +BAREBOX_MAGICVAR(PATH, "colon separated list of pathes to search for executables"); #ifdef CONFIG_HUSH_FANCY_PROMPT BAREBOX_MAGICVAR(PS1, "hush prompt"); #endif diff --git a/drivers/mci/imx.c b/drivers/mci/imx.c index c98596434..2bf48eb1d 100644 --- a/drivers/mci/imx.c +++ b/drivers/mci/imx.c @@ -2,7 +2,7 @@ * This is a driver for the SDHC controller found in Freescale MX2/MX3 * SoCs. It is basically the same hardware as found on MX1 (imxmmc.c). * Unlike the hardware found on MX1, this hardware just works and does - * not need all the quirks found in imxmmc.c, hence the seperate driver. + * not need all the quirks found in imxmmc.c, hence the separate driver. * * Copyright (C) 2009 Ilya Yanok, * Copyright (C) 2008 Sascha Hauer, Pengutronix diff --git a/include/globalvar.h b/include/globalvar.h index ddf885f18..e3098bc40 100644 --- a/include/globalvar.h +++ b/include/globalvar.h @@ -8,7 +8,7 @@ int globalvar_add(const char *name, int (*set)(struct device_d *dev, struct param_d *p, const char *val), const char *(*get)(struct device_d *, struct param_d *p), unsigned long flags); -char *globalvar_get_match(const char *match, const char *seperator); +char *globalvar_get_match(const char *match, const char *separator); void globalvar_set_match(const char *match, const char *val); #else static inline int globalvar_add_simple(const char *name) @@ -24,7 +24,7 @@ static inline int globalvar_add(const char *name, return 0; } -static inline char *globalvar_get_match(const char *match, const char *seperator) +static inline char *globalvar_get_match(const char *match, const char *separator) { return NULL; } From 3ece590c383624f04b23ff12fab077166a869f51 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Wed, 22 May 2013 09:22:05 +0200 Subject: [PATCH 4/6] net: fec_imx: default phy address to -1 for dt probe To enable automatic probing of the phy. Signed-off-by: Sascha Hauer --- drivers/net/fec_imx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c index 1a85d15b7..25d8d8eef 100644 --- a/drivers/net/fec_imx.c +++ b/drivers/net/fec_imx.c @@ -707,6 +707,7 @@ static int fec_probe(struct device_d *dev) if (dev->device_node) { ret = fec_probe_dt(dev, fec); + fec->phy_addr = -1; } else if (pdata) { fec->interface = pdata->xcv_type; fec->phy_init = pdata->phy_init; From b381e781bffa9c285c36c34a291cf00be4155a14 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Thu, 30 May 2013 12:39:55 +0200 Subject: [PATCH 5/6] treewide include/: Add missing includes This adds several missing includes to files under include/ which we relied on being included implicitly. Signed-off-by: Sascha Hauer --- arch/arm/mach-imx/include/mach/devices-imx1.h | 1 + arch/arm/mach-imx/include/mach/devices-imx21.h | 1 + arch/arm/mach-imx/include/mach/devices-imx25.h | 1 + arch/arm/mach-imx/include/mach/devices-imx27.h | 1 + arch/arm/mach-imx/include/mach/devices-imx35.h | 1 + arch/arm/mach-imx/include/mach/devices-imx51.h | 3 ++- arch/arm/mach-imx/include/mach/devices-imx53.h | 1 + arch/arm/mach-imx/include/mach/devices-imx6.h | 1 + arch/arm/mach-imx/include/mach/generic.h | 3 +++ arch/arm/mach-imx/include/mach/iomux-v1.h | 2 ++ arch/arm/mach-imx/include/mach/weim.h | 2 ++ include/environment.h | 2 ++ include/fb.h | 1 + include/filetype.h | 2 ++ include/i2c/i2c.h | 3 +++ include/linux/phy.h | 1 + include/mfd/mc13xxx.h | 2 ++ include/net.h | 2 ++ include/notifier.h | 2 ++ include/partition.h | 3 +-- include/spi/spi.h | 1 + 21 files changed, 33 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-imx/include/mach/devices-imx1.h b/arch/arm/mach-imx/include/mach/devices-imx1.h index 391c1a9c8..e4185bc28 100644 --- a/arch/arm/mach-imx/include/mach/devices-imx1.h +++ b/arch/arm/mach-imx/include/mach/devices-imx1.h @@ -1,4 +1,5 @@ #include +#include static inline struct device_d *imx1_add_uart0(void) { diff --git a/arch/arm/mach-imx/include/mach/devices-imx21.h b/arch/arm/mach-imx/include/mach/devices-imx21.h index ad7ee5ed0..5b2dfd750 100644 --- a/arch/arm/mach-imx/include/mach/devices-imx21.h +++ b/arch/arm/mach-imx/include/mach/devices-imx21.h @@ -1,5 +1,6 @@ #include +#include static inline struct device_d *imx21_add_uart0(void) { diff --git a/arch/arm/mach-imx/include/mach/devices-imx25.h b/arch/arm/mach-imx/include/mach/devices-imx25.h index a655be956..5b582b88c 100644 --- a/arch/arm/mach-imx/include/mach/devices-imx25.h +++ b/arch/arm/mach-imx/include/mach/devices-imx25.h @@ -1,5 +1,6 @@ #include +#include static inline struct device_d *imx25_add_i2c0(struct i2c_platform_data *pdata) { diff --git a/arch/arm/mach-imx/include/mach/devices-imx27.h b/arch/arm/mach-imx/include/mach/devices-imx27.h index d6c884a30..87a3a7cc1 100644 --- a/arch/arm/mach-imx/include/mach/devices-imx27.h +++ b/arch/arm/mach-imx/include/mach/devices-imx27.h @@ -1,5 +1,6 @@ #include +#include static inline struct device_d *imx27_add_spi0(struct spi_imx_master *pdata) { diff --git a/arch/arm/mach-imx/include/mach/devices-imx35.h b/arch/arm/mach-imx/include/mach/devices-imx35.h index 912c41872..766610de9 100644 --- a/arch/arm/mach-imx/include/mach/devices-imx35.h +++ b/arch/arm/mach-imx/include/mach/devices-imx35.h @@ -1,5 +1,6 @@ #include +#include static inline struct device_d *imx35_add_i2c0(struct i2c_platform_data *pdata) { diff --git a/arch/arm/mach-imx/include/mach/devices-imx51.h b/arch/arm/mach-imx/include/mach/devices-imx51.h index ec8467ae9..00644788a 100644 --- a/arch/arm/mach-imx/include/mach/devices-imx51.h +++ b/arch/arm/mach-imx/include/mach/devices-imx51.h @@ -1,6 +1,7 @@ -#include #include +#include +#include static inline struct device_d *imx51_add_spi0(struct spi_imx_master *pdata) { diff --git a/arch/arm/mach-imx/include/mach/devices-imx53.h b/arch/arm/mach-imx/include/mach/devices-imx53.h index 5bdcf3229..df1465486 100644 --- a/arch/arm/mach-imx/include/mach/devices-imx53.h +++ b/arch/arm/mach-imx/include/mach/devices-imx53.h @@ -1,5 +1,6 @@ #include +#include static inline struct device_d *imx53_add_spi0(struct spi_imx_master *pdata) { diff --git a/arch/arm/mach-imx/include/mach/devices-imx6.h b/arch/arm/mach-imx/include/mach/devices-imx6.h index b6b538a95..7d41d7f02 100644 --- a/arch/arm/mach-imx/include/mach/devices-imx6.h +++ b/arch/arm/mach-imx/include/mach/devices-imx6.h @@ -1,4 +1,5 @@ #include +#include static inline struct device_d *imx6_add_uart0(void) { diff --git a/arch/arm/mach-imx/include/mach/generic.h b/arch/arm/mach-imx/include/mach/generic.h index 189b32f2c..9958cb2f3 100644 --- a/arch/arm/mach-imx/include/mach/generic.h +++ b/arch/arm/mach-imx/include/mach/generic.h @@ -1,6 +1,9 @@ #ifndef __MACH_GENERIC_H #define __MACH_GENERIC_H +#include +#include + u64 imx_uid(void); void imx25_boot_save_loc(void __iomem *ccm_base); diff --git a/arch/arm/mach-imx/include/mach/iomux-v1.h b/arch/arm/mach-imx/include/mach/iomux-v1.h index 55fbcdb94..49dcecd1d 100644 --- a/arch/arm/mach-imx/include/mach/iomux-v1.h +++ b/arch/arm/mach-imx/include/mach/iomux-v1.h @@ -1,6 +1,8 @@ #ifndef __MACH_IOMUX_V1_H__ #define __MACH_IOMUX_V1_H__ +#include + #define GPIO_PIN_MASK 0x1f #define GPIO_PORT_SHIFT 5 diff --git a/arch/arm/mach-imx/include/mach/weim.h b/arch/arm/mach-imx/include/mach/weim.h index 8d572dc0b..3fbbb6ba8 100644 --- a/arch/arm/mach-imx/include/mach/weim.h +++ b/arch/arm/mach-imx/include/mach/weim.h @@ -1,6 +1,8 @@ #ifndef __MACH_WEIM_H #define __MACH_WEIM_H +#include + void imx27_setup_weimcs(size_t cs, unsigned upper, unsigned lower, unsigned additional); diff --git a/include/environment.h b/include/environment.h index 7bdd213a5..ae1ecf5bd 100644 --- a/include/environment.h +++ b/include/environment.h @@ -20,6 +20,8 @@ #ifndef _ENVIRONMENT_H_ #define _ENVIRONMENT_H_ +#include + /** * Managment of a environment variable */ diff --git a/include/fb.h b/include/fb.h index 23d6c6d02..df4ba8ebe 100644 --- a/include/fb.h +++ b/include/fb.h @@ -3,6 +3,7 @@ #include #include +#include #define FB_VISUAL_TRUECOLOR 2 /* True color */ #define FB_VISUAL_PSEUDOCOLOR 3 /* Pseudo color (like atari) */ diff --git a/include/filetype.h b/include/filetype.h index ee777acf9..c73c64aa6 100644 --- a/include/filetype.h +++ b/include/filetype.h @@ -1,6 +1,8 @@ #ifndef __FILE_TYPE_H #define __FILE_TYPE_H +#include + /* * List of file types we know */ diff --git a/include/i2c/i2c.h b/include/i2c/i2c.h index 7b59a5102..dab8dc59e 100644 --- a/include/i2c/i2c.h +++ b/include/i2c/i2c.h @@ -16,6 +16,9 @@ #ifndef I2C_I2C_H #define I2C_I2C_H +#include +#include + #ifndef DOXYGEN_SHOULD_SKIP_THIS /* diff --git a/include/linux/phy.h b/include/linux/phy.h index 99c96390c..8e60758ca 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -15,6 +15,7 @@ #ifndef __PHY_H #define __PHY_H +#include #include #include #include diff --git a/include/mfd/mc13xxx.h b/include/mfd/mc13xxx.h index 59042ebee..cba85890c 100644 --- a/include/mfd/mc13xxx.h +++ b/include/mfd/mc13xxx.h @@ -12,6 +12,8 @@ #ifndef __MFD_MC13XXX_H #define __MFD_MC13XXX_H +#include + #define MC13XXX_REG_IDENTIFICATION 0x07 #define MC13783_REG_INT_STATUS0 0x00 diff --git a/include/net.h b/include/net.h index bb6b8fa28..72f02ce11 100644 --- a/include/net.h +++ b/include/net.h @@ -19,7 +19,9 @@ #include #include #include +#include #include +#include /* memcpy */ #include /* for nton* / ntoh* stuff */ /* How often do we retry to send packages */ diff --git a/include/notifier.h b/include/notifier.h index cb2be5f54..c83e28b15 100644 --- a/include/notifier.h +++ b/include/notifier.h @@ -1,6 +1,8 @@ #ifndef __NOTIFIER_H #define __NOTIFIER_H +#include + /* * Notifer chains loosely based on the according Linux framework */ diff --git a/include/partition.h b/include/partition.h index 8ad7490d8..32570530e 100644 --- a/include/partition.h +++ b/include/partition.h @@ -1,7 +1,7 @@ #ifndef __PARTITION_H #define __PARTITION_H -struct device_d; +#include struct partition { int num; @@ -18,4 +18,3 @@ struct partition { }; #endif /* __PARTITION_H */ - diff --git a/include/spi/spi.h b/include/spi/spi.h index 3da13e85e..45fd22ce2 100644 --- a/include/spi/spi.h +++ b/include/spi/spi.h @@ -4,6 +4,7 @@ #ifndef DOXYGEN_SHOULD_SKIP_THIS #include +#include struct spi_board_info { char *name; From 9bdc30075f6854e00934dd52a4ea93043ff737fd Mon Sep 17 00:00:00 2001 From: Masaki Muranaka Date: Sat, 1 Jun 2013 22:58:25 +0900 Subject: [PATCH 6/6] Enables to build bootm command on generic_x86. I'm not sure but I guess we don't need defined(__I386__) check. I kept it for now. Signed-off-by: Masaki Muranaka Signed-off-by: Sascha Hauer --- include/image.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/image.h b/include/image.h index 219419b12..0c8a4b138 100644 --- a/include/image.h +++ b/include/image.h @@ -89,7 +89,7 @@ #define IH_ARCH IH_ARCH_PPC #elif defined(__ARM__) #define IH_ARCH IH_ARCH_ARM -#elif defined(__I386__) || defined(__x86_64__) +#elif defined(__I386__) || defined(__x86_64__) || defined(__i386__) #define IH_ARCH IH_ARCH_I386 #elif defined(__mips__) #define IH_ARCH IH_ARCH_MIPS