From d2c03b9bffdd01672ff178d2b1a8a93576aaffbb Mon Sep 17 00:00:00 2001 From: juhosg Date: Sat, 26 Jun 2010 19:15:57 +0000 Subject: generic: rtl8366: introduce rtl8366_smi_ops git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21910 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c') diff --git a/target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c b/target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c index 7091190b8..d40d9e7f7 100644 --- a/target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c +++ b/target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c @@ -272,6 +272,9 @@ int rtl8366_smi_init(struct rtl8366_smi *smi) if (!smi->parent) return -EINVAL; + if (!smi->ops) + return -EINVAL; + err = gpio_request(smi->gpio_sda, dev_name(smi->parent)); if (err) { dev_err(smi->parent, "gpio_request failed for %u, err=%d\n", @@ -291,8 +294,16 @@ int rtl8366_smi_init(struct rtl8366_smi *smi) dev_info(smi->parent, "using GPIO pins %u (SDA) and %u (SCK)\n", smi->gpio_sda, smi->gpio_sck); + err = smi->ops->detect(smi); + if (err) { + dev_err(smi->parent, "chip detection failed, err=%d\n", err); + goto err_free_sck; + } + return 0; + err_free_sck: + gpio_free(smi->gpio_sck); err_free_sda: gpio_free(smi->gpio_sda); err_out: -- cgit v1.2.3