From e09b41010ba33a20a87472ee821fa407a5b8da36 Mon Sep 17 00:00:00 2001 From: José Pekkarinen Date: Mon, 11 Apr 2016 10:41:07 +0300 Subject: These changes are the raw update to linux-4.4.6-rt14. Kernel sources are taken from kernel.org, and rt patch from the rt wiki download page. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit During the rebasing, the following patch collided: Force tick interrupt and get rid of softirq magic(I70131fb85). Collisions have been removed because its logic was found on the source already. Change-Id: I7f57a4081d9deaa0d9ccfc41a6c8daccdee3b769 Signed-off-by: José Pekkarinen --- kernel/drivers/video/fbdev/core/Makefile | 2 +- kernel/drivers/video/fbdev/core/fb_ddc.c | 28 ++++++++++++++++++---------- kernel/drivers/video/fbdev/core/fb_defio.c | 2 -- kernel/drivers/video/fbdev/core/fbmon.c | 8 +++++--- kernel/drivers/video/fbdev/core/fbsysfs.c | 2 +- kernel/drivers/video/fbdev/core/modedb.c | 2 +- 6 files changed, 26 insertions(+), 18 deletions(-) (limited to 'kernel/drivers/video/fbdev/core') diff --git a/kernel/drivers/video/fbdev/core/Makefile b/kernel/drivers/video/fbdev/core/Makefile index 67f28e20a..23d86a8b7 100644 --- a/kernel/drivers/video/fbdev/core/Makefile +++ b/kernel/drivers/video/fbdev/core/Makefile @@ -3,6 +3,7 @@ obj-$(CONFIG_FB_CMDLINE) += fb_cmdline.o obj-$(CONFIG_FB) += fb.o fb-y := fbmem.o fbmon.o fbcmap.o fbsysfs.o \ modedb.o fbcvt.o +fb-$(CONFIG_FB_DEFERRED_IO) += fb_defio.o fb-objs := $(fb-y) obj-$(CONFIG_FB_CFB_FILLRECT) += cfbfillrect.o @@ -14,4 +15,3 @@ obj-$(CONFIG_FB_SYS_IMAGEBLIT) += sysimgblt.o obj-$(CONFIG_FB_SYS_FOPS) += fb_sys_fops.o obj-$(CONFIG_FB_SVGALIB) += svgalib.o obj-$(CONFIG_FB_DDC) += fb_ddc.o -obj-$(CONFIG_FB_DEFERRED_IO) += fb_defio.o diff --git a/kernel/drivers/video/fbdev/core/fb_ddc.c b/kernel/drivers/video/fbdev/core/fb_ddc.c index 94322ccfe..8bf5f2f54 100644 --- a/kernel/drivers/video/fbdev/core/fb_ddc.c +++ b/kernel/drivers/video/fbdev/core/fb_ddc.c @@ -67,13 +67,17 @@ unsigned char *fb_ddc_read(struct i2c_adapter *adapter) msleep(13); algo_data->setscl(algo_data->data, 1); - for (j = 0; j < 5; j++) { - msleep(10); - if (algo_data->getscl(algo_data->data)) - break; + if (algo_data->getscl) { + for (j = 0; j < 5; j++) { + msleep(10); + if (algo_data->getscl(algo_data->data)) + break; + } + if (j == 5) + continue; + } else { + udelay(algo_data->udelay); } - if (j == 5) - continue; algo_data->setsda(algo_data->data, 0); msleep(15); @@ -89,10 +93,14 @@ unsigned char *fb_ddc_read(struct i2c_adapter *adapter) msleep(15); algo_data->setscl(algo_data->data, 1); - for (j = 0; j < 10; j++) { - msleep(10); - if (algo_data->getscl(algo_data->data)) - break; + if (algo_data->getscl) { + for (j = 0; j < 10; j++) { + msleep(10); + if (algo_data->getscl(algo_data->data)) + break; + } + } else { + udelay(algo_data->udelay); } algo_data->setsda(algo_data->data, 1); diff --git a/kernel/drivers/video/fbdev/core/fb_defio.c b/kernel/drivers/video/fbdev/core/fb_defio.c index d6cab1fd9..3fc63c208 100644 --- a/kernel/drivers/video/fbdev/core/fb_defio.c +++ b/kernel/drivers/video/fbdev/core/fb_defio.c @@ -242,5 +242,3 @@ void fb_deferred_io_cleanup(struct fb_info *info) mutex_destroy(&fbdefio->lock); } EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup); - -MODULE_LICENSE("GPL"); diff --git a/kernel/drivers/video/fbdev/core/fbmon.c b/kernel/drivers/video/fbdev/core/fbmon.c index 01ef1b953..47c3191ec 100644 --- a/kernel/drivers/video/fbdev/core/fbmon.c +++ b/kernel/drivers/video/fbdev/core/fbmon.c @@ -1072,9 +1072,9 @@ void fb_edid_add_monspecs(unsigned char *edid, struct fb_monspecs *specs) for (i = specs->modedb_len + num; i < specs->modedb_len + num + svd_n; i++) { int idx = svd[i - specs->modedb_len - num]; - if (!idx || idx > 63) { + if (!idx || idx >= ARRAY_SIZE(cea_modes)) { pr_warning("Reserved SVD code %d\n", idx); - } else if (idx > ARRAY_SIZE(cea_modes) || !cea_modes[idx].xres) { + } else if (!cea_modes[idx].xres) { pr_warning("Unimplemented SVD code %d\n", idx); } else { memcpy(&m[i], cea_modes + idx, sizeof(m[i])); @@ -1475,7 +1475,9 @@ int of_get_fb_videomode(struct device_node *np, struct fb_videomode *fb, if (ret) return ret; - fb_videomode_from_videomode(&vm, fb); + ret = fb_videomode_from_videomode(&vm, fb); + if (ret) + return ret; pr_debug("%s: got %dx%d display mode from %s\n", of_node_full_name(np), vm.hactive, vm.vactive, np->name); diff --git a/kernel/drivers/video/fbdev/core/fbsysfs.c b/kernel/drivers/video/fbdev/core/fbsysfs.c index 60c3f0a16..15755ce1d 100644 --- a/kernel/drivers/video/fbdev/core/fbsysfs.c +++ b/kernel/drivers/video/fbdev/core/fbsysfs.c @@ -485,7 +485,7 @@ static ssize_t show_bl_curve(struct device *device, mutex_lock(&fb_info->bl_curve_mutex); for (i = 0; i < FB_BACKLIGHT_LEVELS; i += 8) - len += snprintf(&buf[len], PAGE_SIZE, "%8ph\n", + len += scnprintf(&buf[len], PAGE_SIZE - len, "%8ph\n", fb_info->bl_curve + i); mutex_unlock(&fb_info->bl_curve_mutex); diff --git a/kernel/drivers/video/fbdev/core/modedb.c b/kernel/drivers/video/fbdev/core/modedb.c index 7d07cf824..2510fa728 100644 --- a/kernel/drivers/video/fbdev/core/modedb.c +++ b/kernel/drivers/video/fbdev/core/modedb.c @@ -289,7 +289,7 @@ static const struct fb_videomode modedb[] = { }; #ifdef CONFIG_FB_MODE_HELPERS -const struct fb_videomode cea_modes[64] = { +const struct fb_videomode cea_modes[65] = { /* #1: 640x480p@59.94/60Hz */ [1] = { NULL, 60, 640, 480, 39722, 48, 16, 33, 10, 96, 2, 0, -- cgit 1.2.3-korg