ramips_eth: pass sys_clk via platform_data
authorGabor Juhos <juhosg@openwrt.org>
Sun, 31 Jan 2010 17:56:30 +0000 (17:56 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Sun, 31 Jan 2010 17:56:30 +0000 (17:56 +0000)
SVN-Revision: 19462

target/linux/ramips/files/arch/mips/include/asm/mach-ralink/ramips_eth_platform.h
target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c
target/linux/ramips/files/drivers/net/ramips.c

index a60a572f5f47fbf3ad25c88063bfa316a9e126be..ec1e7d4fa2ed6f3874431669ea02837e2b75954c 100644 (file)
@@ -24,6 +24,7 @@ struct ramips_eth_platform_data
        unsigned char mac[6];
        void (*reset_fe)(void);
        int min_pkt_len;
+       unsigned long sys_freq;
 };
 
 #endif /* _RAMIPS_ETH_PLATFORM_H */
index 4ad93b580d7c910524a2e1e372ef56f985d08acf..6a810a3a0a58db8fb43e660cc4366ea4bca356c7 100644 (file)
@@ -118,7 +118,7 @@ static struct resource rt305x_eth_resources[] = {
 static struct ramips_eth_platform_data ramips_eth_data = {
        .mac = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55 },
        .reset_fe = rt305x_fe_reset,
-       .min_pkt_len = 64
+       .min_pkt_len = 64,
 };
 
 static struct platform_device rt305x_eth_device = {
@@ -132,5 +132,7 @@ static struct platform_device rt305x_eth_device = {
 
 void __init rt305x_register_ethernet(void)
 {
+       ramips_eth_data.sys_freq = rt305x_sys_freq;
+
        platform_device_register(&rt305x_eth_device);
 }
index d8be97c7a7930eb0f7e6d346166396b5904f9006..d3df2f2588e78ecdb320da52f551156a9bb6c664 100644 (file)
@@ -332,7 +332,7 @@ ramips_eth_open(struct net_device *dev)
                RAMIPS_PDMA_GLO_CFG);
        ramips_fe_wr((ramips_fe_rr(RAMIPS_FE_GLO_CFG) &
                ~(RAMIPS_US_CYC_CNT_MASK << RAMIPS_US_CYC_CNT_SHIFT)) |
-               ((rt305x_sys_freq / RAMIPS_US_CYC_CNT_DIVISOR) << RAMIPS_US_CYC_CNT_SHIFT),
+               ((priv->plat->sys_freq / RAMIPS_US_CYC_CNT_DIVISOR) << RAMIPS_US_CYC_CNT_SHIFT),
                RAMIPS_FE_GLO_CFG);
 
        tasklet_init(&priv->tx_housekeeping_tasklet, ramips_eth_tx_housekeeping,