Support WOL in duo2(needs a CFE update)
authorschon <schon@dev03-server>
Wed, 17 Jul 2013 02:42:35 +0000 (11:42 +0900)
committerschon <schon@dev03-server>
Wed, 17 Jul 2013 02:42:35 +0000 (11:42 +0900)
 - Duo2 CFE V2 URL --> http://archive.vuplus.com/download/cfe/duo2/v2/Duo2_CFE_V2.zip
 - Duo2 CFE V2 Upate HOWTO : http://archive.vuplus.com/download/doc/duo2_cfe_v2_update.txt

recipes/enigma2/enigma2.bb
recipes/linux/linux-vuduo2-3.3.8/brcm_s3_wol.patch [new file with mode: 0644]
recipes/linux/linux-vuduo2_3.3.8.bb
recipes/tasks/task-vuplus-base.bb
recipes/tasks/task-vuplus-enigma2.bb
recipes/vuplus/vuplus-coldboot.bb [new file with mode: 0644]
recipes/vuplus/vuplus-coldboot/coldboot [new file with mode: 0755]
recipes/vuplus/vuplus-coldboot/coldboot.sh [new file with mode: 0755]
recipes/vuplus/vuplus-dvb-modules.bb

index 0b36103..b1adc6f 100644 (file)
@@ -77,7 +77,7 @@ RDEPENDS_enigma2-plugin-extensions-hbbtv = "tslib-conf libts-1.0-0 libsysfs2 lib
 RDEPENDS_enigma2-plugin-systemplugins-devicemanager = "util-linux-ng-blkid ntfs-3g dosfstools"
 
 PN = "enigma2"
-PR = "r85"
+PR = "r86"
 
 SRCDATE = "20110922"
 SRCREV = "5e19a3f8a5e8ce8a4e2cb2b601a1b8ef3554e4be"
