1. 14 11月, 2011 2 次提交
  2. 12 8月, 2011 1 次提交
    • J
      freescale: Move the Freescale drivers · ec21e2ec
      Jeff Kirsher 提交于
      Move the Freescale drivers into drivers/net/ethernet/freescale/ and
      make the necessary Kconfig and Makefile changes.
      
      CC: Sandeep Gopalpet <sandeep.kumar@freescale.com>
      CC: Andy Fleming <afleming@freescale.com>
      CC: Shlomi Gridish <gridish@freescale.com>
      CC: Li Yang <leoli@freescale.com>
      CC: Pantelis Antoniou <pantelis.antoniou@gmail.com>
      CC: Vitaly Bordug <vbordug@ru.mvista.com>
      CC: Dan Malek <dmalek@jlc.net>
      CC: Sylvain Munaut <tnt@246tNt.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      ec21e2ec
  3. 01 3月, 2011 1 次提交
  4. 27 9月, 2010 1 次提交
  5. 06 8月, 2010 1 次提交
  6. 01 8月, 2010 1 次提交
    • G
      of/address: Clean up function declarations · 22ae782f
      Grant Likely 提交于
      This patch moves the declaration of of_get_address(), of_get_pci_address(),
      and of_pci_address_to_resource() out of arch code and into the common
      linux/of_address header file.
      
      This patch also fixes some of the asm/prom.h ordering issues.  It still
      includes some header files that it ideally shouldn't be, but at least the
      ordering is consistent now so that of_* overrides work.
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      22ae782f
  7. 22 5月, 2010 1 次提交
    • G
      of: Remove duplicate fields from of_platform_driver · 4018294b
      Grant Likely 提交于
      .name, .match_table and .owner are duplicated in both of_platform_driver
      and device_driver.  This patch is a removes the extra copies from struct
      of_platform_driver and converts all users to the device_driver members.
      
      This patch is a pretty mechanical change.  The usage model doesn't change
      and if any drivers have been missed, or if anything has been fixed up
      incorrectly, then it will fail with a compile time error, and the fixup
      will be trivial.  This patch looks big and scary because it touches so
      many files, but it should be pretty safe.
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      Acked-by: NSean MacLennan <smaclennan@pikatech.com>
      4018294b
  8. 19 5月, 2010 1 次提交
  9. 18 5月, 2010 1 次提交
  10. 24 4月, 2010 1 次提交
    • A
      fsl_pq_mdio: Fix kernel oops during OF address translation · 3b1fd3e5
      Anton Vorontsov 提交于
      Old P1020RDB device trees were not specifing tbipa address for
      MDIO nodes, which is now causing this kernel oops:
      
       ...
       eth2: TX BD ring size for Q[6]: 256
       eth2: TX BD ring size for Q[7]: 256
       Unable to handle kernel paging request for data at address 0x00000000
       Faulting instruction address: 0xc0015504
       Oops: Kernel access of bad area, sig: 11 [#1]
       ...
       NIP [c0015504] memcpy+0x3c/0x9c
       LR [c000a9f8] __of_translate_address+0xfc/0x21c
       Call Trace:
       [df839e00] [c000a94c] __of_translate_address+0x50/0x21c (unreliable)
       [df839e50] [c01a33e8] get_gfar_tbipa+0xb0/0xe0
       ...
      
      The old device trees are buggy, though having a dead ethernet is
      better than a dead kernel, so fix the issue by using of_iomap().
      
      Also, a somewhat similar issue exist in the probe() routine, though
      there the oops is only a possibility. Nonetheless, fix it too.
      Signed-off-by: NAnton Vorontsov <avorontsov@mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3b1fd3e5
  11. 31 12月, 2009 1 次提交
    • A
      fsl_pq_mdio: Fix iomem unmapping for non-eTSEC2.0 controllers · b3319b10
      Anton Vorontsov 提交于
      We use a rather complicated logic to support eTSEC and eTSEC2.0
      registers maps in a single driver. Currently, the code tries to
      unmap 'regs', but for non-eTSEC2.0 controllers 'regs' doesn't
      point to a mapping start, and this might cause badness on probe
      failure or module removal:
      
       Freescale PowerQUICC MII Bus: probed
       Trying to vfree() nonexistent vm area (e107f000)
       ------------[ cut here ]------------
       Badness at c00a7754 [verbose debug info unavailable]
       NIP: c00a7754 LR: c00a7754 CTR: c02231ec
       [...]
       NIP [c00a7754] __vunmap+0xec/0xf4
       LR [c00a7754] __vunmap+0xec/0xf4
       Call Trace:
       [df827e50] [c00a7754] __vunmap+0xec/0xf4 (unreliable)
       [df827e70] [c001519c] iounmap+0x44/0x54
       [df827e80] [c028b924] fsl_pq_mdio_probe+0x1cc/0x2fc
       [df827eb0] [c02fb9b4] of_platform_device_probe+0x5c/0x84
       [df827ed0] [c0229928] really_probe+0x78/0x1a8
       [df827ef0] [c0229b20] __driver_attach+0xa4/0xa8
      
      Fix this by introducing a proper priv structure (finally!), which
      now holds 'regs' and 'map' fields separately.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b3319b10
  12. 08 11月, 2009 3 次提交
    • S
      net/fsl_pq_mdio: add module license GPL · 26062897
      Sebastian Siewior 提交于
      or it will taint the kernel and fail to load becuase
      of_address_to_resource() is GPL only.
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      26062897
    • A
      fsl_pq_mdio: Fix compiler/sparse warnings (part 2) · 6748f60b
      Anton Vorontsov 提交于
      This patch fixes following warnings:
      
      fsl_pq_mdio.c:112:38: warning: cast adds address space to expression (<asn:2>)
      fsl_pq_mdio.c:124:38: warning: cast adds address space to expression (<asn:2>)
      fsl_pq_mdio.c:133:38: warning: cast adds address space to expression (<asn:2>)
      fsl_pq_mdio.c:414:11: warning: cast adds address space to expression (<asn:2>)
      
      Instead of adding __force all over the place, introduce convenient
      fsl_pq_mdio_get_regs() call that does the ugly casting just once.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6748f60b
    • A
      fsl_pq_mdio: Fix compiler/sparse warnings (part 1) · 2951d64e
      Anton Vorontsov 提交于
      commit 1d2397d7 ("fsl_pq_mdio: Add
      Suport for etsec2.0 devices") introduced the following warnings:
      
        CHECK   fsl_pq_mdio.c
      fsl_pq_mdio.c:287:22: warning: incorrect type in initializer (different base types)
      fsl_pq_mdio.c:287:22:    expected unknown type 11 const *__mptr
      fsl_pq_mdio.c:287:22:    got unsigned long long [unsigned] [assigned] [usertype] addr
      fsl_pq_mdio.c:287:19: warning: incorrect type in assignment (different base types)
      fsl_pq_mdio.c:287:19:    expected unsigned long long [unsigned] [usertype] ioremap_miimcfg
      fsl_pq_mdio.c:287:19:    got struct fsl_pq_mdio *<noident>
        CC      fsl_pq_mdio.o
      fsl_pq_mdio.c: In function 'fsl_pq_mdio_probe':
      fsl_pq_mdio.c:287: warning: initialization makes pointer from integer without a cast
      fsl_pq_mdio.c:287: warning: assignment makes integer from pointer without a cast
      
      These warnings are not easy to fix without ugly __force casts. So,
      instead of introducing the casts, rework the code to substitute an
      offset from an already mapped area. This makes the code a lot simpler
      and less duplicated.
      
      Plus, from now on we don't actually map reserved registers on
      non-etsec2.0 devices, so we have more chances to catch programming
      errors.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2951d64e
  13. 03 11月, 2009 1 次提交
  14. 15 10月, 2009 1 次提交
  15. 26 6月, 2009 1 次提交
  16. 03 6月, 2009 1 次提交
  17. 27 4月, 2009 2 次提交
  18. 03 4月, 2009 1 次提交
  19. 02 4月, 2009 1 次提交
  20. 24 3月, 2009 1 次提交
    • A
      fsl_pq_mdio: Use proper address translation · 18f27383
      Anton Vorontsov 提交于
      Currently the driver just read "reg" property for constructing MDIO
      bus IDs, but this won't work when we'll start using "ranges = <>" in
      the device tree, so this will pop up:
      
      Freescale PowerQUICC MII Bus: probed
      sysfs: duplicate filename 'mdio@520' can not be created
      ------------[ cut here ]------------
      Badness at c00cb6b8 [verbose debug info unavailable]
      NIP: c00cb6b8 LR: c00cb6b8 CTR: c001271c
      REGS: cf82fc10 TRAP: 0700   Not tainted  (2.6.29-rc7-03702-g7ccd10f)
      MSR: 00029032 <EE,ME,CE,IR,DR>  CR: 42044022  XER: 20000000
      TASK = cf81fbd0[1] 'swapper' THREAD: cf82e000
      GPR00: c00cb6b8 cf82fcc0 cf81fbd0 0000003b 00000e42 ffffffff 00004000 00000e42
      GPR08: c03cb0fc c03bfbdc 00000e42 c03cac50 22044022 1006a2bc 0ffcb000 00000000
      GPR16: 0ffc04b0 0ffc5a40 00000000 0ffc79a8 0f7863a8 00000004 00000000 00000000
      GPR24: c033a6a8 d1014520 cf85e840 cf82fd08 cf87cf2c cf82fcd8 cf85dea8 ffffffef
      NIP [c00cb6b8] sysfs_add_one+0x4c/0x54
      LR [c00cb6b8] sysfs_add_one+0x4c/0x54
      Call Trace:
      [cf82fcc0] [c00cb6b8] sysfs_add_one+0x4c/0x54 (unreliable)
      [cf82fcd0] [c00cbc18] create_dir+0x58/0xc0
      [cf82fd00] [c00cbcc0] sysfs_create_dir+0x40/0x70
      [cf82fd20] [c0159388] create_dir+0x28/0x78
      [cf82fd30] [c0159824] kobject_add_internal+0x98/0x13c
      [cf82fd50] [c0159e98] kobject_add+0x60/0x98
      [cf82fd80] [c018a480] device_add+0x98/0x2ac
      [cf82fda0] [c01a2380] mdiobus_register+0xbc/0x1c0
      [cf82fdc0] [c019f31c] fsl_pq_mdio_probe+0x284/0x2a0
      [cf82fe00] [c0223814] of_platform_device_probe+0x5c/0x84
      ...
      
      This patch fixes the issue by translating the "reg" property to a full
      address, and thus avoids the duplicate names.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Acked-by: NKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      18f27383
  21. 22 3月, 2009 1 次提交
  22. 05 2月, 2009 1 次提交
  23. 01 2月, 2009 1 次提交
    • A
      gianfar: Fix sparse warnings · b2f66d18
      Anton Vorontsov 提交于
      This patch fixes following sparse warnings:
      
        CHECK   gianfar_ethtool.c
      gianfar_ethtool.c:610:26: warning: symbol 'gfar_ethtool_ops' was not declared. Should it be static?
        CHECK   gianfar_mii.c
      gianfar_mii.c:108:35: warning: cast adds address space to expression (<asn:2>)
      gianfar_mii.c:119:35: warning: cast adds address space to expression (<asn:2>)
      gianfar_mii.c:128:35: warning: cast adds address space to expression (<asn:2>)
      gianfar_mii.c:272:5: warning: cast removes address space of expression
      gianfar_mii.c:271:15: warning: cast adds address space to expression (<asn:2>)
      gianfar_mii.c:340:11: warning: cast adds address space to expression (<asn:2>)
        CHECK   gianfar_sysfs.c
      gianfar_sysfs.c:84:1: warning: symbol 'dev_attr_bd_stash' was not declared. Should it be static?
      gianfar_sysfs.c:133:1: warning: symbol 'dev_attr_rx_stash_size' was not declared. Should it be static?
      gianfar_sysfs.c:175:1: warning: symbol 'dev_attr_rx_stash_index' was not declared. Should it be static?
      gianfar_sysfs.c:213:1: warning: symbol 'dev_attr_fifo_threshold' was not declared. Should it be static?
      gianfar_sysfs.c:250:1: warning: symbol 'dev_attr_fifo_starve' was not declared. Should it be static?
      gianfar_sysfs.c:287:1: warning: symbol 'dev_attr_fifo_starve_off' was not declared. Should it be static?
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b2f66d18
  24. 30 1月, 2009 1 次提交
    • A
      gianfar: Fix Wake-on-LAN support · e5664bb2
      Anton Vorontsov 提交于
      commit 0f0ca340 ("phy: power
      management support") caused a regression in the gianfar driver.
      
      Now phylib turns off PHY power during suspend, and thus WOL
      doesn't work anymore.
      
      This patch workarounds the issue by enabling wakeup in the MDIO
      device, i.e. just restores the old behaviour for the gianfar
      driver. Note that this way all PHYs on a given MDIO bus won't
      be turned off during suspend, which isn't good from the power
      saving point of view.
      
      A proper, per netdevice wakeup management support will need
      a bit reworked phylib suspend/resume logic.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e5664bb2
  25. 17 12月, 2008 1 次提交
  26. 31 10月, 2008 1 次提交
    • T
      gianfar: Fix race in TBI/SerDes configuration · c132419e
      Trent Piepho 提交于
      The init_phy() function attaches to the PHY, then configures the
      SerDes<->TBI link (in SGMII mode).  The TBI is on the MDIO bus with the PHY
      (sort of) and is accessed via the gianfar's MDIO registers, using the
      functions gfar_local_mdio_read/write(), which don't do any locking.
      
      The previously attached PHY will start a work-queue on a timer, and
      probably an irq handler as well, which will talk to the PHY and thus use
      the MDIO bus.  This uses phy_read/write(), which have locking, but not
      against the gfar_local_mdio versions.
      
      The result is that PHY code will try to use the MDIO bus at the same time
      as the SerDes setup code, corrupting the transfers.
      
      Setting up the SerDes before attaching to the PHY will insure that there is
      no race between the SerDes code and *our* PHY, but doesn't fix everything.
      Typically the PHYs for all gianfar devices are on the same MDIO bus, which
      is associated with the first gianfar device.  This means that the first
      gianfar's SerDes code could corrupt the MDIO transfers for a different
      gianfar's PHY.
      
      The lock used by phy_read/write() is contained in the mii_bus structure,
      which is pointed to by the PHY.  This is difficult to access from the
      gianfar drivers, as there is no link between a gianfar device and the
      mii_bus which shares the same MDIO registers.  As far as the device layer
      and drivers are concerned they are two unrelated devices (which happen to
      share registers).
      
      Generally all gianfar devices' PHYs will be on the bus associated with the
      first gianfar.  But this might not be the case, so simply locking the
      gianfar's PHY's mii bus might not lock the mii bus that the SerDes setup
      code is going to use.
      
      We solve this by having the code that creates the gianfar platform device
      look in the device tree for an mdio device that shares the gianfar's
      registers.  If one is found the ID of its platform device is saved in the
      gianfar's platform data.
      
      A new function in the gianfar mii code, gfar_get_miibus(), can use the bus
      ID to search through the platform devices for a gianfar_mdio device with
      the right ID.  The platform device's driver data is the mii_bus structure,
      which the SerDes setup code can use to lock the current bus.
      Signed-off-by: NTrent Piepho <tpiepho@freescale.com>
      CC: Andy Fleming <afleming@freescale.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      c132419e
  27. 09 10月, 2008 2 次提交
  28. 25 9月, 2008 2 次提交
  29. 29 4月, 2008 1 次提交
  30. 17 4月, 2008 1 次提交
  31. 15 2月, 2008 1 次提交
  32. 06 2月, 2008 1 次提交
  33. 31 7月, 2007 1 次提交
  34. 17 7月, 2007 1 次提交