summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2015-11-06 16:10:42 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2015-11-06 16:10:42 +0100
commit1d9295b344a885e5a79de38df28740a1db6f6103 (patch)
treeca427bbf13a04f3480fb398630473bede4ef6463 /drivers
parent736a74ba7a1c3983105b92a709c263e206fe3913 (diff)
parent6face0e8ab8d97dcc7284a8a5d7ae1f4d134798f (diff)
downloadbarebox-1d9295b344a885e5a79de38df28740a1db6f6103.tar.gz
barebox-1d9295b344a885e5a79de38df28740a1db6f6103.tar.xz
Merge branch 'for-next/misc'
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ata/disk_ata_drive.c17
-rw-r--r--drivers/mci/mci-core.c9
-rw-r--r--drivers/video/fb.c15
-rw-r--r--drivers/video/fbconsole.c3
4 files changed, 17 insertions, 27 deletions
diff --git a/drivers/ata/disk_ata_drive.c b/drivers/ata/disk_ata_drive.c
index ee1709e2ff..d30d0ad997 100644
--- a/drivers/ata/disk_ata_drive.c
+++ b/drivers/ata/disk_ata_drive.c
@@ -26,16 +26,6 @@
#include <disks.h>
#include <dma.h>
-static int ata_id_is_valid(const uint16_t *id)
-{
- if ((id[ATA_ID_FIELD_VALID] & 1) == 0) {
- pr_debug("Drive's ID seems invalid\n");
- return -EINVAL;
- }
-
- return 0;
-}
-
static uint64_t ata_id_n_sectors(uint16_t *id)
{
if (ata_id_has_lba(id)) {
@@ -244,13 +234,6 @@ static int ata_port_init(struct ata_port *port)
ata_fix_endianess(port->id, SECTOR_SIZE / sizeof(uint16_t));
- rc = ata_id_is_valid(port->id);
- if (rc) {
- dev_err(dev, "ata id invalid\n");
- free(port->id);
- return rc;
- }
-
#ifdef DEBUG
ata_dump_id(port->id);
#endif
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index 90001153d7..29c0d5474e 100644
--- a/drivers/mci/mci-core.c
+++ b/drivers/mci/mci-core.c
@@ -947,14 +947,13 @@ out:
static char *mci_version_string(struct mci *mci)
{
static char version[sizeof("x.xx")];
- unsigned major, minor, micro;
+ unsigned major, minor;
major = (mci->version >> 8) & 0xf;
- minor = (mci->version >> 4) & 0xf;
- micro = mci->version & 0xf;
+ minor = mci->version & 0xff;
- sprintf(version, "%u.%u", major,
- micro ? (minor << 4) | micro : minor);
+ /* Shift off last digit of minor if it's 0 */
+ sprintf(version, "%u.%x", major, minor & 0xf ? minor : minor >> 4);
return version;
}
diff --git a/drivers/video/fb.c b/drivers/video/fb.c
index 3672c44202..d159d607f5 100644
--- a/drivers/video/fb.c
+++ b/drivers/video/fb.c
@@ -31,6 +31,12 @@ static int fb_ioctl(struct cdev* cdev, int req, void *data)
return 0;
}
+static void fb_release_shadowfb(struct fb_info *info)
+{
+ free(info->screen_base_shadow);
+ info->screen_base_shadow = NULL;
+}
+
static int fb_alloc_shadowfb(struct fb_info *info)
{
if (info->screen_base_shadow && info->shadowfb)
@@ -47,8 +53,7 @@ static int fb_alloc_shadowfb(struct fb_info *info)
memcpy(info->screen_base_shadow, info->screen_base,
info->line_length * info->yres);
} else {
- free(info->screen_base_shadow);
- info->screen_base_shadow = NULL;
+ fb_release_shadowfb(info);
}
return 0;
@@ -79,6 +84,8 @@ int fb_disable(struct fb_info *info)
info->fbops->fb_disable(info);
+ fb_release_shadowfb(info);
+
info->enabled = false;
return 0;
@@ -92,9 +99,9 @@ static int fb_enable_set(struct param_d *param, void *priv)
enable = info->p_enable;
if (enable)
- info->fbops->fb_enable(info);
+ fb_enable(info);
else
- info->fbops->fb_disable(info);
+ fb_disable(info);
return 0;
}
diff --git a/drivers/video/fbconsole.c b/drivers/video/fbconsole.c
index b10503eb84..c38d13c304 100644
--- a/drivers/video/fbconsole.c
+++ b/drivers/video/fbconsole.c
@@ -192,8 +192,9 @@ static void printchar(struct fbc_priv *priv, int c)
buf = gui_screen_render_buffer(priv->sc);
- memcpy(buf, buf + line_height, line_height * (priv->rows + 1));
+ memcpy(buf, buf + line_height, line_height * priv->rows);
memset(buf + line_height * priv->rows, 0, line_height);
+
gu_screen_blit(priv->sc);
priv->y = priv->rows;
}