All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian Bunk <bunk@stusta.de>
To: Avuton Olrich <avuton@gmail.com>, jgarzik@pobox.com
Cc: Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: [-mm patch] fix PHYCONTROL=n compilation
Date: Sun, 7 Aug 2005 21:43:43 +0200	[thread overview]
Message-ID: <20050807194342.GK3513@stusta.de> (raw)
In-Reply-To: <3aa654a4050807115128ba35de@mail.gmail.com>

On Sun, Aug 07, 2005 at 11:51:23AM -0700, Avuton Olrich wrote:
> On 8/7/05, Andrew Morton <akpm@osdl.org> wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.13-rc5/2.6.13-rc5-mm1/
> 
> I probably don't need/want phy stuff anyhow, but when I tried it:
> 
> Problem:
> drivers/built-in.o: In function `phy_start_machine':
> : undefined reference to `phy_timer'
> drivers/built-in.o: In function `phy_stop_machine':
> : undefined reference to `phy_stop_interrupts'
> make: *** [.tmp_vmlinux1] Error 1
>...

Thanks for this report, it seems noone aactually tried whether 
CONFIG_PHYCONTROL=n compiles...

A possible patch is below.


<--  snip  -->


Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 drivers/net/phy/phy.c |  141 +++++++++++++++++++++---------------------
 1 files changed, 71 insertions(+), 70 deletions(-)

--- linux-2.6.13-rc5-mm1/drivers/net/phy/phy.c.old	2005-08-07 21:18:29.000000000 +0200
+++ linux-2.6.13-rc5-mm1/drivers/net/phy/phy.c	2005-08-07 21:29:33.000000000 +0200
@@ -39,7 +39,6 @@
 #include <asm/irq.h>
 #include <asm/uaccess.h>
 
