diff options
author | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-06-26 19:15:57 +0000 |
---|---|---|
committer | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-06-26 19:15:57 +0000 |
commit | d2c03b9bffdd01672ff178d2b1a8a93576aaffbb (patch) | |
tree | ccb2168c087861c92d565a07b980ad06825055d1 /target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c | |
parent | 36c008077538d37b3778fc89c9ece8d84c57d22c (diff) |
generic: rtl8366: introduce rtl8366_smi_ops
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21910 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c')
-rw-r--r-- | target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c | 11 |
1 files changed, 11 insertions, 0 deletions
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: |