Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Wed, 6 Jul 2011 06:23:37 +0000 (23:23 -0700)]
999 files changed:
Documentation/networking/ip-sysctl.txt
MAINTAINERS
arch/arm/mach-davinci/board-mityomapl138.c
arch/arm/mach-davinci/dm646x.c
arch/arm/mach-davinci/pm.c
arch/arm/mach-imx/dma-v1.c
arch/arm/mach-imx/mach-mx31_3ds.c
arch/arm/mach-iop13xx/setup.c
arch/arm/mach-mxs/devices/platform-auart.c
arch/arm/mach-mxs/devices/platform-dma.c
arch/arm/mach-mxs/devices/platform-fec.c
arch/arm/plat-mxc/devices/platform-fec.c
arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c
arch/arm/plat-mxc/devices/platform-imx-fb.c
arch/arm/plat-mxc/devices/platform-ipu-core.c
arch/arm/plat-mxc/devices/platform-mxc-ehci.c
arch/arm/plat-mxc/devices/platform-mxc-mmc.c
arch/arm/plat-nomadik/include/plat/ste_dma40.h
arch/m68k/emu/nfeth.c
arch/x86/kernel/tboot.c
crypto/async_tx/raid6test.c
drivers/atm/eni.h
drivers/atm/firestream.c
drivers/atm/horizon.c
drivers/atm/idt77252.c
drivers/atm/iphase.c
drivers/atm/zatm.c
drivers/bcma/Kconfig
drivers/bcma/Makefile
drivers/bcma/bcma_private.h
drivers/bcma/core.c
drivers/bcma/driver_chipcommon_pmu.c
drivers/bcma/driver_pci.c
drivers/bcma/host_pci.c
drivers/bcma/main.c
drivers/bcma/sprom.c [new file with mode: 0644]
drivers/dma/coh901318.c
drivers/dma/dmaengine.c
drivers/dma/dmatest.c
drivers/dma/ipu/ipu_idmac.c
drivers/dma/ste_dma40.c
drivers/ieee802154/Makefile
drivers/ieee802154/fakehard.c
drivers/infiniband/core/netlink.c
drivers/infiniband/hw/amso1100/c2.c
drivers/infiniband/ulp/iser/iscsi_iser.h
drivers/isdn/hardware/mISDN/avmfritz.c
drivers/isdn/hardware/mISDN/hfcmulti.c
drivers/isdn/hardware/mISDN/hfcpci.c
drivers/isdn/hardware/mISDN/mISDNinfineon.c
drivers/isdn/hardware/mISDN/mISDNipac.c
drivers/isdn/hardware/mISDN/netjet.c
drivers/isdn/hardware/mISDN/speedfax.c
drivers/isdn/hardware/mISDN/w6692.c
drivers/isdn/hisax/hisax.h
drivers/isdn/hisax/hisax_fcpcipnp.c
drivers/media/dvb/b2c2/flexcop-common.h
drivers/media/dvb/dm1105/dm1105.c
drivers/media/dvb/mantis/mantis_ca.c
drivers/media/dvb/mantis/mantis_common.h
drivers/media/dvb/mantis/mantis_evm.c
drivers/media/dvb/mantis/mantis_hif.c
drivers/media/dvb/mantis/mantis_ioc.c
drivers/media/dvb/mantis/mantis_pcmcia.c
drivers/media/dvb/mantis/mantis_uart.c
drivers/media/dvb/mantis/mantis_vp1034.c
drivers/media/dvb/pluto2/pluto2.c
drivers/mmc/host/tmio_mmc_dma.c
drivers/mtd/nand/atmel_nand.c
drivers/net/3c503.c
drivers/net/8139cp.c
drivers/net/8139too.c
drivers/net/8390.h
drivers/net/Kconfig
drivers/net/Makefile
drivers/net/a2065.c
drivers/net/ac3200.c
drivers/net/acenic.h
drivers/net/amd8111e.c
drivers/net/apne.c
drivers/net/appletalk/ltpc.c
drivers/net/arcnet/arc-rimi.c
drivers/net/arcnet/com20020-isa.c
drivers/net/arcnet/com20020-pci.c
drivers/net/arcnet/com20020.c
drivers/net/arcnet/com90io.c
drivers/net/arcnet/com90xx.c
drivers/net/ariadne.c
drivers/net/arm/am79c961a.c
drivers/net/arm/at91_ether.c
drivers/net/arm/ep93xx_eth.c
drivers/net/arm/ks8695net.c
drivers/net/atl1c/atl1c.h
drivers/net/atl1e/atl1e.h
drivers/net/atl1e/atl1e_main.c
drivers/net/atlx/atl2.c
drivers/net/b44.c
drivers/net/bcm63xx_enet.c
drivers/net/benet/be.h
drivers/net/benet/be_cmds.c
drivers/net/benet/be_cmds.h
drivers/net/benet/be_ethtool.c
drivers/net/benet/be_main.c
drivers/net/bmac.c
drivers/net/bna/bfa_cee.c
drivers/net/bna/cna.h
drivers/net/bnx2.c
drivers/net/bnx2x/Makefile
drivers/net/bnx2x/bnx2x.h
drivers/net/bnx2x/bnx2x_cmn.c
drivers/net/bnx2x/bnx2x_cmn.h
drivers/net/bnx2x/bnx2x_dcb.c
drivers/net/bnx2x/bnx2x_dcb.h
drivers/net/bnx2x/bnx2x_dump.h
drivers/net/bnx2x/bnx2x_ethtool.c
drivers/net/bnx2x/bnx2x_fw_defs.h
drivers/net/bnx2x/bnx2x_hsi.h
drivers/net/bnx2x/bnx2x_init.h
drivers/net/bnx2x/bnx2x_init_ops.h
drivers/net/bnx2x/bnx2x_link.c
drivers/net/bnx2x/bnx2x_link.h
drivers/net/bnx2x/bnx2x_main.c
drivers/net/bnx2x/bnx2x_reg.h
drivers/net/bnx2x/bnx2x_sp.c [new file with mode: 0644]
drivers/net/bnx2x/bnx2x_sp.h [new file with mode: 0644]
drivers/net/bnx2x/bnx2x_stats.c
drivers/net/bnx2x/bnx2x_stats.h
drivers/net/bonding/bond_3ad.c
drivers/net/bonding/bond_3ad.h
drivers/net/bonding/bond_main.c
drivers/net/bonding/bond_procfs.c
drivers/net/bonding/bond_sysfs.c
drivers/net/bonding/bonding.h
drivers/net/caif/Kconfig
drivers/net/caif/Makefile
drivers/net/caif/caif_hsi.c [new file with mode: 0644]
drivers/net/caif/caif_serial.c
drivers/net/caif/caif_shm_u5500.c
drivers/net/caif/caif_shmcore.c
drivers/net/caif/caif_spi.c
drivers/net/caif/caif_spi_slave.c
drivers/net/can/Kconfig
drivers/net/can/at91_can.c
drivers/net/can/bfin_can.c
drivers/net/can/c_can/c_can.c
drivers/net/can/c_can/c_can_platform.c
drivers/net/can/janz-ican3.c
drivers/net/can/sja1000/sja1000.h
drivers/net/can/sja1000/sja1000_of_platform.c
drivers/net/can/softing/softing_fw.c
drivers/net/can/softing/softing_main.c
drivers/net/cassini.c
drivers/net/cnic.c
drivers/net/cnic.h
drivers/net/cnic_defs.h
drivers/net/cnic_if.h
drivers/net/cpmac.c
drivers/net/cxgb3/common.h
drivers/net/cxgb3/cxgb3_offload.c
drivers/net/cxgb3/t3_hw.c
drivers/net/cxgb4/cxgb4_main.c
drivers/net/cxgb4vf/adapter.h
drivers/net/cxgb4vf/cxgb4vf_main.c
drivers/net/cxgb4vf/t4vf_hw.c
drivers/net/davinci_cpdma.c
drivers/net/davinci_emac.c
drivers/net/declance.c
drivers/net/depca.c
drivers/net/dl2k.c
drivers/net/dm9000.c
drivers/net/dnet.c
drivers/net/e100.c
drivers/net/e1000/e1000_ethtool.c
drivers/net/e1000/e1000_hw.c
drivers/net/e1000/e1000_main.c
drivers/net/e1000e/e1000.h
drivers/net/e1000e/es2lan.c
drivers/net/e1000e/ethtool.c
drivers/net/e1000e/hw.h
drivers/net/e1000e/ich8lan.c
drivers/net/e1000e/lib.c
drivers/net/e1000e/netdev.c
drivers/net/e1000e/phy.c
drivers/net/e2100.c
drivers/net/ehea/ehea_qmr.c
drivers/net/enic/enic.h
drivers/net/enic/enic_dev.c
drivers/net/enic/enic_dev.h
drivers/net/enic/enic_main.c
drivers/net/enic/enic_res.c
drivers/net/enic/vnic_cq.c
drivers/net/enic/vnic_cq.h
drivers/net/enic/vnic_dev.c
drivers/net/enic/vnic_dev.h
drivers/net/enic/vnic_devcmd.h
drivers/net/enic/vnic_enet.h
drivers/net/enic/vnic_intr.c
drivers/net/enic/vnic_intr.h
drivers/net/epic100.c
drivers/net/es3210.c
drivers/net/ethoc.c
drivers/net/ewrk3.c
drivers/net/fealnx.c
drivers/net/fec.c
drivers/net/fec_mpc52xx.c
drivers/net/fs_enet/fs_enet-main.c
drivers/net/ftgmac100.c [new file with mode: 0644]
drivers/net/ftgmac100.h [new file with mode: 0644]
drivers/net/gianfar.c
drivers/net/gianfar.h
drivers/net/gianfar_ethtool.c
drivers/net/greth.c
drivers/net/hamachi.c
drivers/net/hamradio/baycom_ser_fdx.c
drivers/net/hamradio/baycom_ser_hdx.c
drivers/net/hp-plus.c
drivers/net/hp.c
drivers/net/ibmveth.c
drivers/net/ifb.c
drivers/net/igb/e1000_mac.c
drivers/net/igb/igb_ethtool.c
drivers/net/igb/igb_main.c
drivers/net/igbvf/netdev.c
drivers/net/ioc3-eth.c
drivers/net/ipg.c
drivers/net/irda/ali-ircc.c
drivers/net/irda/donauboe.c
drivers/net/irda/nsc-ircc.c
drivers/net/irda/pxaficp_ir.c
drivers/net/irda/sir_dev.c
drivers/net/irda/smsc-ircc2.c
drivers/net/irda/via-ircc.c
drivers/net/irda/via-ircc.h
drivers/net/irda/vlsi_ir.c
drivers/net/irda/w83977af_ir.c
drivers/net/iseries_veth.c
drivers/net/ixgbe/ixgbe.h
drivers/net/ixgbe/ixgbe_82598.c
drivers/net/ixgbe/ixgbe_82599.c
drivers/net/ixgbe/ixgbe_common.c
drivers/net/ixgbe/ixgbe_common.h
drivers/net/ixgbe/ixgbe_dcb.c
drivers/net/ixgbe/ixgbe_dcb.h
drivers/net/ixgbe/ixgbe_dcb_82598.c
drivers/net/ixgbe/ixgbe_dcb_82598.h
drivers/net/ixgbe/ixgbe_dcb_82599.c
drivers/net/ixgbe/ixgbe_dcb_82599.h
drivers/net/ixgbe/ixgbe_dcb_nl.c
drivers/net/ixgbe/ixgbe_ethtool.c
drivers/net/ixgbe/ixgbe_fcoe.c
drivers/net/ixgbe/ixgbe_fcoe.h
drivers/net/ixgbe/ixgbe_main.c
drivers/net/ixgbe/ixgbe_sriov.c
drivers/net/ixgbe/ixgbe_type.h
drivers/net/ixgbe/ixgbe_x540.c
drivers/net/ixgbevf/ixgbevf.h
drivers/net/ixgbevf/ixgbevf_main.c
drivers/net/ixp2000/ixpdev.c
drivers/net/jme.c
drivers/net/jme.h
drivers/net/ks8842.c
drivers/net/ks8851.c
drivers/net/ks8851_mll.c
drivers/net/ksz884x.c
drivers/net/lib8390.c
drivers/net/ll_temac_main.c
drivers/net/lne390.c
drivers/net/macb.c
drivers/net/mace.c
drivers/net/macmace.c
drivers/net/macvlan.c
drivers/net/macvtap.c
drivers/net/mipsnet.c
drivers/net/mlx4/en_rx.c
drivers/net/mlx4/en_tx.c
drivers/net/mlx4/main.c
drivers/net/mlx4/reset.c
drivers/net/mv643xx_eth.c
drivers/net/myri10ge/myri10ge.c
drivers/net/myri10ge/myri10ge_mcp_gen_header.h
drivers/net/myri_sbus.c [deleted file]
drivers/net/myri_sbus.h [deleted file]
drivers/net/netx-eth.c
drivers/net/netxen/netxen_nic_ctx.c
drivers/net/netxen/netxen_nic_hw.c
drivers/net/netxen/netxen_nic_init.c
drivers/net/netxen/netxen_nic_main.c
drivers/net/niu.c
drivers/net/ns83820.c
drivers/net/octeon/octeon_mgmt.c
drivers/net/phy/icplus.c
drivers/net/ppp_async.c
drivers/net/ppp_synctty.c
drivers/net/pptp.c
drivers/net/ps3_gelic_net.c
drivers/net/pxa168_eth.c
drivers/net/qla3xxx.c
drivers/net/qlcnic/qlcnic.h
drivers/net/qlcnic/qlcnic_ctx.c
drivers/net/qlcnic/qlcnic_ethtool.c
drivers/net/qlcnic/qlcnic_hw.c
drivers/net/qlcnic/qlcnic_init.c
drivers/net/qlcnic/qlcnic_main.c
drivers/net/qlge/qlge.h
drivers/net/qlge/qlge_ethtool.c
drivers/net/qlge/qlge_main.c
drivers/net/r6040.c
drivers/net/r8169.c
drivers/net/rionet.c
drivers/net/s2io.c
drivers/net/sc92031.c
drivers/net/sfc/filter.c
drivers/net/sfc/net_driver.h
drivers/net/sfc/nic.c
drivers/net/sfc/siena.c
drivers/net/sgiseeq.c
drivers/net/sh_eth.c
drivers/net/sis190.c
drivers/net/sis900.c
drivers/net/skge.h
drivers/net/sky2.c
drivers/net/slhc.c
drivers/net/smc-mca.c
drivers/net/smc-ultra.c
drivers/net/smsc911x.c
drivers/net/smsc9420.c
drivers/net/spider_net.c
drivers/net/starfire.c
drivers/net/stmmac/dwmac1000_core.c
drivers/net/stmmac/dwmac1000_dma.c
drivers/net/stmmac/dwmac100_core.c
drivers/net/stmmac/dwmac100_dma.c
drivers/net/stmmac/stmmac_ethtool.c
drivers/net/stmmac/stmmac_main.c
drivers/net/stmmac/stmmac_mdio.c
drivers/net/sungem.c
drivers/net/sungem.h
drivers/net/tg3.c
drivers/net/tg3.h
drivers/net/tlan.c
drivers/net/tokenring/3c359.c
drivers/net/tokenring/ibmtr.c
drivers/net/tokenring/madgemc.c
drivers/net/tsi108_eth.c
drivers/net/tulip/de2104x.c
drivers/net/tulip/de4x5.c
drivers/net/tulip/pnic.c
drivers/net/tulip/tulip_core.c
drivers/net/tun.c
drivers/net/typhoon.c
drivers/net/ucc_geth.c
drivers/net/usb/cdc-phonet.c
drivers/net/usb/cdc_ncm.c
drivers/net/usb/ipheth.c
drivers/net/veth.c
drivers/net/via-velocity.c
drivers/net/virtio_net.c
drivers/net/vmxnet3/vmxnet3_drv.c
drivers/net/vmxnet3/vmxnet3_ethtool.c
drivers/net/vmxnet3/vmxnet3_int.h
drivers/net/vxge/vxge-config.c
drivers/net/vxge/vxge-config.h
drivers/net/vxge/vxge-main.c
drivers/net/vxge/vxge-main.h
drivers/net/vxge/vxge-traffic.c
drivers/net/wan/c101.c
drivers/net/wan/cosa.c
drivers/net/wan/cycx_drv.c
drivers/net/wan/cycx_main.c
drivers/net/wan/cycx_x25.c
drivers/net/wan/dlci.c
drivers/net/wan/dscc4.c
drivers/net/wan/farsync.c
drivers/net/wan/hd64570.c
drivers/net/wan/hd64572.c
drivers/net/wan/hdlc.c
drivers/net/wan/hdlc_cisco.c
drivers/net/wan/hdlc_fr.c
drivers/net/wan/hdlc_ppp.c
drivers/net/wan/hdlc_x25.c
drivers/net/wan/hostess_sv11.c
drivers/net/wan/ixp4xx_hss.c
drivers/net/wan/lapbether.c
drivers/net/wan/n2.c
drivers/net/wan/pc300_drv.c
drivers/net/wan/pc300_tty.c
drivers/net/wan/pc300too.c
drivers/net/wan/pci200syn.c
drivers/net/wan/sbni.c
drivers/net/wan/sdla.c
drivers/net/wan/sealevel.c
drivers/net/wan/wanxl.c
drivers/net/wan/x25_asy.c
drivers/net/wan/z85230.c
drivers/net/wireless/adm8211.c
drivers/net/wireless/ath/ath.h
drivers/net/wireless/ath/ath5k/ahb.c
drivers/net/wireless/ath/ath5k/ath5k.h
drivers/net/wireless/ath/ath5k/base.c
drivers/net/wireless/ath/ath5k/mac80211-ops.c
drivers/net/wireless/ath/ath5k/reset.c
drivers/net/wireless/ath/ath9k/ahb.c
drivers/net/wireless/ath/ath9k/ar9002_mac.c
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
drivers/net/wireless/ath/ath9k/ar9003_hw.c
drivers/net/wireless/ath/ath9k/ar9003_mac.c
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
drivers/net/wireless/ath/ath9k/ar9003_phy.c
drivers/net/wireless/ath/ath9k/ar9003_phy.h
drivers/net/wireless/ath/ath9k/ar9330_1p1_initvals.h [new file with mode: 0644]
drivers/net/wireless/ath/ath9k/ar9330_1p2_initvals.h [new file with mode: 0644]
drivers/net/wireless/ath/ath9k/ath9k.h
drivers/net/wireless/ath/ath9k/beacon.c
drivers/net/wireless/ath/ath9k/debug.c
drivers/net/wireless/ath/ath9k/debug.h
drivers/net/wireless/ath/ath9k/hif_usb.c
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
drivers/net/wireless/ath/ath9k/hw-ops.h
drivers/net/wireless/ath/ath9k/hw.c
drivers/net/wireless/ath/ath9k/hw.h
drivers/net/wireless/ath/ath9k/init.c
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/rc.c
drivers/net/wireless/ath/ath9k/recv.c
drivers/net/wireless/ath/ath9k/reg.h
drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/carl9170/rx.c
drivers/net/wireless/atmel.c
drivers/net/wireless/b43/Kconfig
drivers/net/wireless/b43/Makefile
drivers/net/wireless/b43/b43.h
drivers/net/wireless/b43/bus.c [new file with mode: 0644]
drivers/net/wireless/b43/bus.h [new file with mode: 0644]
drivers/net/wireless/b43/dma.c
drivers/net/wireless/b43/leds.c
drivers/net/wireless/b43/lo.c
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/main.h
drivers/net/wireless/b43/phy_a.c
drivers/net/wireless/b43/phy_common.c
drivers/net/wireless/b43/phy_common.h
drivers/net/wireless/b43/phy_g.c
drivers/net/wireless/b43/phy_ht.c [new file with mode: 0644]
drivers/net/wireless/b43/phy_ht.h [new file with mode: 0644]
drivers/net/wireless/b43/phy_lp.c
drivers/net/wireless/b43/phy_n.c
drivers/net/wireless/b43/pio.c
drivers/net/wireless/b43/radio_2055.h
drivers/net/wireless/b43/radio_2056.h
drivers/net/wireless/b43/radio_2059.c [new file with mode: 0644]
drivers/net/wireless/b43/radio_2059.h [new file with mode: 0644]
drivers/net/wireless/b43/rfkill.c
drivers/net/wireless/b43/sdio.c
drivers/net/wireless/b43/sysfs.c
drivers/net/wireless/b43/tables_lpphy.c
drivers/net/wireless/b43/tables_nphy.h
drivers/net/wireless/b43/tables_phy_ht.c [new file with mode: 0644]
drivers/net/wireless/b43/tables_phy_ht.h [new file with mode: 0644]
drivers/net/wireless/b43/wa.c
drivers/net/wireless/b43/xmit.c
drivers/net/wireless/b43legacy/dma.c
drivers/net/wireless/b43legacy/main.c
drivers/net/wireless/b43legacy/xmit.c
drivers/net/wireless/hostap/hostap_wlan.h
drivers/net/wireless/ipw2x00/ipw2200.h
drivers/net/wireless/ipw2x00/libipw_rx.c
drivers/net/wireless/ipw2x00/libipw_wx.c
drivers/net/wireless/iwlegacy/iwl-3945.c
drivers/net/wireless/iwlegacy/iwl-4965-lib.c
drivers/net/wireless/iwlegacy/iwl-4965-rs.c
drivers/net/wireless/iwlegacy/iwl-4965-rx.c
drivers/net/wireless/iwlegacy/iwl-4965.c
drivers/net/wireless/iwlegacy/iwl-commands.h
drivers/net/wireless/iwlegacy/iwl-core.c
drivers/net/wireless/iwlegacy/iwl-core.h
drivers/net/wireless/iwlegacy/iwl-debugfs.c
drivers/net/wireless/iwlegacy/iwl-dev.h
drivers/net/wireless/iwlegacy/iwl-devtrace.c
drivers/net/wireless/iwlegacy/iwl-devtrace.h
drivers/net/wireless/iwlegacy/iwl-eeprom.c
drivers/net/wireless/iwlegacy/iwl-helpers.h
drivers/net/wireless/iwlegacy/iwl-rx.c
drivers/net/wireless/iwlegacy/iwl-scan.c
drivers/net/wireless/iwlegacy/iwl3945-base.c
drivers/net/wireless/iwlegacy/iwl4965-base.c
drivers/net/wireless/iwlwifi/Makefile
drivers/net/wireless/iwlwifi/iwl-1000.c
drivers/net/wireless/iwlwifi/iwl-2000.c
drivers/net/wireless/iwlwifi/iwl-5000-hw.h
drivers/net/wireless/iwlwifi/iwl-5000.c
drivers/net/wireless/iwlwifi/iwl-6000.c
drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c
drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
drivers/net/wireless/iwlwifi/iwl-agn-hw.h
drivers/net/wireless/iwlwifi/iwl-agn-ict.c
drivers/net/wireless/iwlwifi/iwl-agn-lib.c
drivers/net/wireless/iwlwifi/iwl-agn-rs.c
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
drivers/net/wireless/iwlwifi/iwl-agn-sta.c
drivers/net/wireless/iwlwifi/iwl-agn-tt.c
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
drivers/net/wireless/iwlwifi/iwl-agn-ucode.c
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-agn.h
drivers/net/wireless/iwlwifi/iwl-commands.h
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/iwlwifi/iwl-debug.h
drivers/net/wireless/iwlwifi/iwl-debugfs.c
drivers/net/wireless/iwlwifi/iwl-dev.h
drivers/net/wireless/iwlwifi/iwl-eeprom.c
drivers/net/wireless/iwlwifi/iwl-eeprom.h
drivers/net/wireless/iwlwifi/iwl-hcmd.c
drivers/net/wireless/iwlwifi/iwl-helpers.h
drivers/net/wireless/iwlwifi/iwl-io.h
drivers/net/wireless/iwlwifi/iwl-led.c
drivers/net/wireless/iwlwifi/iwl-pci.c [new file with mode: 0644]
drivers/net/wireless/iwlwifi/iwl-pci.h [new file with mode: 0644]
drivers/net/wireless/iwlwifi/iwl-power.c
drivers/net/wireless/iwlwifi/iwl-power.h
drivers/net/wireless/iwlwifi/iwl-rx.c
drivers/net/wireless/iwlwifi/iwl-scan.c
drivers/net/wireless/iwlwifi/iwl-sv-open.c
drivers/net/wireless/iwlwifi/iwl-testmode.h
drivers/net/wireless/iwlwifi/iwl-tx.c
drivers/net/wireless/iwmc3200wifi/fw.c
drivers/net/wireless/libertas/cfg.c
drivers/net/wireless/libertas/cmd.c
drivers/net/wireless/libertas/cmdresp.c
drivers/net/wireless/libertas/debugfs.c
drivers/net/wireless/libertas/ethtool.c
drivers/net/wireless/libertas/if_sdio.c
drivers/net/wireless/libertas/if_spi.c
drivers/net/wireless/libertas/main.c
drivers/net/wireless/libertas/mesh.c
drivers/net/wireless/libertas/rx.c
drivers/net/wireless/libertas/tx.c
drivers/net/wireless/libertas_tf/cmd.c
drivers/net/wireless/libertas_tf/main.c
drivers/net/wireless/mac80211_hwsim.c
drivers/net/wireless/mac80211_hwsim.h [new file with mode: 0644]
drivers/net/wireless/mwifiex/11n.c
drivers/net/wireless/mwifiex/11n.h
drivers/net/wireless/mwifiex/11n_aggr.c
drivers/net/wireless/mwifiex/11n_rxreorder.c
drivers/net/wireless/mwifiex/11n_rxreorder.h
drivers/net/wireless/mwifiex/cmdevt.c
drivers/net/wireless/mwifiex/join.c
drivers/net/wireless/mwifiex/main.c
drivers/net/wireless/mwifiex/main.h
drivers/net/wireless/mwifiex/scan.c
drivers/net/wireless/mwifiex/sdio.c
drivers/net/wireless/mwifiex/sdio.h
drivers/net/wireless/mwifiex/sta_cmd.c
drivers/net/wireless/mwifiex/sta_cmdresp.c
drivers/net/wireless/mwifiex/sta_rx.c
drivers/net/wireless/mwifiex/txrx.c
drivers/net/wireless/mwifiex/wmm.c
drivers/net/wireless/mwl8k.c
drivers/net/wireless/orinoco/main.c
drivers/net/wireless/p54/p54pci.h
drivers/net/wireless/prism54/islpci_dev.c
drivers/net/wireless/prism54/islpci_dev.h
drivers/net/wireless/prism54/islpci_hotplug.c
drivers/net/wireless/rt2x00/Kconfig
drivers/net/wireless/rt2x00/rt2800.h
drivers/net/wireless/rt2x00/rt2800lib.c
drivers/net/wireless/rt2x00/rt2800lib.h
drivers/net/wireless/rt2x00/rt2800pci.c
drivers/net/wireless/rt2x00/rt2800usb.c
drivers/net/wireless/rt2x00/rt2x00.h
drivers/net/wireless/rt2x00/rt2x00dev.c
drivers/net/wireless/rt2x00/rt2x00queue.c
drivers/net/wireless/rt2x00/rt2x00queue.h
drivers/net/wireless/rt2x00/rt2x00usb.c
drivers/net/wireless/rtl818x/rtl8180/dev.c
drivers/net/wireless/rtlwifi/Kconfig
drivers/net/wireless/rtlwifi/Makefile
drivers/net/wireless/rtlwifi/base.c
drivers/net/wireless/rtlwifi/core.c
drivers/net/wireless/rtlwifi/core.h
drivers/net/wireless/rtlwifi/efuse.c
drivers/net/wireless/rtlwifi/pci.c
drivers/net/wireless/rtlwifi/pci.h
drivers/net/wireless/rtlwifi/ps.c
drivers/net/wireless/rtlwifi/ps.h
drivers/net/wireless/rtlwifi/rc.c
drivers/net/wireless/rtlwifi/regd.c
drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
drivers/net/wireless/rtlwifi/rtl8192ce/led.c
drivers/net/wireless/rtlwifi/rtl8192ce/phy.c
drivers/net/wireless/rtlwifi/rtl8192ce/reg.h
drivers/net/wireless/rtlwifi/rtl8192ce/rf.c
drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
drivers/net/wireless/rtlwifi/rtl8192cu/led.c
drivers/net/wireless/rtlwifi/rtl8192cu/mac.c
drivers/net/wireless/rtlwifi/rtl8192cu/phy.c
drivers/net/wireless/rtlwifi/rtl8192cu/rf.c
drivers/net/wireless/rtlwifi/rtl8192cu/trx.c
drivers/net/wireless/rtlwifi/rtl8192de/Makefile [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/def.h [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/dm.c [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/dm.h [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/fw.c [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/fw.h [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/hw.c [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/hw.h [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/led.c [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/led.h [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/phy.c [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/phy.h [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/reg.h [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/rf.c [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/rf.h [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/sw.c [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/sw.h [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/table.c [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/table.h [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/trx.c [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192de/trx.h [new file with mode: 0644]
drivers/net/wireless/rtlwifi/rtl8192se/dm.c
drivers/net/wireless/rtlwifi/rtl8192se/fw.c
drivers/net/wireless/rtlwifi/rtl8192se/hw.c
drivers/net/wireless/rtlwifi/rtl8192se/led.c
drivers/net/wireless/rtlwifi/rtl8192se/phy.c
drivers/net/wireless/rtlwifi/rtl8192se/reg.h
drivers/net/wireless/rtlwifi/rtl8192se/rf.c
drivers/net/wireless/rtlwifi/rtl8192se/trx.c
drivers/net/wireless/rtlwifi/wifi.h
drivers/net/wireless/wl1251/sdio.c
drivers/net/wireless/wl1251/spi.c
drivers/net/wireless/wl12xx/boot.c
drivers/net/wireless/wl12xx/cmd.c
drivers/net/wireless/wl12xx/event.c
drivers/net/wireless/wl12xx/event.h
drivers/net/wireless/wl12xx/init.c
drivers/net/wireless/wl12xx/io.h
drivers/net/wireless/wl12xx/main.c
drivers/net/wireless/wl12xx/spi.c
drivers/net/wireless/wl12xx/wl12xx.h
drivers/net/wireless/zd1211rw/zd_chip.h
drivers/net/wireless/zd1211rw/zd_def.h
drivers/net/wireless/zd1211rw/zd_mac.c
drivers/net/wireless/zd1211rw/zd_mac.h
drivers/net/wireless/zd1211rw/zd_usb.c
drivers/net/wireless/zd1211rw/zd_usb.h
drivers/net/xen-netback/netback.c
drivers/net/xen-netfront.c
drivers/net/xilinx_emaclite.c
drivers/net/yellowfin.c
drivers/net/znet.c
drivers/net/zorro8390.c
drivers/s390/net/ctcm_mpc.h
drivers/scsi/bnx2fc/57xx_hsi_bnx2fc.h
drivers/scsi/bnx2fc/bnx2fc.h
drivers/scsi/bnx2fc/bnx2fc_constants.h
drivers/scsi/bnx2fc/bnx2fc_els.c
drivers/scsi/bnx2fc/bnx2fc_fcoe.c
drivers/scsi/bnx2fc/bnx2fc_hwi.c
drivers/scsi/bnx2fc/bnx2fc_io.c
drivers/scsi/bnx2fc/bnx2fc_tgt.c
drivers/scsi/bnx2i/57xx_iscsi_constants.h
drivers/scsi/bnx2i/57xx_iscsi_hsi.h
drivers/scsi/bnx2i/bnx2i.h
drivers/scsi/bnx2i/bnx2i_init.c
drivers/ssb/driver_chipcommon_pmu.c
drivers/ssb/driver_gige.c
drivers/ssb/driver_pcicore.c
drivers/ssb/main.c
drivers/ssb/pcihost_wrapper.c
drivers/ssb/scan.c
drivers/staging/brcm80211/brcmfmac/dhd_linux.c
drivers/staging/brcm80211/brcmfmac/wl_iw.c
drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
drivers/staging/brcm80211/brcmsmac/wl_mac80211.h
drivers/staging/pohmelfs/crypto.c
drivers/staging/rtl8187se/ieee80211/ieee80211.h
drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c
drivers/staging/rtl8187se/r8180.h
drivers/staging/rtl8187se/r8180_core.c
drivers/staging/rtl8192e/ieee80211/ieee80211.h
drivers/staging/rtl8192e/r8192E.h
drivers/staging/rtl8192e/r8192E_core.c
drivers/staging/rtl8192u/ieee80211/ieee80211.h
drivers/tty/serial/ifx6x60.c
drivers/usb/gadget/f_phonet.c
include/crypto/if_alg.h
include/linux/arcdevice.h
include/linux/ath9k_platform.h
include/linux/bcma/bcma.h
include/linux/bcma/bcma_driver_chipcommon.h
include/linux/bcma/bcma_driver_pci.h
include/linux/cordic.h [new file with mode: 0644]
include/linux/crc8.h [new file with mode: 0644]
include/linux/dcbnl.h
include/linux/dccp.h
include/linux/dma-direction.h [new file with mode: 0644]
include/linux/dma-mapping.h
include/linux/dmaengine.h
include/linux/ethtool.h
include/linux/ieee80211.h
include/linux/if_packet.h
include/linux/mii.h
include/linux/netdevice.h
include/linux/netfilter/ipset/ip_set.h
include/linux/netfilter/ipset/ip_set_ahash.h
include/linux/netfilter/ipset/ip_set_hash.h
include/linux/netfilter/ipset/ip_set_timeout.h
include/linux/netfilter/ipset/pfxlen.h
include/linux/netfilter/xt_set.h
include/linux/netlink.h
include/linux/netpoll.h
include/linux/pci_ids.h
include/linux/rtnetlink.h
include/linux/skbuff.h
include/linux/tcp.h
include/linux/virtio_net.h
include/net/bluetooth/bluetooth.h
include/net/bluetooth/hci.h
include/net/bluetooth/hci_core.h
include/net/bluetooth/l2cap.h
include/net/bluetooth/mgmt.h
include/net/bluetooth/rfcomm.h
include/net/bluetooth/smp.h
include/net/caif/caif_hsi.h [new file with mode: 0644]
include/net/cfg80211.h
include/net/dcbnl.h
include/net/genetlink.h
include/net/inetpeer.h
include/net/ip.h
include/net/ip_vs.h
include/net/mac80211.h
include/net/net_namespace.h
include/net/netlink.h
include/net/rtnetlink.h
include/net/sctp/sctp.h
include/net/sctp/structs.h
include/net/sctp/user.h
include/net/snmp.h
include/net/sock.h
include/net/tcp.h
include/net/wimax.h
include/trace/events/sock.h [new file with mode: 0644]
include/trace/events/udp.h [new file with mode: 0644]
lib/Kconfig
lib/Makefile
lib/cordic.c [new file with mode: 0644]
lib/crc8.c [new file with mode: 0644]
net/8021q/vlan.c
net/8021q/vlan_dev.c
net/8021q/vlanproc.c
net/TUNABLE [deleted file]
net/appletalk/aarp.c
net/appletalk/ddp.c
net/atm/mpc.c
net/atm/pppoatm.c
net/batman-adv/Kconfig
net/batman-adv/aggregation.c
net/batman-adv/aggregation.h
net/batman-adv/bat_debugfs.c
net/batman-adv/bat_sysfs.c
net/batman-adv/bat_sysfs.h
net/batman-adv/bitarray.c
net/batman-adv/bitarray.h
net/batman-adv/gateway_client.c
net/batman-adv/gateway_client.h
net/batman-adv/gateway_common.c
net/batman-adv/hard-interface.c
net/batman-adv/hard-interface.h
net/batman-adv/hash.c
net/batman-adv/hash.h
net/batman-adv/icmp_socket.c
net/batman-adv/main.c
net/batman-adv/main.h
net/batman-adv/originator.c
net/batman-adv/originator.h
net/batman-adv/packet.h
net/batman-adv/ring_buffer.c
net/batman-adv/ring_buffer.h
net/batman-adv/routing.c
net/batman-adv/routing.h
net/batman-adv/send.c
net/batman-adv/send.h
net/batman-adv/soft-interface.c
net/batman-adv/soft-interface.h
net/batman-adv/translation-table.c
net/batman-adv/translation-table.h
net/batman-adv/types.h
net/batman-adv/unicast.c
net/batman-adv/unicast.h
net/batman-adv/vis.c
net/bluetooth/Kconfig
net/bluetooth/Makefile
net/bluetooth/cmtp/capi.c
net/bluetooth/hci_conn.c
net/bluetooth/hci_core.c
net/bluetooth/hci_event.c
net/bluetooth/hci_sock.c
net/bluetooth/l2cap_core.c
net/bluetooth/l2cap_sock.c
net/bluetooth/mgmt.c
net/bluetooth/rfcomm/sock.c
net/bluetooth/smp.c [new file with mode: 0644]
net/bridge/br_netlink.c
net/caif/caif_dev.c
net/caif/chnl_net.c
net/can/af_can.c
net/can/bcm.c
net/ceph/crypto.c
net/core/dev.c
net/core/ethtool.c
net/core/fib_rules.c
net/core/neighbour.c
net/core/net-traces.c
net/core/net_namespace.c
net/core/netpoll.c
net/core/rtnetlink.c
net/core/sock.c
net/core/timestamping.c
net/dcb/dcbnl.c
net/dccp/ccid.c
net/dccp/ccids/ccid2.c
net/dccp/ccids/ccid2.h
net/dccp/input.c
net/dccp/output.c
net/decnet/af_decnet.c
net/decnet/dn_dev.c
net/decnet/dn_fib.c
net/decnet/dn_neigh.c
net/decnet/dn_nsp_in.c
net/decnet/dn_route.c
net/decnet/dn_table.c
net/decnet/netfilter/dn_rtmsg.c
net/decnet/sysctl_net_decnet.c
net/dsa/mv88e6131.c
net/econet/af_econet.c
net/ieee802154/af_ieee802154.c
net/ieee802154/dgram.c
net/ieee802154/nl-phy.c
net/ipv4/af_inet.c
net/ipv4/devinet.c
net/ipv4/fib_frontend.c
net/ipv4/gre.c
net/ipv4/inet_diag.c
net/ipv4/inetpeer.c
net/ipv4/ip_fragment.c
net/ipv4/ip_input.c
net/ipv4/ip_output.c
net/ipv4/ipconfig.c
net/ipv4/ipmr.c
net/ipv4/netfilter/ipt_CLUSTERIP.c
net/ipv4/netfilter/nf_defrag_ipv4.c
net/ipv4/netfilter/nf_nat_snmp_basic.c
net/ipv4/netfilter/nf_nat_standalone.c
net/ipv4/raw.c
net/ipv4/route.c
net/ipv4/syncookies.c
net/ipv4/sysctl_net_ipv4.c
net/ipv4/tcp_input.c
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_minisocks.c
net/ipv4/udp.c
net/ipv4/xfrm4_policy.c
net/ipv6/addrconf.c
net/ipv6/addrlabel.c
net/ipv6/ip6_fib.c
net/ipv6/ip6mr.c
net/ipv6/raw.c
net/ipv6/route.c
net/ipv6/syncookies.c
net/ipv6/tcp_ipv6.c
net/irda/af_irda.c
net/irda/ircomm/ircomm_tty_attach.c
net/irda/irda_device.c
net/irda/iriap.c
net/irda/irlan/irlan_client.c
net/irda/irlan/irlan_common.c
net/irda/irlan/irlan_eth.c
net/irda/irlan/irlan_provider.c
net/irda/irqueue.c
net/irda/irttp.c
net/key/af_key.c
net/l2tp/l2tp_ip.c
net/lapb/lapb_iface.c
net/lapb/lapb_in.c
net/mac80211/agg-rx.c
net/mac80211/cfg.c
net/mac80211/driver-ops.h
net/mac80211/driver-trace.h
net/mac80211/ht.c
net/mac80211/ieee80211_i.h
net/mac80211/mlme.c
net/mac80211/pm.c
net/mac80211/rc80211_minstrel.c
net/mac80211/rc80211_minstrel.h
net/mac80211/rc80211_minstrel_ht.c
net/mac80211/rx.c
net/mac80211/scan.c
net/mac80211/sta_info.h
net/mac80211/util.c
net/mac80211/wme.c
net/mac80211/wme.h
net/mac80211/work.c
net/netfilter/ipset/Kconfig
net/netfilter/ipset/Makefile
net/netfilter/ipset/ip_set_bitmap_ip.c
net/netfilter/ipset/ip_set_bitmap_ipmac.c
net/netfilter/ipset/ip_set_bitmap_port.c
net/netfilter/ipset/ip_set_core.c
net/netfilter/ipset/ip_set_hash_ip.c
net/netfilter/ipset/ip_set_hash_ipport.c
net/netfilter/ipset/ip_set_hash_ipportip.c
net/netfilter/ipset/ip_set_hash_ipportnet.c
net/netfilter/ipset/ip_set_hash_net.c
net/netfilter/ipset/ip_set_hash_netiface.c [new file with mode: 0644]
net/netfilter/ipset/ip_set_hash_netport.c
net/netfilter/ipset/ip_set_list_set.c
net/netfilter/ipset/pfxlen.c
net/netfilter/ipvs/ip_vs_app.c
net/netfilter/ipvs/ip_vs_conn.c
net/netfilter/ipvs/ip_vs_core.c
net/netfilter/ipvs/ip_vs_ctl.c
net/netfilter/ipvs/ip_vs_est.c
net/netfilter/ipvs/ip_vs_ftp.c
net/netfilter/ipvs/ip_vs_proto.c
net/netfilter/ipvs/ip_vs_sync.c
net/netfilter/nf_conntrack_netlink.c
net/netfilter/xt_CT.c
net/netfilter/xt_HL.c
net/netfilter/xt_hl.c
net/netfilter/xt_set.c
net/netlabel/netlabel_unlabeled.c
net/netlink/af_netlink.c
net/netlink/genetlink.c
net/netrom/nr_route.c
net/packet/af_packet.c
net/phonet/pn_netlink.c
net/rds/bind.c
net/rds/ib.h
net/rds/ib_cm.c
net/rds/ib_send.c
net/rds/iw.h
net/rds/iw_cm.c
net/rds/iw_rdma.c
net/rds/iw_send.c
net/rds/send.c
net/rds/tcp_stats.c
net/sched/act_api.c
net/sched/cls_api.c
net/sched/cls_flow.c
net/sched/cls_rsvp.h
net/sched/sch_api.c
net/sched/sch_atm.c
net/sched/sch_choke.c
net/sched/sch_generic.c
net/sched/sch_netem.c
net/sched/sch_sfq.c
net/sctp/associola.c
net/sctp/bind_addr.c
net/sctp/input.c
net/sctp/ipv6.c
net/sctp/outqueue.c
net/sctp/protocol.c
net/sctp/sm_make_chunk.c
net/sctp/sm_sideeffect.c
net/sctp/sm_statefuns.c
net/sctp/socket.c
net/sctp/sysctl.c
net/sunrpc/auth.c
net/sunrpc/auth_gss/auth_gss.c
net/sunrpc/clnt.c
net/sunrpc/rpc_pipe.c
net/sunrpc/xprtrdma/svc_rdma_transport.c
net/sunrpc/xprtrdma/verbs.c
net/tipc/bcast.c
net/tipc/bearer.c
net/tipc/bearer.h
net/tipc/core.h
net/tipc/link.c
net/tipc/msg.c
net/tipc/msg.h
net/tipc/name_distr.c
net/tipc/name_table.c
net/tipc/name_table.h
net/tipc/port.c
net/tipc/socket.c
net/wireless/mlme.c
net/wireless/nl80211.c
net/x25/af_x25.c
net/x25/x25_dev.c
net/x25/x25_in.c
net/x25/x25_link.c
net/x25/x25_subr.c
net/xfrm/xfrm_user.c
security/apparmor/lib.c

index d3d653a..e3df119 100644 (file)
@@ -106,16 +106,6 @@ inet_peer_maxttl - INTEGER
        when the number of entries in the pool is very small).
        Measured in seconds.
 
-inet_peer_gc_mintime - INTEGER
-       Minimum interval between garbage collection passes.  This interval is
-       in effect under high memory pressure on the pool.
-       Measured in seconds.
-
-inet_peer_gc_maxtime - INTEGER
-       Minimum interval between garbage collection passes.  This interval is
-       in effect under low (or absent) memory pressure on the pool.
-       Measured in seconds.
-
 TCP variables:
 
 somaxconn - INTEGER
@@ -394,7 +384,7 @@ tcp_rmem - vector of 3 INTEGERs: min, default, max
        min: Minimal size of receive buffer used by TCP sockets.
        It is guaranteed to each TCP socket, even under moderate memory
        pressure.
-       Default: 8K
+       Default: 1 page
 
        default: initial size of receive buffer used by TCP sockets.
        This value overrides net.core.rmem_default used by other protocols.
@@ -483,7 +473,7 @@ tcp_window_scaling - BOOLEAN
 tcp_wmem - vector of 3 INTEGERs: min, default, max
        min: Amount of memory reserved for send buffers for TCP sockets.
        Each TCP socket has rights to use it due to fact of its birth.
-       Default: 4K
+       Default: 1 page
 
        default: initial size of send buffer used by TCP sockets.  This
        value overrides net.core.wmem_default used by other protocols.
@@ -553,13 +543,13 @@ udp_rmem_min - INTEGER
        Minimal size of receive buffer used by UDP sockets in moderation.
        Each UDP socket is able to use the size for receiving data, even if
        total pages of UDP sockets exceed udp_mem pressure. The unit is byte.
-       Default: 4096
+       Default: 1 page
 
 udp_wmem_min - INTEGER
        Minimal size of send buffer used by UDP sockets in moderation.
        Each UDP socket is able to use the size for sending data, even if
        total pages of UDP sockets exceed udp_mem pressure. The unit is byte.
-       Default: 4096
+       Default: 1 page
 
 CIPSOv4 Variables:
 
@@ -1465,10 +1455,17 @@ sctp_mem - vector of 3 INTEGERs: min, pressure, max
        Default is calculated at boot time from amount of available memory.
 
 sctp_rmem - vector of 3 INTEGERs: min, default, max
-       See tcp_rmem for a description.
+       Only the first value ("min") is used, "default" and "max" are
+       ignored.
+
+       min: Minimal size of receive buffer used by SCTP socket.
+       It is guaranteed to each SCTP socket (but not association) even
+       under moderate memory pressure.
+
+       Default: 1 page
 
 sctp_wmem  - vector of 3 INTEGERs: min, default, max
-       See tcp_wmem for a description.
+       Currently this tunable has no effect.
 
 addr_scope_policy - INTEGER
        Control IPv4 address scoping - draft-stewart-tsvwg-sctp-ipv4-00
index ae563fa..573cfa3 100644 (file)
@@ -4279,8 +4279,8 @@ S:        Maintained
 F:     drivers/usb/musb/
 
 MYRICOM MYRI-10G 10GbE DRIVER (MYRI10GE)
+M:     Jon Mason <mason@myri.com>
 M:     Andrew Gallatin <gallatin@myri.com>
-M:     Brice Goglin <brice@myri.com>
 L:     netdev@vger.kernel.org
 W:     http://www.myri.com/scs/download-Myri10GE.html
 S:     Supported
index 606a6f2..5f5d783 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/spi/spi.h>
 #include <linux/spi/flash.h>
 
+#include <asm/io.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <mach/common.h>
index 1e0f809..e00d61e 100644 (file)
@@ -8,6 +8,7 @@
  * is licensed "as is" without any warranty of any kind, whether express
  * or implied.
  */
+#include <linux/dma-mapping.h>
 #include <linux/init.h>
 #include <linux/clk.h>
 #include <linux/serial_8250.h>
index 1bd73a0..04c49f7 100644 (file)
@@ -17,6 +17,7 @@
 
 #include <asm/cacheflush.h>
 #include <asm/delay.h>
+#include <asm/io.h>
 
 #include <mach/da8xx.h>
 #include <mach/sram.h>
index 236f149..f8aa5be 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/interrupt.h>
+#include <linux/err.h>
 #include <linux/errno.h>
 #include <linux/clk.h>
 #include <linux/scatterlist.h>
index 9b98244..b5ecc26 100644 (file)
@@ -13,6 +13,7 @@
  */
 
 #include <linux/delay.h>
+#include <linux/dma-mapping.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/clk.h>
index 5c147fb..a5b9897 100644 (file)
@@ -17,6 +17,7 @@
  *
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/serial_8250.h>
 #include <linux/io.h>
 #ifdef CONFIG_MTD_PHYSMAP
index 796606c..27608f5 100644 (file)
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <asm/sizes.h>
 #include <mach/mx23.h>
 #include <mach/mx28.h>
index 295c442..6a0202b 100644 (file)
@@ -6,6 +6,7 @@
  * Free Software Foundation.
  */
 #include <linux/compiler.h>
+#include <linux/dma-mapping.h>
 #include <linux/err.h>
 #include <linux/init.h>
 
index 9859cf2..ae96a4f 100644 (file)
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <asm/sizes.h>
 #include <mach/mx28.h>
 #include <mach/devices-common.h>
index ccc789e..4fc6ffc 100644 (file)
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <asm/sizes.h>
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
index 59c33f6..23ce08e 100644 (file)
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
 
index 79a1cb1..2b0b5e0 100644 (file)
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
 
index edf6503..79d340a 100644 (file)
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
 
index cc488f4..e1763e0 100644 (file)
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
 
index 90d762f..540d3a7 100644 (file)
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
 
index c448860..685c787 100644 (file)
@@ -10,6 +10,7 @@
 #define STE_DMA40_H
 
 #include <linux/dmaengine.h>
+#include <linux/scatterlist.h>
 #include <linux/workqueue.h>
 #include <linux/interrupt.h>
 
index 8b6e201..3c55312 100644 (file)
@@ -16,6 +16,7 @@
 
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
+#include <linux/interrupt.h>
 #include <linux/module.h>
 #include <asm/natfeat.h>
 #include <asm/virtconvert.h>
index 30ac65d..e07a2fc 100644 (file)
@@ -36,6 +36,7 @@
 #include <asm/bootparam.h>
 #include <asm/pgtable.h>
 #include <asm/pgalloc.h>
+#include <asm/swiotlb.h>
 #include <asm/fixmap.h>
 #include <asm/proto.h>
 #include <asm/setup.h>
index c132193..c88ff9e 100644 (file)
@@ -21,6 +21,7 @@
  */
 #include <linux/async_tx.h>
 #include <linux/gfp.h>
+#include <linux/mm.h>
 #include <linux/random.h>
 
 #undef pr
index e4c9525..493a693 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <linux/atm.h>
 #include <linux/atmdev.h>
+#include <linux/interrupt.h>
 #include <linux/sonet.h>
 #include <linux/skbuff.h>
 #include <linux/time.h>
index ef7a658..7c7b571 100644 (file)
@@ -44,6 +44,7 @@
 #include <linux/ioport.h> /* for request_region */
 #include <linux/uio.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/capability.h>
 #include <linux/bitops.h>
 #include <linux/slab.h>
index d58e3fc..2875061 100644 (file)
@@ -38,6 +38,7 @@
 #include <linux/delay.h>
 #include <linux/uio.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/ioport.h>
 #include <linux/wait.h>
 #include <linux/slab.h>
index 1f8d724..be0dbfe 100644 (file)
@@ -37,6 +37,7 @@
 #include <linux/atm.h>
 #include <linux/delay.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/bitops.h>
 #include <linux/wait.h>
 #include <linux/jiffies.h>
index dee4f01..957106f 100644 (file)
@@ -53,6 +53,7 @@
 #include <linux/delay.h>  
 #include <linux/uio.h>  
 #include <linux/init.h>  
+#include <linux/interrupt.h>
 #include <linux/wait.h>
 #include <linux/slab.h>
 #include <asm/system.h>  
index 6249179..7f8c513 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/delay.h>
 #include <linux/uio.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/dma-mapping.h>
 #include <linux/atm_zatm.h>
 #include <linux/capability.h>
index 353781b..83e9adf 100644 (file)
@@ -13,6 +13,11 @@ config BCMA
          Bus driver for Broadcom specific Advanced Microcontroller Bus
          Architecture.
 
+# Support for Block-I/O. SELECT this from the driver that needs it.
+config BCMA_BLOCKIO
+       bool
+       depends on BCMA
+
 config BCMA_HOST_PCI_POSSIBLE
        bool
        depends on BCMA && PCI = y
index 0d56245..cde0182 100644 (file)
@@ -1,4 +1,4 @@
-bcma-y                                 += main.o scan.o core.o
+bcma-y                                 += main.o scan.o core.o sprom.o
 bcma-y                                 += driver_chipcommon.o driver_chipcommon_pmu.o
 bcma-y                                 += driver_pci.o
 bcma-$(CONFIG_BCMA_HOST_PCI)           += host_pci.o
index 2f72e9c..4228736 100644 (file)
 struct bcma_bus;
 
 /* main.c */
-extern int bcma_bus_register(struct bcma_bus *bus);
-extern void bcma_bus_unregister(struct bcma_bus *bus);
+int bcma_bus_register(struct bcma_bus *bus);
+void bcma_bus_unregister(struct bcma_bus *bus);
 
 /* scan.c */
 int bcma_bus_scan(struct bcma_bus *bus);
 
+/* sprom.c */
+int bcma_sprom_get(struct bcma_bus *bus);
+
 #ifdef CONFIG_BCMA_HOST_PCI
 /* host_pci.c */
 extern int __init bcma_host_pci_init(void);
index ced379f..1ec7d45 100644 (file)
@@ -19,7 +19,7 @@ bool bcma_core_is_enabled(struct bcma_device *core)
 }
 EXPORT_SYMBOL_GPL(bcma_core_is_enabled);
 
-static void bcma_core_disable(struct bcma_device *core, u32 flags)
+void bcma_core_disable(struct bcma_device *core, u32 flags)
 {
        if (bcma_aread32(core, BCMA_RESET_CTL) & BCMA_RESET_CTL_RESET)
                return;
@@ -31,6 +31,7 @@ static void bcma_core_disable(struct bcma_device *core, u32 flags)
        bcma_awrite32(core, BCMA_RESET_CTL, BCMA_RESET_CTL_RESET);
        udelay(1);
 }
+EXPORT_SYMBOL_GPL(bcma_core_disable);
 
 int bcma_core_enable(struct bcma_device *core, u32 flags)
 {
index f44177a..dd5846b 100644 (file)
@@ -53,6 +53,7 @@ static void bcma_pmu_resources_init(struct bcma_drv_cc *cc)
                max_msk = 0xFFFF;
                break;
        case 43224:
+       case 43225:
                break;
        default:
                pr_err("PMU resource config unknown for device 0x%04X\n",
@@ -74,6 +75,7 @@ void bcma_pmu_swreg_init(struct bcma_drv_cc *cc)
        case 0x4313:
        case 0x4331:
        case 43224:
+       case 43225:
                break;
        default:
                pr_err("PMU switch/regulators init unknown for device "
@@ -96,11 +98,13 @@ void bcma_pmu_workarounds(struct bcma_drv_cc *cc)
                if (bus->chipinfo.rev == 0) {
                        pr_err("Workarounds for 43224 rev 0 not fully "
                                "implemented\n");
-                       bcma_chipco_chipctl_maskset(cc, 0, ~0, 0xF0);
+                       bcma_chipco_chipctl_maskset(cc, 0, ~0, 0x00F000F0);
                } else {
                        bcma_chipco_chipctl_maskset(cc, 0, ~0, 0xF0);
                }
                break;
+       case 43225:
+               break;
        default:
                pr_err("Workarounds unknown for device 0x%04X\n",
                        bus->chipinfo.id);
index e757e4e..b0c19ed 100644 (file)
@@ -161,3 +161,27 @@ void bcma_core_pci_init(struct bcma_drv_pci *pc)
 {
        bcma_pcicore_serdes_workaround(pc);
 }
+
+int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, struct bcma_device *core,
+                         bool enable)
+{
+       struct pci_dev *pdev = pc->core->bus->host_pci;
+       u32 coremask, tmp;
+       int err;
+
+       err = pci_read_config_dword(pdev, BCMA_PCI_IRQMASK, &tmp);
+       if (err)
+               goto out;
+
+       coremask = BIT(core->core_index) << 8;
+       if (enable)
+               tmp |= coremask;
+       else
+               tmp &= ~coremask;
+
+       err = pci_write_config_dword(pdev, BCMA_PCI_IRQMASK, tmp);
+
+out:
+       return err;
+}
+EXPORT_SYMBOL_GPL(bcma_core_pci_irq_ctl);
index 471a040..ac4bc62 100644 (file)
@@ -65,6 +65,54 @@ static void bcma_host_pci_write32(struct bcma_device *core, u16 offset,
        iowrite32(value, core->bus->mmio + offset);
 }
 
+#ifdef CONFIG_BCMA_BLOCKIO
+void bcma_host_pci_block_read(struct bcma_device *core, void *buffer,
+                             size_t count, u16 offset, u8 reg_width)
+{
+       void __iomem *addr = core->bus->mmio + offset;
+       if (core->bus->mapped_core != core)
+               bcma_host_pci_switch_core(core);
+       switch (reg_width) {
+       case sizeof(u8):
+               ioread8_rep(addr, buffer, count);
+               break;
+       case sizeof(u16):
+               WARN_ON(count & 1);
+               ioread16_rep(addr, buffer, count >> 1);
+               break;
+       case sizeof(u32):
+               WARN_ON(count & 3);
+               ioread32_rep(addr, buffer, count >> 2);
+               break;
+       default:
+               WARN_ON(1);
+       }
+}
+
+void bcma_host_pci_block_write(struct bcma_device *core, const void *buffer,
+                              size_t count, u16 offset, u8 reg_width)
+{
+       void __iomem *addr = core->bus->mmio + offset;
+       if (core->bus->mapped_core != core)
+               bcma_host_pci_switch_core(core);
+       switch (reg_width) {
+       case sizeof(u8):
+               iowrite8_rep(addr, buffer, count);
+               break;
+       case sizeof(u16):
+               WARN_ON(count & 1);
+               iowrite16_rep(addr, buffer, count >> 1);
+               break;
+       case sizeof(u32):
+               WARN_ON(count & 3);
+               iowrite32_rep(addr, buffer, count >> 2);
+               break;
+       default:
+               WARN_ON(1);
+       }
+}
+#endif
+
 static u32 bcma_host_pci_aread32(struct bcma_device *core, u16 offset)
 {
        if (core->bus->mapped_core != core)
@@ -87,6 +135,10 @@ const struct bcma_host_ops bcma_host_pci_ops = {
        .write8         = bcma_host_pci_write8,
        .write16        = bcma_host_pci_write16,
        .write32        = bcma_host_pci_write32,
+#ifdef CONFIG_BCMA_BLOCKIO
+       .block_read     = bcma_host_pci_block_read,
+       .block_write    = bcma_host_pci_block_write,
+#endif
        .aread32        = bcma_host_pci_aread32,
        .awrite32       = bcma_host_pci_awrite32,
 };
@@ -175,6 +227,7 @@ static DEFINE_PCI_DEVICE_TABLE(bcma_pci_bridge_tbl) = {
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x0576) },
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4331) },
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4353) },
+       { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4357) },
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4727) },
        { 0, },
 };
index be52344..08a14a3 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "bcma_private.h"
 #include <linux/bcma/bcma.h>
+#include <linux/slab.h>
 
 MODULE_DESCRIPTION("Broadcom's specific AMBA driver");
 MODULE_LICENSE("GPL");
@@ -89,6 +90,8 @@ static int bcma_register_cores(struct bcma_bus *bus)
                switch (bus->hosttype) {
                case BCMA_HOSTTYPE_PCI:
                        core->dev.parent = &bus->host_pci->dev;
+                       core->dma_dev = &bus->host_pci->dev;
+                       core->irq = bus->host_pci->irq;
                        break;
                case BCMA_HOSTTYPE_NONE:
                case BCMA_HOSTTYPE_SDIO:
@@ -144,6 +147,13 @@ int bcma_bus_register(struct bcma_bus *bus)
                bcma_core_pci_init(&bus->drv_pci);
        }
 
+       /* Try to get SPROM */
+       err = bcma_sprom_get(bus);
+       if (err) {
+               pr_err("Failed to get SPROM: %d\n", err);
+               return -ENOENT;
+       }
+
        /* Register found cores */
        bcma_register_cores(bus);
 
@@ -151,13 +161,11 @@ int bcma_bus_register(struct bcma_bus *bus)
 
        return 0;
 }
-EXPORT_SYMBOL_GPL(bcma_bus_register);
 
 void bcma_bus_unregister(struct bcma_bus *bus)
 {
        bcma_unregister_cores(bus);
 }
-EXPORT_SYMBOL_GPL(bcma_bus_unregister);
 
 int __bcma_driver_register(struct bcma_driver *drv, struct module *owner)
 {
diff --git a/drivers/bcma/sprom.c b/drivers/bcma/sprom.c
new file mode 100644 (file)
index 0000000..ffbb0e3
--- /dev/null
@@ -0,0 +1,162 @@
+/*
+ * Broadcom specific AMBA
+ * SPROM reading
+ *
+ * Licensed under the GNU/GPL. See COPYING for details.
+ */
+
+#include "bcma_private.h"
+
+#include <linux/bcma/bcma.h>
+#include <linux/bcma/bcma_regs.h>
+#include <linux/pci.h>
+#include <linux/io.h>
+#include <linux/dma-mapping.h>
+#include <linux/slab.h>
+
+#define SPOFF(offset)  ((offset) / sizeof(u16))
+
+/**************************************************
+ * R/W ops.
+ **************************************************/
+
+static void bcma_sprom_read(struct bcma_bus *bus, u16 *sprom)
+{
+       int i;
+       for (i = 0; i < SSB_SPROMSIZE_WORDS_R4; i++)
+               sprom[i] = bcma_read16(bus->drv_cc.core,
+                                      BCMA_CC_SPROM + (i * 2));
+}
+
+/**************************************************
+ * Validation.
+ **************************************************/
+
+static inline u8 bcma_crc8(u8 crc, u8 data)
+{
+       /* Polynomial:   x^8 + x^7 + x^6 + x^4 + x^2 + 1   */
+       static const u8 t[] = {
+               0x00, 0xF7, 0xB9, 0x4E, 0x25, 0xD2, 0x9C, 0x6B,
+               0x4A, 0xBD, 0xF3, 0x04, 0x6F, 0x98, 0xD6, 0x21,
+               0x94, 0x63, 0x2D, 0xDA, 0xB1, 0x46, 0x08, 0xFF,
+               0xDE, 0x29, 0x67, 0x90, 0xFB, 0x0C, 0x42, 0xB5,
+               0x7F, 0x88, 0xC6, 0x31, 0x5A, 0xAD, 0xE3, 0x14,
+               0x35, 0xC2, 0x8C, 0x7B, 0x10, 0xE7, 0xA9, 0x5E,
+               0xEB, 0x1C, 0x52, 0xA5, 0xCE, 0x39, 0x77, 0x80,
+               0xA1, 0x56, 0x18, 0xEF, 0x84, 0x73, 0x3D, 0xCA,
+               0xFE, 0x09, 0x47, 0xB0, 0xDB, 0x2C, 0x62, 0x95,
+               0xB4, 0x43, 0x0D, 0xFA, 0x91, 0x66, 0x28, 0xDF,
+               0x6A, 0x9D, 0xD3, 0x24, 0x4F, 0xB8, 0xF6, 0x01,
+               0x20, 0xD7, 0x99, 0x6E, 0x05, 0xF2, 0xBC, 0x4B,
+               0x81, 0x76, 0x38, 0xCF, 0xA4, 0x53, 0x1D, 0xEA,
+               0xCB, 0x3C, 0x72, 0x85, 0xEE, 0x19, 0x57, 0xA0,
+               0x15, 0xE2, 0xAC, 0x5B, 0x30, 0xC7, 0x89, 0x7E,
+               0x5F, 0xA8, 0xE6, 0x11, 0x7A, 0x8D, 0xC3, 0x34,
+               0xAB, 0x5C, 0x12, 0xE5, 0x8E, 0x79, 0x37, 0xC0,
+               0xE1, 0x16, 0x58, 0xAF, 0xC4, 0x33, 0x7D, 0x8A,
+               0x3F, 0xC8, 0x86, 0x71, 0x1A, 0xED, 0xA3, 0x54,
+               0x75, 0x82, 0xCC, 0x3B, 0x50, 0xA7, 0xE9, 0x1E,
+               0xD4, 0x23, 0x6D, 0x9A, 0xF1, 0x06, 0x48, 0xBF,
+               0x9E, 0x69, 0x27, 0xD0, 0xBB, 0x4C, 0x02, 0xF5,
+               0x40, 0xB7, 0xF9, 0x0E, 0x65, 0x92, 0xDC, 0x2B,
+               0x0A, 0xFD, 0xB3, 0x44, 0x2F, 0xD8, 0x96, 0x61,
+               0x55, 0xA2, 0xEC, 0x1B, 0x70, 0x87, 0xC9, 0x3E,
+               0x1F, 0xE8, 0xA6, 0x51, 0x3A, 0xCD, 0x83, 0x74,
+               0xC1, 0x36, 0x78, 0x8F, 0xE4, 0x13, 0x5D, 0xAA,
+               0x8B, 0x7C, 0x32, 0xC5, 0xAE, 0x59, 0x17, 0xE0,
+               0x2A, 0xDD, 0x93, 0x64, 0x0F, 0xF8, 0xB6, 0x41,
+               0x60, 0x97, 0xD9, 0x2E, 0x45, 0xB2, 0xFC, 0x0B,
+               0xBE, 0x49, 0x07, 0xF0, 0x9B, 0x6C, 0x22, 0xD5,
+               0xF4, 0x03, 0x4D, 0xBA, 0xD1, 0x26, 0x68, 0x9F,
+       };
+       return t[crc ^ data];
+}
+
+static u8 bcma_sprom_crc(const u16 *sprom)
+{
+       int word;
+       u8 crc = 0xFF;
+
+       for (word = 0; word < SSB_SPROMSIZE_WORDS_R4 - 1; word++) {
+               crc = bcma_crc8(crc, sprom[word] & 0x00FF);
+               crc = bcma_crc8(crc, (sprom[word] & 0xFF00) >> 8);
+       }
+       crc = bcma_crc8(crc, sprom[SSB_SPROMSIZE_WORDS_R4 - 1] & 0x00FF);
+       crc ^= 0xFF;
+
+       return crc;
+}
+
+static int bcma_sprom_check_crc(const u16 *sprom)
+{
+       u8 crc;
+       u8 expected_crc;
+       u16 tmp;
+
+       crc = bcma_sprom_crc(sprom);
+       tmp = sprom[SSB_SPROMSIZE_WORDS_R4 - 1] & SSB_SPROM_REVISION_CRC;
+       expected_crc = tmp >> SSB_SPROM_REVISION_CRC_SHIFT;
+       if (crc != expected_crc)
+               return -EPROTO;
+
+       return 0;
+}
+
+static int bcma_sprom_valid(const u16 *sprom)
+{
+       u16 revision;
+       int err;
+
+       err = bcma_sprom_check_crc(sprom);
+       if (err)
+               return err;
+
+       revision = sprom[SSB_SPROMSIZE_WORDS_R4 - 1] & SSB_SPROM_REVISION_REV;
+       if (revision != 8) {
+               pr_err("Unsupported SPROM revision: %d\n", revision);
+               return -ENOENT;
+       }
+
+       return 0;
+}
+
+/**************************************************
+ * SPROM extraction.
+ **************************************************/
+
+static void bcma_sprom_extract_r8(struct bcma_bus *bus, const u16 *sprom)
+{
+       u16 v;
+       int i;
+
+       for (i = 0; i < 3; i++) {
+               v = sprom[SPOFF(SSB_SPROM8_IL0MAC) + i];
+               *(((__be16 *)bus->sprom.il0mac) + i) = cpu_to_be16(v);
+       }
+}
+
+int bcma_sprom_get(struct bcma_bus *bus)
+{
+       u16 *sprom;
+       int err = 0;
+
+       if (!bus->drv_cc.core)
+               return -EOPNOTSUPP;
+
+       sprom = kcalloc(SSB_SPROMSIZE_WORDS_R4, sizeof(u16),
+                       GFP_KERNEL);
+       if (!sprom)
+               return -ENOMEM;
+
+       bcma_sprom_read(bus, sprom);
+
+       err = bcma_sprom_valid(sprom);
+       if (err)
+               goto out;
+
+       bcma_sprom_extract_r8(bus, sprom);
+
+out:
+       kfree(sprom);
+       return err;
+}
index af8c0b5..a92d95e 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/module.h>
 #include <linux/kernel.h> /* printk() */
 #include <linux/fs.h> /* everything... */
+#include <linux/scatterlist.h>
 #include <linux/slab.h> /* kmalloc() */
 #include <linux/dmaengine.h>
 #include <linux/platform_device.h>
index 8bcb15f..48694c3 100644 (file)
@@ -45,6 +45,7 @@
  * See Documentation/dmaengine.txt for more details
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/mm.h>
index b4f5c32..765f5ff 100644 (file)
@@ -8,6 +8,7 @@
  * published by the Free Software Foundation.
  */
 #include <linux/delay.h>
+#include <linux/dma-mapping.h>
 #include <linux/dmaengine.h>
 #include <linux/init.h>
 #include <linux/kthread.h>
index c1a125e..fd7d2b3 100644 (file)
@@ -9,6 +9,7 @@
  * published by the Free Software Foundation.
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
 #include <linux/err.h>
index 8f222d4..29d1add 100644 (file)
@@ -6,6 +6,7 @@
  * License terms: GNU General Public License (GPL) version 2
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
 #include <linux/dmaengine.h>
index 6899913..800a389 100644 (file)
@@ -1,3 +1 @@
 obj-$(CONFIG_IEEE802154_FAKEHARD) += fakehard.o
-
-ccflags-y := -DDEBUG -DCONFIG_FFD
index a5a49a1..eb0e2cc 100644 (file)
@@ -370,8 +370,6 @@ static int __devinit ieee802154fake_probe(struct platform_device *pdev)
                return -ENOMEM;
        }
 
-       phy->dev.platform_data = dev;
-
        memcpy(dev->dev_addr, "\xba\xbe\xca\xfe\xde\xad\xbe\xef",
                        dev->addr_len);
        memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
index 4a5abaf..9227f4a 100644 (file)
@@ -148,7 +148,7 @@ static int ibnl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
                                return -EINVAL;
                        return netlink_dump_start(nls, skb, nlh,
                                                  client->cb_table[op].dump,
-                                                 NULL);
+                                                 NULL, 0);
                }
        }
 
index 0cfc455..444470a 100644 (file)
@@ -36,6 +36,7 @@
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
 #include <linux/inetdevice.h>
+#include <linux/interrupt.h>
 #include <linux/delay.h>
 #include <linux/ethtool.h>
 #include <linux/mii.h>
index 2f02ab0..342cbc1 100644 (file)
@@ -45,6 +45,7 @@
 #include <scsi/libiscsi.h>
 #include <scsi/scsi_transport_iscsi.h>
 
+#include <linux/interrupt.h>
 #include <linux/wait.h>
 #include <linux/sched.h>
 #include <linux/list.h>
index 472a2af..861b651 100644 (file)
@@ -20,6 +20,7 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
+#include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/delay.h>
index f6f3c87..a440d7f 100644 (file)
 
 #define HFC_MULTI_VERSION      "2.03"
 
+#include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/pci.h>
index b01a7be..3261de1 100644 (file)
@@ -44,6 +44,7 @@
  *
  */
 
+#include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/delay.h>
index bc0529a..6218775 100644 (file)
@@ -38,6 +38,7 @@
  *
  */
 
+#include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/delay.h>
index 64ecc6f..d2ffb1d 100644 (file)
@@ -20,6 +20,7 @@
  *
  */
 
+#include <linux/irqreturn.h>
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/mISDNhw.h>
index db25b6b..5ef9f11 100644 (file)
@@ -20,6 +20,7 @@
  *
  */
 
+#include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/delay.h>
index 9e07246..4d0d41e 100644 (file)
@@ -22,6 +22,7 @@
  *
  */
 
+#include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/pci.h>
index 9e84870..e10e028 100644 (file)
@@ -21,6 +21,7 @@
  *
  */
 
+#include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/delay.h>
index de1c669..0a5c42a 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/slab.h>
 #include <linux/mm.h>
 #include <linux/mman.h>
+#include <linux/interrupt.h>
 #include <linux/ioport.h>
 #include <linux/timer.h>
 #include <linux/wait.h>
index 8b0a7d8..478ebab 100644 (file)
@@ -25,6 +25,7 @@
 
 #include <linux/module.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/pci.h>
 #include <linux/isapnp.h>
 #include <linux/kmod.h>
index 9e2148a..437912e 100644 (file)
@@ -6,6 +6,7 @@
 #ifndef __FLEXCOP_COMMON_H__
 #define __FLEXCOP_COMMON_H__
 
+#include <linux/interrupt.h>
 #include <linux/pci.h>
 #include <linux/mutex.h>
 
index b2b0c45..55e6533 100644 (file)
@@ -22,6 +22,7 @@
 #include <linux/i2c.h>
 #include <linux/i2c-algo-bit.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/proc_fs.h>
index 330216f..3d70469 100644 (file)
@@ -22,6 +22,7 @@
 #include <linux/slab.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "dmxdev.h"
 #include "dvbdev.h"
index bd400d2..49dbca1 100644 (file)
@@ -21,6 +21,7 @@
 #ifndef __MANTIS_COMMON_H
 #define __MANTIS_COMMON_H
 
+#include <linux/interrupt.h>
 #include <linux/mutex.h>
 #include <linux/workqueue.h>
 
index 9f73c2c..36f2256 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "dmxdev.h"
 #include "dvbdev.h"
index 5772ebb..672cf4d 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/sched.h>
 
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "dmxdev.h"
 #include "dvbdev.h"
index 479086d..24fcdc6 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "dmxdev.h"
 #include "dvbdev.h"
index 5cb545b..2f188c0 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "dmxdev.h"
 #include "dvbdev.h"
index f807c8b..18340da 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <linux/kernel.h>
 #include <linux/spinlock.h>
+#include <asm/io.h>
 
 #include <linux/signal.h>
 #include <linux/sched.h>
index 26bc0cb..430ae84 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "dmxdev.h"
 #include "dvbdev.h"
index 7cb79ec..80fb510 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/i2c.h>
 #include <linux/i2c-algo-bit.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index 25f1ad6..bf12513 100644 (file)
@@ -11,6 +11,7 @@
  */
 
 #include <linux/device.h>
+#include <linux/dma-mapping.h>
 #include <linux/dmaengine.h>
 #include <linux/mfd/tmio.h>
 #include <linux/mmc/host.h>
index b300705..1b90fd5 100644 (file)
@@ -22,6 +22,7 @@
  *
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index 5b73298..84e68f1 100644 (file)
@@ -49,6 +49,7 @@ static const char version[] =
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/ethtool.h>
 
 #include <asm/uaccess.h>
index 10c4505..73b10b0 100644 (file)
@@ -60,6 +60,7 @@
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/pci.h>
 #include <linux/dma-mapping.h>
 #include <linux/delay.h>
index e3bad82..c2672c6 100644 (file)
 #include <linux/compiler.h>
 #include <linux/pci.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
 #include <linux/rtnetlink.h>
index 3d9e8fb..58a12e4 100644 (file)
@@ -9,6 +9,7 @@
 
 #include <linux/if_ether.h>
 #include <linux/ioport.h>
+#include <linux/irqreturn.h>
 #include <linux/skbuff.h>
 
 #define TX_PAGES 12    /* Two Tx slots */
index 93359fa..4d68a26 100644 (file)
@@ -2115,7 +2115,6 @@ config E1000
 
 config E1000E
        tristate "Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support"
-       select CRC32
        depends on PCI && (!SPARC32 || BROKEN)
        select CRC32
        ---help---
@@ -2197,15 +2196,6 @@ config IGBVF
 
 source "drivers/net/ixp2000/Kconfig"
 
-config MYRI_SBUS
-       tristate "MyriCOM Gigabit Ethernet support"
-       depends on SBUS
-       help
-         This driver supports MyriCOM Sbus gigabit Ethernet cards.
-
-         To compile this driver as a module, choose M here: the module
-         will be called myri_sbus.  This is recommended.
-
 config NS83820
        tristate "National Semiconductor DP83820 support"
        depends on PCI
@@ -2561,6 +2551,15 @@ config PCH_GBE
          ML7223 is companion chip for Intel Atom E6xx series.
          ML7223 is completely compatible for Intel EG20T PCH.
 
+config FTGMAC100
+       tristate "Faraday FTGMAC100 Gigabit Ethernet support"
+       depends on ARM
+       select PHYLIB
+       help
+         This driver supports the FTGMAC100 Gigabit Ethernet controller
+         from Faraday. It is used on Faraday A369, Andes AG102 and some
+         other ARM/NDS32 SoC's.
+
 endif # NETDEV_1000
 
 #
index 776a478..86f6c8d 100644 (file)
@@ -59,7 +59,6 @@ obj-$(CONFIG_HAPPYMEAL) += sunhme.o
 obj-$(CONFIG_SUNLANCE) += sunlance.o
 obj-$(CONFIG_SUNQE) += sunqe.o
 obj-$(CONFIG_SUNBMAC) += sunbmac.o
-obj-$(CONFIG_MYRI_SBUS) += myri_sbus.o
 obj-$(CONFIG_SUNGEM) += sungem.o sungem_phy.o
 obj-$(CONFIG_CASSINI) += cassini.o
 obj-$(CONFIG_SUNVNET) += sunvnet.o
@@ -148,6 +147,7 @@ obj-$(CONFIG_FORCEDETH) += forcedeth.o
 obj-$(CONFIG_NE_H8300) += ne-h8300.o
 obj-$(CONFIG_AX88796) += ax88796.o
 obj-$(CONFIG_BCM63XX_ENET) += bcm63xx_enet.o
+obj-$(CONFIG_FTGMAC100) += ftgmac100.o
 obj-$(CONFIG_FTMAC100) += ftmac100.o
 
 obj-$(CONFIG_TSI108_ETH) += tsi108_eth.o
index deaa8bc..7d9a1a6 100644 (file)
  *       both 10BASE-2 (thin coax) and AUI (DB-15) connectors
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+/*#define DEBUG*/
+/*#define TEST_HITS*/
+
 #include <linux/errno.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
 
 #include "a2065.h"
 
-
-       /*
-        *              Transmit/Receive Ring Definitions
-        */
+/* Transmit/Receive Ring Definitions */
 
 #define LANCE_LOG_TX_BUFFERS   (2)
 #define LANCE_LOG_RX_BUFFERS   (4)
 
-#define TX_RING_SIZE           (1<<LANCE_LOG_TX_BUFFERS)
-#define RX_RING_SIZE           (1<<LANCE_LOG_RX_BUFFERS)
+#define TX_RING_SIZE           (1 << LANCE_LOG_TX_BUFFERS)
+#define RX_RING_SIZE           (1 << LANCE_LOG_RX_BUFFERS)
 
-#define TX_RING_MOD_MASK       (TX_RING_SIZE-1)
-#define RX_RING_MOD_MASK       (RX_RING_SIZE-1)
+#define TX_RING_MOD_MASK       (TX_RING_SIZE - 1)
+#define RX_RING_MOD_MASK       (RX_RING_SIZE - 1)
 
 #define PKT_BUF_SIZE           (1544)
 #define RX_BUFF_SIZE            PKT_BUF_SIZE
 #define TX_BUFF_SIZE            PKT_BUF_SIZE
 
-
-       /*
-        *              Layout of the Lance's RAM Buffer
-        */
-
+/* Layout of the Lance's RAM Buffer */
 
 struct lance_init_block {
        unsigned short mode;            /* Pre-set mode (reg. 15) */
@@ -97,14 +95,11 @@ struct lance_init_block {
        struct lance_rx_desc brx_ring[RX_RING_SIZE];
        struct lance_tx_desc btx_ring[TX_RING_SIZE];
 
-       char   rx_buf [RX_RING_SIZE][RX_BUFF_SIZE];
-       char   tx_buf [TX_RING_SIZE][TX_BUFF_SIZE];
+       char rx_buf[RX_RING_SIZE][RX_BUFF_SIZE];
+       char tx_buf[TX_RING_SIZE][TX_BUFF_SIZE];
 };
 
-
-       /*
-        *              Private Device Data
-        */
+/* Private Device Data */
 
 struct lance_private {
        char *name;
@@ -129,21 +124,14 @@ struct lance_private {
        struct timer_list         multicast_timer;
 };
 
-#define TX_BUFFS_AVAIL ((lp->tx_old<=lp->tx_new)?\
-                       lp->tx_old+lp->tx_ring_mod_mask-lp->tx_new:\
-                       lp->tx_old - lp->tx_new-1)
-
-
 #define LANCE_ADDR(x) ((int)(x) & ~0xff000000)
 
 /* Load the CSR registers */
-static void load_csrs (struct lance_private *lp)
+static void load_csrs(struct lance_private *lp)
 {
        volatile struct lance_regs *ll = lp->ll;
        volatile struct lance_init_block *aib = lp->lance_init_block;
-       int leptr;
-
-       leptr = LANCE_ADDR (aib);
+       int leptr = LANCE_ADDR(aib);
 
        ll->rap = LE_CSR1;
        ll->rdp = (leptr & 0xFFFF);
@@ -156,19 +144,16 @@ static void load_csrs (struct lance_private *lp)
        ll->rap = LE_CSR0;
 }
 
-#define ZERO 0
-
 /* Setup the Lance Rx and Tx rings */
-static void lance_init_ring (struct net_device *dev)
+static void lance_init_ring(struct net_device *dev)
 {
        struct lance_private *lp = netdev_priv(dev);
        volatile struct lance_init_block *ib = lp->init_block;
-       volatile struct lance_init_block *aib; /* for LANCE_ADDR computations */
+       volatile struct lance_init_block *aib = lp->lance_init_block;
+                                       /* for LANCE_ADDR computations */
        int leptr;
        int i;
 
-       aib = lp->lance_init_block;
-
        /* Lock out other processes while setting up hardware */
        netif_stop_queue(dev);
        lp->rx_new = lp->tx_new = 0;
@@ -179,41 +164,38 @@ static void lance_init_ring (struct net_device *dev)
        /* Copy the ethernet address to the lance init block
         * Note that on the sparc you need to swap the ethernet address.
         */
-       ib->phys_addr [0] = dev->dev_addr [1];
-       ib->phys_addr [1] = dev->dev_addr [0];
-       ib->phys_addr [2] = dev->dev_addr [3];
-       ib->phys_addr [3] = dev->dev_addr [2];
-       ib->phys_addr [4] = dev->dev_addr [5];
-       ib->phys_addr [5] = dev->dev_addr [4];
-
-       if (ZERO)
-               printk(KERN_DEBUG "TX rings:\n");
+       ib->phys_addr[0] = dev->dev_addr[1];
+       ib->phys_addr[1] = dev->dev_addr[0];
+       ib->phys_addr[2] = dev->dev_addr[3];
+       ib->phys_addr[3] = dev->dev_addr[2];
+       ib->phys_addr[4] = dev->dev_addr[5];
+       ib->phys_addr[5] = dev->dev_addr[4];
 
        /* Setup the Tx ring entries */
-       for (i = 0; i <= (1<<lp->lance_log_tx_bufs); i++) {
+       netdev_dbg(dev, "TX rings:\n");
+       for (i = 0; i <= 1 << lp->lance_log_tx_bufs; i++) {
                leptr = LANCE_ADDR(&aib->tx_buf[i][0]);
-               ib->btx_ring [i].tmd0      = leptr;
-               ib->btx_ring [i].tmd1_hadr = leptr >> 16;
-               ib->btx_ring [i].tmd1_bits = 0;
-               ib->btx_ring [i].length    = 0xf000; /* The ones required by tmd2 */
-               ib->btx_ring [i].misc      = 0;
-               if (i < 3 && ZERO)
-                       printk(KERN_DEBUG "%d: 0x%8.8x\n", i, leptr);
+               ib->btx_ring[i].tmd0      = leptr;
+               ib->btx_ring[i].tmd1_hadr = leptr >> 16;
+               ib->btx_ring[i].tmd1_bits = 0;
+               ib->btx_ring[i].length    = 0xf000; /* The ones required by tmd2 */
+               ib->btx_ring[i].misc      = 0;
+               if (i < 3)
+                       netdev_dbg(dev, "%d: 0x%08x\n", i, leptr);
        }
 
        /* Setup the Rx ring entries */
-       if (ZERO)
-               printk(KERN_DEBUG "RX rings:\n");
-       for (i = 0; i < (1<<lp->lance_log_rx_bufs); i++) {
+       netdev_dbg(dev, "RX rings:\n");
+       for (i = 0; i < 1 << lp->lance_log_rx_bufs; i++) {
                leptr = LANCE_ADDR(&aib->rx_buf[i][0]);
 
-               ib->brx_ring [i].rmd0      = leptr;
-               ib->brx_ring [i].rmd1_hadr = leptr >> 16;
-               ib->brx_ring [i].rmd1_bits = LE_R1_OWN;
-               ib->brx_ring [i].length    = -RX_BUFF_SIZE | 0xf000;
-               ib->brx_ring [i].mblength  = 0;
-               if (i < 3 && ZERO)
-                       printk(KERN_DEBUG "%d: 0x%8.8x\n", i, leptr);
+               ib->brx_ring[i].rmd0      = leptr;
+               ib->brx_ring[i].rmd1_hadr = leptr >> 16;
+               ib->brx_ring[i].rmd1_bits = LE_R1_OWN;
+               ib->brx_ring[i].length    = -RX_BUFF_SIZE | 0xf000;
+               ib->brx_ring[i].mblength  = 0;
+               if (i < 3)
+                       netdev_dbg(dev, "%d: 0x%08x\n", i, leptr);
        }
 
        /* Setup the initialization block */
@@ -222,22 +204,20 @@ static void lance_init_ring (struct net_device *dev)
        leptr = LANCE_ADDR(&aib->brx_ring);
        ib->rx_len = (lp->lance_log_rx_bufs << 13) | (leptr >> 16);
        ib->rx_ptr = leptr;
-       if (ZERO)
-               printk(KERN_DEBUG "RX ptr: %8.8x\n", leptr);
+       netdev_dbg(dev, "RX ptr: %08x\n", leptr);
 
        /* Setup tx descriptor pointer */
        leptr = LANCE_ADDR(&aib->btx_ring);
        ib->tx_len = (lp->lance_log_tx_bufs << 13) | (leptr >> 16);
        ib->tx_ptr = leptr;
-       if (ZERO)
-               printk(KERN_DEBUG "TX ptr: %8.8x\n", leptr);
+       netdev_dbg(dev, "TX ptr: %08x\n", leptr);
 
        /* Clear the multicast filter */
-       ib->filter [0] = 0;
-       ib->filter [1] = 0;
+       ib->filter[0] = 0;
+       ib->filter[1] = 0;
 }
 
-static int init_restart_lance (struct lance_private *lp)
+static int init_restart_lance(struct lance_private *lp)
 {
        volatile struct lance_regs *ll = lp->ll;
        int i;
@@ -249,8 +229,7 @@ static int init_restart_lance (struct lance_private *lp)
        for (i = 0; (i < 100) && !(ll->rdp & (LE_C0_ERR | LE_C0_IDON)); i++)
                barrier();
        if ((i == 100) || (ll->rdp & LE_C0_ERR)) {
-               printk(KERN_ERR "LANCE unopened after %d ticks, csr0=%4.4x.\n",
-                      i, ll->rdp);
+               pr_err("unopened after %d ticks, csr0=%04x\n", i, ll->rdp);
                return -EIO;
        }
 
@@ -261,7 +240,7 @@ static int init_restart_lance (struct lance_private *lp)
        return 0;
 }
 
-static int lance_rx (struct net_device *dev)
+static int lance_rx(struct net_device *dev)
 {
        struct lance_private *lp = netdev_priv(dev);
        volatile struct lance_init_block *ib = lp->init_block;
@@ -271,22 +250,24 @@ static int lance_rx (struct net_device *dev)
 
 #ifdef TEST_HITS
        int i;
-       printk(KERN_DEBUG "[");
+       char buf[RX_RING_SIZE + 1];
+
        for (i = 0; i < RX_RING_SIZE; i++) {
+               char r1_own = ib->brx_ring[i].rmd1_bits & LE_R1_OWN;
                if (i == lp->rx_new)
-                       printk ("%s",
-                               ib->brx_ring [i].rmd1_bits & LE_R1_OWN ? "_" : "X");
+                       buf[i] = r1_own ? '_' : 'X';
                else
-                       printk ("%s",
-                               ib->brx_ring [i].rmd1_bits & LE_R1_OWN ? "." : "1");
+                       buf[i] = r1_own ? '.' : '1';
        }
-       printk ("]\n");
+       buf[RX_RING_SIZE] = 0;
+
+       pr_debug("RxRing TestHits: [%s]\n", buf);
 #endif
 
-       ll->rdp = LE_C0_RINT|LE_C0_INEA;
-       for (rd = &ib->brx_ring [lp->rx_new];
+       ll->rdp = LE_C0_RINT | LE_C0_INEA;
+       for (rd = &ib->brx_ring[lp->rx_new];
             !((bits = rd->rmd1_bits) & LE_R1_OWN);
-            rd = &ib->brx_ring [lp->rx_new]) {
+            rd = &ib->brx_ring[lp->rx_new]) {
 
                /* We got an incomplete frame? */
                if ((bits & LE_R1_POK) != LE_R1_POK) {
@@ -297,18 +278,22 @@ static int lance_rx (struct net_device *dev)
                        /* Count only the end frame as a rx error,
                         * not the beginning
                         */
-                       if (bits & LE_R1_BUF) dev->stats.rx_fifo_errors++;
-                       if (bits & LE_R1_CRC) dev->stats.rx_crc_errors++;
-                       if (bits & LE_R1_OFL) dev->stats.rx_over_errors++;
-                       if (bits & LE_R1_FRA) dev->stats.rx_frame_errors++;
-                       if (bits & LE_R1_EOP) dev->stats.rx_errors++;
+                       if (bits & LE_R1_BUF)
+                               dev->stats.rx_fifo_errors++;
+                       if (bits & LE_R1_CRC)
+                               dev->stats.rx_crc_errors++;
+                       if (bits & LE_R1_OFL)
+                               dev->stats.rx_over_errors++;
+                       if (bits & LE_R1_FRA)
+                               dev->stats.rx_frame_errors++;
+                       if (bits & LE_R1_EOP)
+                               dev->stats.rx_errors++;
                } else {
                        int len = (rd->mblength & 0xfff) - 4;
-                       struct sk_buff *skb = dev_alloc_skb (len+2);
+                       struct sk_buff *skb = dev_alloc_skb(len + 2);
 
                        if (!skb) {
-                               printk(KERN_WARNING "%s: Memory squeeze, "
-                                      "deferring packet.\n", dev->name);
+                               netdev_warn(dev, "Memory squeeze, deferring packet\n");
                                dev->stats.rx_dropped++;
                                rd->mblength = 0;
                                rd->rmd1_bits = LE_R1_OWN;
@@ -316,13 +301,13 @@ static int lance_rx (struct net_device *dev)
                                return 0;
                        }
 
-                       skb_reserve (skb, 2);           /* 16 byte align */
-                       skb_put (skb, len);             /* make room */
+                       skb_reserve(skb, 2);            /* 16 byte align */
+                       skb_put(skb, len);              /* make room */
                        skb_copy_to_linear_data(skb,
-                                        (unsigned char *)&(ib->rx_buf [lp->rx_new][0]),
-                                        len);
-                       skb->protocol = eth_type_trans (skb, dev);
-                       netif_rx (skb);
+                                (unsigned char *)&ib->rx_buf[lp->rx_new][0],
+                                len);
+                       skb->protocol = eth_type_trans(skb, dev);
+                       netif_rx(skb);
                        dev->stats.rx_packets++;
                        dev->stats.rx_bytes += len;
                }
@@ -335,7 +320,7 @@ static int lance_rx (struct net_device *dev)
        return 0;
 }
 
-static int lance_tx (struct net_device *dev)
+static int lance_tx(struct net_device *dev)
 {
        struct lance_private *lp = netdev_priv(dev);
        volatile struct lance_init_block *ib = lp->init_block;
@@ -350,7 +335,7 @@ static int lance_tx (struct net_device *dev)
 
        j = lp->tx_old;
        for (i = j; i != lp->tx_new; i = j) {
-               td = &ib->btx_ring [i];
+               td = &ib->btx_ring[i];
 
                /* If we hit a packet not owned by us, stop */
                if (td->tmd1_bits & LE_T1_OWN)
@@ -360,45 +345,44 @@ static int lance_tx (struct net_device *dev)
                        status = td->misc;
 
                        dev->stats.tx_errors++;
-                       if (status & LE_T3_RTY)  dev->stats.tx_aborted_errors++;
-                       if (status & LE_T3_LCOL) dev->stats.tx_window_errors++;
+                       if (status & LE_T3_RTY)
+                               dev->stats.tx_aborted_errors++;
+                       if (status & LE_T3_LCOL)
+                               dev->stats.tx_window_errors++;
 
                        if (status & LE_T3_CLOS) {
                                dev->stats.tx_carrier_errors++;
                                if (lp->auto_select) {
                                        lp->tpe = 1 - lp->tpe;
-                                       printk(KERN_ERR "%s: Carrier Lost, "
-                                              "trying %s\n", dev->name,
-                                              lp->tpe?"TPE":"AUI");
+                                       netdev_err(dev, "Carrier Lost, trying %s\n",
+                                                  lp->tpe ? "TPE" : "AUI");
                                        /* Stop the lance */
                                        ll->rap = LE_CSR0;
                                        ll->rdp = LE_C0_STOP;
-                                       lance_init_ring (dev);
-                                       load_csrs (lp);
-                                       init_restart_lance (lp);
+                                       lance_init_ring(dev);
+                                       load_csrs(lp);
+                                       init_restart_lance(lp);
                                        return 0;
                                }
                        }
 
-                       /* buffer errors and underflows turn off the transmitter */
-                       /* Restart the adapter */
-                       if (status & (LE_T3_BUF|LE_T3_UFL)) {
+                       /* buffer errors and underflows turn off
+                        * the transmitter, so restart the adapter
+                        */
+                       if (status & (LE_T3_BUF | LE_T3_UFL)) {
                                dev->stats.tx_fifo_errors++;
 
-                               printk(KERN_ERR "%s: Tx: ERR_BUF|ERR_UFL, "
-                                      "restarting\n", dev->name);
+                               netdev_err(dev, "Tx: ERR_BUF|ERR_UFL, restarting\n");
                                /* Stop the lance */
                                ll->rap = LE_CSR0;
                                ll->rdp = LE_C0_STOP;
-                               lance_init_ring (dev);
-                               load_csrs (lp);
-                               init_restart_lance (lp);
+                               lance_init_ring(dev);
+                               load_csrs(lp);
+                               init_restart_lance(lp);
                                return 0;
                        }
                } else if ((td->tmd1_bits & LE_T1_POK) == LE_T1_POK) {
-                       /*
-                        * So we don't count the packet more than once.
-                        */
+                       /* So we don't count the packet more than once. */
                        td->tmd1_bits &= ~(LE_T1_POK);
 
                        /* One collision before packet was sent. */
@@ -419,17 +403,19 @@ static int lance_tx (struct net_device *dev)
        return 0;
 }
 
-static irqreturn_t lance_interrupt (int irq, void *dev_id)
+static int lance_tx_buffs_avail(struct lance_private *lp)
 {
-       struct net_device *dev;
-       struct lance_private *lp;
-       volatile struct lance_regs *ll;
-       int csr0;
-
-       dev = (struct net_device *) dev_id;
+       if (lp->tx_old <= lp->tx_new)
+               return lp->tx_old + lp->tx_ring_mod_mask - lp->tx_new;
+       return lp->tx_old - lp->tx_new - 1;
+}
 
-       lp = netdev_priv(dev);
-       ll = lp->ll;
+static irqreturn_t lance_interrupt(int irq, void *dev_id)
+{
+       struct net_device *dev = dev_id;
+       struct lance_private *lp = netdev_priv(dev);
+       volatile struct lance_regs *ll = lp->ll;
+       int csr0;
 
        ll->rap = LE_CSR0;              /* LANCE Controller Status */
        csr0 = ll->rdp;
@@ -438,19 +424,19 @@ static irqreturn_t lance_interrupt (int irq, void *dev_id)
                return IRQ_NONE;        /* been generated by the Lance. */
 
        /* Acknowledge all the interrupt sources ASAP */
-       ll->rdp = csr0 & ~(LE_C0_INEA|LE_C0_TDMD|LE_C0_STOP|LE_C0_STRT|
+       ll->rdp = csr0 & ~(LE_C0_INEA | LE_C0_TDMD | LE_C0_STOP | LE_C0_STRT |
                           LE_C0_INIT);
 
-       if ((csr0 & LE_C0_ERR)) {
+       if (csr0 & LE_C0_ERR) {
                /* Clear the error condition */
-               ll->rdp = LE_C0_BABL|LE_C0_ERR|LE_C0_MISS|LE_C0_INEA;
+               ll->rdp = LE_C0_BABL | LE_C0_ERR | LE_C0_MISS | LE_C0_INEA;
        }
 
        if (csr0 & LE_C0_RINT)
-               lance_rx (dev);
+               lance_rx(dev);
 
        if (csr0 & LE_C0_TINT)
-               lance_tx (dev);
+               lance_tx(dev);
 
        /* Log misc errors. */
        if (csr0 & LE_C0_BABL)
@@ -458,22 +444,22 @@ static irqreturn_t lance_interrupt (int irq, void *dev_id)
        if (csr0 & LE_C0_MISS)
                dev->stats.rx_errors++;       /* Missed a Rx frame. */
        if (csr0 & LE_C0_MERR) {
-               printk(KERN_ERR "%s: Bus master arbitration failure, status "
-                      "%4.4x.\n", dev->name, csr0);
+               netdev_err(dev, "Bus master arbitration failure, status %04x\n",
+                          csr0);
                /* Restart the chip. */
                ll->rdp = LE_C0_STRT;
        }
 
-       if (netif_queue_stopped(dev) && TX_BUFFS_AVAIL > 0)
+       if (netif_queue_stopped(dev) && lance_tx_buffs_avail(lp) > 0)
                netif_wake_queue(dev);
 
        ll->rap = LE_CSR0;
-       ll->rdp = LE_C0_BABL|LE_C0_CERR|LE_C0_MISS|LE_C0_MERR|
-                                       LE_C0_IDON|LE_C0_INEA;
+       ll->rdp = (LE_C0_BABL | LE_C0_CERR | LE_C0_MISS | LE_C0_MERR |
+                  LE_C0_IDON | LE_C0_INEA);
        return IRQ_HANDLED;
 }
 
-static int lance_open (struct net_device *dev)
+static int lance_open(struct net_device *dev)
 {
        struct lance_private *lp = netdev_priv(dev);
        volatile struct lance_regs *ll = lp->ll;
@@ -486,17 +472,18 @@ static int lance_open (struct net_device *dev)
        /* Install the Interrupt handler */
        ret = request_irq(IRQ_AMIGA_PORTS, lance_interrupt, IRQF_SHARED,
                          dev->name, dev);
-       if (ret) return ret;
+       if (ret)
+               return ret;
 
-       load_csrs (lp);
-       lance_init_ring (dev);
+       load_csrs(lp);
+       lance_init_ring(dev);
 
        netif_start_queue(dev);
 
-       return init_restart_lance (lp);
+       return init_restart_lance(lp);
 }
 
-static int lance_close (struct net_device *dev)
+static int lance_close(struct net_device *dev)
 {
        struct lance_private *lp = netdev_priv(dev);
        volatile struct lance_regs *ll = lp->ll;
@@ -512,7 +499,7 @@ static int lance_close (struct net_device *dev)
        return 0;
 }
 
-static inline int lance_reset (struct net_device *dev)
+static inline int lance_reset(struct net_device *dev)
 {
        struct lance_private *lp = netdev_priv(dev);
        volatile struct lance_regs *ll = lp->ll;
@@ -522,16 +509,15 @@ static inline int lance_reset (struct net_device *dev)
        ll->rap = LE_CSR0;
        ll->rdp = LE_C0_STOP;
 
-       load_csrs (lp);
+       load_csrs(lp);
 
-       lance_init_ring (dev);
+       lance_init_ring(dev);
        dev->trans_start = jiffies; /* prevent tx timeout */
        netif_start_queue(dev);
 
-       status = init_restart_lance (lp);
-#ifdef DEBUG_DRIVER
-       printk(KERN_DEBUG "Lance restart=%d\n", status);
-#endif
+       status = init_restart_lance(lp);
+       netdev_dbg(dev, "Lance restart=%d\n", status);
+
        return status;
 }
 
@@ -540,14 +526,13 @@ static void lance_tx_timeout(struct net_device *dev)
        struct lance_private *lp = netdev_priv(dev);
        volatile struct lance_regs *ll = lp->ll;
 
-       printk(KERN_ERR "%s: transmit timed out, status %04x, reset\n",
-              dev->name, ll->rdp);
+       netdev_err(dev, "transmit timed out, status %04x, reset\n", ll->rdp);
        lance_reset(dev);
        netif_wake_queue(dev);
 }
 
-static netdev_tx_t lance_start_xmit (struct sk_buff *skb,
-                                    struct net_device *dev)
+static netdev_tx_t lance_start_xmit(struct sk_buff *skb,
+                                   struct net_device *dev)
 {
        struct lance_private *lp = netdev_priv(dev);
        volatile struct lance_regs *ll = lp->ll;
@@ -562,33 +547,33 @@ static netdev_tx_t lance_start_xmit (struct sk_buff *skb,
 
        local_irq_save(flags);
 
-       if (!TX_BUFFS_AVAIL){
+       if (!lance_tx_buffs_avail(lp)) {
                local_irq_restore(flags);
                return NETDEV_TX_LOCKED;
        }
 
-#ifdef DEBUG_DRIVER
+#ifdef DEBUG
        /* dump the packet */
        print_hex_dump(KERN_DEBUG, "skb->data: ", DUMP_PREFIX_NONE,
                       16, 1, skb->data, 64, true);
 #endif
        entry = lp->tx_new & lp->tx_ring_mod_mask;
-       ib->btx_ring [entry].length = (-skblen) | 0xf000;
-       ib->btx_ring [entry].misc = 0;
+       ib->btx_ring[entry].length = (-skblen) | 0xf000;
+       ib->btx_ring[entry].misc = 0;
 
-       skb_copy_from_linear_data(skb, (void *)&ib->tx_buf [entry][0], skblen);
+       skb_copy_from_linear_data(skb, (void *)&ib->tx_buf[entry][0], skblen);
 
        /* Now, give the packet to the lance */
-       ib->btx_ring [entry].tmd1_bits = (LE_T1_POK|LE_T1_OWN);
+       ib->btx_ring[entry].tmd1_bits = (LE_T1_POK | LE_T1_OWN);
        lp->tx_new = (lp->tx_new+1) & lp->tx_ring_mod_mask;
        dev->stats.tx_bytes += skblen;
 
-       if (TX_BUFFS_AVAIL <= 0)
+       if (lance_tx_buffs_avail(lp) <= 0)
                netif_stop_queue(dev);
 
        /* Kick the lance: transmit now */
        ll->rdp = LE_C0_INEA | LE_C0_TDMD;
-       dev_kfree_skb (skb);
+       dev_kfree_skb(skb);
 
        local_irq_restore(flags);
 
@@ -596,7 +581,7 @@ static netdev_tx_t lance_start_xmit (struct sk_buff *skb,
 }
 
 /* taken from the depca driver */
-static void lance_load_multicast (struct net_device *dev)
+static void lance_load_multicast(struct net_device *dev)
 {
        struct lance_private *lp = netdev_priv(dev);
        volatile struct lance_init_block *ib = lp->init_block;
@@ -606,14 +591,14 @@ static void lance_load_multicast (struct net_device *dev)
        u32 crc;
 
        /* set all multicast bits */
-       if (dev->flags & IFF_ALLMULTI){
-               ib->filter [0] = 0xffffffff;
-               ib->filter [1] = 0xffffffff;
+       if (dev->flags & IFF_ALLMULTI) {
+               ib->filter[0] = 0xffffffff;
+               ib->filter[1] = 0xffffffff;
                return;
        }
        /* clear the multicast filter */
-       ib->filter [0] = 0;
-       ib->filter [1] = 0;
+       ib->filter[0] = 0;
+       ib->filter[1] = 0;
 
        /* Add addresses */
        netdev_for_each_mc_addr(ha, dev) {
@@ -625,11 +610,11 @@ static void lance_load_multicast (struct net_device *dev)
 
                crc = ether_crc_le(6, addrs);
                crc = crc >> 26;
-               mcast_table [crc >> 4] |= 1 << (crc & 0xf);
+               mcast_table[crc >> 4] |= 1 << (crc & 0xf);
        }
 }
 
-static void lance_set_multicast (struct net_device *dev)
+static void lance_set_multicast(struct net_device *dev)
 {
        struct lance_private *lp = netdev_priv(dev);
        volatile struct lance_init_block *ib = lp->init_block;
@@ -648,16 +633,16 @@ static void lance_set_multicast (struct net_device *dev)
 
        ll->rap = LE_CSR0;
        ll->rdp = LE_C0_STOP;
-       lance_init_ring (dev);
+       lance_init_ring(dev);
 
        if (dev->flags & IFF_PROMISC) {
                ib->mode |= LE_MO_PROM;
        } else {
                ib->mode &= ~LE_MO_PROM;
-               lance_load_multicast (dev);
+               lance_load_multicast(dev);
        }
-       load_csrs (lp);
-       init_restart_lance (lp);
+       load_csrs(lp);
+       init_restart_lance(lp);
        netif_wake_queue(dev);
 }
 
@@ -697,14 +682,12 @@ static int __devinit a2065_init_one(struct zorro_dev *z,
 {
        struct net_device *dev;
        struct lance_private *priv;
-       unsigned long board, base_addr, mem_start;
+       unsigned long board = z->resource.start;
+       unsigned long base_addr = board + A2065_LANCE;
+       unsigned long mem_start = board + A2065_RAM;
        struct resource *r1, *r2;
        int err;
 
-       board = z->resource.start;
-       base_addr = board+A2065_LANCE;
-       mem_start = board+A2065_RAM;
-
        r1 = request_mem_region(base_addr, sizeof(struct lance_regs),
                                "Am7990");
        if (!r1)
@@ -735,12 +718,12 @@ static int __devinit a2065_init_one(struct zorro_dev *z,
                dev->dev_addr[1] = 0x00;
                dev->dev_addr[2] = 0x9f;
        }
-       dev->dev_addr[3] = (z->rom.er_SerialNumber>>16) & 0xff;
-       dev->dev_addr[4] = (z->rom.er_SerialNumber>>8) & 0xff;
+       dev->dev_addr[3] = (z->rom.er_SerialNumber >> 16) & 0xff;
+       dev->dev_addr[4] = (z->rom.er_SerialNumber >> 8) & 0xff;
        dev->dev_addr[5] = z->rom.er_SerialNumber & 0xff;
        dev->base_addr = ZTWO_VADDR(base_addr);
        dev->mem_start = ZTWO_VADDR(mem_start);
-       dev->mem_end = dev->mem_start+A2065_RAM_SIZE;
+       dev->mem_end = dev->mem_start + A2065_RAM_SIZE;
 
        priv->ll = (volatile struct lance_regs *)dev->base_addr;
        priv->init_block = (struct lance_init_block *)dev->mem_start;
@@ -760,7 +743,7 @@ static int __devinit a2065_init_one(struct zorro_dev *z,
        init_timer(&priv->multicast_timer);
        priv->multicast_timer.data = (unsigned long) dev;
        priv->multicast_timer.function =
-               (void (*)(unsigned long)) &lance_set_multicast;
+               (void (*)(unsigned long))lance_set_multicast;
 
        err = register_netdev(dev);
        if (err) {
@@ -771,8 +754,8 @@ static int __devinit a2065_init_one(struct zorro_dev *z,
        }
        zorro_set_drvdata(z, dev);
 
-       printk(KERN_INFO "%s: A2065 at 0x%08lx, Ethernet Address "
-              "%pM\n", dev->name, board, dev->dev_addr);
+       netdev_info(dev, "A2065 at 0x%08lx, Ethernet Address %pM\n",
+                   board, dev->dev_addr);
 
        return 0;
 }
index 5181e93..f07b2e9 100644 (file)
@@ -32,6 +32,7 @@ static const char version[] =
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 
 #include <asm/system.h>
 #include <asm/io.h>
index 0681da7..fd25a3b 100644 (file)
@@ -1,5 +1,6 @@
 #ifndef _ACENIC_H_
 #define _ACENIC_H_
+#include <linux/interrupt.h>
 
 
 /*
index 241b185..db6d2da 100644 (file)
@@ -75,6 +75,7 @@ Revision History:
 #include <linux/compiler.h>
 #include <linux/delay.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/ioport.h>
 #include <linux/pci.h>
 #include <linux/netdevice.h>
@@ -1958,7 +1959,7 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
                                                 IPG_CONVERGE_JIFFIES;
                lp->ipg_data.ipg = DEFAULT_IPG;
                lp->ipg_data.ipg_state = CSTATE;
-       };
+       }
 
        /*  display driver and device information */
 
index 2fe60f1..5477373 100644 (file)
@@ -36,6 +36,7 @@
 #include <linux/delay.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
+#include <linux/interrupt.h>
 #include <linux/jiffies.h>
 
 #include <asm/system.h>
index e69eead..34ffb54 100644 (file)
@@ -652,9 +652,9 @@ static int do_write(struct net_device *dev, void *cbuf, int cbuflen,
        int ret;
 
        if(i) {
-               qels[i].cbuf = (unsigned char *) cbuf;
+               qels[i].cbuf = cbuf;
                qels[i].cbuflen = cbuflen;
-               qels[i].dbuf = (unsigned char *) dbuf;
+               qels[i].dbuf = dbuf;
                qels[i].dbuflen = dbuflen;
                qels[i].QWrite = 1;
                qels[i].mailbox = i;  /* this should be initted rather */
@@ -676,9 +676,9 @@ static int do_read(struct net_device *dev, void *cbuf, int cbuflen,
        int ret;
 
        if(i) {
-               qels[i].cbuf = (unsigned char *) cbuf;
+               qels[i].cbuf = cbuf;
                qels[i].cbuflen = cbuflen;
-               qels[i].dbuf = (unsigned char *) dbuf;
+               qels[i].dbuf = dbuf;
                qels[i].dbuflen = dbuflen;
                qels[i].QWrite = 0;
                qels[i].mailbox = i;  /* this should be initted rather */
index 9efbbba..25197b6 100644 (file)
@@ -32,6 +32,7 @@
 #include <linux/netdevice.h>
 #include <linux/bootmem.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <asm/io.h>
 #include <linux/arcdevice.h>
 
index 3727282..45c61a2 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/delay.h>
 #include <linux/netdevice.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/bootmem.h>
 #include <linux/arcdevice.h>
 #include <linux/com20020.h>
index 48a1dbf..d427493 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/errno.h>
 #include <linux/netdevice.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/pci.h>
 #include <linux/arcdevice.h>
 #include <linux/com20020.h>
index c9e4594..7bfb91f 100644 (file)
@@ -33,6 +33,7 @@
 #include <linux/delay.h>
 #include <linux/netdevice.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/arcdevice.h>
 #include <linux/com20020.h>
 
index eb27976..487d780 100644 (file)
@@ -33,6 +33,7 @@
 #include <linux/netdevice.h>
 #include <linux/bootmem.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <asm/io.h>
 #include <linux/arcdevice.h>
 
index f3b46f7..b80fbe4 100644 (file)
@@ -27,6 +27,7 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/ioport.h>
 #include <linux/delay.h>
 #include <linux/netdevice.h>
index b7f45cd..7ed78f4 100644 (file)
@@ -34,6 +34,9 @@
  *     - an MC68230 Parallel Interface/Timer configured as 2 parallel ports
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+/*#define DEBUG*/
+
 #include <linux/module.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 
 #include "ariadne.h"
 
-
 #ifdef ARIADNE_DEBUG
 int ariadne_debug = ARIADNE_DEBUG;
 #else
 int ariadne_debug = 1;
 #endif
 
+/* Macros to Fix Endianness problems */
 
-    /*
-     * Macros to Fix Endianness problems
-     */
-
-                               /* Swap the Bytes in a WORD */
-#define swapw(x)       (((x>>8)&0x00ff)|((x<<8)&0xff00))
-                               /* Get the Low BYTE in a WORD */
-#define lowb(x)                (x&0xff)
-                               /* Get the Swapped High WORD in a LONG */
-#define swhighw(x)     ((((x)>>8)&0xff00)|(((x)>>24)&0x00ff))
-                               /* Get the Swapped Low WORD in a LONG */
-#define swloww(x)      ((((x)<<8)&0xff00)|(((x)>>8)&0x00ff))
+/* Swap the Bytes in a WORD */
+#define swapw(x)       (((x >> 8) & 0x00ff) | ((x << 8) & 0xff00))
+/* Get the Low BYTE in a WORD */
+#define lowb(x)                (x & 0xff)
+/* Get the Swapped High WORD in a LONG */
+#define swhighw(x)     ((((x) >> 8) & 0xff00) | (((x) >> 24) & 0x00ff))
+/* Get the Swapped Low WORD in a LONG */
+#define swloww(x)      ((((x) << 8) & 0xff00) | (((x) >> 8) & 0x00ff))
 
-
-    /*
-     * Transmit/Receive Ring Definitions
-     */
+/* Transmit/Receive Ring Definitions */
 
 #define TX_RING_SIZE   5
 #define RX_RING_SIZE   16
 
 #define PKT_BUF_SIZE   1520
 
-
-    /*
-     * Private Device Data
-     */
+/* Private Device Data */
 
 struct ariadne_private {
-    volatile struct TDRE *tx_ring[TX_RING_SIZE];
-    volatile struct RDRE *rx_ring[RX_RING_SIZE];
-    volatile u_short *tx_buff[TX_RING_SIZE];
-    volatile u_short *rx_buff[RX_RING_SIZE];
-    int cur_tx, cur_rx;                        /* The next free ring entry */
-    int dirty_tx;                      /* The ring entries to be free()ed. */
-    char tx_full;
+       volatile struct TDRE *tx_ring[TX_RING_SIZE];
+       volatile struct RDRE *rx_ring[RX_RING_SIZE];
+       volatile u_short *tx_buff[TX_RING_SIZE];
+       volatile u_short *rx_buff[RX_RING_SIZE];
+       int cur_tx, cur_rx;             /* The next free ring entry */
+       int dirty_tx;                   /* The ring entries to be free()ed */
+       char tx_full;
 };
 
-
-    /*
-     * Structure Created in the Ariadne's RAM Buffer
-     */
+/* Structure Created in the Ariadne's RAM Buffer */
 
 struct lancedata {
-    struct TDRE tx_ring[TX_RING_SIZE];
-    struct RDRE rx_ring[RX_RING_SIZE];
-    u_short tx_buff[TX_RING_SIZE][PKT_BUF_SIZE/sizeof(u_short)];
-    u_short rx_buff[RX_RING_SIZE][PKT_BUF_SIZE/sizeof(u_short)];
+       struct TDRE tx_ring[TX_RING_SIZE];
+       struct RDRE rx_ring[RX_RING_SIZE];
+       u_short tx_buff[TX_RING_SIZE][PKT_BUF_SIZE / sizeof(u_short)];
+       u_short rx_buff[RX_RING_SIZE][PKT_BUF_SIZE / sizeof(u_short)];
 };
 
-static int ariadne_open(struct net_device *dev);
-static void ariadne_init_ring(struct net_device *dev);
-static netdev_tx_t ariadne_start_xmit(struct sk_buff *skb,
-                                     struct net_device *dev);
-static void ariadne_tx_timeout(struct net_device *dev);
-static int ariadne_rx(struct net_device *dev);
-static void ariadne_reset(struct net_device *dev);
-static irqreturn_t ariadne_interrupt(int irq, void *data);
-static int ariadne_close(struct net_device *dev);
-static struct net_device_stats *ariadne_get_stats(struct net_device *dev);
-static void set_multicast_list(struct net_device *dev);
-
-
 static void memcpyw(volatile u_short *dest, u_short *src, int len)
 {
-    while (len >= 2) {
-       *(dest++) = *(src++);
-       len -= 2;
-    }
-    if (len == 1)
-       *dest = (*(u_char *)src)<<8;
+       while (len >= 2) {
+               *(dest++) = *(src++);
+               len -= 2;
+       }
+       if (len == 1)
+               *dest = (*(u_char *)src) << 8;
 }
 
+static void ariadne_init_ring(struct net_device *dev)
+{
+       struct ariadne_private *priv = netdev_priv(dev);
+       volatile struct lancedata *lancedata = (struct lancedata *)dev->mem_start;
+       int i;
 
-static int __devinit ariadne_init_one(struct zorro_dev *z,
-                                     const struct zorro_device_id *ent);
-static void __devexit ariadne_remove_one(struct zorro_dev *z);
-
-
-static struct zorro_device_id ariadne_zorro_tbl[] __devinitdata = {
-    { ZORRO_PROD_VILLAGE_TRONIC_ARIADNE },
-    { 0 }
-};
-MODULE_DEVICE_TABLE(zorro, ariadne_zorro_tbl);
+       netif_stop_queue(dev);
 
-static struct zorro_driver ariadne_driver = {
-    .name      = "ariadne",
-    .id_table  = ariadne_zorro_tbl,
-    .probe     = ariadne_init_one,
-    .remove    = __devexit_p(ariadne_remove_one),
-};
+       priv->tx_full = 0;
+       priv->cur_rx = priv->cur_tx = 0;
+       priv->dirty_tx = 0;
+
+       /* Set up TX Ring */
+       for (i = 0; i < TX_RING_SIZE; i++) {
+               volatile struct TDRE *t = &lancedata->tx_ring[i];
+               t->TMD0 = swloww(ARIADNE_RAM +
+                                offsetof(struct lancedata, tx_buff[i]));
+               t->TMD1 = swhighw(ARIADNE_RAM +
+                                 offsetof(struct lancedata, tx_buff[i])) |
+                       TF_STP | TF_ENP;
+               t->TMD2 = swapw((u_short)-PKT_BUF_SIZE);
+               t->TMD3 = 0;
+               priv->tx_ring[i] = &lancedata->tx_ring[i];
+               priv->tx_buff[i] = lancedata->tx_buff[i];
+               netdev_dbg(dev, "TX Entry %2d at %p, Buf at %p\n",
+                          i, &lancedata->tx_ring[i], lancedata->tx_buff[i]);
+       }
 
-static const struct net_device_ops ariadne_netdev_ops = {
-       .ndo_open               = ariadne_open,
-       .ndo_stop               = ariadne_close,
-       .ndo_start_xmit         = ariadne_start_xmit,
-       .ndo_tx_timeout         = ariadne_tx_timeout,
-       .ndo_get_stats          = ariadne_get_stats,
-       .ndo_set_multicast_list = set_multicast_list,
-       .ndo_validate_addr      = eth_validate_addr,
-       .ndo_change_mtu         = eth_change_mtu,
-       .ndo_set_mac_address    = eth_mac_addr,
-};
+       /* Set up RX Ring */
+       for (i = 0; i < RX_RING_SIZE; i++) {
+               volatile struct RDRE *r = &lancedata->rx_ring[i];
+               r->RMD0 = swloww(ARIADNE_RAM +
+                                offsetof(struct lancedata, rx_buff[i]));
+               r->RMD1 = swhighw(ARIADNE_RAM +
+                                 offsetof(struct lancedata, rx_buff[i])) |
+                       RF_OWN;
+               r->RMD2 = swapw((u_short)-PKT_BUF_SIZE);
+               r->RMD3 = 0x0000;
+               priv->rx_ring[i] = &lancedata->rx_ring[i];
+               priv->rx_buff[i] = lancedata->rx_buff[i];
+               netdev_dbg(dev, "RX Entry %2d at %p, Buf at %p\n",
+                          i, &lancedata->rx_ring[i], lancedata->rx_buff[i]);
+       }
+}
 
-static int __devinit ariadne_init_one(struct zorro_dev *z,
-                                     const struct zorro_device_id *ent)
+static int ariadne_rx(struct net_device *dev)
 {
-    unsigned long board = z->resource.start;
-    unsigned long base_addr = board+ARIADNE_LANCE;
-    unsigned long mem_start = board+ARIADNE_RAM;
-    struct resource *r1, *r2;
-    struct net_device *dev;
-    struct ariadne_private *priv;
-    int err;
-
-    r1 = request_mem_region(base_addr, sizeof(struct Am79C960), "Am79C960");
-    if (!r1)
-       return -EBUSY;
-    r2 = request_mem_region(mem_start, ARIADNE_RAM_SIZE, "RAM");
-    if (!r2) {
-       release_mem_region(base_addr, sizeof(struct Am79C960));
-       return -EBUSY;
-    }
-
-    dev = alloc_etherdev(sizeof(struct ariadne_private));
-    if (dev == NULL) {
-       release_mem_region(base_addr, sizeof(struct Am79C960));
-       release_mem_region(mem_start, ARIADNE_RAM_SIZE);
-       return -ENOMEM;
-    }
-
-    priv = netdev_priv(dev);
-
-    r1->name = dev->name;
-    r2->name = dev->name;
-
-    dev->dev_addr[0] = 0x00;
-    dev->dev_addr[1] = 0x60;
-    dev->dev_addr[2] = 0x30;
-    dev->dev_addr[3] = (z->rom.er_SerialNumber>>16) & 0xff;
-    dev->dev_addr[4] = (z->rom.er_SerialNumber>>8) & 0xff;
-    dev->dev_addr[5] = z->rom.er_SerialNumber & 0xff;
-    dev->base_addr = ZTWO_VADDR(base_addr);
-    dev->mem_start = ZTWO_VADDR(mem_start);
-    dev->mem_end = dev->mem_start+ARIADNE_RAM_SIZE;
-
-    dev->netdev_ops = &ariadne_netdev_ops;
-    dev->watchdog_timeo = 5*HZ;
-
-    err = register_netdev(dev);
-    if (err) {
-       release_mem_region(base_addr, sizeof(struct Am79C960));
-       release_mem_region(mem_start, ARIADNE_RAM_SIZE);
-       free_netdev(dev);
-       return err;
-    }
-    zorro_set_drvdata(z, dev);
+       struct ariadne_private *priv = netdev_priv(dev);
+       int entry = priv->cur_rx % RX_RING_SIZE;
+       int i;
 
-    printk(KERN_INFO "%s: Ariadne at 0x%08lx, Ethernet Address %pM\n",
-           dev->name, board, dev->dev_addr);
+       /* If we own the next entry, it's a new packet. Send it up */
+       while (!(lowb(priv->rx_ring[entry]->RMD1) & RF_OWN)) {
+               int status = lowb(priv->rx_ring[entry]->RMD1);
+
+               if (status != (RF_STP | RF_ENP)) {      /* There was an error */
+                       /* There is a tricky error noted by
+                        * John Murphy <murf@perftech.com> to Russ Nelson:
+                        * Even with full-sized buffers it's possible for a
+                        * jabber packet to use two buffers, with only the
+                        * last correctly noting the error
+                        */
+                       /* Only count a general error at the end of a packet */
+                       if (status & RF_ENP)
+                               dev->stats.rx_errors++;
+                       if (status & RF_FRAM)
+                               dev->stats.rx_frame_errors++;
+                       if (status & RF_OFLO)
+                               dev->stats.rx_over_errors++;
+                       if (status & RF_CRC)
+                               dev->stats.rx_crc_errors++;
+                       if (status & RF_BUFF)
+                               dev->stats.rx_fifo_errors++;
+                       priv->rx_ring[entry]->RMD1 &= 0xff00 | RF_STP | RF_ENP;
+               } else {
+                       /* Malloc up new buffer, compatible with net-3 */
+                       short pkt_len = swapw(priv->rx_ring[entry]->RMD3);
+                       struct sk_buff *skb;
+
+                       skb = dev_alloc_skb(pkt_len + 2);
+                       if (skb == NULL) {
+                               netdev_warn(dev, "Memory squeeze, deferring packet\n");
+                               for (i = 0; i < RX_RING_SIZE; i++)
+                                       if (lowb(priv->rx_ring[(entry + i) % RX_RING_SIZE]->RMD1) & RF_OWN)
+                                               break;
+
+                               if (i > RX_RING_SIZE - 2) {
+                                       dev->stats.rx_dropped++;
+                                       priv->rx_ring[entry]->RMD1 |= RF_OWN;
+                                       priv->cur_rx++;
+                               }
+                               break;
+                       }
+
+
+                       skb_reserve(skb, 2);    /* 16 byte align */
+                       skb_put(skb, pkt_len);  /* Make room */
+                       skb_copy_to_linear_data(skb,
+                                               (const void *)priv->rx_buff[entry],
+                                               pkt_len);
+                       skb->protocol = eth_type_trans(skb, dev);
+                       netdev_dbg(dev, "RX pkt type 0x%04x from %pM to %pM data 0x%08x len %d\n",
+                                  ((u_short *)skb->data)[6],
+                                  skb->data + 6, skb->data,
+                                  (int)skb->data, (int)skb->len);
+
+                       netif_rx(skb);
+                       dev->stats.rx_packets++;
+                       dev->stats.rx_bytes += pkt_len;
+               }
 
-    return 0;
-}
+               priv->rx_ring[entry]->RMD1 |= RF_OWN;
+               entry = (++priv->cur_rx) % RX_RING_SIZE;
+       }
 
+       priv->cur_rx = priv->cur_rx % RX_RING_SIZE;
 
-static int ariadne_open(struct net_device *dev)
-{
-    volatile struct Am79C960 *lance = (struct Am79C960*)dev->base_addr;
-    u_short in;
-    u_long version;
-    int i;
-
-    /* Reset the LANCE */
-    in = lance->Reset;
-
-    /* Stop the LANCE */
-    lance->RAP = CSR0;         /* PCnet-ISA Controller Status */
-    lance->RDP = STOP;
-
-    /* Check the LANCE version */
-    lance->RAP = CSR88;                /* Chip ID */
-    version = swapw(lance->RDP);
-    lance->RAP = CSR89;                /* Chip ID */
-    version |= swapw(lance->RDP)<<16;
-    if ((version & 0x00000fff) != 0x00000003) {
-       printk(KERN_WARNING "ariadne_open: Couldn't find AMD Ethernet Chip\n");
-       return -EAGAIN;
-    }
-    if ((version & 0x0ffff000) != 0x00003000) {
-       printk(KERN_WARNING "ariadne_open: Couldn't find Am79C960 (Wrong part "
-              "number = %ld)\n", (version & 0x0ffff000)>>12);
-       return -EAGAIN;
-    }
-#if 0
-    printk(KERN_DEBUG "ariadne_open: Am79C960 (PCnet-ISA) Revision %ld\n",
-          (version & 0xf0000000)>>28);
-#endif
+       /* We should check that at least two ring entries are free.
+        * If not, we should free one and mark stats->rx_dropped++
+        */
 
-    ariadne_init_ring(dev);
-
-    /* Miscellaneous Stuff */
-    lance->RAP = CSR3;         /* Interrupt Masks and Deferral Control */
-    lance->RDP = 0x0000;
-    lance->RAP = CSR4;         /* Test and Features Control */
-    lance->RDP = DPOLL|APAD_XMT|MFCOM|RCVCCOM|TXSTRTM|JABM;
-
-    /* Set the Multicast Table */
-    lance->RAP = CSR8;         /* Logical Address Filter, LADRF[15:0] */
-    lance->RDP = 0x0000;
-    lance->RAP = CSR9;         /* Logical Address Filter, LADRF[31:16] */
-    lance->RDP = 0x0000;
-    lance->RAP = CSR10;                /* Logical Address Filter, LADRF[47:32] */
-    lance->RDP = 0x0000;
-    lance->RAP = CSR11;                /* Logical Address Filter, LADRF[63:48] */
-    lance->RDP = 0x0000;
-
-    /* Set the Ethernet Hardware Address */
-    lance->RAP = CSR12;                /* Physical Address Register, PADR[15:0] */
-    lance->RDP = ((u_short *)&dev->dev_addr[0])[0];
-    lance->RAP = CSR13;                /* Physical Address Register, PADR[31:16] */
-    lance->RDP = ((u_short *)&dev->dev_addr[0])[1];
-    lance->RAP = CSR14;                /* Physical Address Register, PADR[47:32] */
-    lance->RDP = ((u_short *)&dev->dev_addr[0])[2];
-
-    /* Set the Init Block Mode */
-    lance->RAP = CSR15;                /* Mode Register */
-    lance->RDP = 0x0000;
-
-    /* Set the Transmit Descriptor Ring Pointer */
-    lance->RAP = CSR30;                /* Base Address of Transmit Ring */
-    lance->RDP = swloww(ARIADNE_RAM+offsetof(struct lancedata, tx_ring));
-    lance->RAP = CSR31;                /* Base Address of transmit Ring */
-    lance->RDP = swhighw(ARIADNE_RAM+offsetof(struct lancedata, tx_ring));
-
-    /* Set the Receive Descriptor Ring Pointer */
-    lance->RAP = CSR24;                /* Base Address of Receive Ring */
-    lance->RDP = swloww(ARIADNE_RAM+offsetof(struct lancedata, rx_ring));
-    lance->RAP = CSR25;                /* Base Address of Receive Ring */
-    lance->RDP = swhighw(ARIADNE_RAM+offsetof(struct lancedata, rx_ring));
-
-    /* Set the Number of RX and TX Ring Entries */
-    lance->RAP = CSR76;                /* Receive Ring Length */
-    lance->RDP = swapw(((u_short)-RX_RING_SIZE));
-    lance->RAP = CSR78;                /* Transmit Ring Length */
-    lance->RDP = swapw(((u_short)-TX_RING_SIZE));
-
-    /* Enable Media Interface Port Auto Select (10BASE-2/10BASE-T) */
-    lance->RAP = ISACSR2;      /* Miscellaneous Configuration */
-    lance->IDP = ASEL;
-
-    /* LED Control */
-    lance->RAP = ISACSR5;      /* LED1 Status */
-    lance->IDP = PSE|XMTE;
-    lance->RAP = ISACSR6;      /* LED2 Status */
-    lance->IDP = PSE|COLE;
-    lance->RAP = ISACSR7;      /* LED3 Status */
-    lance->IDP = PSE|RCVE;
-
-    netif_start_queue(dev);
-
-    i = request_irq(IRQ_AMIGA_PORTS, ariadne_interrupt, IRQF_SHARED,
-                    dev->name, dev);
-    if (i) return i;
-
-    lance->RAP = CSR0;         /* PCnet-ISA Controller Status */
-    lance->RDP = INEA|STRT;
-
-    return 0;
+       return 0;
 }
 
-
-static void ariadne_init_ring(struct net_device *dev)
+static irqreturn_t ariadne_interrupt(int irq, void *data)
 {
-    struct ariadne_private *priv = netdev_priv(dev);
-    volatile struct lancedata *lancedata = (struct lancedata *)dev->mem_start;
-    int i;
-
-    netif_stop_queue(dev);
-
-    priv->tx_full = 0;
-    priv->cur_rx = priv->cur_tx = 0;
-    priv->dirty_tx = 0;
-
-    /* Set up TX Ring */
-    for (i = 0; i < TX_RING_SIZE; i++) {
-       volatile struct TDRE *t = &lancedata->tx_ring[i];
-       t->TMD0 = swloww(ARIADNE_RAM+offsetof(struct lancedata, tx_buff[i]));
-       t->TMD1 = swhighw(ARIADNE_RAM+offsetof(struct lancedata, tx_buff[i])) |
-                 TF_STP | TF_ENP;
-       t->TMD2 = swapw((u_short)-PKT_BUF_SIZE);
-       t->TMD3 = 0;
-       priv->tx_ring[i] = &lancedata->tx_ring[i];
-       priv->tx_buff[i] = lancedata->tx_buff[i];
-#if 0
-       printk(KERN_DEBUG "TX Entry %2d at %p, Buf at %p\n", i,
-              &lancedata->tx_ring[i], lancedata->tx_buff[i]);
-#endif
-    }
-
-    /* Set up RX Ring */
-    for (i = 0; i < RX_RING_SIZE; i++) {
-       volatile struct RDRE *r = &lancedata->rx_ring[i];
-       r->RMD0 = swloww(ARIADNE_RAM+offsetof(struct lancedata, rx_buff[i]));
-       r->RMD1 = swhighw(ARIADNE_RAM+offsetof(struct lancedata, rx_buff[i])) |
-                 RF_OWN;
-       r->RMD2 = swapw((u_short)-PK