projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
generic: ar8216: merge multiple if statements in ar8216_hw_apply
[openwrt.git]
/
target
/
linux
/
generic
/
files
/
drivers
/
net
/
phy
/
rtl8366_smi.c
diff --git
a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c
b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c
index
c3fde0d
..
e48ca99
100644
(file)
--- a/
target/linux/generic/files/drivers/net/phy/rtl8366_smi.c
+++ b/
target/linux/generic/files/drivers/net/phy/rtl8366_smi.c
@@
-157,6
+157,12
@@
static int rtl8366_smi_write_byte(struct rtl8366_smi *smi, u8 data)
return rtl8366_smi_wait_for_ack(smi);
}
return rtl8366_smi_wait_for_ack(smi);
}
+static int rtl8366_smi_write_byte_noack(struct rtl8366_smi *smi, u8 data)
+{
+ rtl8366_smi_write_bits(smi, data, 8);
+ return 0;
+}
+
static int rtl8366_smi_read_byte0(struct rtl8366_smi *smi, u8 *data)
{
u32 t;
static int rtl8366_smi_read_byte0(struct rtl8366_smi *smi, u8 *data)
{
u32 t;
@@
-228,7
+234,8
@@
int rtl8366_smi_read_reg(struct rtl8366_smi *smi, u32 addr, u32 *data)
}
EXPORT_SYMBOL_GPL(rtl8366_smi_read_reg);
}
EXPORT_SYMBOL_GPL(rtl8366_smi_read_reg);
-int rtl8366_smi_write_reg(struct rtl8366_smi *smi, u32 addr, u32 data)
+static int __rtl8366_smi_write_reg(struct rtl8366_smi *smi,
+ u32 addr, u32 data, bool ack)
{
unsigned long flags;
int ret;
{
unsigned long flags;
int ret;
@@
-258,7
+265,10
@@
int rtl8366_smi_write_reg(struct rtl8366_smi *smi, u32 addr, u32 data)
goto out;
/* write DATA[15:8] */
goto out;
/* write DATA[15:8] */
- ret = rtl8366_smi_write_byte(smi, data >> 8);
+ if (ack)
+ ret = rtl8366_smi_write_byte(smi, data >> 8);
+ else
+ ret = rtl8366_smi_write_byte_noack(smi, data >> 8);
if (ret)
goto out;
if (ret)
goto out;
@@
-270,8
+280,19
@@
int rtl8366_smi_write_reg(struct rtl8366_smi *smi, u32 addr, u32 data)
return ret;
}
return ret;
}
+
+int rtl8366_smi_write_reg(struct rtl8366_smi *smi, u32 addr, u32 data)
+{
+ return __rtl8366_smi_write_reg(smi, addr, data, true);
+}
EXPORT_SYMBOL_GPL(rtl8366_smi_write_reg);
EXPORT_SYMBOL_GPL(rtl8366_smi_write_reg);
+int rtl8366_smi_write_reg_noack(struct rtl8366_smi *smi, u32 addr, u32 data)
+{
+ return __rtl8366_smi_write_reg(smi, addr, data, false);
+}
+EXPORT_SYMBOL_GPL(rtl8366_smi_write_reg_noack);
+
int rtl8366_smi_rmwr(struct rtl8366_smi *smi, u32 addr, u32 mask, u32 data)
{
u32 t;
int rtl8366_smi_rmwr(struct rtl8366_smi *smi, u32 addr, u32 mask, u32 data)
{
u32 t;
@@
-1204,6
+1225,9
@@
enum rtl8366_type rtl8366_smi_detect(struct rtl8366_platform_data *pdata)
memset(&smi, 0, sizeof(smi));
smi.gpio_sda = pdata->gpio_sda;
smi.gpio_sck = pdata->gpio_sck;
memset(&smi, 0, sizeof(smi));
smi.gpio_sda = pdata->gpio_sda;
smi.gpio_sck = pdata->gpio_sck;
+ smi.clk_delay = 10;
+ smi.cmd_read = 0xa9;
+ smi.cmd_write = 0xa8;
if (__rtl8366_smi_init(&smi, "rtl8366"))
goto out;
if (__rtl8366_smi_init(&smi, "rtl8366"))
goto out;
This page took
0.025841 seconds
and
4
git commands to generate.