From dcc8caac45d52ec343e921b59641e5a1983fc674 Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Sat, 26 Jun 2010 19:15:57 +0000 Subject: generic: rtl8366: introduce rtl8366_smi_ops SVN-Revision: 21910 --- 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 7091190..d40d9e7 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.1