diff options
author | Phil Blundell <philb@gnu.org> | 2009-06-10 21:05:34 +0100 |
---|---|---|
committer | Phil Blundell <philb@gnu.org> | 2009-06-10 21:05:34 +0100 |
commit | b386d4e87cfa42180e01cd52f554360f1d47ab90 (patch) | |
tree | aafb70e30f77b190d2c1db4a7fd7cfd06366a7b7 | |
parent | b547ef50c9d04427cf4f62b9f5feaad3b7f34c56 (diff) | |
parent | 760bd999661cb210addb26eb56d4178cedc6a229 (diff) |
Merge branch 'org.openembedded.dev' of git@new.openembedded.org:openembedded into org.openembedded.dev
-rw-r--r-- | classes/recipe_sanity.bbclass | 111 | ||||
-rw-r--r-- | conf/checksums.ini | 4 | ||||
-rw-r--r-- | recipes/libdlo/kernel-module-udlfb.bb | 2 | ||||
-rw-r--r-- | recipes/libdlo/kernel-module-udlfb/udlfb.c | 38 | ||||
-rw-r--r-- | recipes/libdlo/kernel-module-udlfb/udlfb.h | 18 | ||||
-rw-r--r-- | recipes/linux/linux-powerpc-fsl_git.bb | 4 | ||||
-rw-r--r-- | recipes/sysklogd/sysklogd.inc | 3 | ||||
-rw-r--r-- | recipes/sysklogd/sysklogd_1.5.bb | 3 | ||||
-rw-r--r-- | recipes/xorg-driver/xf86-video-displaylink_0.3.bb (renamed from recipes/xorg-driver/xf86-video-displaylink_0.2.bb) | 2 |
9 files changed, 166 insertions, 19 deletions
diff --git a/classes/recipe_sanity.bbclass b/classes/recipe_sanity.bbclass new file mode 100644 index 0000000000..a10755cf47 --- /dev/null +++ b/classes/recipe_sanity.bbclass @@ -0,0 +1,111 @@ +def can_use_autotools_base(cfgdata, d): + import bb + cfg = d.getVar("do_configure", 1) + if not bb.data.inherits_class("autotools", d): + return False + + for i in ["autoreconf"] + ["%s_do_configure" % cls for cls in ["gnome", "e", "autotools", "autotools_stage", "efl", "gpephone", "openmoko", "openmoko2", "xfce", "xlibs"]]: + if cfg.find(i) != -1: + return False + + import os + for clsfile in d.getVar("__inherit_cache", 0): + (base, _) = os.path.splitext(os.path.basename(clsfile)) + if cfg.find("%s_do_configure" % base) != -1: + bb.note("%s: recipe_sanity: autotools_base usage needs verification, spotted %s" % (d.getVar("P", 1), "%s_do_configure" % base)) + + return True + +def can_remove_FILESPATH(cfgdata, d): + import os + import bb + expected = cfgdata.get("FILESPATH") + #expected = "${@':'.join([os.path.normpath(os.path.join(fp, p, o)) for fp in d.getVar('FILESPATHBASE', 1).split(':') for p in d.getVar('FILESPATHPKG', 1).split(':') for o in (d.getVar('OVERRIDES', 1) + ':').split(':') if os.path.exists(os.path.join(fp, p, o))])}:${FILESDIR}" + expectedpaths = bb.data.expand(expected, d) + unexpanded = d.getVar("FILESPATH", 0) + filespath = d.getVar("FILESPATH", 1).split(":") + filespath = [os.path.normpath(f) for f in filespath if os.path.exists(f)] + for fp in filespath: + if not fp in expectedpaths: + # bb.note("Path %s in FILESPATH not in the expected paths %s" % (fp, expectedpaths)) + return False + return expected != unexpanded + +def can_remove_FILESDIR(cfgdata, d): + import os + import bb + expected = cfgdata.get("FILESDIR") + #expected = "${@bb.which(d.getVar('FILESPATH', 1), '.')}" + unexpanded = d.getVar("FILESDIR", 0) + if unexpanded is None: + return False + + expanded = os.path.normpath(d.getVar("FILESDIR", 1)) + filespath = d.getVar("FILESPATH", 1).split(":") + filespath = [os.path.normpath(f) for f in filespath if os.path.exists(f)] + + return unexpanded != expected and \ + os.path.exists(expanded) and \ + (expanded in filespath or + expanded == bb.data.expand(expected, d)) + +def can_remove_others(p, cfgdata, d): + import bb + for k in ["S", "PV", "PN", "DESCRIPTION", "LICENSE", "DEPENDS", + "SECTION", "PACKAGES", "EXTRA_OECONF", "EXTRA_OEMAKE"]: + #for k in cfgdata: + unexpanded = d.getVar(k, 0) + cfgunexpanded = cfgdata.get(k) + if not cfgunexpanded: + continue + + try: + expanded = d.getVar(k, 1) + cfgexpanded = bb.data.expand(cfgunexpanded, d) + except bb.fetch.ParameterError: + continue + + if unexpanded != cfgunexpanded and \ + cfgexpanded == expanded: + bb.note("%s: recipe_sanity: candidate for removal of %s" % (p, k)) + bb.debug(1, "%s: recipe_sanity: cfg's '%s' and d's '%s' both expand to %s" % + (p, cfgunexpanded, unexpanded, expanded)) + +python do_recipe_sanity () { + p = d.getVar("P", 1) + p = "%s %s %s" % (d.getVar("PN", 1), d.getVar("PV", 1), d.getVar("PR", 1)) + + sanitychecks = [ + (can_remove_FILESDIR, "removal of FILESDIR"), + (can_remove_FILESPATH, "removal of FILESPATH"), + #(can_use_autotools_base, "use of autotools_base"), + ] + cfgdata = d.getVar("__recipe_sanity_cfgdata", 0) + + for (func, msg) in sanitychecks: + if func(cfgdata, d): + bb.note("%s: recipe_sanity: candidate for %s" % (p, msg)) + + can_remove_others(p, cfgdata, d) +} +do_recipe_sanity[nostamp] = "1" +do_recipe_sanity[recrdeptask] = "do_recipe_sanity" +addtask recipe_sanity + +python recipe_sanity_eh () { + from bb.event import getName + + if getName(e) != "ConfigParsed": + return NotHandled + + d = e.data + + cfgdata = {} + for k in d.keys(): + #for k in ["S", "PR", "PV", "PN", "DESCRIPTION", "LICENSE", "DEPENDS", + # "SECTION"]: + cfgdata[k] = d.getVar(k, 0) + + d.setVar("__recipe_sanity_cfgdata", cfgdata) +} +addhandler recipe_sanity_eh diff --git a/conf/checksums.ini b/conf/checksums.ini index 974b076c1d..631f1fb528 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -23618,6 +23618,10 @@ sha256=001be4a8963c48e7debc82c6078562d087a2979da63e558a5e3613c03725c377 md5=2d7e548820d2ded5e183933cb701defb sha256=da0ca1e821e3fa7cfbe73ddb1480b921002ee992f5e5fbc611422c103b907443 +[http://projects.unbit.it/downloads/udlfb-0.2.3_and_xf86-video-displaylink-0.3.tar.gz] +md5=c2aedc8130c2e4d52e334b6804ab70da +sha256=487a1d7bf4b896d9a4b9e7dd1bd293adcadde5684fe9fe32aa209761c3191b3e + [http://downloads.sourceforge.net/ufraw/ufraw-0.12.tar.gz] md5=b2c104938c1c3eb47e7605432bbd3157 sha256=c750c8180057385eaa0844f1148d6f0223b986da322773195eab44b33b97c19f diff --git a/recipes/libdlo/kernel-module-udlfb.bb b/recipes/libdlo/kernel-module-udlfb.bb index 55262d22c9..10e83c4caa 100644 --- a/recipes/libdlo/kernel-module-udlfb.bb +++ b/recipes/libdlo/kernel-module-udlfb.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Framebuffer console driver for displaylink based usb devices" LICENSE = "GPLv2" -PV = "0.2.2" +PV = "0.2.3" SRC_URI = "file://udlfb.c \ file://udlfb.h \ diff --git a/recipes/libdlo/kernel-module-udlfb/udlfb.c b/recipes/libdlo/kernel-module-udlfb/udlfb.c index 96fdb3e7d5..abeca9bd12 100644 --- a/recipes/libdlo/kernel-module-udlfb/udlfb.c +++ b/recipes/libdlo/kernel-module-udlfb/udlfb.c @@ -7,6 +7,7 @@ * Based on the amazing work of Florian Echtler and libdlo 0.1 * * * * * + * 10.06.09 release 0.2.3 (edid ioctl, fallback for unsupported modes) * * 05.06.09 release 0.2.2 (real screen blanking, rle compression, double buffer) * * 31.05.09 release 0.2 * * 22.05.09 First public (ugly) release * @@ -600,10 +601,21 @@ static int dlfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg) { struct dlfb_data *dev_info = info->par; - struct dloarea *area = (struct dloarea *)arg; + struct dloarea *area = NULL; + + if (cmd == 0xAD) { + char *edid = (char *)arg; + dlfb_edid(dev_info); + if (copy_to_user(edid, dev_info->edid, 128)) { + return -EFAULT; + } + return 0; + } - if (cmd == 0xAA || cmd == 0xAB) { + if (cmd == 0xAA || cmd == 0xAB || cmd == 0xAC) { + + area = (struct dloarea *)arg; if (area->x < 0) @@ -714,7 +726,6 @@ dlfb_probe(struct usb_interface *interface, const struct usb_device_id *id) { struct dlfb_data *dev_info; struct fb_info *info; - int i; int ret; char rbuf[4]; @@ -755,15 +766,7 @@ dlfb_probe(struct usb_interface *interface, const struct usb_device_id *id) printk("ret control msg 0: %d %x%x%x%x\n", ret, rbuf[0], rbuf[1], rbuf[2], rbuf[3]); - for (i = 0; i < 128; i++) { - ret = - usb_control_msg(dev_info->udev, - usb_rcvctrlpipe(dev_info->udev, 0), (0x02), - (0x80 | (0x02 << 5)), i << 8, 0xA1, rbuf, 2, - 0); - /* printk("ret control msg edid %d: %d [%d]\n",i, ret, rbuf[1]); */ - dev_info->edid[i] = rbuf[1]; - } + dlfb_edid(dev_info); info = framebuffer_alloc(sizeof(u32) * 256, &dev_info->udev->dev); @@ -775,6 +778,10 @@ dlfb_probe(struct usb_interface *interface, const struct usb_device_id *id) fb_parse_edid(dev_info->edid, &info->var); printk("EDID XRES %d YRES %d\n", info->var.xres, info->var.yres); + if (info->var.xres == 0 || info->var.yres == 0) { + info->var.xres = 800; + info->var.yres = 480; + } if (dlfb_set_video_mode(dev_info, info->var.xres, info->var.yres) != 0) goto out; @@ -828,7 +835,12 @@ dlfb_probe(struct usb_interface *interface, const struct usb_device_id *id) info->fix.smem_start = (unsigned long)info->screen_base; info->fix.smem_len = PAGE_ALIGN(dev_info->screen_size); - memcpy(info->fix.id, "DisplayLink FB", 14); + if (strlen(dev_info->udev->product) > 15) { + memcpy(info->fix.id, dev_info->udev->product, 15); + } + else { + memcpy(info->fix.id, dev_info->udev->product, strlen(dev_info->udev->product)); + } info->fix.type = FB_TYPE_PACKED_PIXELS; info->fix.visual = FB_VISUAL_TRUECOLOR; info->fix.accel = info->flags; diff --git a/recipes/libdlo/kernel-module-udlfb/udlfb.h b/recipes/libdlo/kernel-module-udlfb/udlfb.h index f0508628f0..d587088913 100644 --- a/recipes/libdlo/kernel-module-udlfb/udlfb.h +++ b/recipes/libdlo/kernel-module-udlfb/udlfb.h @@ -50,6 +50,24 @@ static void dlfb_bulk_callback(struct urb *urb) } +static void dlfb_edid(struct dlfb_data *dev_info) +{ + int i; + int ret; + char rbuf[2]; + + for (i = 0; i < 128; i++) { + ret = + usb_control_msg(dev_info->udev, + usb_rcvctrlpipe(dev_info->udev, 0), (0x02), + (0x80 | (0x02 << 5)), i << 8, 0xA1, rbuf, 2, + 0); + /*printk("ret control msg edid %d: %d [%d]\n",i, ret, rbuf[1]);*/ + dev_info->edid[i] = rbuf[1]; + } + +} + static int dlfb_bulk_msg(struct dlfb_data *dev_info, int len) { diff --git a/recipes/linux/linux-powerpc-fsl_git.bb b/recipes/linux/linux-powerpc-fsl_git.bb index 6d9ab5bbb5..60b7b0e5d5 100644 --- a/recipes/linux/linux-powerpc-fsl_git.bb +++ b/recipes/linux/linux-powerpc-fsl_git.bb @@ -3,12 +3,12 @@ require linux.inc -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-powerpc-fsl-git/${MACHINE}" +FILESPATHPKG =. "linux-powerpc-fsl-git/${MACHINE}:" SRCREV = "1406de8e11eb043681297adf86d6892ff8efc27a" PV = "2.6.30" -PR = "r3" +PR = "r4" SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git;protocol=git \ file://defconfig" diff --git a/recipes/sysklogd/sysklogd.inc b/recipes/sysklogd/sysklogd.inc index da05c0e02e..2fdc49c543 100644 --- a/recipes/sysklogd/sysklogd.inc +++ b/recipes/sysklogd/sysklogd.inc @@ -1,7 +1,6 @@ LICENSE = "GPL" SECTION = "base" -DESCRIPTION = "The sysklogd package implements \ -two system log daemons." +DESCRIPTION = "The sysklogd package implements two system log daemons." SRC_URI = "http://www.ibiblio.org/pub/Linux/system/daemons/sysklogd-${PV}.tar.gz \ file://nonrootinstall.patch;patch=1" diff --git a/recipes/sysklogd/sysklogd_1.5.bb b/recipes/sysklogd/sysklogd_1.5.bb index 31843d603f..37cfd7f28d 100644 --- a/recipes/sysklogd/sysklogd_1.5.bb +++ b/recipes/sysklogd/sysklogd_1.5.bb @@ -1 +1,4 @@ require sysklogd.inc +PR = "r1" + +SRC_URI += "file://no-strip-install.patch;patch=1" diff --git a/recipes/xorg-driver/xf86-video-displaylink_0.2.bb b/recipes/xorg-driver/xf86-video-displaylink_0.3.bb index 980439ce3b..5df8e9503d 100644 --- a/recipes/xorg-driver/xf86-video-displaylink_0.2.bb +++ b/recipes/xorg-driver/xf86-video-displaylink_0.3.bb @@ -4,6 +4,6 @@ DESCRIPTION = "X.Org X server -- displaylink driver" RRECOMMENDS_${PN} = "kernel-module-udlfb" -SRC_URI = "http://projects.unbit.it/downloads/xf86-video-displaylink_and_udlfb.tar.gz" +SRC_URI = "http://projects.unbit.it/downloads/udlfb-0.2.3_and_xf86-video-displaylink-${PV}.tar.gz" S = "${WORKDIR}/${PN}" |