#include <linux/platform_device.h>
#include <linux/delay.h>
#include <linux/skbuff.h>
-#include <linux/switch.h>
#include <linux/rtl8366s.h>
#include "rtl8366_smi.h"
struct rtl8366s {
struct device *parent;
struct rtl8366_smi smi;
- struct switch_dev dev;
};
static struct rtl8366_mib_counter rtl8366s_mib_counters[] = {
static inline struct rtl8366s *sw_to_rtl8366s(struct switch_dev *sw)
{
- return container_of(sw, struct rtl8366s, dev);
-}
-
-static inline struct rtl8366_smi *sw_to_rtl8366_smi(struct switch_dev *sw)
-{
- struct rtl8366s *rtl = sw_to_rtl8366s(sw);
- return &rtl->smi;
+ struct rtl8366_smi *smi = sw_to_rtl8366_smi(sw);
+ return smi_to_rtl8366s(smi);
}
static int rtl8366s_reset_chip(struct rtl8366_smi *smi)
static int rtl8366s_switch_init(struct rtl8366s *rtl)
{
- struct switch_dev *dev = &rtl->dev;
+ struct switch_dev *dev = &rtl->smi.sw_dev;
int err;
memcpy(dev, &rtl8366_switch_dev, sizeof(struct switch_dev));
static void rtl8366s_switch_cleanup(struct rtl8366s *rtl)
{
- unregister_switch(&rtl->dev);
+ unregister_switch(&rtl->smi.sw_dev);
}
static int rtl8366s_mii_read(struct mii_bus *bus, int addr, int reg)