From e21962062edb3e85de4f1a1bfb6890881874cacb Mon Sep 17 00:00:00 2001 From: Antony Pavlov Date: Mon, 7 Apr 2014 11:50:39 +0400 Subject: spi: altera_spi: fix altera_spi_setup() return error codes Reported-by: Sascha Hauer Signed-off-by: Antony Pavlov Signed-off-by: Sascha Hauer --- drivers/spi/altera_spi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'drivers') diff --git a/drivers/spi/altera_spi.c b/drivers/spi/altera_spi.c index 8803d9e96b..983b877e87 100644 --- a/drivers/spi/altera_spi.c +++ b/drivers/spi/altera_spi.c @@ -34,18 +34,18 @@ static int altera_spi_setup(struct spi_device *spi) if (spi->bits_per_word != altera_spi->databits) { dev_err(master->dev, " master doesn't support %d bits per word requested by %s\n", spi->bits_per_word, spi_dev.name); - return -1; + return -EINVAL; } if ((spi->mode & (SPI_CPHA | SPI_CPOL)) != altera_spi->mode) { dev_err(master->dev, " master doesn't support SPI_MODE%d requested by %s\n", spi->mode & (SPI_CPHA | SPI_CPOL), spi_dev.name); - return -1; + return -EINVAL; } if (spi->max_speed_hz < altera_spi->speed) { dev_err(master->dev, " frequency is too high for %s\n", spi_dev.name); - return -1; + return -EINVAL; } altera_spi_cs_inactive(spi); -- cgit v1.2.3 From e8f8e45be186a5868c10bf1a2fba8a3a6f2f2e48 Mon Sep 17 00:00:00 2001 From: Alexander Shiyan Date: Sat, 12 Apr 2014 12:11:02 +0400 Subject: ata: pata-imx: Remove unused variable Signed-off-by: Alexander Shiyan Signed-off-by: Sascha Hauer --- drivers/ata/pata-imx.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'drivers') diff --git a/drivers/ata/pata-imx.c b/drivers/ata/pata-imx.c index 7f9e39b503..6bd7524a6a 100644 --- a/drivers/ata/pata-imx.c +++ b/drivers/ata/pata-imx.c @@ -78,9 +78,6 @@ static void pata_imx_set_bus_timing(void __iomem *base, unsigned long clkrate, { uint32_t T = 1000000000 / clkrate; - struct mxc_ata_config_regs *ata_regs; - ata_regs = (struct mxc_ata_config_regs *)base; - if (mode >= ARRAY_SIZE(pio_t1)) return; -- cgit v1.2.3 From 40bfcc42c0e4cce789d644d96d6a4fa7319544bb Mon Sep 17 00:00:00 2001 From: Alexander Shiyan Date: Sat, 12 Apr 2014 12:11:04 +0400 Subject: mtd: partition: Remove unused variable Signed-off-by: Alexander Shiyan Signed-off-by: Sascha Hauer --- drivers/mtd/partition.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'drivers') diff --git a/drivers/mtd/partition.c b/drivers/mtd/partition.c index 720c2adab3..c2461a0a60 100644 --- a/drivers/mtd/partition.c +++ b/drivers/mtd/partition.c @@ -7,11 +7,8 @@ static int mtd_part_read(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf) { - struct mtd_ecc_stats stats; int res; - stats = mtd->master->ecc_stats; - if (from >= mtd->size) len = 0; else if (from + len > mtd->size) -- cgit v1.2.3 From 54a8d12cd294546fcc953a50535279c2b687cbc1 Mon Sep 17 00:00:00 2001 From: Alexander Shiyan Date: Sat, 12 Apr 2014 12:11:05 +0400 Subject: mtd: nand: bbt: Remove unused variable Signed-off-by: Alexander Shiyan Signed-off-by: Sascha Hauer --- drivers/mtd/nand/nand_bbt.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'drivers') diff --git a/drivers/mtd/nand/nand_bbt.c b/drivers/mtd/nand/nand_bbt.c index b0548a3e96..1357c5cc6f 100644 --- a/drivers/mtd/nand/nand_bbt.c +++ b/drivers/mtd/nand/nand_bbt.c @@ -551,7 +551,7 @@ static int search_bbt(struct mtd_info *mtd, uint8_t *buf, struct nand_bbt_descr { struct nand_chip *this = mtd->priv; int i, chips; - int bits, startblock, block, dir; + int startblock, block, dir; int scanlen = mtd->writesize + mtd->oobsize; int bbtblocks; int blocktopage = this->bbt_erase_shift - this->page_shift; @@ -575,9 +575,6 @@ static int search_bbt(struct mtd_info *mtd, uint8_t *buf, struct nand_bbt_descr bbtblocks = mtd->size >> this->bbt_erase_shift; } - /* Number of bits for each erase block in the bbt */ - bits = td->options & NAND_BBT_NRBITS_MSK; - for (i = 0; i < chips; i++) { /* Reset version information */ td->version[i] = 0; -- cgit v1.2.3 From 1fc66d14018577194a6c0c517d7a636a2a2f5067 Mon Sep 17 00:00:00 2001 From: Alexander Shiyan Date: Sat, 12 Apr 2014 12:11:03 +0400 Subject: imx_keypad: Fix error handling Also remove the unnecessary check for xzalloc failure. Signed-off-by: Alexander Shiyan Signed-off-by: Sascha Hauer --- drivers/input/imx_keypad.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'drivers') diff --git a/drivers/input/imx_keypad.c b/drivers/input/imx_keypad.c index e6870dfcc2..afe93c3127 100644 --- a/drivers/input/imx_keypad.c +++ b/drivers/input/imx_keypad.c @@ -392,17 +392,13 @@ static int __init imx_keypad_probe(struct device_d *dev) struct console_device *cdev; int error, i; - keypad = xzalloc(sizeof(struct imx_keypad)); - if (!keypad) { - pr_err("not enough memory for driver data\n"); - error = -ENOMEM; - } - if (!keymap_data) { pr_err("no keymap defined\n"); return -ENODEV; } + keypad = xzalloc(sizeof(struct imx_keypad)); + keypad->dev = dev; keypad->mmio_base = dev_request_mem_region(dev, 0); @@ -420,8 +416,8 @@ static int __init imx_keypad_probe(struct device_d *dev) if (keypad->rows_en_mask > ((1 << MAX_MATRIX_KEY_ROWS) - 1) || keypad->cols_en_mask > ((1 << MAX_MATRIX_KEY_COLS) - 1)) { pr_err("invalid key data (too many rows or colums)\n"); - error = -EINVAL; - //goto failed_clock_put; + free(keypad); + return -EINVAL; } pr_debug("enabled rows mask: %x\n", keypad->rows_en_mask); pr_debug("enabled cols mask: %x\n", keypad->cols_en_mask); @@ -446,7 +442,6 @@ static int __init imx_keypad_probe(struct device_d *dev) console_register(&keypad->cdev); return poller_register(&keypad->poller); - } static struct driver_d imx_keypad_driver = { -- cgit v1.2.3 From 9b2fb23ea9f45d0f9ef8c77ed0224645af3a5ee4 Mon Sep 17 00:00:00 2001 From: Antony Pavlov Date: Fri, 11 Apr 2014 08:19:42 +0400 Subject: net: usb: asix: fix formating Signed-off-by: Antony Pavlov Signed-off-by: Sascha Hauer --- drivers/net/usb/asix.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'drivers') diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c index 37057a7cb5..2145d3f466 100644 --- a/drivers/net/usb/asix.c +++ b/drivers/net/usb/asix.c @@ -286,7 +286,7 @@ static int asix_sw_reset(struct usbnet *dev, u8 flags) { int ret; - ret = asix_write_cmd(dev, AX_CMD_SW_RESET, flags, 0, 0, NULL); + ret = asix_write_cmd(dev, AX_CMD_SW_RESET, flags, 0, 0, NULL); if (ret < 0) dev_err(&dev->edev.dev, "Failed to send software reset: %02x\n", ret); @@ -453,8 +453,8 @@ static int asix_rx_fixup(struct usbnet *dev, void *buf, int len) } static int asix_tx_fixup(struct usbnet *dev, - void *buf, int len, - void *nbuf, int *nlen) + void *buf, int len, + void *nbuf, int *nlen) { unsigned int packet_len; @@ -696,10 +696,10 @@ static struct driver_info ax88772b_info = { .description = "ASIX AX88772B USB 2.0 Ethernet", .bind = ax88772_bind, .unbind = asix_unbind, - .flags = FLAG_ETHER | FLAG_FRAMING_AX, - .rx_fixup = asix_rx_fixup, - .tx_fixup = asix_tx_fixup, - .data = FLAG_EEPROM_MAC, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, + .rx_fixup = asix_rx_fixup, + .tx_fixup = asix_tx_fixup, + .data = FLAG_EEPROM_MAC, }; static const struct usb_device_id products [] = { @@ -800,7 +800,6 @@ static struct usb_driver asix_driver = { static int __init asix_init(void) { - return usb_driver_register(&asix_driver); + return usb_driver_register(&asix_driver); } device_initcall(asix_init); - -- cgit v1.2.3 From ece46dd3fc3ca784aec50900b255c0b035bccf49 Mon Sep 17 00:00:00 2001 From: Alexander Shiyan Date: Sun, 27 Apr 2014 10:17:07 +0400 Subject: SPI: i.MX: Remove redundant assignment Signed-off-by: Alexander Shiyan Signed-off-by: Sascha Hauer --- drivers/spi/imx_spi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/spi/imx_spi.c b/drivers/spi/imx_spi.c index 45461bd954..7a347f911d 100644 --- a/drivers/spi/imx_spi.c +++ b/drivers/spi/imx_spi.c @@ -430,7 +430,7 @@ static void imx_spi_do_transfer(struct spi_device *spi, struct spi_transfer *t) static int imx_spi_transfer(struct spi_device *spi, struct spi_message *mesg) { struct imx_spi *imx = container_of(spi->master, struct imx_spi, master); - struct spi_transfer *t = NULL; + struct spi_transfer *t; imx->chipselect(spi, 1); -- cgit v1.2.3 From 7af9c3a84384b4330ba961ea5bf3a7a79d8ad1f1 Mon Sep 17 00:00:00 2001 From: Christoph Fritz Date: Wed, 30 Apr 2014 10:32:02 +0200 Subject: net cpsw: fix rx stability under heavy network load RX DMA Head Descriptor Pointer can get 0 when there is a lot of traffic, which results in a timeout error. A good way to provoke this error is by sending lots of ARP requests. This patch makes sure that the RX DMA Head Descriptor Pointer is set. The origin driver, from which this is derived, already contains this fix. Signed-off-by: Christoph Fritz Signed-off-by: Sascha Hauer --- drivers/net/cpsw.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c index 52adf50205..ec3263d4aa 100644 --- a/drivers/net/cpsw.c +++ b/drivers/net/cpsw.c @@ -741,8 +741,13 @@ static int cpdma_process(struct cpsw_priv *priv, struct cpdma_chan *chan, if (buffer) *buffer = (void *)readl(&desc->sw_buffer); - if (status & CPDMA_DESC_OWNER) + if (status & CPDMA_DESC_OWNER) { + if (readl(chan->hdp) == 0) { + if (readl(&desc->hw_mode) & CPDMA_DESC_OWNER) + writel((u32)desc, chan->hdp); + } return -EBUSY; + } chan->head = (void *)readl(&desc->hw_next); -- cgit v1.2.3