diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ata/pata-imx.c | 3 | ||||
-rw-r--r-- | drivers/input/imx_keypad.c | 13 | ||||
-rw-r--r-- | drivers/mtd/nand/nand_bbt.c | 5 | ||||
-rw-r--r-- | drivers/mtd/partition.c | 3 | ||||
-rw-r--r-- | drivers/net/cpsw.c | 7 | ||||
-rw-r--r-- | drivers/net/usb/asix.c | 17 | ||||
-rw-r--r-- | drivers/spi/altera_spi.c | 6 | ||||
-rw-r--r-- | drivers/spi/imx_spi.c | 2 |
8 files changed, 23 insertions, 33 deletions
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; 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 = { 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; 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) 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); 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); - 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); diff --git a/drivers/spi/imx_spi.c b/drivers/spi/imx_spi.c index bd8fe357ec..e07cf1a95a 100644 --- a/drivers/spi/imx_spi.c +++ b/drivers/spi/imx_spi.c @@ -423,7 +423,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); |