diff --git a/recipes/linux/linux-vuduo2-3.3.8/brcm_s3_wol.patch b/recipes/linux/linux-vuduo2-3.3.8/brcm_s3_wol.patch
new file mode 100644 (file)
index 0000000..dcfc5f7
--- /dev/null
@@ -0,0 +1,67 @@
+diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+old mode 100644
+new mode 100755
+index faf58ab..52e31ed
+--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+@@ -3123,6 +3123,34 @@ static int bcmgenet_set_wol(struct net_device *dev,
+               umac->mpd_ctrl |= MPD_PW_EN;
+       }
++      if (pDevCtrl->phyType == BRCM_PHY_TYPE_EXT_RGMII)
++      {
++              if(wol->wolopts & WAKE_MAGIC)
++              {
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0007);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1e, 0x006e);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x15, dev->dev_addr[1]<<8 | dev->dev_addr[0]);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x16, dev->dev_addr[3]<<8 | dev->dev_addr[2]);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x17, dev->dev_addr[5]<<8 | dev->dev_addr[4]);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0007);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1e, 0x006d);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x16, 0x9fff);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x15, 0x1000);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1e, 0x006d);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x19, 0x0001);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0000);
++
++              }
++              else
++              {
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0007);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1e, 0x006d);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x16, 0x9fff);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x15, 0x0000);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0000);
++              }
++      }
++
+       device_set_wakeup_enable(&dev->dev, wol->wolopts);
+       pDevCtrl->wolopts = wol->wolopts;
+       return 0;
+diff --git a/kernel/printk.c b/kernel/printk.c
+index 1af3691..b0b73ff 100644
+--- a/kernel/printk.c
++++ b/kernel/printk.c
+@@ -1125,11 +1125,21 @@ MODULE_PARM_DESC(console_suspend, "suspend console during suspend"
+  *
+  * This disables printk() while we go into suspend states
+  */
++void (*brcm_s3_cb)(void);
++
++
++void register_brcm_s3_cb(void (*cb)(void))
++{
++      brcm_s3_cb = cb;
++}
++EXPORT_SYMBOL(register_brcm_s3_cb);
++
+ void suspend_console(void)
+ {
+       if (!console_suspend_enabled)
+               return;
+       printk("Suspending console(s) (use no_console_suspend to debug)\n");
++      if(brcm_s3_cb) brcm_s3_cb();
+       console_lock();
+       console_suspended = 1;
+       up(&console_sem);
index febf691..6d16113 100644 (file)
@@ -1,8 +1,8 @@
 require linux-vuplus-3.3.8.inc
 
-
 SRC_URI += "file://remove_genet1.patch;patch=1;pnum=1 \
         file://nand_base.patch;patch=1;pnum=1 \
+        file://brcm_s3_wol.patch;patch=1;pnum=1 \
        "
 
-PR = "r2"
+PR = "r3"
index f8b48b4..b0d68c3 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "Vuplus: Base Task for the Vuplus Distribution"
 SECTION = "vuplus/base"
 LICENSE = "MIT"
-PR = "r13"
+PR = "r14"
 
 inherit task
 
@@ -66,7 +66,7 @@ VUPLUS_BASE_RECOMMENDS = "\
 VUPLUS_BASE_RECOMMENDS_append_vuuno = " vuplus-fpga-update"
 VUPLUS_BASE_RECOMMENDS_append_vuultimo = " vuplus-fpga-update"
 
-VUPLUS_BASE_RECOMMENDS_append_vuduo2 = " vuplus-manual"
+VUPLUS_BASE_RECOMMENDS_append_vuduo2 = " vuplus-manual vuplus-coldboot"
 VUPLUS_BASE_RECOMMENDS_append_vusolo2 = " vuplus-manual"
 
 VUPLUS_BASE_OPTIONAL_RECOMMENDS = "\
index 945e0a0..da440d6 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "Vuplus: E2 Task for the Vuplus Distribution"
 SECTION = "vuplus/base"
 LICENSE = "MIT"
-PR = "r26"
+PR = "r27"
 
 inherit task
 
@@ -78,6 +78,7 @@ RDEPENDS_task-vuplus-enigma2_append_vuduo2 = "\
   enigma2-plugin-systemplugins-transcodingsetup \
   enigma2-plugin-systemplugins-blindscan \
   enigma2-transtreamproxy \
+  enigma2-plugin-systemplugins-wolsetup \
 "
 
 RDEPENDS_task-vuplus-enigma2_append_vusolo2 = "\
diff --git a/recipes/vuplus/vuplus-coldboot.bb b/recipes/vuplus/vuplus-coldboot.bb
new file mode 100644 (file)
index 0000000..55fa465
--- /dev/null
@@ -0,0 +1,20 @@
+DESCIPTION = "S3 cold boot"
+MAINTAINER = "vuplus team"
+
+
+PV = "1.0"
+PR = "r0"
+SRC_REV = ""
+
+SRC_URI = "file://coldboot \
+          file://coldboot.sh"
+
+do_install() {
+       install -d ${D}/etc/init.d \
+               ${D}/usr/bin \
+               ${D}${sysconfdir}/rc0.d 
+
+       install -m 0755 ${WORKDIR}/coldboot.sh ${D}/etc/init.d/coldboot.sh
+       install -m 0755 ${WORKDIR}/coldboot ${D}/usr/bin/coldboot
+        ln -sf   ../init.d/coldboot.sh ${D}${sysconfdir}/rc0.d/S30coldboot.sh
+}
diff --git a/recipes/vuplus/vuplus-coldboot/coldboot b/recipes/vuplus/vuplus-coldboot/coldboot
new file mode 100755 (executable)
index 0000000..33473d5
Binary files /dev/null and b/recipes/vuplus/vuplus-coldboot/coldboot differ
diff --git a/recipes/vuplus/vuplus-coldboot/coldboot.sh b/recipes/vuplus/vuplus-coldboot/coldboot.sh
new file mode 100755 (executable)
index 0000000..0be7192
--- /dev/null
@@ -0,0 +1,14 @@
+#! /bin/sh
+#
+# coldboot
+#
+# Version:      @(#)coldboot  1.00  10-Jul-2013  
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+#go to S3 cold/warm boot.
+coldboot 1
+
+: exit 0
+
index d62158a..9e9319f 100755 (executable)
@@ -15,7 +15,7 @@ SRCDATE_bm750 = "20130621"
 SRCDATE_vusolo = "20130621"
 SRCDATE_vuuno = "20130621"
 SRCDATE_vuultimo = "20130621"
-SRCDATE_vuduo2 = "20130711"
+SRCDATE_vuduo2 = "20130716"
 SRCDATE_vusolo2 = "20130621"
 
 MODULES_NAME_bm750 = "procmk\ndvb-bcm7335\nbrcmfb"