On Sunday 19 June 2011 13:39:32 Greg Ungerer wrote:+#ifdef CONFIG_OF
+static const struct of_device_id fec_dt_ids[] = {
+ { .compatible = "fsl,fec", .data =&fec_devtype[0], },
+ {},
+};
+
+static const struct of_device_id *
+fec_get_of_device_id(struct platform_device *pdev)
+{
+ return of_match_device(fec_dt_ids,&pdev->dev);
+}
+#else
+#define fec_dt_ids NULL
+static inline struct of_device_id *
+fec_get_of_device_id(struct platform_device *pdev)
+{
+ return NULL;
+}
+#endif
+
static unsigned char macaddr[ETH_ALEN];
module_param_array(macaddr, byte, NULL, 0);
MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address");
@@ -1363,6 +1385,11 @@ fec_probe(struct platform_device *pdev)
struct net_device *ndev;
int i, irq, ret = 0;
struct resource *r;
+ const struct of_device_id *of_id;
+
+ of_id = fec_get_of_device_id(pdev);
fec_get_of_device_id() is defined inside of "#ifdef CONFIG_OF". This
use of it will break compilation when this is not defined.
Why? Note the #else path defining an empty function.