diff --git a/CHANGELOG b/CHANGELOG index 37626b8d88..a1a91b7b77 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,6 +8,7 @@ Package updates: - update Python to Python-2.7.2 - update gcc to gcc-4.6.2 - update openssl to openssl-1.0.0e + - update xorg-server to xorg-server-1.11 Added functions: - PXE netboot support diff --git a/packages/audio/lame/meta b/packages/audio/lame/meta index 1f5ba7e132..cea02ca26a 100644 --- a/packages/audio/lame/meta +++ b/packages/audio/lame/meta @@ -19,12 +19,12 @@ ################################################################################ PKG_NAME="lame" -PKG_VERSION="3.99" +PKG_VERSION="3.99.2" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="LGPL" PKG_SITE="http://lame.sourceforge.net/" -PKG_URL="$SOURCEFORGE_SRC/lame/lame/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz" +PKG_URL="$SOURCEFORGE_SRC/lame/lame/3.99/$PKG_NAME-$PKG_VERSION.tar.gz" PKG_DEPENDS="" PKG_BUILD_DEPENDS="toolchain" PKG_PRIORITY="optional" diff --git a/packages/audio/lame/patches/lame-3.99-am_path_gtk.patch b/packages/audio/lame/patches/lame-3.99.2-am_path_gtk.patch similarity index 100% rename from packages/audio/lame/patches/lame-3.99-am_path_gtk.patch rename to packages/audio/lame/patches/lame-3.99.2-am_path_gtk.patch diff --git a/packages/audio/libcdio/build b/packages/audio/libcdio/build index 9a68be33ca..dbabdb82fe 100755 --- a/packages/audio/libcdio/build +++ b/packages/audio/libcdio/build @@ -27,30 +27,23 @@ cd $PKG_BUILD --build=$HOST_NAME \ --prefix=/usr \ --sysconfdir=/etc \ - --disable-static \ - --enable-shared \ - --disable-rpath \ --enable-cxx \ --disable-cpp-progs \ + --enable-shared \ + --disable-static \ --enable-joliet \ + --disable-rpath \ --enable-rock \ --disable-cddb \ --disable-vcd-info \ - --with-cd-drive \ - --with-cd-info \ + --without-cd-drive \ + --without-cd-info \ --with-cd-paranoia \ - --with-cdda_player \ - --with-cd-read \ - --with-iso-info \ - --with-iso-read \ - --without-versioned-libs \ - --with-libiconv-prefix="$SYSROOT_PREFIX/usr" \ + --without-cdda-player \ + --without-cd-read \ + --without-iso-info \ + --without-iso-read \ + --with-gnu-ld -make -C lib -make -C include - -$MAKEINSTALL -C lib -$MAKEINSTALL -C include - -mkdir -p $SYSROOT_PREFIX/usr/lib/pkgconfig - cp *.pc $SYSROOT_PREFIX/usr/lib/pkgconfig +make +$MAKEINSTALL diff --git a/packages/audio/libcdio/meta b/packages/audio/libcdio/meta index aba84e89d9..e585dea14b 100644 --- a/packages/audio/libcdio/meta +++ b/packages/audio/libcdio/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="libcdio" -PKG_VERSION="0.82" +PKG_VERSION="0.83" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/linux/meta b/packages/linux/meta index ba4a5f46c6..b31b16db3f 100644 --- a/packages/linux/meta +++ b/packages/linux/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="linux" -PKG_VERSION="3.1" +PKG_VERSION="3.1.4" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/linux/patches/linux-3.1-060-fix_dib0700_buffer_access-0.1.patch b/packages/linux/patches/linux-3.1-060-fix_dib0700_buffer_access-0.1.patch deleted file mode 100644 index 03c807b5ec..0000000000 --- a/packages/linux/patches/linux-3.1-060-fix_dib0700_buffer_access-0.1.patch +++ /dev/null @@ -1,1346 +0,0 @@ -diff -Naur linux-3.0.1/drivers/media/dvb/dvb-usb/dib0700_core.c linux-3.0.1.patch/drivers/media/dvb/dvb-usb/dib0700_core.c ---- linux-3.0.1/drivers/media/dvb/dvb-usb/dib0700_core.c 2011-08-05 06:59:21.000000000 +0200 -+++ linux-3.0.1.patch/drivers/media/dvb/dvb-usb/dib0700_core.c 2011-08-07 11:10:34.034360743 +0200 -@@ -30,6 +30,11 @@ - struct dib0700_state *st = d->priv; - int ret; - -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ err("could not acquire lock"); -+ return 0; -+ } -+ - ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), - REQUEST_GET_VERSION, - USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, -@@ -46,6 +51,7 @@ - if (fwtype != NULL) - *fwtype = (st->buf[12] << 24) | (st->buf[13] << 16) | - (st->buf[14] << 8) | st->buf[15]; -+ mutex_unlock(&d->usb_mutex); - return ret; - } - -@@ -108,7 +114,12 @@ - int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_dir, u8 gpio_val) - { - struct dib0700_state *st = d->priv; -- s16 ret; -+ int ret; -+ -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ err("could not acquire lock"); -+ return 0; -+ } - - st->buf[0] = REQUEST_SET_GPIO; - st->buf[1] = gpio; -@@ -116,6 +127,7 @@ - - ret = dib0700_ctrl_wr(d, st->buf, 3); - -+ mutex_unlock(&d->usb_mutex); - return ret; - } - -@@ -125,6 +137,11 @@ - int ret; - - if (st->fw_version >= 0x10201) { -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ err("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_SET_USB_XFER_LEN; - st->buf[1] = (nb_ts_packets >> 8) & 0xff; - st->buf[2] = nb_ts_packets & 0xff; -@@ -132,6 +149,7 @@ - deb_info("set the USB xfer len to %i Ts packet\n", nb_ts_packets); - - ret = dib0700_ctrl_wr(d, st->buf, 3); -+ mutex_unlock(&d->usb_mutex); - } else { - deb_info("this firmware does not allow to change the USB xfer len\n"); - ret = -EIO; -@@ -208,6 +226,10 @@ - - } else { - /* Write request */ -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ err("could not acquire lock"); -+ return 0; -+ } - st->buf[0] = REQUEST_NEW_I2C_WRITE; - st->buf[1] = msg[i].addr << 1; - st->buf[2] = (en_start << 7) | (en_stop << 6) | -@@ -227,6 +249,7 @@ - USB_TYPE_VENDOR | USB_DIR_OUT, - 0, 0, st->buf, msg[i].len + 4, - USB_CTRL_GET_TIMEOUT); -+ mutex_unlock(&d->usb_mutex); - if (result < 0) { - deb_info("i2c write error (status = %d)\n", result); - break; -@@ -249,6 +272,10 @@ - - if (mutex_lock_interruptible(&d->i2c_mutex) < 0) - return -EAGAIN; -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ err("could not acquire lock"); -+ return 0; -+ } - - for (i = 0; i < num; i++) { - /* fill in the address */ -@@ -279,6 +306,7 @@ - break; - } - } -+ mutex_unlock(&d->usb_mutex); - mutex_unlock(&d->i2c_mutex); - - return i; -@@ -337,7 +365,12 @@ - u16 pll_loopdiv, u16 free_div, u16 dsuScaler) - { - struct dib0700_state *st = d->priv; -- s16 ret; -+ int ret; -+ -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ err("could not acquire lock"); -+ return 0; -+ } - - st->buf[0] = REQUEST_SET_CLOCK; - st->buf[1] = (en_pll << 7) | (pll_src << 6) | -@@ -352,6 +385,7 @@ - st->buf[9] = dsuScaler & 0xff; /* LSB */ - - ret = dib0700_ctrl_wr(d, st->buf, 10); -+ mutex_unlock(&d->usb_mutex); - - return ret; - } -@@ -360,10 +394,16 @@ - { - struct dib0700_state *st = d->priv; - u16 divider; -+ int ret; - - if (scl_kHz == 0) - return -EINVAL; - -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ err("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_SET_I2C_PARAM; - divider = (u16) (30000 / scl_kHz); - st->buf[1] = 0; -@@ -379,7 +419,11 @@ - deb_info("setting I2C speed: %04x %04x %04x (%d kHz).", - (st->buf[2] << 8) | (st->buf[3]), (st->buf[4] << 8) | - st->buf[5], (st->buf[6] << 8) | st->buf[7], scl_kHz); -- return dib0700_ctrl_wr(d, st->buf, 8); -+ -+ ret = dib0700_ctrl_wr(d, st->buf, 8); -+ mutex_unlock(&d->usb_mutex); -+ -+ return ret; - } - - -@@ -515,6 +559,11 @@ - } - } - -+ if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) { -+ err("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_ENABLE_VIDEO; - /* this bit gives a kind of command, - * rather than enabling something or not */ -@@ -548,7 +597,10 @@ - - deb_info("data for streaming: %x %x\n", st->buf[1], st->buf[2]); - -- return dib0700_ctrl_wr(adap->dev, st->buf, 4); -+ ret = dib0700_ctrl_wr(adap->dev, st->buf, 4); -+ mutex_unlock(&adap->dev->usb_mutex); -+ -+ return ret; - } - - int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) -@@ -557,6 +609,11 @@ - struct dib0700_state *st = d->priv; - int new_proto, ret; - -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ err("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_SET_RC; - st->buf[1] = 0; - st->buf[2] = 0; -@@ -567,23 +624,29 @@ - else if (rc_type == RC_TYPE_NEC) - new_proto = 0; - else if (rc_type == RC_TYPE_RC6) { -- if (st->fw_version < 0x10200) -- return -EINVAL; -+ if (st->fw_version < 0x10200) { -+ ret = -EINVAL; -+ goto out; -+ } - - new_proto = 2; -- } else -- return -EINVAL; -+ } else { -+ ret = -EINVAL; -+ goto out; -+ } - - st->buf[1] = new_proto; - - ret = dib0700_ctrl_wr(d, st->buf, 3); - if (ret < 0) { - err("ir protocol setup failed"); -- return ret; -+ goto out; - } - - d->props.rc.core.protocol = rc_type; - -+out: -+ mutex_unlock(&d->usb_mutex); - return ret; - } - -diff -Naur linux-3.0.1/drivers/media/dvb/frontends/dib0070.c linux-3.0.1.patch/drivers/media/dvb/frontends/dib0070.c ---- linux-3.0.1/drivers/media/dvb/frontends/dib0070.c 2011-08-05 06:59:21.000000000 +0200 -+++ linux-3.0.1.patch/drivers/media/dvb/frontends/dib0070.c 2011-08-07 11:10:22.886224030 +0200 -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - #include "dvb_frontend.h" - -@@ -78,10 +79,18 @@ - struct i2c_msg msg[2]; - u8 i2c_write_buffer[3]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - --static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg) -+static u16 dib0070_read_reg(struct dib0070_state *state, u8 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg; - - memset(state->msg, 0, 2 * sizeof(struct i2c_msg)); -@@ -96,13 +105,23 @@ - - if (i2c_transfer(state->i2c, state->msg, 2) != 2) { - printk(KERN_WARNING "DiB0070 I2C read failed\n"); -- return 0; -- } -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = 0; -+ } else -+ ret = (state->i2c_read_buffer[0] << 8) -+ | state->i2c_read_buffer[1]; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } - state->i2c_write_buffer[0] = reg; - state->i2c_write_buffer[1] = val >> 8; - state->i2c_write_buffer[2] = val & 0xff; -@@ -115,9 +134,12 @@ - - if (i2c_transfer(state->i2c, state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0070 I2C write failed\n"); -- return -EREMOTEIO; -- } -- return 0; -+ ret = -EREMOTEIO; -+ } else -+ ret = 0; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - #define HARD_RESET(state) do { \ -@@ -734,6 +756,7 @@ - state->cfg = cfg; - state->i2c = i2c; - state->fe = fe; -+ mutex_init(&state->i2c_buffer_lock); - fe->tuner_priv = state; - - if (dib0070_reset(fe) != 0) -diff -Naur linux-3.0.1/drivers/media/dvb/frontends/dib0090.c linux-3.0.1.patch/drivers/media/dvb/frontends/dib0090.c ---- linux-3.0.1/drivers/media/dvb/frontends/dib0090.c 2011-08-05 06:59:21.000000000 +0200 -+++ linux-3.0.1.patch/drivers/media/dvb/frontends/dib0090.c 2011-08-07 11:10:22.888224054 +0200 -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - #include "dvb_frontend.h" - -@@ -196,6 +197,7 @@ - struct i2c_msg msg[2]; - u8 i2c_write_buffer[3]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - struct dib0090_fw_state { -@@ -208,10 +210,18 @@ - struct i2c_msg msg; - u8 i2c_write_buffer[2]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg; - - memset(state->msg, 0, 2 * sizeof(struct i2c_msg)); -@@ -226,14 +236,24 @@ - - if (i2c_transfer(state->i2c, state->msg, 2) != 2) { - printk(KERN_WARNING "DiB0090 I2C read failed\n"); -- return 0; -- } -+ ret = 0; -+ } else -+ ret = (state->i2c_read_buffer[0] << 8) -+ | state->i2c_read_buffer[1]; - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = reg & 0xff; - state->i2c_write_buffer[1] = val >> 8; - state->i2c_write_buffer[2] = val & 0xff; -@@ -246,13 +266,23 @@ - - if (i2c_transfer(state->i2c, state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0090 I2C write failed\n"); -- return -EREMOTEIO; -- } -- return 0; -+ ret = -EREMOTEIO; -+ } else -+ ret = 0; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg; - - memset(&state->msg, 0, sizeof(struct i2c_msg)); -@@ -262,13 +292,24 @@ - state->msg.len = 2; - if (i2c_transfer(state->i2c, &state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0090 I2C read failed\n"); -- return 0; -- } -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = 0; -+ } else -+ ret = (state->i2c_read_buffer[0] << 8) -+ | state->i2c_read_buffer[1]; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = val >> 8; - state->i2c_write_buffer[1] = val & 0xff; - -@@ -279,9 +320,12 @@ - state->msg.len = 2; - if (i2c_transfer(state->i2c, &state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0090 I2C write failed\n"); -- return -EREMOTEIO; -- } -- return 0; -+ ret = -EREMOTEIO; -+ } else -+ ret = 0; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - #define HARD_RESET(state) do { if (cfg->reset) { if (cfg->sleep) cfg->sleep(fe, 0); msleep(10); cfg->reset(fe, 1); msleep(10); cfg->reset(fe, 0); msleep(10); } } while (0) -@@ -2440,6 +2484,7 @@ - st->config = config; - st->i2c = i2c; - st->fe = fe; -+ mutex_init(&st->i2c_buffer_lock); - fe->tuner_priv = st; - - if (config->wbd == NULL) -@@ -2471,6 +2516,7 @@ - st->config = config; - st->i2c = i2c; - st->fe = fe; -+ mutex_init(&st->i2c_buffer_lock); - fe->tuner_priv = st; - - if (dib0090_fw_reset_digital(fe, st->config) != 0) -diff -Naur linux-3.0.1/drivers/media/dvb/frontends/dib7000m.c linux-3.0.1.patch/drivers/media/dvb/frontends/dib7000m.c ---- linux-3.0.1/drivers/media/dvb/frontends/dib7000m.c 2011-08-05 06:59:21.000000000 +0200 -+++ linux-3.0.1.patch/drivers/media/dvb/frontends/dib7000m.c 2011-08-07 11:10:22.896224153 +0200 -@@ -11,6 +11,7 @@ - #include - #include - #include -+#include - - #include "dvb_frontend.h" - -@@ -55,6 +56,7 @@ - struct i2c_msg msg[2]; - u8 i2c_write_buffer[4]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - enum dib7000m_power_mode { -@@ -69,6 +71,13 @@ - - static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) | 0x80; - state->i2c_write_buffer[1] = reg & 0xff; - -@@ -85,11 +94,21 @@ - if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2) - dprintk("i2c read error on %d",reg); - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ -+ return ret; - } - - static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) & 0xff; - state->i2c_write_buffer[1] = reg & 0xff; - state->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -101,7 +120,10 @@ - state->msg[0].buf = state->i2c_write_buffer; - state->msg[0].len = 4; - -- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -+ -EREMOTEIO : 0); -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - static void dib7000m_write_tab(struct dib7000m_state *state, u16 *buf) - { -@@ -1385,6 +1407,7 @@ - demod = &st->demod; - demod->demodulator_priv = st; - memcpy(&st->demod.ops, &dib7000m_ops, sizeof(struct dvb_frontend_ops)); -+ mutex_init(&st->i2c_buffer_lock); - - st->timf_default = cfg->bw->timf; - -diff -Naur linux-3.0.1/drivers/media/dvb/frontends/dib7000p.c linux-3.0.1.patch/drivers/media/dvb/frontends/dib7000p.c ---- linux-3.0.1/drivers/media/dvb/frontends/dib7000p.c 2011-08-05 06:59:21.000000000 +0200 -+++ linux-3.0.1.patch/drivers/media/dvb/frontends/dib7000p.c 2011-08-07 11:10:22.897224165 +0200 -@@ -10,6 +10,7 @@ - #include - #include - #include -+#include - - #include "dvb_math.h" - #include "dvb_frontend.h" -@@ -68,6 +69,7 @@ - struct i2c_msg msg[2]; - u8 i2c_write_buffer[4]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - enum dib7000p_power_mode { -@@ -81,6 +83,13 @@ - - static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg >> 8; - state->i2c_write_buffer[1] = reg & 0xff; - -@@ -97,11 +106,20 @@ - if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) & 0xff; - state->i2c_write_buffer[1] = reg & 0xff; - state->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -113,7 +131,10 @@ - state->msg[0].buf = state->i2c_write_buffer; - state->msg[0].len = 4; - -- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -+ -EREMOTEIO : 0); -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static void dib7000p_write_tab(struct dib7000p_state *state, u16 * buf) -@@ -1646,6 +1667,7 @@ - return -ENOMEM; - - dpst->i2c_adap = i2c; -+ mutex_init(&dpst->i2c_buffer_lock); - - for (k = no_of_demods - 1; k >= 0; k--) { - dpst->cfg = cfg[k]; -@@ -2324,6 +2346,7 @@ - demod = &st->demod; - demod->demodulator_priv = st; - memcpy(&st->demod.ops, &dib7000p_ops, sizeof(struct dvb_frontend_ops)); -+ mutex_init(&st->i2c_buffer_lock); - - dib7000p_write_word(st, 1287, 0x0003); /* sram lead in, rdy */ - -@@ -2333,8 +2356,9 @@ - st->version = dib7000p_read_word(st, 897); - - /* FIXME: make sure the dev.parent field is initialized, or else -- request_firmware() will hit an OOPS (this should be moved somewhere -- more common) */ -+ request_firmware() will hit an OOPS (this should be moved somewhere -+ more common) */ -+ st->i2c_master.gated_tuner_i2c_adap.dev.parent = i2c_adap->dev.parent; - - dibx000_init_i2c_master(&st->i2c_master, DIB7000P, st->i2c_adap, st->i2c_addr); - -diff -Naur linux-3.0.1/drivers/media/dvb/frontends/dib8000.c linux-3.0.1.patch/drivers/media/dvb/frontends/dib8000.c ---- linux-3.0.1/drivers/media/dvb/frontends/dib8000.c 2011-08-05 06:59:21.000000000 +0200 -+++ linux-3.0.1.patch/drivers/media/dvb/frontends/dib8000.c 2011-08-07 11:10:22.899224189 +0200 -@@ -10,6 +10,8 @@ - #include - #include - #include -+#include -+ - #include "dvb_math.h" - - #include "dvb_frontend.h" -@@ -37,6 +39,7 @@ - u8 addr; - u8 *i2c_write_buffer; - u8 *i2c_read_buffer; -+ struct mutex *i2c_buffer_lock; - }; - - struct dib8000_state { -@@ -77,6 +80,7 @@ - struct i2c_msg msg[2]; - u8 i2c_write_buffer[4]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - enum dib8000_power_mode { -@@ -86,24 +90,39 @@ - - static u16 dib8000_i2c_read16(struct i2c_device *i2c, u16 reg) - { -+ u16 ret; - struct i2c_msg msg[2] = { -- {.addr = i2c->addr >> 1, .flags = 0, -- .buf = i2c->i2c_write_buffer, .len = 2}, -- {.addr = i2c->addr >> 1, .flags = I2C_M_RD, -- .buf = i2c->i2c_read_buffer, .len = 2}, -+ {.addr = i2c->addr >> 1, .flags = 0, .len = 2}, -+ {.addr = i2c->addr >> 1, .flags = I2C_M_RD, .len = 2}, - }; - -+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ -+ msg[0].buf = i2c->i2c_write_buffer; - msg[0].buf[0] = reg >> 8; - msg[0].buf[1] = reg & 0xff; -+ msg[1].buf = i2c->i2c_read_buffer; - - if (i2c_transfer(i2c->adap, msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (msg[1].buf[0] << 8) | msg[1].buf[1]; -+ ret = (msg[1].buf[0] << 8) | msg[1].buf[1]; -+ mutex_unlock(i2c->i2c_buffer_lock); -+ return ret; - } - - static u16 dib8000_read_word(struct dib8000_state *state, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg >> 8; - state->i2c_write_buffer[1] = reg & 0xff; - -@@ -120,7 +139,10 @@ - if (i2c_transfer(state->i2c.adap, state->msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ -+ return ret; - } - - static u32 dib8000_read32(struct dib8000_state *state, u16 reg) -@@ -135,22 +157,35 @@ - - static int dib8000_i2c_write16(struct i2c_device *i2c, u16 reg, u16 val) - { -- struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, -- .buf = i2c->i2c_write_buffer, .len = 4}; -+ struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, .len = 4}; - int ret = 0; - -+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ -+ msg.buf = i2c->i2c_write_buffer; - msg.buf[0] = (reg >> 8) & 0xff; - msg.buf[1] = reg & 0xff; - msg.buf[2] = (val >> 8) & 0xff; - msg.buf[3] = val & 0xff; - - ret = i2c_transfer(i2c->adap, &msg, 1) != 1 ? -EREMOTEIO : 0; -+ mutex_unlock(i2c->i2c_buffer_lock); - - return ret; - } - - static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) & 0xff; - state->i2c_write_buffer[1] = reg & 0xff; - state->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -162,7 +197,11 @@ - state->msg[0].buf = state->i2c_write_buffer; - state->msg[0].len = 4; - -- return i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = (i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? -+ -EREMOTEIO : 0); -+ mutex_unlock(&state->i2c_buffer_lock); -+ -+ return ret; - } - - static const s16 coeff_2k_sb_1seg_dqpsk[8] = { -@@ -2434,8 +2473,15 @@ - if (!client.i2c_read_buffer) { - dprintk("%s: not enough memory", __func__); - ret = -ENOMEM; -- goto error_memory; -+ goto error_memory_read; -+ } -+ client.i2c_buffer_lock = kzalloc(sizeof(struct mutex), GFP_KERNEL); -+ if (!client.i2c_buffer_lock) { -+ dprintk("%s: not enough memory", __func__); -+ ret = -ENOMEM; -+ goto error_memory_lock; - } -+ mutex_init(client.i2c_buffer_lock); - - for (k = no_of_demods - 1; k >= 0; k--) { - /* designated i2c address */ -@@ -2476,8 +2522,10 @@ - } - - error: -+ kfree(client.i2c_buffer_lock); -+error_memory_lock: - kfree(client.i2c_read_buffer); --error_memory: -+error_memory_read: - kfree(client.i2c_write_buffer); - - return ret; -@@ -2581,6 +2629,8 @@ - state->i2c.addr = i2c_addr; - state->i2c.i2c_write_buffer = state->i2c_write_buffer; - state->i2c.i2c_read_buffer = state->i2c_read_buffer; -+ mutex_init(&state->i2c_buffer_lock); -+ state->i2c.i2c_buffer_lock = &state->i2c_buffer_lock; - state->gpio_val = cfg->gpio_val; - state->gpio_dir = cfg->gpio_dir; - -diff -Naur linux-3.0.1/drivers/media/dvb/frontends/dib9000.c linux-3.0.1.patch/drivers/media/dvb/frontends/dib9000.c ---- linux-3.0.1/drivers/media/dvb/frontends/dib9000.c 2011-08-05 06:59:21.000000000 +0200 -+++ linux-3.0.1.patch/drivers/media/dvb/frontends/dib9000.c 2011-08-07 11:10:22.901224213 +0200 -@@ -38,6 +38,15 @@ - #define DibInitLock(lock) mutex_init(lock) - #define DibFreeLock(lock) - -+struct dib9000_pid_ctrl { -+#define DIB9000_PID_FILTER_CTRL 0 -+#define DIB9000_PID_FILTER 1 -+ u8 cmd; -+ u8 id; -+ u16 pid; -+ u8 onoff; -+}; -+ - struct dib9000_state { - struct i2c_device i2c; - -@@ -99,6 +108,10 @@ - struct i2c_msg msg[2]; - u8 i2c_write_buffer[255]; - u8 i2c_read_buffer[255]; -+ DIB_LOCK demod_lock; -+ u8 get_frontend_internal; -+ struct dib9000_pid_ctrl pid_ctrl[10]; -+ s8 pid_ctrl_index; /* -1: empty list; -2: do not use the list */ - }; - - static const u32 fe_info[44] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -@@ -1743,19 +1756,56 @@ - int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff) - { - struct dib9000_state *state = fe->demodulator_priv; -- u16 val = dib9000_read_word(state, 294 + 1) & 0xffef; -+ u16 val; -+ int ret; -+ -+ if ((state->pid_ctrl_index != -2) && (state->pid_ctrl_index < 9)) { -+ /* postpone the pid filtering cmd */ -+ dprintk("pid filter cmd postpone"); -+ state->pid_ctrl_index++; -+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER_CTRL; -+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff; -+ return 0; -+ } -+ -+ DibAcquireLock(&state->demod_lock); -+ -+ val = dib9000_read_word(state, 294 + 1) & 0xffef; - val |= (onoff & 0x1) << 4; - - dprintk("PID filter enabled %d", onoff); -- return dib9000_write_word(state, 294 + 1, val); -+ ret = dib9000_write_word(state, 294 + 1, val); -+ DibReleaseLock(&state->demod_lock); -+ return ret; -+ - } - EXPORT_SYMBOL(dib9000_fw_pid_filter_ctrl); - - int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff) - { - struct dib9000_state *state = fe->demodulator_priv; -+ int ret; -+ -+ if (state->pid_ctrl_index != -2) { -+ /* postpone the pid filtering cmd */ -+ dprintk("pid filter postpone"); -+ if (state->pid_ctrl_index < 9) { -+ state->pid_ctrl_index++; -+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER; -+ state->pid_ctrl[state->pid_ctrl_index].id = id; -+ state->pid_ctrl[state->pid_ctrl_index].pid = pid; -+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff; -+ } else -+ dprintk("can not add any more pid ctrl cmd"); -+ return 0; -+ } -+ -+ DibAcquireLock(&state->demod_lock); - dprintk("Index %x, PID %d, OnOff %d", id, pid, onoff); -- return dib9000_write_word(state, 300 + 1 + id, onoff ? (1 << 13) | pid : 0); -+ ret = dib9000_write_word(state, 300 + 1 + id, -+ onoff ? (1 << 13) | pid : 0); -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - EXPORT_SYMBOL(dib9000_fw_pid_filter); - -@@ -1778,6 +1828,7 @@ - DibFreeLock(&state->platform.risc.mbx_lock); - DibFreeLock(&state->platform.risc.mem_lock); - DibFreeLock(&state->platform.risc.mem_mbx_lock); -+ DibFreeLock(&state->demod_lock); - dibx000_exit_i2c_master(&st->i2c_master); - - i2c_del_adapter(&st->tuner_adap); -@@ -1795,14 +1846,19 @@ - { - struct dib9000_state *state = fe->demodulator_priv; - u8 index_frontend; -- int ret; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { - ret = state->fe[index_frontend]->ops.sleep(state->fe[index_frontend]); - if (ret < 0) -- return ret; -+ goto error; - } -- return dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0); -+ ret = dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0); -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static int dib9000_fe_get_tune_settings(struct dvb_frontend *fe, struct dvb_frontend_tune_settings *tune) -@@ -1816,7 +1872,10 @@ - struct dib9000_state *state = fe->demodulator_priv; - u8 index_frontend, sub_index_frontend; - fe_status_t stat; -- int ret; -+ int ret = 0; -+ -+ if (state->get_frontend_internal == 0) -+ DibAcquireLock(&state->demod_lock); - - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { - state->fe[index_frontend]->ops.read_status(state->fe[index_frontend], &stat); -@@ -1846,14 +1905,15 @@ - state->fe[index_frontend]->dtv_property_cache.rolloff; - } - } -- return 0; -+ ret = 0; -+ goto return_value; - } - } - - /* get the channel from master chip */ - ret = dib9000_fw_get_channel(fe, fep); - if (ret != 0) -- return ret; -+ goto return_value; - - /* synchronize the cache with the other frontends */ - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { -@@ -1866,8 +1926,12 @@ - state->fe[index_frontend]->dtv_property_cache.code_rate_LP = fe->dtv_property_cache.code_rate_LP; - state->fe[index_frontend]->dtv_property_cache.rolloff = fe->dtv_property_cache.rolloff; - } -+ ret = 0; - -- return 0; -+return_value: -+ if (state->get_frontend_internal == 0) -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static int dib9000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state) -@@ -1912,6 +1976,10 @@ - dprintk("dib9000: must specify bandwidth "); - return 0; - } -+ -+ state->pid_ctrl_index = -1; /* postpone the pid filtering cmd */ -+ DibAcquireLock(&state->demod_lock); -+ - fe->dtv_property_cache.delivery_system = SYS_DVBT; - - /* set the master status */ -@@ -1974,13 +2042,18 @@ - /* check the tune result */ - if (exit_condition == 1) { /* tune failed */ - dprintk("tune failed"); -+ DibReleaseLock(&state->demod_lock); -+ /* tune failed; put all the pid filtering cmd to junk */ -+ state->pid_ctrl_index = -1; - return 0; - } - - dprintk("tune success on frontend%i", index_frontend_success); - - /* synchronize all the channel cache */ -+ state->get_frontend_internal = 1; - dib9000_get_frontend(state->fe[0], fep); -+ state->get_frontend_internal = 0; - - /* retune the other frontends with the found channel */ - channel_status.status = CHANNEL_STATUS_PARAMETERS_SET; -@@ -2025,6 +2098,28 @@ - /* turn off the diversity for the last frontend */ - dib9000_fw_set_diversity_in(state->fe[index_frontend - 1], 0); - -+ DibReleaseLock(&state->demod_lock); -+ if (state->pid_ctrl_index >= 0) { -+ u8 index_pid_filter_cmd; -+ u8 pid_ctrl_index = state->pid_ctrl_index; -+ -+ state->pid_ctrl_index = -2; -+ for (index_pid_filter_cmd = 0; -+ index_pid_filter_cmd <= pid_ctrl_index; -+ index_pid_filter_cmd++) { -+ if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER_CTRL) -+ dib9000_fw_pid_filter_ctrl(state->fe[0], -+ state->pid_ctrl[index_pid_filter_cmd].onoff); -+ else if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER) -+ dib9000_fw_pid_filter(state->fe[0], -+ state->pid_ctrl[index_pid_filter_cmd].id, -+ state->pid_ctrl[index_pid_filter_cmd].pid, -+ state->pid_ctrl[index_pid_filter_cmd].onoff); -+ } -+ } -+ /* do not postpone any more the pid filtering */ -+ state->pid_ctrl_index = -2; -+ - return 0; - } - -@@ -2041,6 +2136,7 @@ - u8 index_frontend; - u16 lock = 0, lock_slave = 0; - -+ DibAcquireLock(&state->demod_lock); - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) - lock_slave |= dib9000_read_lock(state->fe[index_frontend]); - -@@ -2059,6 +2155,8 @@ - if ((lock & 0x0008) || (lock_slave & 0x0008)) - *stat |= FE_HAS_LOCK; - -+ DibReleaseLock(&state->demod_lock); -+ - return 0; - } - -@@ -2066,10 +2164,14 @@ - { - struct dib9000_state *state = fe->demodulator_priv; - u16 *c; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - DibAcquireLock(&state->platform.risc.mem_mbx_lock); -- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) -- return -EIO; -+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { -+ ret = -EIO; -+ goto error; -+ } - dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, - state->i2c_read_buffer, 16 * 2); - DibReleaseLock(&state->platform.risc.mem_mbx_lock); -@@ -2077,7 +2179,10 @@ - c = (u16 *)state->i2c_read_buffer; - - *ber = c[10] << 16 | c[11]; -- return 0; -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) -@@ -2086,7 +2191,9 @@ - u8 index_frontend; - u16 *c = (u16 *)state->i2c_read_buffer; - u16 val; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - *strength = 0; - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { - state->fe[index_frontend]->ops.read_signal_strength(state->fe[index_frontend], &val); -@@ -2097,8 +2204,10 @@ - } - - DibAcquireLock(&state->platform.risc.mem_mbx_lock); -- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) -- return -EIO; -+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { -+ ret = -EIO; -+ goto error; -+ } - dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2); - DibReleaseLock(&state->platform.risc.mem_mbx_lock); - -@@ -2107,7 +2216,10 @@ - *strength = 65535; - else - *strength += val; -- return 0; -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static u32 dib9000_get_snr(struct dvb_frontend *fe) -@@ -2151,6 +2263,7 @@ - u8 index_frontend; - u32 snr_master; - -+ DibAcquireLock(&state->demod_lock); - snr_master = dib9000_get_snr(fe); - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) - snr_master += dib9000_get_snr(state->fe[index_frontend]); -@@ -2161,6 +2274,8 @@ - } else - *snr = 0; - -+ DibReleaseLock(&state->demod_lock); -+ - return 0; - } - -@@ -2168,15 +2283,22 @@ - { - struct dib9000_state *state = fe->demodulator_priv; - u16 *c = (u16 *)state->i2c_read_buffer; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - DibAcquireLock(&state->platform.risc.mem_mbx_lock); -- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) -- return -EIO; -+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { -+ ret = -EIO; -+ goto error; -+ } - dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2); - DibReleaseLock(&state->platform.risc.mem_mbx_lock); - - *unc = c[12]; -- return 0; -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - int dib9000_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 default_addr, u8 first_addr) -@@ -2322,6 +2444,10 @@ - DibInitLock(&st->platform.risc.mbx_lock); - DibInitLock(&st->platform.risc.mem_lock); - DibInitLock(&st->platform.risc.mem_mbx_lock); -+ DibInitLock(&st->demod_lock); -+ st->get_frontend_internal = 0; -+ -+ st->pid_ctrl_index = -2; - - st->fe[0] = fe; - fe->demodulator_priv = st; -diff -Naur linux-3.0.1/drivers/media/dvb/frontends/dibx000_common.c linux-3.0.1.patch/drivers/media/dvb/frontends/dibx000_common.c ---- linux-3.0.1/drivers/media/dvb/frontends/dibx000_common.c 2011-08-05 06:59:21.000000000 +0200 -+++ linux-3.0.1.patch/drivers/media/dvb/frontends/dibx000_common.c 2011-08-07 11:10:22.903224237 +0200 -@@ -1,4 +1,5 @@ - #include -+#include - - #include "dibx000_common.h" - -@@ -10,6 +11,13 @@ - - static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - mst->i2c_write_buffer[0] = (reg >> 8) & 0xff; - mst->i2c_write_buffer[1] = reg & 0xff; - mst->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -21,11 +29,21 @@ - mst->msg[0].buf = mst->i2c_write_buffer; - mst->msg[0].len = 4; - -- return i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0; -+ mutex_unlock(&mst->i2c_buffer_lock); -+ -+ return ret; - } - - static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - mst->i2c_write_buffer[0] = reg >> 8; - mst->i2c_write_buffer[1] = reg & 0xff; - -@@ -42,7 +60,10 @@ - if (i2c_transfer(mst->i2c_adap, mst->msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1]; -+ ret = (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1]; -+ mutex_unlock(&mst->i2c_buffer_lock); -+ -+ return ret; - } - - static int dibx000_is_i2c_done(struct dibx000_i2c_master *mst) -@@ -257,6 +278,7 @@ - struct i2c_msg msg[], int num) - { - struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap); -+ int ret; - - if (num > 32) { - dprintk("%s: too much I2C message to be transmitted (%i).\ -@@ -264,10 +286,15 @@ - return -ENOMEM; - } - -- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -- - dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_GPIO_6_7); - -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ -+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -+ - /* open the gate */ - dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1); - mst->msg[0].addr = mst->i2c_addr; -@@ -282,7 +309,11 @@ - mst->msg[num + 1].buf = &mst->i2c_write_buffer[4]; - mst->msg[num + 1].len = 4; - -- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO; -+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? -+ num : -EIO); -+ -+ mutex_unlock(&mst->i2c_buffer_lock); -+ return ret; - } - - static struct i2c_algorithm dibx000_i2c_gated_gpio67_algo = { -@@ -294,6 +325,7 @@ - struct i2c_msg msg[], int num) - { - struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap); -+ int ret; - - if (num > 32) { - dprintk("%s: too much I2C message to be transmitted (%i).\ -@@ -301,10 +333,14 @@ - return -ENOMEM; - } - -- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -- - dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_TUNER); - -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -+ - /* open the gate */ - dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1); - mst->msg[0].addr = mst->i2c_addr; -@@ -319,7 +355,10 @@ - mst->msg[num + 1].buf = &mst->i2c_write_buffer[4]; - mst->msg[num + 1].len = 4; - -- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO; -+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? -+ num : -EIO); -+ mutex_unlock(&mst->i2c_buffer_lock); -+ return ret; - } - - static struct i2c_algorithm dibx000_i2c_gated_tuner_algo = { -@@ -390,8 +429,18 @@ - int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev, - struct i2c_adapter *i2c_adap, u8 i2c_addr) - { -- u8 tx[4]; -- struct i2c_msg m = {.addr = i2c_addr >> 1,.buf = tx,.len = 4 }; -+ int ret; -+ -+ mutex_init(&mst->i2c_buffer_lock); -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ memset(mst->msg, 0, sizeof(struct i2c_msg)); -+ mst->msg[0].addr = i2c_addr >> 1; -+ mst->msg[0].flags = 0; -+ mst->msg[0].buf = mst->i2c_write_buffer; -+ mst->msg[0].len = 4; - - mst->device_rev = device_rev; - mst->i2c_adap = i2c_adap; -@@ -431,9 +480,12 @@ - "DiBX000: could not initialize the master i2c_adapter\n"); - - /* initialize the i2c-master by closing the gate */ -- dibx000_i2c_gate_ctrl(mst, tx, 0, 0); -+ dibx000_i2c_gate_ctrl(mst, mst->i2c_write_buffer, 0, 0); -+ -+ ret = (i2c_transfer(i2c_adap, mst->msg, 1) == 1); -+ mutex_unlock(&mst->i2c_buffer_lock); - -- return i2c_transfer(i2c_adap, &m, 1) == 1; -+ return ret; - } - - EXPORT_SYMBOL(dibx000_init_i2c_master); -diff -Naur linux-3.0.1/drivers/media/dvb/frontends/dibx000_common.h linux-3.0.1.patch/drivers/media/dvb/frontends/dibx000_common.h ---- linux-3.0.1/drivers/media/dvb/frontends/dibx000_common.h 2011-08-05 06:59:21.000000000 +0200 -+++ linux-3.0.1.patch/drivers/media/dvb/frontends/dibx000_common.h 2011-08-07 11:10:22.904224250 +0200 -@@ -33,6 +33,7 @@ - struct i2c_msg msg[34]; - u8 i2c_write_buffer[8]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - extern int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, diff --git a/packages/linux/patches/linux-3.1-000_crosscompile.patch b/packages/linux/patches/linux-3.1.4-000_crosscompile.patch similarity index 100% rename from packages/linux/patches/linux-3.1-000_crosscompile.patch rename to packages/linux/patches/linux-3.1.4-000_crosscompile.patch diff --git a/packages/linux/patches/linux-3.1-003-no_dev_console.patch b/packages/linux/patches/linux-3.1.4-003-no_dev_console.patch similarity index 100% rename from packages/linux/patches/linux-3.1-003-no_dev_console.patch rename to packages/linux/patches/linux-3.1.4-003-no_dev_console.patch diff --git a/packages/linux/patches/linux-3.1-004_lower_undefined_mode_timeout.patch b/packages/linux/patches/linux-3.1.4-004_lower_undefined_mode_timeout.patch similarity index 100% rename from packages/linux/patches/linux-3.1-004_lower_undefined_mode_timeout.patch rename to packages/linux/patches/linux-3.1.4-004_lower_undefined_mode_timeout.patch diff --git a/packages/linux/patches/linux-3.1-006_enable_utf8.patch b/packages/linux/patches/linux-3.1.4-006_enable_utf8.patch similarity index 100% rename from packages/linux/patches/linux-3.1-006_enable_utf8.patch rename to packages/linux/patches/linux-3.1.4-006_enable_utf8.patch diff --git a/packages/linux/patches/linux-3.1-007_die_floppy_die.patch b/packages/linux/patches/linux-3.1.4-007_die_floppy_die.patch similarity index 100% rename from packages/linux/patches/linux-3.1-007_die_floppy_die.patch rename to packages/linux/patches/linux-3.1.4-007_die_floppy_die.patch diff --git a/packages/linux/patches/linux-3.1-009_disable_i8042_check_on_apple_mac.patch b/packages/linux/patches/linux-3.1.4-009_disable_i8042_check_on_apple_mac.patch similarity index 100% rename from packages/linux/patches/linux-3.1-009_disable_i8042_check_on_apple_mac.patch rename to packages/linux/patches/linux-3.1.4-009_disable_i8042_check_on_apple_mac.patch diff --git a/packages/linux/patches/linux-3.1-050_add_appleir_usb_driver.patch b/packages/linux/patches/linux-3.1.4-050_add_appleir_usb_driver.patch similarity index 100% rename from packages/linux/patches/linux-3.1-050_add_appleir_usb_driver.patch rename to packages/linux/patches/linux-3.1.4-050_add_appleir_usb_driver.patch diff --git a/packages/linux/patches/linux-3.1-052-aureal_remote_quirk-0.1.patch b/packages/linux/patches/linux-3.1.4-052-aureal_remote_quirk-0.1.patch similarity index 100% rename from packages/linux/patches/linux-3.1-052-aureal_remote_quirk-0.1.patch rename to packages/linux/patches/linux-3.1.4-052-aureal_remote_quirk-0.1.patch diff --git a/packages/linux/patches/linux-3.1-053-ati_remote-0.1.patch b/packages/linux/patches/linux-3.1.4-053-ati_remote-0.1.patch similarity index 100% rename from packages/linux/patches/linux-3.1-053-ati_remote-0.1.patch rename to packages/linux/patches/linux-3.1.4-053-ati_remote-0.1.patch diff --git a/packages/linux/patches/linux-3.1-053_ati-remote_all_keys_and_keychange-0.1.patch b/packages/linux/patches/linux-3.1.4-053_ati-remote_all_keys_and_keychange-0.1.patch similarity index 100% rename from packages/linux/patches/linux-3.1-053_ati-remote_all_keys_and_keychange-0.1.patch rename to packages/linux/patches/linux-3.1.4-053_ati-remote_all_keys_and_keychange-0.1.patch diff --git a/packages/linux/patches/linux-3.1-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3f54c13.patch b/packages/linux/patches/linux-3.1.4-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3f54c13.patch similarity index 100% rename from packages/linux/patches/linux-3.1-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3f54c13.patch rename to packages/linux/patches/linux-3.1.4-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3f54c13.patch diff --git a/packages/linux/patches/linux-3.1-058-add_rtl2832u_dvb-usb_driver-0.1.patch b/packages/linux/patches/linux-3.1.4-058-add_rtl2832u_dvb-usb_driver-0.1.patch similarity index 100% rename from packages/linux/patches/linux-3.1-058-add_rtl2832u_dvb-usb_driver-0.1.patch rename to packages/linux/patches/linux-3.1.4-058-add_rtl2832u_dvb-usb_driver-0.1.patch diff --git a/packages/linux/patches/linux-3.1-059-rtl2832u_change_value_of_USB_PID_GTEK_WARM-0.1.patch b/packages/linux/patches/linux-3.1.4-059-rtl2832u_change_value_of_USB_PID_GTEK_WARM-0.1.patch similarity index 100% rename from packages/linux/patches/linux-3.1-059-rtl2832u_change_value_of_USB_PID_GTEK_WARM-0.1.patch rename to packages/linux/patches/linux-3.1.4-059-rtl2832u_change_value_of_USB_PID_GTEK_WARM-0.1.patch diff --git a/packages/linux/patches/linux-3.1-061-add_ITE-IT9135_dvb-usb_driver-0.1.patch b/packages/linux/patches/linux-3.1.4-061-add_ITE-IT9135_dvb-usb_driver-0.1.patch similarity index 100% rename from packages/linux/patches/linux-3.1-061-add_ITE-IT9135_dvb-usb_driver-0.1.patch rename to packages/linux/patches/linux-3.1.4-061-add_ITE-IT9135_dvb-usb_driver-0.1.patch diff --git a/packages/linux/patches/linux-3.1-071-silence_i915_agp-module-0.1.patch b/packages/linux/patches/linux-3.1.4-071-silence_i915_agp-module-0.1.patch similarity index 100% rename from packages/linux/patches/linux-3.1-071-silence_i915_agp-module-0.1.patch rename to packages/linux/patches/linux-3.1.4-071-silence_i915_agp-module-0.1.patch diff --git a/packages/linux/patches/linux-3.1.4-081-drm_cea_modes.patch b/packages/linux/patches/linux-3.1.4-081-drm_cea_modes.patch new file mode 100644 index 0000000000..57058c1107 --- /dev/null +++ b/packages/linux/patches/linux-3.1.4-081-drm_cea_modes.patch @@ -0,0 +1,358 @@ +diff -Naur linux-3.1.2/drivers/gpu/drm/drm_edid.c linux-3.1.2.patch/drivers/gpu/drm/drm_edid.c +--- linux-3.1.2/drivers/gpu/drm/drm_edid.c 2011-11-21 23:47:46.000000000 +0100 ++++ linux-3.1.2.patch/drivers/gpu/drm/drm_edid.c 2011-11-23 00:35:54.444938016 +0100 +@@ -1318,6 +1318,7 @@ + + #define HDMI_IDENTIFIER 0x000C03 + #define AUDIO_BLOCK 0x01 ++#define VIDEO_BLOCK 0x02 + #define VENDOR_BLOCK 0x03 + #define EDID_BASIC_AUDIO (1 << 6) + +@@ -1347,6 +1348,47 @@ + } + EXPORT_SYMBOL(drm_find_cea_extension); + ++static int ++do_cea_modes (struct drm_connector *connector, u8 *db, u8 len) ++{ ++ struct drm_device *dev = connector->dev; ++ u8 * mode, cea_mode; ++ int modes = 0; ++ ++ for (mode = db; mode < db + len; mode++) { ++ cea_mode = (*mode & 127) - 1; /* CEA modes are numbered 1..127 */ ++ if (cea_mode < drm_num_cea_modes) { ++ struct drm_display_mode *newmode; ++ newmode = drm_mode_duplicate(dev, ++ &edid_cea_modes[cea_mode]); ++ if (newmode) { ++ drm_mode_probed_add(connector, newmode); ++ modes++; ++ } ++ } ++ } ++ ++ return modes; ++} ++ ++static int ++add_cea_modes(struct drm_connector *connector, struct edid *edid) ++{ ++ u8 * cea = drm_find_cea_extension(edid); ++ u8 * db, dbl; ++ int modes = 0; ++ ++ if (cea && cea[1] >= 3) { ++ for (db = cea + 4; db < cea + cea[2]; db += dbl + 1) { ++ dbl = db[0] & 0x1f; ++ if (((db[0] & 0xe0) >> 5) == VIDEO_BLOCK) ++ modes += do_cea_modes (connector, db+1, dbl); ++ } ++ } ++ ++ return modes; ++} ++ + /** + * drm_detect_hdmi_monitor - detect whether monitor is hdmi. + * @edid: monitor EDID information +@@ -1550,6 +1592,7 @@ + num_modes += add_standard_modes(connector, edid); + num_modes += add_established_modes(connector, edid); + num_modes += add_inferred_modes(connector, edid); ++ num_modes += add_cea_modes(connector, edid); + + if (quirks & (EDID_QUIRK_PREFER_LARGE_60 | EDID_QUIRK_PREFER_LARGE_75)) + edid_fixup_preferred(connector, quirks); +diff -Naur linux-3.1.2/drivers/gpu/drm/drm_edid_modes.h linux-3.1.2.patch/drivers/gpu/drm/drm_edid_modes.h +--- linux-3.1.2/drivers/gpu/drm/drm_edid_modes.h 2011-11-21 23:47:46.000000000 +0100 ++++ linux-3.1.2.patch/drivers/gpu/drm/drm_edid_modes.h 2011-11-23 00:31:42.218643364 +0100 +@@ -378,3 +378,287 @@ + { 1920, 1440, 75, 0 }, + }; + static const int num_est3_modes = sizeof(est3_modes) / sizeof(est3_modes[0]); ++ ++/* ++ * Probably taken from CEA-861 spec. ++ * This table is converted from xorg's hw/xfree86/modes/xf86EdidModes.c. ++ */ ++static const struct drm_display_mode edid_cea_modes[] = { ++ /* 640x480@60Hz */ ++ { DRM_MODE("640x480", DRM_MODE_TYPE_DRIVER, 25175, 640, 656, ++ 752, 800, 0, 480, 490, 492, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 720x480@60Hz */ ++ { DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 27000, 720, 736, ++ 798, 858, 0, 480, 489, 495, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 720x480@60Hz */ ++ { DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 27000, 720, 736, ++ 798, 858, 0, 480, 489, 495, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1280x720@60Hz */ ++ { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1390, ++ 1430, 1650, 0, 720, 725, 730, 750, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 1920x1080i@60Hz */ ++ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 74250, 1920, 2008, ++ 2052, 2200, 0, 1080, 1084, 1094, 1125, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1440x480i@60Hz */ ++ { DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1478, ++ 1602, 1716, 0, 480, 488, 494, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1440x480i@60Hz */ ++ { DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1478, ++ 1602, 1716, 0, 480, 488, 494, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1440x240@60Hz */ ++ { DRM_MODE("1440x240", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1478, ++ 1602, 1716, 0, 240, 244, 247, 262, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1440x240@60Hz */ ++ { DRM_MODE("1440x240", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1478, ++ 1602, 1716, 0, 240, 244, 247, 262, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 2880x480i@60Hz */ ++ { DRM_MODE("2880x480", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2956, ++ 3204, 3432, 0, 480, 488, 494, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 2880x480i@60Hz */ ++ { DRM_MODE("2880x480", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2956, ++ 3204, 3432, 0, 480, 488, 494, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 2880x240@60Hz */ ++ { DRM_MODE("2880x240", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2956, ++ 3204, 3432, 0, 240, 244, 247, 262, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 2880x240@60Hz */ ++ { DRM_MODE("2880x240", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2956, ++ 3204, 3432, 0, 240, 244, 247, 262, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1440x480@60Hz */ ++ { DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1472, ++ 1596, 1716, 0, 480, 489, 495, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1440x480@60Hz */ ++ { DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1472, ++ 1596, 1716, 0, 480, 489, 495, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1920x1080@60Hz */ ++ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2008, ++ 2052, 2200, 0, 1080, 1084, 1089, 1125, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 720x576@50Hz */ ++ { DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 27000, 720, 732, ++ 796, 864, 0, 576, 581, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 720x576@50Hz */ ++ { DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 27000, 720, 732, ++ 796, 864, 0, 576, 581, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1280x720@50Hz */ ++ { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1720, ++ 1760, 1980, 0, 720, 725, 730, 750, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 1920x1080i@50Hz */ ++ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 74250, 1920, 2448, ++ 2492, 2640, 0, 1080, 1084, 1094, 1125, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1440x576i@50Hz */ ++ { DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1464, ++ 1590, 1728, 0, 576, 580, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1440x576i@50Hz */ ++ { DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1464, ++ 1590, 1728, 0, 576, 580, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1440x288@50Hz */ ++ { DRM_MODE("1440x288", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1464, ++ 1590, 1728, 0, 288, 290, 293, 312, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1440x288@50Hz */ ++ { DRM_MODE("1440x288", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1464, ++ 1590, 1728, 0, 288, 290, 293, 312, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 2880x576i@50Hz */ ++ { DRM_MODE("2880x576", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2928, ++ 3180, 3456, 0, 576, 580, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 2880x576i@50Hz */ ++ { DRM_MODE("2880x576", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2928, ++ 3180, 3456, 0, 576, 580, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 2880x288@50Hz */ ++ { DRM_MODE("2880x288", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2928, ++ 3180, 3456, 0, 288, 290, 293, 312, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 2880x288@50Hz */ ++ { DRM_MODE("2880x288", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2928, ++ 3180, 3456, 0, 288, 290, 293, 312, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1440x576@50Hz */ ++ { DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1464, ++ 1592, 1728, 0, 576, 581, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1440x576@50Hz */ ++ { DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1464, ++ 1592, 1728, 0, 576, 581, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1920x1080@50Hz */ ++ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2448, ++ 2492, 2640, 0, 1080, 1084, 1089, 1125, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 1920x1080@24Hz */ ++ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 74250, 1920, 2558, ++ 2602, 2750, 0, 1080, 1084, 1089, 1125, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 1920x1080@25Hz */ ++ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 74250, 1920, 2448, ++ 2492, 2640, 0, 1080, 1084, 1089, 1125, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 1920x1080@30Hz */ ++ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 74250, 1920, 2008, ++ 2052, 2200, 0, 1080, 1084, 1089, 1125, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 2880x480@60Hz */ ++ { DRM_MODE("2880x480", DRM_MODE_TYPE_DRIVER, 108000, 2880, 2944, ++ 3192, 3432, 0, 480, 489, 495, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 2880x480@60Hz */ ++ { DRM_MODE("2880x480", DRM_MODE_TYPE_DRIVER, 108000, 2880, 2944, ++ 3192, 3432, 0, 480, 489, 495, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 2880x576@50Hz */ ++ { DRM_MODE("2880x576", DRM_MODE_TYPE_DRIVER, 108000, 2880, 2928, ++ 3184, 3456, 0, 576, 581, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 2880x576@50Hz */ ++ { DRM_MODE("2880x576", DRM_MODE_TYPE_DRIVER, 108000, 2880, 2928, ++ 3184, 3456, 0, 576, 581, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1920x1080i@50Hz */ ++ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 72000, 1920, 1952, ++ 2120, 2304, 0, 1080, 1126, 1136, 1250, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1920x1080i@100Hz */ ++ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2448, ++ 2492, 2640, 0, 1080, 1084, 1094, 1125, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1280x720@100Hz */ ++ { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 148500, 1280, 1720, ++ 1760, 1980, 0, 720, 725, 730, 750, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 720x576@100Hz */ ++ { DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 54000, 720, 732, ++ 796, 864, 0, 576, 581, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 720x576@100Hz */ ++ { DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 54000, 720, 732, ++ 796, 864, 0, 576, 581, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1440x576i@100Hz */ ++ { DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1464, ++ 1590, 1728, 0, 576, 580, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1440x576i@100Hz */ ++ { DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1464, ++ 1590, 1728, 0, 576, 580, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1920x1080i@120Hz */ ++ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2008, ++ 2052, 2200, 0, 1080, 1084, 1094, 1125, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1280x720@120Hz */ ++ { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 148500, 1280, 1390, ++ 1430, 1650, 0, 720, 725, 730, 750, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 720x480@120Hz */ ++ { DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 54000, 720, 736, ++ 798, 858, 0, 480, 489, 495, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 720x480@120Hz */ ++ { DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 54000, 720, 736, ++ 798, 858, 0, 480, 489, 495, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1440x480i@120Hz */ ++ { DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1478, ++ 1602, 1716, 0, 480, 488, 494, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1440x480i@120Hz */ ++ { DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1478, ++ 1602, 1716, 0, 480, 488, 494, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 720x576@200Hz */ ++ { DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 108000, 720, 732, ++ 796, 864, 0, 576, 581, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 720x576@200Hz */ ++ { DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 108000, 720, 732, ++ 796, 864, 0, 576, 581, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1440x576i@200Hz */ ++ { DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 108000, 1440, 1464, ++ 1590, 1728, 0, 576, 580, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1440x576i@200Hz */ ++ { DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 108000, 1440, 1464, ++ 1590, 1728, 0, 576, 580, 586, 625, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 720x480@240Hz */ ++ { DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 108000, 720, 736, ++ 798, 858, 0, 480, 489, 495, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 720x480@240Hz */ ++ { DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 108000, 720, 736, ++ 798, 858, 0, 480, 489, 495, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, ++ /* 1440x480i@240 */ ++ { DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 108000, 1440, 1478, ++ 1602, 1716, 0, 480, 488, 494, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1440x480i@240 */ ++ { DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 108000, 1440, 1478, ++ 1602, 1716, 0, 480, 488, 494, 525, 0, ++ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | ++ DRM_MODE_FLAG_INTERLACE) }, ++ /* 1280x720@24Hz */ ++ { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 59400, 1280, 3040, ++ 3080, 3300, 0, 720, 725, 730, 750, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 1280x720@25Hz */ ++ { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 3700, ++ 3740, 3960, 0, 720, 725, 730, 750, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 1280x720@30Hz */ ++ { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 3040, ++ 3080, 3300, 0, 720, 725, 730, 750, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 1920x1080@120Hz */ ++ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 297000, 1920, 2008, ++ 2052, 2200, 0, 1080, 1084, 1089, 1125, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++ /* 1920x1080@100Hz */ ++ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 297000, 1920, 2448, ++ 2492, 2640, 0, 1080, 1084, 1094, 1125, 0, ++ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, ++}; ++static const int drm_num_cea_modes = ++ sizeof (edid_cea_modes) / sizeof (edid_cea_modes[0]); diff --git a/packages/linux/patches/linux-3.1-716_mm-zero_swappiness.patch b/packages/linux/patches/linux-3.1.4-716_mm-zero_swappiness.patch similarity index 100% rename from packages/linux/patches/linux-3.1-716_mm-zero_swappiness.patch rename to packages/linux/patches/linux-3.1.4-716_mm-zero_swappiness.patch diff --git a/packages/network/ethtool/meta b/packages/network/ethtool/meta index 0a6d7d4113..50fedd7824 100644 --- a/packages/network/ethtool/meta +++ b/packages/network/ethtool/meta @@ -24,7 +24,7 @@ PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.kernel.org/pub/software/network/ethtool/" -PKG_URL="ftp://ftp.pgpi.com/linux/kernel/pub/software/network/ethtool/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_URL="http://ftp.uni-frankfurt.de/kernel/software/network/ethtool/$PKG_NAME-$PKG_VERSION.tar.bz2" #PKG_URL="http://www.kernel.org/pub/software/network/ethtool/$PKG_NAME-$PKG_VERSION.tar.bz2" PKG_DEPENDS="" PKG_BUILD_DEPENDS="toolchain" diff --git a/packages/network/libnl/build b/packages/network/libnl/build index 2c2acbb431..22ff719554 100755 --- a/packages/network/libnl/build +++ b/packages/network/libnl/build @@ -29,6 +29,7 @@ cd $PKG_BUILD --sysconfdir=/etc \ --disable-static \ --enable-shared \ + --disable-cli \ make diff --git a/packages/network/libnl/install b/packages/network/libnl/install index 15488fa67d..4db6d2015f 100755 --- a/packages/network/libnl/install +++ b/packages/network/libnl/install @@ -23,4 +23,5 @@ . config/options $1 mkdir -p $INSTALL/usr/lib - cp -P $PKG_BUILD/lib/*.so* $INSTALL/usr/lib/ + cp -P $PKG_BUILD/lib/.libs/libnl-*.so* $INSTALL/usr/lib/ + rm -rf $INSTALL/usr/lib/libnl-*.so*T \ No newline at end of file diff --git a/packages/network/libnl/meta b/packages/network/libnl/meta index 475488ef51..fde594c562 100644 --- a/packages/network/libnl/meta +++ b/packages/network/libnl/meta @@ -19,12 +19,12 @@ ################################################################################ PKG_NAME="libnl" -PKG_VERSION="1.1" +PKG_VERSION="3.2.3" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="LGPL" PKG_SITE="http://people.suug.ch/~tgr/libnl/" -PKG_URL="https://launchpad.net/ubuntu/hardy/+source/libnl/1.1-1/+files/${PKG_NAME}_${PKG_VERSION}.orig.tar.gz" +PKG_URL="http://www.infradead.org/~tgr/libnl/files/$PKG_NAME-$PKG_VERSION.tar.gz" PKG_DEPENDS="" PKG_BUILD_DEPENDS="toolchain" PKG_PRIORITY="optional" diff --git a/packages/network/libnl/patches/libnl-1.1-fix_missing_include-0.1.patch b/packages/network/libnl/patches/libnl-1.1-fix_missing_include-0.1.patch deleted file mode 100644 index 18272414ad..0000000000 --- a/packages/network/libnl/patches/libnl-1.1-fix_missing_include-0.1.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur libnl-1.1/include/netlink-local.h libnl-1.1.patch/include/netlink-local.h ---- libnl-1.1/include/netlink-local.h 2008-01-14 16:48:45.000000000 +0100 -+++ libnl-1.1.patch/include/netlink-local.h 2010-04-13 20:34:38.502955161 +0200 -@@ -15,6 +15,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/packages/network/samba/scripts/52_samba b/packages/network/samba/scripts/52_samba index 7ebc7b5215..816a9d1005 100644 --- a/packages/network/samba/scripts/52_samba +++ b/packages/network/samba/scripts/52_samba @@ -43,8 +43,8 @@ fi mkdir -p /var/log/samba - smbd --daemon $SMB_ARG > /dev/null 2>&1 nmbd --daemon $SMB_ARG > /dev/null 2>&1 + smbd --daemon $SMB_ARG > /dev/null 2>&1 fi fi )& diff --git a/packages/network/wpa_supplicant/build b/packages/network/wpa_supplicant/build index 77909d5388..391698dbf2 100755 --- a/packages/network/wpa_supplicant/build +++ b/packages/network/wpa_supplicant/build @@ -26,8 +26,10 @@ cd $PKG_BUILD/$1 cp $ROOT/$PKG_DIR/config/makefile.config .config +echo "CFLAGS += $TARGET_CFLAGS -I$SYSROOT_PREFIX/usr/include/libnl3/" >> .config # echo "CONFIG_TLS=gnutls" >> .config # echo "CONFIG_GNUTLS_EXTRA=y" >> .config +echo "CONFIG_LIBNL20=y" >> .config [ ! "$DEBUG" = "yes" ] && echo "CONFIG_NO_STDOUT_DEBUG=y" >> .config make LIBDIR=/usr/lib BINDIR=/usr/bin diff --git a/packages/network/wpa_supplicant/patches/wpa_supplicant-0.7.3-libnl-3.patch b/packages/network/wpa_supplicant/patches/wpa_supplicant-0.7.3-libnl-3.patch new file mode 100644 index 0000000000..c9606335b5 --- /dev/null +++ b/packages/network/wpa_supplicant/patches/wpa_supplicant-0.7.3-libnl-3.patch @@ -0,0 +1,16 @@ +diff -Naur wpa_supplicant-0.7.3/src/drivers/drivers.mak wpa_supplicant-0.7.3.patch/src/drivers/drivers.mak +--- wpa_supplicant-0.7.3/src/drivers/drivers.mak 2010-09-07 17:43:39.000000000 +0200 ++++ wpa_supplicant-0.7.3.patch/src/drivers/drivers.mak 2011-11-30 13:37:22.187964539 +0100 +@@ -31,10 +31,10 @@ + NEED_AP_MLME=y + NEED_NETLINK=y + NEED_LINUX_IOCTL=y +-DRV_LIBS += -lnl ++DRV_LIBS += -lnl-3 + + ifdef CONFIG_LIBNL20 +-DRV_LIBS += -lnl-genl ++DRV_LIBS += -lnl-genl-3 + DRV_CFLAGS += -DCONFIG_LIBNL20 + endif + endif diff --git a/packages/print/freetype/meta b/packages/print/freetype/meta index 10536f6917..b753054bdb 100644 --- a/packages/print/freetype/meta +++ b/packages/print/freetype/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="freetype" -PKG_VERSION="2.4.7" +PKG_VERSION="2.4.8" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/sysutils/busybox/install b/packages/sysutils/busybox/install index de86c77e78..aee24dfca0 100755 --- a/packages/sysutils/busybox/install +++ b/packages/sysutils/busybox/install @@ -38,6 +38,7 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw -m sha512 $USER_PASSWORD`" mkdir -p $INSTALL/usr/bin cp $PKG_DIR/scripts/createlog $INSTALL/usr/bin/ cp $PKG_DIR/scripts/lsb_release $INSTALL/usr/bin/ + ln -sf /bin/busybox $INSTALL/usr/bin/env #/usr/bin/env is needed for most python scripts mkdir -p $INSTALL/sbin cp $PKG_DIR/scripts/init $INSTALL/sbin/ diff --git a/packages/sysutils/pciutils/meta b/packages/sysutils/pciutils/meta index 2d53e442a4..b4fcbf92be 100644 --- a/packages/sysutils/pciutils/meta +++ b/packages/sysutils/pciutils/meta @@ -25,7 +25,7 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://mj.ucw.cz/pciutils.shtml" #PKG_URL="http://ftp.de.kernel.org/pub/software/utils/pciutils/$PKG_NAME-$PKG_VERSION.tar.bz2" -PKG_URL="ftp://ftp.pgpi.com/linux/kernel/pub/software/utils/pciutils/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_URL="http://ftp.uni-frankfurt.de/kernel/software/utils/pciutils/$PKG_NAME-$PKG_VERSION.tar.bz2" PKG_DEPENDS="" PKG_BUILD_DEPENDS="toolchain" PKG_PRIORITY="optional" diff --git a/packages/sysutils/remote/eventlircd/patches/eventlircd-42-001-path.patch b/packages/sysutils/remote/eventlircd/patches/eventlircd-42-001-path.patch new file mode 100644 index 0000000000..e85edbf3bc --- /dev/null +++ b/packages/sysutils/remote/eventlircd/patches/eventlircd-42-001-path.patch @@ -0,0 +1,12 @@ +diff -Naur eventlircd-42/udev/wakeup_enable.in eventlircd-42.patch/udev/wakeup_enable.in +--- eventlircd-42/udev/wakeup_enable.in 2011-04-01 16:42:27.000000000 +0200 ++++ eventlircd-42.patch/udev/wakeup_enable.in 2011-11-28 02:05:59.743690557 +0100 +@@ -4,7 +4,7 @@ + ################################################################################ + + devpath=`readlink -f "/sys/${DEVPATH}"` +-while echo "${devpath}" | /bin/grep -q '^/sys/devices/' > /dev/null 2>&1 ; do ++while echo "${devpath}" | grep -q '^/sys/devices/' > /dev/null 2>&1 ; do + if test -e "${devpath}/power/wakeup" ; then + state=`cat "${devpath}/power/wakeup"` + if test "x${state}" = "xdisabled" ; then diff --git a/packages/toolchain/devel/binutils/meta b/packages/toolchain/devel/binutils/meta index 83ca639309..882af6d94d 100644 --- a/packages/toolchain/devel/binutils/meta +++ b/packages/toolchain/devel/binutils/meta @@ -19,14 +19,14 @@ ################################################################################ PKG_NAME="binutils" -PKG_VERSION="2.21.52.0.2" +PKG_VERSION="2.22" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.gnu.org/software/binutils/binutils.html" -PKG_URL="http://www.mirrorservice.org/sites/ftp.kernel.org/pub/linux/devel/binutils/$PKG_NAME-$PKG_VERSION.tar.bz2" +#PKG_URL="http://www.mirrorservice.org/sites/ftp.kernel.org/pub/linux/devel/binutils/$PKG_NAME-$PKG_VERSION.tar.bz2" #PKG_URL="ftp://ftp.pgpi.com/linux/kernel/pub/linux/devel/binutils/$PKG_NAME-$PKG_VERSION.tar.bz2" -#PKG_URL="http://ftp.gnu.org/gnu/binutils/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_URL="http://ftp.gnu.org/gnu/binutils/$PKG_NAME-$PKG_VERSION.tar.bz2" #PKG_URL="ftp://ftp.kernel.org/pub/linux/devel/binutils/$PKG_NAME-$PKG_VERSION.tar.bz2" PKG_DEPENDS="" PKG_BUILD_DEPENDS="ccache bison flex linux-headers gmp-host mpfr ppl cloog-ppl libelf" diff --git a/packages/toolchain/devel/binutils/patches/binutils-2.21.52.0.2-multi_os_directory.patch b/packages/toolchain/devel/binutils/patches/binutils-2.22-multi_os_directory.patch similarity index 100% rename from packages/toolchain/devel/binutils/patches/binutils-2.21.52.0.2-multi_os_directory.patch rename to packages/toolchain/devel/binutils/patches/binutils-2.22-multi_os_directory.patch diff --git a/packages/toolchain/devel/binutils/patches/binutils-2.21.52.0.2-visibility.patch b/packages/toolchain/devel/binutils/patches/binutils-2.22-visibility.patch similarity index 100% rename from packages/toolchain/devel/binutils/patches/binutils-2.21.52.0.2-visibility.patch rename to packages/toolchain/devel/binutils/patches/binutils-2.22-visibility.patch diff --git a/packages/toolchain/math/mpfr/patches/mpfr-3.1.0-allpatches_20111103.patch b/packages/toolchain/math/mpfr/patches/mpfr-3.1.0-allpatches_20111128.patch similarity index 70% rename from packages/toolchain/math/mpfr/patches/mpfr-3.1.0-allpatches_20111103.patch rename to packages/toolchain/math/mpfr/patches/mpfr-3.1.0-allpatches_20111128.patch index 16d9440470..5959b87fd3 100644 --- a/packages/toolchain/math/mpfr/patches/mpfr-3.1.0-allpatches_20111103.patch +++ b/packages/toolchain/math/mpfr/patches/mpfr-3.1.0-allpatches_20111128.patch @@ -391,3 +391,169 @@ diff -Naurd mpfr-3.1.0-a/tests/tsprintf.c mpfr-3.1.0-b/tests/tsprintf.c native_types (); hexadecimal (); binary (); +diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES +--- mpfr-3.1.0-a/PATCHES 2011-11-28 12:22:52.000000000 +0000 ++++ mpfr-3.1.0-b/PATCHES 2011-11-28 12:22:52.000000000 +0000 +@@ -0,0 +1 @@ ++gmp41compat +diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION +--- mpfr-3.1.0-a/VERSION 2011-11-03 15:15:11.000000000 +0000 ++++ mpfr-3.1.0-b/VERSION 2011-11-28 12:22:52.000000000 +0000 +@@ -1 +1 @@ +-3.1.0-p3 ++3.1.0-p4 +diff -Naurd mpfr-3.1.0-a/doc/mpfr.info mpfr-3.1.0-b/doc/mpfr.info +--- mpfr-3.1.0-a/doc/mpfr.info 2011-10-03 09:43:04.000000000 +0000 ++++ mpfr-3.1.0-b/doc/mpfr.info 2011-11-28 12:22:52.000000000 +0000 +@@ -2994,11 +2994,12 @@ + + * `mpfr_urandom' and `mpfr_urandomb' changed in MPFR 3.1. Their + behavior no longer depends on the platform (assuming this is also +- true for GMP's random generator). As a consequence, the returned +- values can be different between MPFR 3.1 and previous MPFR +- versions. Note: as the reproducibility of these functions was not +- specified before MPFR 3.1, the MPFR 3.1 behavior is _not_ regarded +- as backward incompatible with previous versions. ++ true for GMP's random generator, which is not the case between GMP ++ 4.1 and 4.2 if `gmp_randinit_default' is used). As a consequence, ++ the returned values can be different between MPFR 3.1 and previous ++ MPFR versions. Note: as the reproducibility of these functions ++ was not specified before MPFR 3.1, the MPFR 3.1 behavior is _not_ ++ regarded as backward incompatible with previous versions. + + +  +@@ -4239,13 +4240,13 @@ + Node: Type and Macro Changes129308 + Node: Added Functions132029 + Node: Changed Functions134972 +-Node: Removed Functions139167 +-Node: Other Changes139579 +-Node: Contributors141108 +-Node: References143574 +-Node: GNU Free Documentation License145315 +-Node: Concept Index167758 +-Node: Function and Type Index173677 ++Node: Removed Functions139253 ++Node: Other Changes139665 ++Node: Contributors141194 ++Node: References143660 ++Node: GNU Free Documentation License145401 ++Node: Concept Index167844 ++Node: Function and Type Index173763 +  + End Tag Table + +diff -Naurd mpfr-3.1.0-a/doc/mpfr.texi mpfr-3.1.0-b/doc/mpfr.texi +--- mpfr-3.1.0-a/doc/mpfr.texi 2011-10-03 08:17:14.000000000 +0000 ++++ mpfr-3.1.0-b/doc/mpfr.texi 2011-11-28 12:22:52.000000000 +0000 +@@ -3466,8 +3466,9 @@ + a lack of specification. + + @item @code{mpfr_urandom} and @code{mpfr_urandomb} changed in MPFR 3.1. +-Their behavior no longer depends on the platform (assuming this is also +-true for GMP's random generator). As a consequence, the returned values ++Their behavior no longer depends on the platform (assuming this is also true ++for GMP's random generator, which is not the case between GMP 4.1 and 4.2 if ++@code{gmp_randinit_default} is used). As a consequence, the returned values + can be different between MPFR 3.1 and previous MPFR versions. + Note: as the reproducibility of these functions was not specified + before MPFR 3.1, the MPFR 3.1 behavior is @emph{not} regarded as +diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h +--- mpfr-3.1.0-a/src/mpfr.h 2011-11-03 15:15:11.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr.h 2011-11-28 12:22:52.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "3.1.0-p3" ++#define MPFR_VERSION_STRING "3.1.0-p4" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c +--- mpfr-3.1.0-a/src/version.c 2011-11-03 15:15:11.000000000 +0000 ++++ mpfr-3.1.0-b/src/version.c 2011-11-28 12:22:52.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.0-p3"; ++ return "3.1.0-p4"; + } +diff -Naurd mpfr-3.1.0-a/tests/trandom.c mpfr-3.1.0-b/tests/trandom.c +--- mpfr-3.1.0-a/tests/trandom.c 2011-10-03 08:17:14.000000000 +0000 ++++ mpfr-3.1.0-b/tests/trandom.c 2011-11-28 12:22:52.000000000 +0000 +@@ -114,21 +114,29 @@ + mpfr_t x; + gmp_randstate_t s; + ++#if __MPFR_GMP(4,2,0) ++# define C1 "0.895943" ++# define C2 "0.848824" ++#else ++# define C1 "0.479652" ++# define C2 "0.648529" ++#endif ++ + gmp_randinit_default (s); + gmp_randseed_ui (s, 42); + mpfr_init2 (x, 17); + mpfr_urandomb (x, s); +- if (mpfr_cmp_str1 (x, "0.895943") != 0) ++ if (mpfr_cmp_str1 (x, C1) != 0) + { +- printf ("Error in bug20100914, expected 0.895943, got "); ++ printf ("Error in bug20100914, expected " C1 ", got "); + mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN); + printf ("\n"); + exit (1); + } + mpfr_urandomb (x, s); +- if (mpfr_cmp_str1 (x, "0.848824") != 0) ++ if (mpfr_cmp_str1 (x, C2) != 0) + { +- printf ("Error in bug20100914, expected 0.848824, got "); ++ printf ("Error in bug20100914, expected " C2 ", got "); + mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN); + printf ("\n"); + exit (1); +diff -Naurd mpfr-3.1.0-a/tests/turandom.c mpfr-3.1.0-b/tests/turandom.c +--- mpfr-3.1.0-a/tests/turandom.c 2011-10-03 08:17:14.000000000 +0000 ++++ mpfr-3.1.0-b/tests/turandom.c 2011-11-28 12:22:52.000000000 +0000 +@@ -160,23 +160,29 @@ + mpfr_t x; + gmp_randstate_t s; + ++#if __MPFR_GMP(4,2,0) ++# define C1 "0.8488312" ++# define C2 "0.8156509" ++#else ++# define C1 "0.6485367" ++# define C2 "0.9362717" ++#endif ++ + gmp_randinit_default (s); + gmp_randseed_ui (s, 42); + mpfr_init2 (x, 17); + mpfr_urandom (x, s, MPFR_RNDN); +- /* the following values are obtained on a 32-bit computer, we should get +- the same values on a 64-bit computer */ +- if (mpfr_cmp_str1 (x, "0.8488312") != 0) ++ if (mpfr_cmp_str1 (x, C1) != 0) + { +- printf ("Error in bug20100914, expected 0.8488312, got "); ++ printf ("Error in bug20100914, expected " C1 ", got "); + mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN); + printf ("\n"); + exit (1); + } + mpfr_urandom (x, s, MPFR_RNDN); +- if (mpfr_cmp_str1 (x, "0.8156509") != 0) ++ if (mpfr_cmp_str1 (x, C2) != 0) + { +- printf ("Error in bug20100914, expected 0.8156509, got "); ++ printf ("Error in bug20100914, expected " C2 ", got "); + mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN); + printf ("\n"); + exit (1); diff --git a/packages/tools/dialog/build b/packages/tools/dialog/build index abb7fa69f9..14ce808d21 100755 --- a/packages/tools/dialog/build +++ b/packages/tools/dialog/build @@ -22,6 +22,8 @@ . config/options $1 +export LDFLAGS="$LDFLAGS -ltinfo" + cd $PKG_BUILD # dialog fails to build with GOLD linker diff --git a/packages/tools/dialog/meta b/packages/tools/dialog/meta index daa09a3829..a4d28754d3 100644 --- a/packages/tools/dialog/meta +++ b/packages/tools/dialog/meta @@ -19,13 +19,13 @@ ################################################################################ PKG_NAME="dialog" -PKG_VERSION="1.1-20110302" +PKG_VERSION="1.1-20111020" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://invisible-island.net/dialog/" -#PKG_URL="ftp://invisible-island.net/dialog/$PKG_NAME-$PKG_VERSION.tgz" -PKG_URL="http://ftp.netbsd.org/pub/NetBSD/packages/distfiles/$PKG_NAME-$PKG_VERSION.tgz" +PKG_URL="ftp://invisible-island.net/dialog/$PKG_NAME-$PKG_VERSION.tgz" +#PKG_URL="http://ftp.netbsd.org/pub/NetBSD/packages/distfiles/$PKG_NAME-$PKG_VERSION.tgz" PKG_DEPENDS="ncurses" PKG_BUILD_DEPENDS="toolchain ncurses" PKG_PRIORITY="optional" diff --git a/packages/web/curl/meta b/packages/web/curl/meta index b70eaed674..b91eff1e70 100644 --- a/packages/web/curl/meta +++ b/packages/web/curl/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="curl" -PKG_VERSION="7.22.0" +PKG_VERSION="7.23.1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="MIT" diff --git a/packages/web/curl/patches/curl-7.22.0-0108-threaded_dns_multi.patch b/packages/web/curl/patches/curl-7.22.0-0108-threaded_dns_multi.patch deleted file mode 100644 index 30dbccc586..0000000000 --- a/packages/web/curl/patches/curl-7.22.0-0108-threaded_dns_multi.patch +++ /dev/null @@ -1,41 +0,0 @@ - lib/multi.c | 17 ++++++++++++++++- - 1 files changed, 16 insertions(+), 1 deletions(-) - -diff --git a/lib/multi.c b/lib/multi.c -index 476cb81..74eb0f4 100644 ---- a/lib/multi.c -+++ b/lib/multi.c -@@ -933,9 +933,16 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, - easy->result = addHandleToSendOrPendPipeline(easy->easy_handle, - easy->easy_conn); - if(CURLE_OK == easy->result) { -- if(async) -+ if(async) { - /* We're now waiting for an asynchronous name lookup */ - multistate(easy, CURLM_STATE_WAITRESOLVE); -+#ifdef USE_THREADS_POSIX -+ /* Curl_resolv_getsock() is not properly implemented in case -+ * we use POSIX threaded DNS resolver, we have to hang */ -+ result = CURLM_CALL_MULTI_PERFORM; -+ break; -+#endif -+ } - else { - /* after the connect has been sent off, go WAITCONNECT unless the - protocol connect is already done and we can go directly to -@@ -1003,6 +1010,14 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, - disconnect_conn = TRUE; - break; - } -+#ifdef USE_THREADS_POSIX -+ /* Curl_resolv_getsock() is not properly implemented yet in case -+ * we use POSIX threaded DNS resolver, we have to hang */ -+ Curl_socket_ready(CURL_SOCKET_BAD, CURL_SOCKET_BAD, 100 /* ms */); -+ result = CURLM_CALL_MULTI_PERFORM; -+ break; -+#endif -+ - } - break; - - diff --git a/packages/x11/driver/xf86-video-nvidia/meta b/packages/x11/driver/xf86-video-nvidia/meta index c2783c031a..3241929148 100644 --- a/packages/x11/driver/xf86-video-nvidia/meta +++ b/packages/x11/driver/xf86-video-nvidia/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xf86-video-nvidia" -PKG_VERSION="290.06" +PKG_VERSION="290.10" PKG_REV="1" PKG_ARCH="i386 x86_64" PKG_LICENSE="nonfree" diff --git a/packages/x11/xserver/xorg-server/meta b/packages/x11/xserver/xorg-server/meta index 5f6b1fe7eb..4a9b7208eb 100644 --- a/packages/x11/xserver/xorg-server/meta +++ b/packages/x11/xserver/xorg-server/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xorg-server" -PKG_VERSION="1.10.4" +PKG_VERSION="1.11.2" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="OSS" diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-13_nouveau.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-13_nouveau.patch deleted file mode 100644 index 77bbbc44d6..0000000000 --- a/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-13_nouveau.patch +++ /dev/null @@ -1,100 +0,0 @@ -From a685b5cf34532cef96fc9b05f735088ac0c0c7ad Mon Sep 17 00:00:00 2001 -From: Fedora X Ninjas -Date: Tue, 16 Feb 2010 11:38:17 +1000 -Subject: [PATCH 08/17] autoconfig: select nouveau by default for NVIDIA GPUs - -Also, don't treat DRI setup failure as an error for nouveau. ---- - glx/glxdri.c | 7 +++++-- - glx/glxdri2.c | 7 +++++-- - hw/xfree86/common/xf86AutoConfig.c | 19 ++++++++++++++++++- - 3 files changed, 28 insertions(+), 5 deletions(-) - ---- a/glx/glxdri.c -+++ b/glx/glxdri.c -@@ -979,6 +979,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - const __DRIconfig **driConfigs; - const __DRIextension **extensions; - int i; -+ int from = X_ERROR; - - if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable") || - !DRIQueryDirectRenderingCapable(pScreen, &isCapable) || -@@ -1058,7 +1059,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - - screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL); - if (screen->driver == NULL) { -- LogMessage(X_ERROR, "AIGLX error: dlopen of %s failed (%s)\n", -+ if (!strcmp(driverName, "nouveau")) -+ from = X_INFO; -+ LogMessage(from, "AIGLX error: dlopen of %s failed (%s)\n", - filename, dlerror()); - goto handle_error; - } -@@ -1196,7 +1199,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - - free(screen); - -- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n"); -+ LogMessage(from, "AIGLX: reverting to software rendering\n"); - - return NULL; - } ---- a/glx/glxdri2.c -+++ b/glx/glxdri2.c -@@ -709,6 +709,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - const __DRIextension **extensions; - const __DRIconfig **driConfigs; - int i; -+ int from = X_ERROR; - - screen = calloc(1, sizeof *screen); - if (screen == NULL) -@@ -735,7 +736,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - - screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL); - if (screen->driver == NULL) { -- LogMessage(X_ERROR, "AIGLX error: dlopen of %s failed (%s)\n", -+ if (!strcmp(driverName, "nouveau")) -+ from = X_INFO; -+ LogMessage(from, "AIGLX error: dlopen of %s failed (%s)\n", - filename, dlerror()); - goto handle_error; - } -@@ -829,7 +832,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - - free(screen); - -- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n"); -+ LogMessage(from, "AIGLX: reverting to software rendering\n"); - - return NULL; - } ---- a/hw/xfree86/common/xf86pciBus.c -+++ b/hw/xfree86/common/xf86pciBus.c -@@ -1118,7 +1118,24 @@ videoPtrToDriverList(struct pci_device * - break; - case 0x102b: driverList[0] = "mga"; break; - case 0x10c8: driverList[0] = "neomagic"; break; -- case 0x10de: case 0x12d2: driverList[0] = "nv"; break; -+ case 0x10de: case 0x12d2: -+ switch (dev->device_id) { -+ /* NV1 */ -+ case 0x0008: -+ case 0x0009: -+ driverList[0] = "vesa"; -+ break; -+ /* NV3 */ -+ case 0x0018: -+ case 0x0019: -+ driverList[0] = "nv"; -+ break; -+ default: -+ driverList[0] = "nouveau"; -+ driverList[1] = "nv"; -+ break; -+ } -+ break; - case 0x1106: driverList[0] = "openchrome"; break; - case 0x1b36: driverList[0] = "qxl"; break; - case 0x1163: driverList[0] = "rendition"; break; diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-14_nvidia_fglrx_autodetect.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-14_nvidia_fglrx_autodetect.patch deleted file mode 100644 index b72ed0bff2..0000000000 --- a/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-14_nvidia_fglrx_autodetect.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 0366a844c36bf8424a2625425c181b9b97f35bee Mon Sep 17 00:00:00 2001 -From: Robert Hooker -Date: Wed, 1 Sep 2010 13:23:21 -0400 -Subject: [PATCH] Attempt to get nvidia and fglrx working without an xorg.conf. - -Signed-off-by: Robert Hooker ---- - hw/xfree86/common/xf86AutoConfig.c | 12 +++++++++++- - hw/xfree86/common/xf86pciBus.c | 14 +++++++++----- - 2 files changed, 20 insertions(+), 6 deletions(-) - -diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c -index 8ef602d..a8f04b9 100644 ---- a/hw/xfree86/common/xf86AutoConfig.c -+++ b/hw/xfree86/common/xf86AutoConfig.c -@@ -81,6 +81,13 @@ - "\tDevice\t" BUILTIN_DEVICE_NAME "\n" \ - "EndSection\n\n" - -+#define BUILTIN_SCREEN_SECTION_PROPRIETARY \ -+ "Section \"Screen\"\n" \ -+ "\tIdentifier\t" BUILTIN_SCREEN_NAME "\n" \ -+ "\tDevice\t" BUILTIN_DEVICE_NAME "\n" \ -+ "\tDefaultDepth\t24\n" \ -+ "EndSection\n\n" -+ - #define BUILTIN_LAYOUT_SECTION_PRE \ - "Section \"ServerLayout\"\n" \ - "\tIdentifier\t\"Builtin Default Layout\"\n" -@@ -159,7 +166,10 @@ xf86AutoConfig(void) - for (p = deviceList; *p; p++) { - snprintf(buf, sizeof(buf), BUILTIN_DEVICE_SECTION, *p, 0, *p); - AppendToConfig(buf); -- snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0); -+ if( strcmp(*p, "fglrx") == 0 || strcmp(*p, "nvidia") == 0) -+ snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION_PROPRIETARY, *p, 0, *p, 0); -+ else -+ snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0); - AppendToConfig(buf); - } - -diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c -index 930ed83..a6aa4f4 100644 ---- a/hw/xfree86/common/xf86pciBus.c -+++ b/hw/xfree86/common/xf86pciBus.c -@@ -1102,7 +1102,10 @@ videoPtrToDriverList(struct pci_device *dev, - case 0x1142: driverList[0] = "apm"; break; - case 0xedd8: driverList[0] = "ark"; break; - case 0x1a03: driverList[0] = "ast"; break; -- case 0x1002: driverList[0] = "ati"; break; -+ case 0x1002: -+ driverList[0] = "fglrx"; -+ driverList[1] = "ati"; -+ break; - case 0x102c: driverList[0] = "chips"; break; - case 0x1013: driverList[0] = "cirrus"; break; - case 0x3d3d: driverList[0] = "glint"; break; -@@ -1119,20 +1122,21 @@ videoPtrToDriverList(struct pci_device *dev, - case 0x102b: driverList[0] = "mga"; break; - case 0x10c8: driverList[0] = "neomagic"; break; - case 0x10de: case 0x12d2: -+ driverList[0] = "nvidia"; - switch (dev->device_id) { - /* NV1 */ - case 0x0008: - case 0x0009: -- driverList[0] = "vesa"; -+ driverList[1] = "vesa"; - break; - /* NV3 */ - case 0x0018: - case 0x0019: -- driverList[0] = "nv"; -+ driverList[1] = "nv"; - break; - default: -- driverList[0] = "nouveau"; -- driverList[1] = "nv"; -+ driverList[1] = "nouveau"; -+ driverList[2] = "nv"; - break; - } - break; --- -1.7.2 - diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-05_pkg_config.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-05_pkg_config.patch similarity index 100% rename from packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-05_pkg_config.patch rename to packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-05_pkg_config.patch diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-10_cache_xkbcomp_output_for_fast_start_up.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-10_cache_xkbcomp_output_for_fast_start_up.patch similarity index 100% rename from packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-10_cache_xkbcomp_output_for_fast_start_up.patch rename to packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-10_cache_xkbcomp_output_for_fast_start_up.patch diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-11_use_sloppy_heuristic_first_for_initial_mode.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-11_use_sloppy_heuristic_first_for_initial_mode.patch similarity index 100% rename from packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-11_use_sloppy_heuristic_first_for_initial_mode.patch rename to packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-11_use_sloppy_heuristic_first_for_initial_mode.patch diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-13-detect_nouveau.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-13-detect_nouveau.patch new file mode 100644 index 0000000000..d654979559 --- /dev/null +++ b/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-13-detect_nouveau.patch @@ -0,0 +1,12 @@ +diff -Naur xorg-server-1.11.0-old/hw/xfree86/common/xf86pciBus.c xorg-server-1.11.0-new/hw/xfree86/common/xf86pciBus.c +--- xorg-server-1.11.0-old/hw/xfree86/common/xf86pciBus.c 2011-08-27 09:46:27.000000000 -0700 ++++ xorg-server-1.11.0-new/hw/xfree86/common/xf86pciBus.c 2011-08-27 09:47:09.000000000 -0700 +@@ -1123,7 +1123,7 @@ + break; + case 0x102b: driverList[0] = "mga"; break; + case 0x10c8: driverList[0] = "neomagic"; break; +- case 0x10de: case 0x12d2: driverList[0] = "nv"; break; ++ case 0x10de: case 0x12d2: driverList[0] = "nouveau"; break; + case 0x1106: driverList[0] = "openchrome"; break; + case 0x1b36: driverList[0] = "qxl"; break; + case 0x1163: driverList[0] = "rendition"; break; diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-14-detect_radeon.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-14-detect_radeon.patch new file mode 100644 index 0000000000..449fe07fce --- /dev/null +++ b/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-14-detect_radeon.patch @@ -0,0 +1,12 @@ +diff -Naur xorg-server-1.11.0-old/hw/xfree86/common/xf86pciBus.c xorg-server-1.11.0-new/hw/xfree86/common/xf86pciBus.c +--- xorg-server-1.11.0-old/hw/xfree86/common/xf86pciBus.c 2011-08-27 09:47:09.000000000 -0700 ++++ xorg-server-1.11.0-new/hw/xfree86/common/xf86pciBus.c 2011-08-27 09:47:33.000000000 -0700 +@@ -1107,7 +1107,7 @@ + case 0x1142: driverList[0] = "apm"; break; + case 0xedd8: driverList[0] = "ark"; break; + case 0x1a03: driverList[0] = "ast"; break; +- case 0x1002: driverList[0] = "ati"; break; ++ case 0x1002: driverList[0] = "radeon"; break; + case 0x102c: driverList[0] = "chips"; break; + case 0x1013: driverList[0] = "cirrus"; break; + case 0x3d3d: driverList[0] = "glint"; break; diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-20_extra_modelines_fromxorg.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-20_extra_modelines_fromxorg.patch similarity index 100% rename from packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-20_extra_modelines_fromxorg.patch rename to packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-20_extra_modelines_fromxorg.patch diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-21_x11_nonroot-vesa.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-21_x11_nonroot-vesa.patch similarity index 100% rename from packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-21_x11_nonroot-vesa.patch rename to packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-21_x11_nonroot-vesa.patch diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-22_do_not_zap_xserver.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-22_do_not_zap_xserver.patch similarity index 100% rename from packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-22_do_not_zap_xserver.patch rename to packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-22_do_not_zap_xserver.patch diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-25_less_acpi_brokenness.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-25_less_acpi_brokenness.patch similarity index 100% rename from packages/x11/xserver/xorg-server/patches/xorg-server-1.10.4-25_less_acpi_brokenness.patch rename to packages/x11/xserver/xorg-server/patches/xorg-server-1.11.2-25_less_acpi_brokenness.patch diff --git a/packages/x11/xserver/xorg-server/scripts/xorg_start b/packages/x11/xserver/xorg-server/scripts/xorg_start index c971eec77c..dd8f45de96 100755 --- a/packages/x11/xserver/xorg-server/scripts/xorg_start +++ b/packages/x11/xserver/xorg-server/scripts/xorg_start @@ -72,6 +72,8 @@ if [ "$RUNLEVEL" = openelec ]; then chown root:root /tmp/.ICE-unix if [ "${xorg_driver}" = "nvidia" ]; then + export __GL_SHADER_DISK_CACHE=1 + export __GL_SHADER_DISK_CACHE_PATH="/tmp/GLCache" ln -sf /usr/lib/libGL_nvidia.so.1 /var/lib/libGL.so ln -sf /usr/lib/xorg/modules/extensions/libglx_nvidia.so /var/lib/libglx.so XORG_ARGS="$XORG_ARGS -ignoreABI" diff --git a/projects/Fusion/options b/projects/Fusion/options index 432ed2b4df..6d4c1aa8c6 100755 --- a/projects/Fusion/options +++ b/projects/Fusion/options @@ -150,7 +150,7 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv aver_h826d linux-tbs-drivers" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv aver_h826d" # build with network support (yes / no) NETWORK="yes" diff --git a/projects/Generic/options b/projects/Generic/options index 19ab6d2e53..1abb483287 100755 --- a/projects/Generic/options +++ b/projects/Generic/options @@ -150,7 +150,7 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv aver_h826d linux-tbs-drivers" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv aver_h826d" # build with network support (yes / no) NETWORK="yes" diff --git a/projects/Generic_OSS/options b/projects/Generic_OSS/options index 67ff620793..f3d2331284 100755 --- a/projects/Generic_OSS/options +++ b/projects/Generic_OSS/options @@ -150,7 +150,7 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv aver_h826d linux-tbs-drivers" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv aver_h826d" # build with network support (yes / no) NETWORK="yes" diff --git a/projects/ION/options b/projects/ION/options index 176d89e917..c30df37935 100755 --- a/projects/ION/options +++ b/projects/ION/options @@ -150,7 +150,7 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv aver_h826d linux-tbs-drivers" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv aver_h826d" # build with network support (yes / no) NETWORK="yes" diff --git a/projects/Intel/options b/projects/Intel/options index e7b7b849d1..dc08309f30 100755 --- a/projects/Intel/options +++ b/projects/Intel/options @@ -150,7 +150,7 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv aver_h826d linux-tbs-drivers" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv aver_h826d" # build with network support (yes / no) NETWORK="yes" diff --git a/projects/Ultra/options b/projects/Ultra/options index 8b6bff3f45..b6d5910516 100755 --- a/projects/Ultra/options +++ b/projects/Ultra/options @@ -150,7 +150,7 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv aver_h826d linux-tbs-drivers" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv aver_h826d" # build with network support (yes / no) NETWORK="yes"