- Mar 13, 2009
-
-
Marcin Slusarz authored
It closes a race in phy_stop_machine when reprogramming of phy_timer (from phy_state_machine) happens between del_timer_sync and cancel_work_sync. Without this change it could lead to crash if phy_device would be freed after phy_stop_machine (timer would fire and schedule freed work). Signed-off-by:
Marcin Slusarz <marcin.slusarz@gmail.com> Acked-by:
Jean Delvare <khali@linux-fr.org> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Feb 27, 2009
-
-
Stephen Hemminger authored
Signed-off-by:
Stephen Hemminger <shemminger@vyatta.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Feb 11, 2009
-
-
Paulius Zaleckas authored
mdc pin should always be output. Initialize it as output, so each board code does not need to do this. Signed-off-by:
Paulius Zaleckas <paulius.zaleckas@teltonika.lt> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Feb 01, 2009
-
-
Anton Vorontsov authored
In most cases (e.g. PCI drivers) MDIO and MAC controllers are represented by the same device. But for SOC ethernets we have separate devices. So, in SOC case, checking whether MDIO controller may wakeup is not only makes little sense, but also prevents us from doing per-netdevice wakeup management. This patch reworks suspend/resume code so that now it checks for net device's wakeup flags, not MDIO controller's ones. Each netdevice should manage its wakeup flags, and phylib will decide whether suspend an attached PHY or not. Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Jan 22, 2009
-
-
Steve Glendinning authored
All supported SMSC PHYs implement the standard "power down" bit 11 of BMCR, so this patch adds support using the generic genphy_{suspend,resume} functions. Signed-off-by:
Steve Glendinning <steve.glendinning@smsc.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Anton Vorontsov authored
Suspend/resume routines check for phydrv != NULL, but that is wrong because "phydrv" comes from container_of(drv). If drv is NULL, then container_of(drv) will return non-NULL result, and the checks won't work. The Freescale TBI PHYs are driver-less, so "drv" is NULL, and that leads to the following oops: Unable to handle kernel paging request for data at address 0xffffffe4 Faulting instruction address: 0xc0215554 Oops: Kernel access of bad area, sig: 11 [#1] [...] NIP [c0215554] mdio_bus_suspend+0x34/0x70 LR [c01cc508] suspend_device+0x258/0x2bc Call Trace: [cfad3da0] [cfad3db8] 0xcfad3db8 (unreliable) [cfad3db0] [c01cc508] suspend_device+0x258/0x2bc [cfad3dd0] [c01cc62c] dpm_suspend+0xc0/0x140 [cfad3e20] [c01cc6f4] device_suspend+0x48/0x5c [cfad3e40] [c0068dd8] suspend_devices_and_enter+0x8c/0x148 [cfad3e60] [c00690f8] enter_state+0x100/0x118 [cfad3e80] [c00691c0] state_store+0xb0/0xe4 [cfad3ea0] [c018c938] kobj_attr_store+0x24/0x3c [cfad3eb0] [c00ea9a8] flush_write_buffer+0x58/0x7c [cfad3ed0] [c00eadf0] sysfs_write_file+0x58/0xa0 [cfad3ef0] [c009e810] vfs_write+0xb4/0x16c [cfad3f10] [c009ed40] sys_write+0x4c/0x90 [cfad3f40] [c0014954] ret_from_syscall+0x0/0x38 [...] This patch fixes the issue, plus removes unneeded parentheses and fixes indentation level in mdio_bus_suspend(). Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Jan 21, 2009
-
-
Roel Kluin authored
both pdata->mdc and pdata->mdio are unsigned. Notice a negative return value. Signed-off-by:
Roel Kluin <roel.kluin@gmail.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Jan 14, 2009
-
-
Anton Vorontsov authored
Freescale on-chip TBI PHYs reports PHY ID as 0x0, but as of commit 3ee82383 Author: Giulio Benetti <giulio.benetti@micronovasrl.com> Date: Thu Nov 13 21:53:13 2008 +0000 phy: fix phy address bug PHYID returns 0xffff and not 0xffffffff when not found and in some case(at91sam9263) 0x0. Maybe this patch could be useful. phy_device.c treats PHY ID == 0x0 as bogus IDs, and that results in gianfar driver failure to see the TBI PHYs. This code snippet triggers: if (!priv->tbiphy) { printk(KERN_WARNING "SGMII mode requires that the device " "tree specify a tbi-handle\n"); return; } Although tbi-handle is specified in the device tree. Btw, technically PHY ID == 0x0 is a valid ID (if we ever see a PHY manufactured by Xerox :-). Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Acked-by:
Andy Fleming <afleming@freescale.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Dec 26, 2008
-
-
Krzysztof Halasa authored
The PHYLIB mdio code has more problems in error paths: - mdiobus_release can be called before bus->state is set to MDIOBUS_REGISTERED - mdiobus_scan allocates resources which need to be freed - the comment is wrong, the resistors used are actually pull-ups. Signed-off-by:
Krzysztof Halasa <khc@pm.waw.pl> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Dec 17, 2008
-
-
Krzysztof Halasa authored
kernel BUG at drivers/net/phy/mdio_bus.c:165! Unable to handle kernel NULL pointer dereference at virtual address 00000000 How? mdiobus_alloc() sets bus->state = MDIOBUS_ALLOCATED. mdiobus_register() sets bus->state = MDIOBUS_REGISTERED but then can fail (mdiobus_scan()) returning an error to the caller. The caller aborts correctly with mdiobus_free() which does: if (bus->state == MDIOBUS_ALLOCATED) { kfree(bus); return; } BUG_ON(bus->state != MDIOBUS_UNREGISTERED); Signed-off-by:
Krzysztof Halasa <khc@pm.waw.pl> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Dec 16, 2008
-
-
Andy Fleming authored
genphy_setup_forced hasn't actually reset the PHY for a long time, but a comment to that effect remained in the code, so code continued to act as if it *had* reset the PHY, and called the necessary fixup functions to respond to a PHY reset. With no reset, those functions are no longer needed, so we remove them. Signed-off-by:
Andy Fleming <afleming@freescale.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Dec 10, 2008
-
-
Chaithrika U S authored
Adds LSI ET1011C PHY driver. This driver is used by TI DM646x EVM. Signed-off-by:
Chaithrika U S <chaithrika@ti.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Nov 29, 2008
-
-
Giuseppe Cavallaro authored
This patch adds the STMicroelectronics ste10xp PHY device driver. It supports both the ste100p and the ste101p devices. Suspend/resume alredy added. Signed-off-by:
Giuseppe Cavallaro <peppe.cavallaro@st.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
David S. Miller authored
Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Giuseppe Cavallaro authored
This patch adds the power management support into the physical abstraction layer. Suspend and resume functions respectively turns on/off the bit 11 into the PHY Basic mode control register. Generic PHY device starts supporting PM. In order to support the wake-on LAN and avoid to put in power down the PHY device, the MDIO is aware of what the Ethernet device wants to do. Voluntary, no CONFIG_PM defines were added into the sources. Also generic suspend/resume functions are exported to allow other drivers use them (such as genphy_config_aneg etc.). Within the phy_driver_register function, we need to remove the memset. It overrides the device driver owner and it is not good. Signed-off-by:
Giuseppe Cavallaro <peppe.cavallaro@st.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Giuseppe Cavallaro authored
This patch adds the PHY device driver for the National Semiconductor DP83865 Gig PHYTER. Signed-off-by:
Giuseppe Cavallaro <peppe.cavallaro@st.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Nov 25, 2008
-
-
Trent Piepho authored
PHY is mostly compatible with the existing VSC8244 PHY. The init sequence is different and the interrupt mask lacks some bits present in the VSC8244. Rather than making a copy of the existing VSC234x config_intr function and change one constant, I modify it to select the interrupt mask based on which driver is calling it. This lets it be used by both drivers. Signed-off-by:
Trent Piepho <tpiepho@freescale.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Nov 22, 2008
-
-
Matt Carlson authored
This patch adds the 57780 PHY ID to the broadcom module. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Nov 21, 2008
-
-
Giuseppe Cavallaro authored
This patch fixes the case when the phy_ids is mostly Fs and in some case 0x0 due to broken hardware. Signed-off-by:
Giuseppe Cavallaro <peppe.cavallaro@st.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Nov 19, 2008
-
-
Trent Piepho authored
A previous patch, 51e2a384, made genphy_config_aneg() not restart aneg by calling genphy_restart_aneg() if the advertisement hadn't changed. But, genphy_restart_aneg() doesn't just restart aneg, it may also *enable* aneg or un-isolate the PHY from the MII (those functions are controlled by the same register). The code to avoid calling genphy_restart_aneg() didn't consider this. So, modify genphy_config_aneg() to also check if the PHY needs to have aneg enabled or be un-isolated before deciding not to restart aneg. This caused a problem with certain Davicom PHYs, as that driver isolates the PHY (why?) before calling genphy_config_aneg() and expects the PHY to be un-isolated by that function. Signed-off-by:
Trent Piepho <tpiepho@freescale.com> Reported-by:
Scott Wood <scottwood@freescale.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Nov 17, 2008
-
-
Paulius Zaleckas authored
make mdio-gpio work with non OpenFirmware gpio implementation. Aditional changes to mdio-gpio: - use gpio_request() and gpio_free() - place irq[] array in struct mdio_gpio_info - add module description, author and license - add note about compiling this driver as module - rename mdc and mdio function (were ugly names) - change MII to MDIO in bus name - add __init __exit to module (un)loading functions - probe fails if no phys added to the bus - kzalloc bitbang with sizeof(*bitbang) Changes since v3: - keep bus naming "%x" to be compatible with existing drivers. Changes since v2: - more #ifdefs reduction - platform driver will be registered on OF platforms also - unified platform and OF bus_id to phy%i Changes since v1: - removed NO_IRQ - reduced #idefs Laurent, please test this driver under OF. Signed-off-by:
Paulius Zaleckas <paulius.zaleckas@teltonika.lt> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Paulius Zaleckas authored
Signed-off-by:
Paulius Zaleckas <paulius.zaleckas@teltonika.lt> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Nov 16, 2008
-
-
Giulio Benetti authored
PHYID returns 0xffff and not 0xffffffff when not found and in some case(at91sam9263) 0x0. Maybe this patch could be useful. Signed-off-by:
Giulio Benetti <giulio.benetti@micronovasrl.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Nov 15, 2008
-
-
Ron Madrid authored
This patch will add support for the Marvell 88E1118 PHY which supports gigabit ethernet among other things. Signed-off-by:
Ron Madrid <ron_madrid@sbcglobal.net> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Nov 14, 2008
-
-
Lennert Buytenhek authored
Commit 46abc021 ("phylib: give mdio buses a device tree presence") added a call to device_unregister() in a situation where the caller did not intend for the device to be freed yet, but apart from just unregistering the device from the system, device_unregister() does an additional put_device() that is intended to free it. The right function to use in this situation is device_del(), which unregisters the device from the system like device_unregister() does, but without dropping the reference count an additional time. Bug report from Bryan Wu <cooloney@kernel.org>. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Tested-by:
Bryan Wu <cooloney@kernel.org> Signed-off-by:
Jeff Garzik <jgarzik@redhat.com>
-
- Nov 10, 2008
-
-
Kay Sievers authored
Acked-by:
Marcel Holtmann <marcel@holtmann.org> Acked-by:
Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by:
Kay Sievers <kay.sievers@vrfy.org> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Nov 06, 2008
-
-
Steve Glendinning authored
Attached is a driver for SMSC's LAN911x and LAN921x families of embedded ethernet controllers. There is an existing smc911x driver in the tree; this is intended to replace it. Dustin McIntire (the author of the smc911x driver) has expressed his support for switching to this driver. This driver contains workarounds for all known hardware issues, and has been tested on all flavours of the chip on multiple architectures. This driver now uses phylib, so this patch also adds support for the device's internal phy Signed-off-by:
Steve Glendinning <steve.glendinning@smsc.com> Signed-off-by:
Bahadir Balban <Bahadir.Balban@arm.com> Signed-off-by:
Dustin Mcintire <dustin@sensoria.com> Signed-off-by:
Bill Gatliff <bgat@billgatliff.com> Signed-off-by:
Jeff Garzik <jgarzik@redhat.com>
-
- Nov 04, 2008
-
-
Matt Carlson authored
This patch adds the BCM50610 to the list of phys supported by the broadcom driver. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch makes the expansion register access routines a little more formal. They will be used by the following bcm50610 support patch. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch adds flow control support to Broadcom phys. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Oct 16, 2008
-
-
Greg Kroah-Hartman authored
The driver core now has this helper function, so might as well use it instead of forcing the phy code to roll their own version. Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- Oct 14, 2008
-
-
Adrian Bunk authored
This patch fixes the following build error caused by commit ed94493f (mv643xx_eth: convert to phylib): <-- snip --> ... Building modules, stage 2. MODPOST 1280 modules ERROR: "genphy_restart_aneg" [drivers/net/mv643xx_eth.ko] undefined! ... make[2]: *** [__modpost] Error 1 <-- snip --> Signed-off-by:
Adrian Bunk <bunk@kernel.org> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Randy Dunlap authored
Fix kernel-doc warning, missing description: Warning(lin2627-g3-kdocfixes//drivers/net/phy/mdio_bus.c:63): No description found for parameter 'd' Signed-off-by:
Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Oct 09, 2008
-
-
Lennert Buytenhek authored
1. arch/powerpc/platforms/pasemi/gpio_mdio.c also needs to be converted over to mdiobus_{alloc,free}(). 2. drivers/net/phy/fixed.c used to embed a struct mii_bus into its struct fixed_mdio_bus and then use container_of() to go from the former to the latter. Since mii bus structures are no longer embedded, we need to do something like use the mii bus private pointer to go from mii_bus to fixed_mdio_bus instead. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Oct 08, 2008
-
-
Lennert Buytenhek authored
Add mdiobus_{read,write} routines to allow direct reading/writing of registers on an mii bus without having to go through the PHY abstraction, and make phy_{read,write} use these primitives. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Lennert Buytenhek authored
Introduce the mdio_bus class, and give each 'struct mii_bus' its own 'struct device', so that mii_bus objects are represented in the device tree and can be found by querying the device tree. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Acked-by:
Andy Fleming <afleming@freescale.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Lennert Buytenhek authored
This patch introduces mdiobus_alloc() and mdiobus_free(), and makes all mdio bus drivers use these functions to allocate their struct mii_bus'es dynamically. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
David S. Miller <davem@davemloft.net> Acked-by:
Andy Fleming <afleming@freescale.com>
-
Lennert Buytenhek authored
In preparation of giving mii_bus objects a device tree presence of their own, rename struct mii_bus's ->dev argument to ->parent, since having a 'struct device *dev' that points to our parent device conflicts with introducing a 'struct device dev' representing our own device. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
David S. Miller <davem@davemloft.net> Acked-by:
Andy Fleming <afleming@freescale.com>
-
Trent Piepho authored
This way the phy layer will respond to a change in phy state immediately, instead of up to one second later when the state machine timer runs. Signed-off-by:
Trent Piepho <tpiepho@freescale.com> Acked-by:
Andy Fleming <afleming@freescale.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Trent Piepho authored
The PHY's aneg is configured and restarted whenever the link is brought up, e.g. when DHCP is started after the kernel has booted. This can take the link down for several seconds while auto-negotiation is redone. If the advertised features haven't changed, then it shouldn't be necessary to bring down the link and start auto-negotiation over again. genphy_config_advert() is enhanced to return 0 when the advertised features haven't been changed and >0 when they have been. genphy_config_aneg() then uses this information to not call genphy_restart_aneg() if there has been no change. Signed-off-by:
Trent Piepho <tpiepho@freescale.com> Acked-by:
Andy Fleming <afleming@freescale.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-