summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2017-10-19 15:07:40 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2017-10-19 15:07:40 +0200
commit7f04124c149fa4d8e8f657907c581f10987003e2 (patch)
treed4f9c129f5ef7f4f28231766f449a12fb755b7e6
parent71d764a4b05d3ca4ec8d14f71c9149fd0023424e (diff)
parent25c3fb28d8017595942115d4dbffc16d96f43930 (diff)
downloadbarebox-7f04124c149fa4d8e8f657907c581f10987003e2.tar.gz
Merge branch 'for-next/misc'
-rw-r--r--common/console_countdown.c14
-rw-r--r--common/imx-bbu-nand-fcb.c2
-rw-r--r--common/state/backend_bucket_circular.c2
-rw-r--r--common/state/backend_format_dtb.c2
-rw-r--r--common/state/backend_format_raw.c4
-rw-r--r--drivers/base/regmap/regmap.c29
-rw-r--r--drivers/clk/mxs/clk-div.c2
-rw-r--r--drivers/clk/mxs/clk-pll.c2
-rw-r--r--drivers/clk/mxs/clk-ref.c2
-rw-r--r--drivers/gpio/gpio-clps711x.c2
-rw-r--r--drivers/gpio/gpio-generic.c2
-rw-r--r--drivers/gpio/gpio-vf610.c2
-rw-r--r--drivers/gpio/gpiolib.c12
-rw-r--r--drivers/mci/mci-core.c12
-rw-r--r--drivers/mtd/nand/atmel_nand.c2
-rw-r--r--drivers/mtd/spi-nor/Kconfig13
-rw-r--r--drivers/mtd/ubi/attach.c2
-rw-r--r--drivers/net/gianfar.c3
-rw-r--r--drivers/net/phy/marvell.c73
-rw-r--r--drivers/of/base.c2
-rw-r--r--drivers/pci/pci-imx6.c2
-rw-r--r--drivers/pinctrl/pinctrl-mxs.c2
-rw-r--r--drivers/pinctrl/pinctrl-rockchip.c2
-rw-r--r--drivers/usb/gadget/pxa27x_udc.c2
-rw-r--r--drivers/usb/musb/musb_host.c2
-rw-r--r--drivers/usb/musb/phy-am335x-control.c4
-rw-r--r--drivers/usb/musb/phy-am335x.c2
-rw-r--r--drivers/video/backlight-pwm.c2
-rw-r--r--drivers/video/tc358767.c2
-rw-r--r--fs/omap4_usbbootfs.c2
-rw-r--r--fs/pstore/fs.c2
-rw-r--r--include/elf.h2
-rw-r--r--include/mci.h1
-rw-r--r--include/regmap.h3
-rw-r--r--lib/ratp.c2
35 files changed, 147 insertions, 69 deletions
diff --git a/common/console_countdown.c b/common/console_countdown.c
index 03b9b33..36da1ce 100644
--- a/common/console_countdown.c
+++ b/common/console_countdown.c
@@ -47,12 +47,14 @@ int console_countdown(int timeout_s, unsigned flags, char *out_key)
do {
if (tstc()) {
key = getchar();
- if (flags & CONSOLE_COUNTDOWN_ANYKEY)
- goto out;
- if (flags & CONSOLE_COUNTDOWN_RETURN && key == '\n')
- goto out;
- if (flags & CONSOLE_COUNTDOWN_CTRLC && key == 3)
- goto out;
+ if (key >= 0) {
+ if (flags & CONSOLE_COUNTDOWN_ANYKEY)
+ goto out;
+ if (flags & CONSOLE_COUNTDOWN_RETURN && key == '\n')
+ goto out;
+ if (flags & CONSOLE_COUNTDOWN_CTRLC && key == 3)
+ goto out;
+ }
key = 0;
}
if ((flags & CONSOLE_COUNTDOWN_EXTERN) &&
diff --git a/common/imx-bbu-nand-fcb.c b/common/imx-bbu-nand-fcb.c
index 7218c5e..89b4048 100644
--- a/common/imx-bbu-nand-fcb.c
+++ b/common/imx-bbu-nand-fcb.c
@@ -1126,7 +1126,7 @@ static void read_firmware_all(struct mtd_info *mtd, struct fcb_block *fcb, void
fcb->Firmware1_startingPage + fcb->PagesInFirmware1, primary ? "" : "in",
primary_refresh ? "needs cleanup" : "clean");
- pr_info("secondary firmware is on pages %d-%d, %svalid, %s\n", fcb->Firmware2_startingPage,
+ pr_info("Secondary firmware is on pages %d-%d, %svalid, %s\n", fcb->Firmware2_startingPage,
fcb->Firmware2_startingPage + fcb->PagesInFirmware2, secondary ? "" : "in",
secondary_refresh ? "needs cleanup" : "clean");
diff --git a/common/state/backend_bucket_circular.c b/common/state/backend_bucket_circular.c
index f83bd67..2324903 100644
--- a/common/state/backend_bucket_circular.c
+++ b/common/state/backend_bucket_circular.c
@@ -310,8 +310,6 @@ static int state_backend_bucket_circular_write(struct state_backend_storage_buck
* random changes
*/
write_buf = xzalloc(written_length);
- if (!write_buf)
- return -ENOMEM;
memcpy(write_buf, buf, len);
meta = (struct state_backend_storage_bucket_circular_meta *)
diff --git a/common/state/backend_format_dtb.c b/common/state/backend_format_dtb.c
index 4c9d2ee..48f30db 100644
--- a/common/state/backend_format_dtb.c
+++ b/common/state/backend_format_dtb.c
@@ -136,8 +136,6 @@ int backend_format_dtb_create(struct state_backend_format **format,
struct state_backend_format_dtb *dtb;
dtb = xzalloc(sizeof(*dtb));
- if (!dtb)
- return -ENOMEM;
dtb->dev = dev;
dtb->format.pack = state_backend_format_dtb_pack;
diff --git a/common/state/backend_format_raw.c b/common/state/backend_format_raw.c
index 2ba97e0..4369f76 100644
--- a/common/state/backend_format_raw.c
+++ b/common/state/backend_format_raw.c
@@ -222,8 +222,6 @@ static int backend_format_raw_pack(struct state_backend_format *format,
size_full = size_data + sizeof(*header) + backend_raw->digest_length;
buf = xzalloc(size_full);
- if (!buf)
- return -ENOMEM;
header = buf;
data = buf + sizeof(*header);
@@ -308,8 +306,6 @@ int backend_format_raw_create(struct state_backend_format **format,
int ret;
raw = xzalloc(sizeof(*raw));
- if (!raw)
- return -ENOMEM;
raw->dev = dev;
ret = backend_format_raw_init_digest(raw, node, secret_name);
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
index 52b7d88..67d95fe 100644
--- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c
@@ -137,6 +137,35 @@ int regmap_read(struct regmap *map, unsigned int reg, unsigned int *val)
}
/**
+ * regmap_update_bits() - Perform a read/modify/write cycle on a register
+ *
+ * @map: Register map to update
+ * @reg: Register to update
+ * @mask: Bitmask to change
+ * @val: New value for bitmask
+ *
+ * Returns zero for success, a negative number on error.
+ */
+int regmap_update_bits(struct regmap *map, unsigned int reg,
+ unsigned int mask, unsigned int val)
+{
+ int ret;
+ unsigned int tmp, orig;
+
+ ret = regmap_read(map, reg, &orig);
+ if (ret != 0)
+ return ret;
+
+ tmp = orig & ~mask;
+ tmp |= val & mask;
+
+ if (tmp != orig)
+ ret = regmap_write(map, reg, tmp);
+
+ return ret;
+}
+
+/**
* regmap_write_bits - write bits of a register in a map
*
* @map: The map
diff --git a/drivers/clk/mxs/clk-div.c b/drivers/clk/mxs/clk-div.c
index e8dae25..797e5a2 100644
--- a/drivers/clk/mxs/clk-div.c
+++ b/drivers/clk/mxs/clk-div.c
@@ -86,8 +86,6 @@ struct clk *mxs_clk_div(const char *name, const char *parent_name,
int ret;
div = xzalloc(sizeof(*div));
- if (!div)
- return ERR_PTR(-ENOMEM);
div->parent = parent_name;
div->divider.clk.name = name;
diff --git a/drivers/clk/mxs/clk-pll.c b/drivers/clk/mxs/clk-pll.c
index 89fd6b5..1b1c9b3 100644
--- a/drivers/clk/mxs/clk-pll.c
+++ b/drivers/clk/mxs/clk-pll.c
@@ -96,8 +96,6 @@ struct clk *mxs_clk_pll(const char *name, const char *parent_name,
int ret;
pll = xzalloc(sizeof(*pll));
- if (!pll)
- return ERR_PTR(-ENOMEM);
pll->parent = parent_name;
pll->clk.name = name;
diff --git a/drivers/clk/mxs/clk-ref.c b/drivers/clk/mxs/clk-ref.c
index 7ff5527..8d0be05 100644
--- a/drivers/clk/mxs/clk-ref.c
+++ b/drivers/clk/mxs/clk-ref.c
@@ -144,8 +144,6 @@ struct clk *mxs_clk_ref(const char *name, const char *parent_name,
int ret;
ref = xzalloc(sizeof(*ref));
- if (!ref)
- return ERR_PTR(-ENOMEM);
ref->parent = parent_name;
ref->clk.name = name;
diff --git a/drivers/gpio/gpio-clps711x.c b/drivers/gpio/gpio-clps711x.c
index 769e6ca..c1ec6ab 100644
--- a/drivers/gpio/gpio-clps711x.c
+++ b/drivers/gpio/gpio-clps711x.c
@@ -47,8 +47,6 @@ static int clps711x_gpio_probe(struct device_d *dev)
}
bgc = xzalloc(sizeof(struct bgpio_chip));
- if (!bgc)
- return -ENOMEM;
err = bgpio_init(bgc, dev, 1, dat, NULL, NULL, dir, dir_inv, 0);
if (err)
diff --git a/drivers/gpio/gpio-generic.c b/drivers/gpio/gpio-generic.c
index 14b451b..e4c4f39 100644
--- a/drivers/gpio/gpio-generic.c
+++ b/drivers/gpio/gpio-generic.c
@@ -373,8 +373,6 @@ static int bgpio_dev_probe(struct device_d *dev)
dev_get_drvdata(dev, (const void **)&flags);
bgc = xzalloc(sizeof(struct bgpio_chip));
- if (!bgc)
- return -ENOMEM;
err = bgpio_init(bgc, dev, sz, dat, set, clr, dirout, dirin, flags);
if (err)
diff --git a/drivers/gpio/gpio-vf610.c b/drivers/gpio/gpio-vf610.c
index 7c8d1e4..2aff62b 100644
--- a/drivers/gpio/gpio-vf610.c
+++ b/drivers/gpio/gpio-vf610.c
@@ -106,8 +106,6 @@ static int vf610_gpio_probe(struct device_d *dev)
const __be32 *gpio_ranges;
port = xzalloc(sizeof(*port));
- if (!port)
- return -ENOMEM;
gpio_ranges = of_get_property(dev->device_node, "gpio-ranges", &size);
if (!gpio_ranges) {
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 67d771b..b83a27d 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -204,6 +204,10 @@ EXPORT_SYMBOL(gpio_set_value);
void gpio_set_active(unsigned gpio, bool value)
{
struct gpio_info *gi = gpio_to_desc(gpio);
+
+ if (!gi)
+ return;
+
gpio_set_value(gpio, gpio_adjust_value(gi, value));
}
EXPORT_SYMBOL(gpio_set_active);
@@ -229,6 +233,10 @@ EXPORT_SYMBOL(gpio_get_value);
int gpio_is_active(unsigned gpio)
{
struct gpio_info *gi = gpio_to_desc(gpio);
+
+ if (!gi)
+ return -ENODEV;
+
return gpio_adjust_value(gi, gpio_get_value(gpio));
}
EXPORT_SYMBOL(gpio_is_active);
@@ -255,6 +263,10 @@ EXPORT_SYMBOL(gpio_direction_output);
int gpio_direction_active(unsigned gpio, bool value)
{
struct gpio_info *gi = gpio_to_desc(gpio);
+
+ if (!gi)
+ return -ENODEV;
+
return gpio_direction_output(gpio, gpio_adjust_value(gi, value));
}
EXPORT_SYMBOL(gpio_direction_active);
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index 07911d4..208b766 100644
--- a/drivers/mci/mci-core.c
+++ b/drivers/mci/mci-core.c
@@ -1682,10 +1682,13 @@ static int mci_card_probe(struct mci *mci)
}
/* Check if this card can handle the "SD Card Physical Layer Specification 2.0" */
- rc = sd_send_if_cond(mci);
- rc = sd_send_op_cond(mci);
- if (rc && rc == -ETIMEDOUT) {
- /* If the command timed out, we check for an MMC card */
+ if (!host->no_sd) {
+ rc = sd_send_if_cond(mci);
+ rc = sd_send_op_cond(mci);
+ }
+ if (host->no_sd || rc == -ETIMEDOUT) {
+ /* If SD card initialization was skipped or if it timed out,
+ * we check for an MMC card */
dev_dbg(&mci->dev, "Card seems to be a MultiMediaCard\n");
rc = mmc_send_op_cond(mci);
}
@@ -1904,6 +1907,7 @@ void mci_of_parse_node(struct mci_host *host,
}
host->non_removable = of_property_read_bool(np, "non-removable");
+ host->no_sd = of_property_read_bool(np, "no-sd");
}
void mci_of_parse(struct mci_host *host)
diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
index 299cc15..0b9071c 100644
--- a/drivers/mtd/nand/atmel_nand.c
+++ b/drivers/mtd/nand/atmel_nand.c
@@ -898,8 +898,6 @@ static int __init atmel_pmecc_nand_init_params(struct device_d *dev,
/* Set pmecc_rom_base as the begin of gf table */
int size = sector_size == 512 ? 0x2000 : 0x4000;
pmecc_galois_table = xzalloc(2 * size * sizeof(uint16_t));
- if (!pmecc_galois_table)
- return -ENOMEM;
host->pmecc_rom_base = pmecc_galois_table;
ret = pmecc_build_galois_table((sector_size == 512) ?
PMECC_GF_DIMENSION_13 :
diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig
index a84591f..51cebcf 100644
--- a/drivers/mtd/spi-nor/Kconfig
+++ b/drivers/mtd/spi-nor/Kconfig
@@ -7,6 +7,19 @@ menuconfig MTD_SPI_NOR
if MTD_SPI_NOR
+config MTD_SPI_NOR_USE_4K_SECTORS
+ bool "Use small 4096 B erase sectors"
+ help
+ Many flash memories support erasing small (4096 B) sectors. Depending
+ on the usage this feature may provide performance gain in comparison
+ to erasing whole blocks (32/64 KiB).
+ Changing a small part of the flash's contents is usually faster with
+ small sectors. On the other hand erasing should be faster when using
+ 64 KiB block instead of 16 × 4 KiB sectors.
+
+ Please note that some tools/drivers/filesystems may not work with
+ 4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum).
+
config SPI_CADENCE_QUADSPI
tristate "Cadence Quad SPI controller"
help
diff --git a/drivers/mtd/ubi/attach.c b/drivers/mtd/ubi/attach.c
index b49842b..ff4b4e7 100644
--- a/drivers/mtd/ubi/attach.c
+++ b/drivers/mtd/ubi/attach.c
@@ -782,7 +782,7 @@ static int check_corruption(struct ubi_device *ubi, struct ubi_vid_hdr *vid_hdr,
pnum);
ubi_err(ubi, "this may be a non-UBI PEB or a severe VID header corruption which requires manual inspection");
ubi_dump_vid_hdr(vid_hdr);
- pr_err("hexdump of PEB %d offset %d, length %d",
+ pr_err("hexdump of PEB %d offset %d, length %d\n",
pnum, ubi->leb_start, ubi->leb_size);
ubi_dbg_print_hex_dump(KERN_DEBUG, "", DUMP_PREFIX_OFFSET, 32, 1,
ubi->peb_buf, ubi->leb_size, 1);
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index ac69833..9b2f781 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -483,9 +483,6 @@ static int gfar_probe(struct device_d *dev)
priv = xzalloc(sizeof(struct gfar_private));
- if (NULL == priv)
- return -ENODEV;
-
edev = &priv->edev;
priv->mdiobus_tbi = gfar_info->mdiobus_tbi;
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index ea5a4a9..73d6453 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -175,13 +175,78 @@ static inline bool phy_interface_is_rgmii(struct phy_device *phydev)
};
/*
- * This same function in the Linux kernel parses the marvell,reg-init dt
- * property and does the necessary register writes. It's kept as an exercise for
- * a future user to implement this. :-)
+ * Set and/or override some configuration registers based on the
+ * marvell,reg-init property stored in the of_node for the phydev.
+ *
+ * marvell,reg-init = <reg-page reg mask value>,...;
+ *
+ * There may be one or more sets of <reg-page reg mask value>:
+ *
+ * reg-page: which register bank to use.
+ * reg: the register.
+ * mask: if non-zero, ANDed with existing register value.
+ * value: ORed with the masked value and written to the regiser.
+ *
*/
static int marvell_of_reg_init(struct phy_device *phydev)
{
- return 0;
+ const __be32 *paddr;
+ int len, i, saved_page, current_page, page_changed, ret;
+
+ if (!phydev->dev.device_node)
+ return 0;
+
+ paddr = of_get_property(phydev->dev.device_node,
+ "marvell,reg-init", &len);
+ if (!paddr || len < (4 * sizeof(*paddr)))
+ return 0;
+
+ saved_page = phy_read(phydev, MII_MARVELL_PHY_PAGE);
+ if (saved_page < 0)
+ return saved_page;
+ page_changed = 0;
+ current_page = saved_page;
+
+ ret = 0;
+ len /= sizeof(*paddr);
+ for (i = 0; i < len - 3; i += 4) {
+ u16 reg_page = be32_to_cpup(paddr + i);
+ u16 reg = be32_to_cpup(paddr + i + 1);
+ u16 mask = be32_to_cpup(paddr + i + 2);
+ u16 val_bits = be32_to_cpup(paddr + i + 3);
+ int val;
+
+ if (reg_page != current_page) {
+ current_page = reg_page;
+ page_changed = 1;
+ ret = phy_write(phydev, MII_MARVELL_PHY_PAGE, reg_page);
+ if (ret < 0)
+ goto err;
+ }
+
+ val = 0;
+ if (mask) {
+ val = phy_read(phydev, reg);
+ if (val < 0) {
+ ret = val;
+ goto err;
+ }
+ val &= mask;
+ }
+ val |= val_bits;
+
+ ret = phy_write(phydev, reg, val);
+ if (ret < 0)
+ goto err;
+
+ }
+err:
+ if (page_changed) {
+ i = phy_write(phydev, MII_MARVELL_PHY_PAGE, saved_page);
+ if (ret == 0)
+ ret = i;
+ }
+ return ret;
}
static int m88e1121_config_aneg(struct phy_device *phydev)
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 3ca13ae..eabbf3d 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -194,8 +194,6 @@ void of_alias_scan(void)
/* Allocate an alias_prop with enough space for the stem */
ap = xzalloc(sizeof(*ap) + len + 1);
- if (!ap)
- continue;
ap->alias = start;
of_alias_add(ap, np, id, start, len);
}
diff --git a/drivers/pci/pci-imx6.c b/drivers/pci/pci-imx6.c
index affc705..fc56a0d 100644
--- a/drivers/pci/pci-imx6.c
+++ b/drivers/pci/pci-imx6.c
@@ -580,8 +580,6 @@ static int __init imx6_pcie_probe(struct device_d *dev)
int ret;
imx6_pcie = xzalloc(sizeof(*imx6_pcie));
- if (!imx6_pcie)
- return -ENOMEM;
pp = &imx6_pcie->pp;
pp->dev = dev;
diff --git a/drivers/pinctrl/pinctrl-mxs.c b/drivers/pinctrl/pinctrl-mxs.c
index fa1176f..479c31a 100644
--- a/drivers/pinctrl/pinctrl-mxs.c
+++ b/drivers/pinctrl/pinctrl-mxs.c
@@ -52,7 +52,7 @@ static int mxs_pinctrl_set_state(struct pinctrl_device *pdev, struct device_node
return -EINVAL;
if (!size || size % 4) {
- dev_err(iomux->pinctrl.dev, "Invalid fsl,pins property in %s\n",
+ dev_err(iomux->pinctrl.dev, "Invalid fsl,pinmux-ids property in %s\n",
np->full_name);
return -EINVAL;
}
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index 1130f3d..58f2c4a 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -412,8 +412,6 @@ static int rockchip_pinctrl_probe(struct device_d *dev)
int ret;
info = xzalloc(sizeof(struct rockchip_pinctrl));
- if (!info)
- return -ENOMEM;
ctrl = rockchip_pinctrl_get_soc_data(info, dev);
if (!ctrl) {
diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
index 372c07b..4e6b858 100644
--- a/drivers/usb/gadget/pxa27x_udc.c
+++ b/drivers/usb/gadget/pxa27x_udc.c
@@ -218,8 +218,6 @@ static struct usb_request *pxa_ep_alloc_request(struct usb_ep *_ep)
struct pxa27x_request *req;
req = xzalloc(sizeof *req);
- if (!req)
- return NULL;
INIT_LIST_HEAD(&req->queue);
req->in_use = 0;
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
index 32a8f06..68d819a 100644
--- a/drivers/usb/musb/musb_host.c
+++ b/drivers/usb/musb/musb_host.c
@@ -1717,8 +1717,6 @@ int musb_host_alloc(struct musb *musb)
{
/* usbcore sets dev->driver_data to hcd, and sometimes uses that... */
musb->hcd = xzalloc(sizeof(struct usb_hcd));
- if (!musb->hcd)
- return -EINVAL;
musb->hcd->hcd_priv = musb;
diff --git a/drivers/usb/musb/phy-am335x-control.c b/drivers/usb/musb/phy-am335x-control.c
index 5fd8802..55a2ed2 100644
--- a/drivers/usb/musb/phy-am335x-control.c
+++ b/drivers/usb/musb/phy-am335x-control.c
@@ -140,10 +140,6 @@ static int am335x_control_usb_probe(struct device_d *dev)
return ret;
ctrl_usb = xzalloc(sizeof(*ctrl_usb));
- if (!ctrl_usb) {
- dev_err(dev, "unable to alloc memory for control usb\n");
- return -ENOMEM;
- }
ctrl_usb->dev = dev;
diff --git a/drivers/usb/musb/phy-am335x.c b/drivers/usb/musb/phy-am335x.c
index 204e510..ec8c0f5 100644
--- a/drivers/usb/musb/phy-am335x.c
+++ b/drivers/usb/musb/phy-am335x.c
@@ -34,8 +34,6 @@ static int am335x_phy_probe(struct device_d *dev)
int ret;
am_usbphy = xzalloc(sizeof(*am_usbphy));
- if (!am_usbphy)
- return -ENOMEM;
iores = dev_request_mem_resource(dev, 0);
if (IS_ERR(iores)) {
diff --git a/drivers/video/backlight-pwm.c b/drivers/video/backlight-pwm.c
index 2915dba..ec35bd1 100644
--- a/drivers/video/backlight-pwm.c
+++ b/drivers/video/backlight-pwm.c
@@ -147,8 +147,6 @@ static int pwm_backlight_parse_dt(struct device_d *dev,
size_t size = sizeof(*pwm_backlight->levels) * length;
pwm_backlight->levels = xzalloc(size);
- if (!pwm_backlight->levels)
- return -ENOMEM;
ret = of_property_read_u32_array(node, "brightness-levels",
pwm_backlight->levels,
diff --git a/drivers/video/tc358767.c b/drivers/video/tc358767.c
index 2d366ae..f9ca06c 100644
--- a/drivers/video/tc358767.c
+++ b/drivers/video/tc358767.c
@@ -1352,8 +1352,6 @@ static int tc_probe(struct device_d *dev)
int ret;
tc = xzalloc(sizeof(struct tc_data));
- if (!tc)
- return -ENOMEM;
tc->client = client;
tc->dev = dev;
diff --git a/fs/omap4_usbbootfs.c b/fs/omap4_usbbootfs.c
index 6085bca..b35f411 100644
--- a/fs/omap4_usbbootfs.c
+++ b/fs/omap4_usbbootfs.c
@@ -73,8 +73,6 @@ static struct file_priv *omap4_usbbootfs_do_open(
return ERR_PTR(-ENOSYS);
priv = xzalloc(sizeof(*priv));
- if (!priv)
- return ERR_PTR(-ENOMEM);
data = OMAP4_USBBOOT_FS_MAGIC ; omap4_usbboot_write(&data, 4);
data = OMAP4_USBBOOT_FS_CMD_OPEN; omap4_usbboot_write(&data, 4);
diff --git a/fs/pstore/fs.c b/fs/pstore/fs.c
index 0e05d48..a879a68 100644
--- a/fs/pstore/fs.c
+++ b/fs/pstore/fs.c
@@ -64,8 +64,6 @@ int pstore_mkfile(enum pstore_type_id type, char *psname, u64 id, int count,
}
private = xzalloc(sizeof(*private) + size);
- if (!private)
- return -ENOMEM;
private->type = type;
private->id = id;
private->count = count;
diff --git a/include/elf.h b/include/elf.h
index a749bec..ebcec7d 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -207,7 +207,7 @@ typedef struct elf32_hdr{
} Elf32_Ehdr;
typedef struct elf64_hdr {
- unsigned char e_ident[16]; /* ELF "magic number" */
+ unsigned char e_ident[EI_NIDENT]; /* ELF "magic number" */
Elf64_Half e_type;
Elf64_Half e_machine;
Elf64_Word e_version;
diff --git a/include/mci.h b/include/mci.h
index d3115e8..1f65333 100644
--- a/include/mci.h
+++ b/include/mci.h
@@ -403,6 +403,7 @@ struct mci_host {
unsigned dsr_val; /**< optional dsr value */
int use_dsr; /**< optional dsr usage flag */
bool non_removable; /**< device is non removable */
+ bool no_sd; /**< do not send SD commands during initialization */
struct regulator *supply;
/** init the host interface */
diff --git a/include/regmap.h b/include/regmap.h
index 9675a17..09b7b57 100644
--- a/include/regmap.h
+++ b/include/regmap.h
@@ -62,6 +62,7 @@ int regmap_get_reg_stride(struct regmap *map);
int regmap_write_bits(struct regmap *map, unsigned int reg,
unsigned int mask, unsigned int val);
-
+int regmap_update_bits(struct regmap *map, unsigned int reg,
+ unsigned int mask, unsigned int val);
#endif /* __REGMAP_H */
diff --git a/lib/ratp.c b/lib/ratp.c
index e7fbf64..4c5c748 100644
--- a/lib/ratp.c
+++ b/lib/ratp.c
@@ -1717,7 +1717,7 @@ void ratp_close(struct ratp *ratp)
free(ri);
ratp->internal = NULL;
- pr_info("Closed\n");
+ pr_debug("Closed\n");
}
/**