diff options
author | Frans Meulenbroeks <fransmeulenbroeks@yahoo.com> | 2005-11-01 11:48:34 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-11-01 11:48:34 +0000 |
commit | 2212fe1f354a474b884e1d0705bcc1cd051d729b (patch) | |
tree | f7d08e6f2c7de5744336fa84d3158ef89beb7a9c | |
parent | bfd78e118cb70c13f04b6a26e908892086445bed (diff) |
ixp425-eth/ixp400-eth: added pollcontroller patch for ixp400; required for netconsole
-rw-r--r-- | packages/ixp425-eth/files/ixp400_pollcontroller.patch | 50 | ||||
-rw-r--r-- | packages/ixp425-eth/ixp400-eth_1.4.bb | 3 |
2 files changed, 52 insertions, 1 deletions
diff --git a/packages/ixp425-eth/files/ixp400_pollcontroller.patch b/packages/ixp425-eth/files/ixp400_pollcontroller.patch new file mode 100644 index 0000000000..b6fe10a5c6 --- /dev/null +++ b/packages/ixp425-eth/files/ixp400_pollcontroller.patch @@ -0,0 +1,50 @@ +*** ixp400-eth-1.4-r4/ixp400_eth.c.orig Mon Oct 31 22:45:46 2005 +--- ixp400-eth-1.4-r4/ixp400_eth.c Mon Oct 31 22:47:48 2005 +*************** +*** 306,311 **** +--- 306,316 ---- + ixEthRxFrameQMCallback(IxQMgrQId qId, IxQMgrCallbackId callbackId); + extern void + ixEthTxFrameDoneQMCallback(IxQMgrQId qId, IxQMgrCallbackId callbackId); ++ #ifdef CONFIG_NET_POLL_CONTROLLER ++ /* poll controller (needed for netconsole et al) */ ++ static void ++ ixp425eth_poll_controller(struct net_device *dev); ++ #endif + + /* Private device data */ + typedef struct { +*************** +*** 3082,3087 **** +--- 3087,3095 ---- + ndev->get_stats = dev_get_stats; + ndev->set_multicast_list = dev_set_multicast_list; + ndev->flags |= IFF_MULTICAST; ++ #ifdef CONFIG_NET_POLL_CONTROLLER ++ ndev->poll_controller = ixp425eth_poll_controller; ++ #endif + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) + ndev->set_mac_address = dev_set_mac_address; + #else +*************** +*** 3172,3177 **** +--- 3180,3198 ---- + return res; + } + ++ #ifdef CONFIG_NET_POLL_CONTROLLER ++ /* ++ * Polling receive - used by netconsole and other diagnostic tools ++ * to allow network i/o with interrupts disabled. ++ * (stolen from 8139too.c by siddy) ++ */ ++ static void ixp425eth_poll_controller(struct net_device *dev) ++ { ++ disable_irq(dev->irq); ++ dev_qmgr_os_isr(dev->irq, dev, NULL); ++ enable_irq(dev->irq); ++ } ++ #endif + + static int __devinit npe_eth_init_device(struct device *dev) + { diff --git a/packages/ixp425-eth/ixp400-eth_1.4.bb b/packages/ixp425-eth/ixp400-eth_1.4.bb index f6b4dbb4e6..623f609d7d 100644 --- a/packages/ixp425-eth/ixp400-eth_1.4.bb +++ b/packages/ixp425-eth/ixp400-eth_1.4.bb @@ -8,7 +8,8 @@ SRC_URI += "file://ixp400-le-be.patch;patch=1" SRC_URI += "file://makefile.patch;patch=1" SRC_URI += "file://2.6.13.patch;patch=1" SRC_URI += "file://2.6.14.patch;patch=1" -PR = "r4" +SRC_URI += "file://ixp400_pollcontroller.patch;patch=1" +PR = "r5" DEPENDS = "ixp4xx-csr" RDEPENDS = "ixp4xx-csr" |