-static void phy_change(void *data);
 static void phy_timer(unsigned long data);
 
 /* Convenience function to print out the current phy status
@@ -273,31 +272,6 @@
 }
 EXPORT_SYMBOL(phy_sanitize_settings);
 
-/* phy_force_reduction
- *
- * description: Reduces the speed/duplex settings by
- *   one notch.  The order is so:
- *   1000/FULL, 1000/HALF, 100/FULL, 100/HALF,
- *   10/FULL, 10/HALF.  The function bottoms out at 10/HALF.
- */
-static void phy_force_reduction(struct phy_device *phydev)
-{
-	int idx;
-
-	idx = phy_find_setting(phydev->speed, phydev->duplex);
-	
-	idx++;
-
-	idx = phy_find_valid(idx, phydev->supported);
-
-	phydev->speed = settings[idx].speed;
-	phydev->duplex = settings[idx].duplex;
-
-	pr_info("Trying %d/%s\n", phydev->speed,
-			DUPLEX_FULL == phydev->duplex ?
-			"FULL" : "HALF");
-}
-
 /* phy_ethtool_sset:
  * A generic ethtool sset function.  Handles all the details
  *
@@ -464,7 +438,6 @@
 	phydev->adjust_state = NULL;
 }
 
-#ifdef CONFIG_PHYCONTROL
 /* phy_error:
  *
  * Moves the PHY to the HALTED state in response to a read
@@ -479,6 +452,75 @@
 	spin_unlock(&phydev->lock);
 }
 
+/* Disable the PHY interrupts from the PHY side */
+int phy_disable_interrupts(struct phy_device *phydev)
+{
+	int err;
+
+	/* Disable PHY interrupts */
+	err = phy_config_interrupt(phydev, PHY_INTERRUPT_DISABLED);
+
+	if (err)
+		goto phy_err;
+
+	/* Clear the interrupt */
+	err = phy_clear_interrupt(phydev);
+
+	if (err)
+		goto phy_err;
+
+	return 0;
+
+phy_err:
+	phy_error(phydev);
+
+	return err;
+}
+EXPORT_SYMBOL(phy_disable_interrupts);
+
+int phy_stop_interrupts(struct phy_device *phydev)
+{
+	int err;
+
+	err = phy_disable_interrupts(phydev);
+
+	if (err)
+		phy_error(phydev);
+
+	free_irq(phydev->irq, phydev);
+
+	return err;
+}
+EXPORT_SYMBOL(phy_stop_interrupts);
+
+/* phy_force_reduction
+ *
+ * description: Reduces the speed/duplex settings by
+ *   one notch.  The order is so:
+ *   1000/FULL, 1000/HALF, 100/FULL, 100/HALF,
+ *   10/FULL, 10/HALF.  The function bottoms out at 10/HALF.
+ */
+static void phy_force_reduction(struct phy_device *phydev)
+{
+	int idx;
+
+	idx = phy_find_setting(phydev->speed, phydev->duplex);
+	
+	idx++;
+
+	idx = phy_find_valid(idx, phydev->supported);
+
+	phydev->speed = settings[idx].speed;
+	phydev->duplex = settings[idx].duplex;
+
+	pr_info("Trying %d/%s\n", phydev->speed,
+			DUPLEX_FULL == phydev->duplex ?
+			"FULL" : "HALF");
+}
+
+#ifdef CONFIG_PHYCONTROL
+
+static void phy_change(void *data);
 /* phy_interrupt
  *
  * description: When a PHY interrupt occurs, the handler disables
@@ -515,32 +557,6 @@
 }
 EXPORT_SYMBOL(phy_enable_interrupts);
 
-/* Disable the PHY interrupts from the PHY side */
-int phy_disable_interrupts(struct phy_device *phydev)
-{
-	int err;
-
-	/* Disable PHY interrupts */
-	err = phy_config_interrupt(phydev, PHY_INTERRUPT_DISABLED);
-
-	if (err)
-		goto phy_err;
-
-	/* Clear the interrupt */
-	err = phy_clear_interrupt(phydev);
-
-	if (err)
-		goto phy_err;
-
-	return 0;
-
-phy_err:
-	phy_error(phydev);
-
-	return err;
-}
-EXPORT_SYMBOL(phy_disable_interrupts);
-
 /* phy_start_interrupts
  *
  * description: Request the interrupt for the given PHY.  If
@@ -572,21 +588,6 @@
 }
 EXPORT_SYMBOL(phy_start_interrupts);
 
-int phy_stop_interrupts(struct phy_device *phydev)
-{
-	int err;
-
-	err = phy_disable_interrupts(phydev);
-
-	if (err)
-		phy_error(phydev);
-
-	free_irq(phydev->irq, phydev);
-
-	return err;
-}
-EXPORT_SYMBOL(phy_stop_interrupts);
-
 
 /* Scheduled by the phy_interrupt/timer to handle PHY changes */
 static void phy_change(void *data)
@@ -672,6 +673,8 @@
 EXPORT_SYMBOL(phy_stop);
 EXPORT_SYMBOL(phy_start);
 
+#endif /* CONFIG_PHYCONTROL */
+
 /* PHY timer which handles the state machine */
 static void phy_timer(unsigned long data)
 {
@@ -858,5 +861,3 @@
 
 	mod_timer(&phydev->phy_timer, jiffies + PHY_STATE_TIME * HZ);
 }
-
-#endif /* CONFIG_PHYCONTROL */


  reply	other threads:[~2005-08-07 19:43 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-07  8:42 2.6.13-rc5-mm1 Andrew Morton
2005-08-07 13:36 ` [PATCH] mips: moreover remove vr4181 Yoichi Yuasa
2005-08-07 15:43 ` [-mm patch] more vr4181 removal Adrian Bunk
2005-08-07 16:03 ` [-mm patch] drivers/net/phy/phy_device.c: fix compilation Adrian Bunk
2005-08-07 18:51 ` 2.6.13-rc5-mm1 Avuton Olrich
2005-08-07 19:43   ` Adrian Bunk [this message]
2005-08-07 23:13 ` [2.6 patch] drivers/net/sk98lin/: possible cleanups Adrian Bunk
2005-08-08  0:45 ` 2.6.13-rc5-mm1 Rogério Brito
2005-08-08  0:52   ` 2.6.13-rc5-mm1 Andrew Morton
2005-08-08 10:00 ` 2.6.13-rc5-mm1 Ingo Molnar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050807194342.GK3513@stusta.de \
    --to=bunk@stusta.de \
    --cc=akpm@osdl.org \
    --cc=avuton@gmail.com \
    --cc=jgarzik@pobox.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.