mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-03 12:34:19 +00:00
kernel: ssb: fallback-sprom: optimize struct data
- Remove unneeded mac bytes from struct (it's already present in the SPROM). - Convert devid_override to boolean. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This commit is contained in:
parent
70e88044d5
commit
d5c93d2b85
@ -48,8 +48,7 @@ struct ssb_fbs {
|
|||||||
struct ssb_sprom sprom;
|
struct ssb_sprom sprom;
|
||||||
u32 pci_bus;
|
u32 pci_bus;
|
||||||
u32 pci_dev;
|
u32 pci_dev;
|
||||||
u8 mac[ETH_ALEN];
|
bool devid_override;
|
||||||
int devid_override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static DEFINE_SPINLOCK(ssb_fbs_lock);
|
static DEFINE_SPINLOCK(ssb_fbs_lock);
|
||||||
@ -624,7 +623,7 @@ static void ssb_fbs_fixup(struct ssb_fbs *priv, u16 *sprom)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sprom_override_devid(struct ssb_fbs *priv, struct ssb_sprom *out,
|
static bool sprom_override_devid(struct ssb_fbs *priv, struct ssb_sprom *out,
|
||||||
const u16 *in)
|
const u16 *in)
|
||||||
{
|
{
|
||||||
SPEX(dev_id, SSB_SPROM1_PID, 0xFFFF, 0);
|
SPEX(dev_id, SSB_SPROM1_PID, 0xFFFF, 0);
|
||||||
@ -668,7 +667,7 @@ static int ssb_fbs_set(struct ssb_fbs *priv, struct device_node *node)
|
|||||||
sprom->itssi_bg = 0x00;
|
sprom->itssi_bg = 0x00;
|
||||||
sprom->boardflags_lo = 0x2848;
|
sprom->boardflags_lo = 0x2848;
|
||||||
sprom->boardflags_hi = 0x0000;
|
sprom->boardflags_hi = 0x0000;
|
||||||
priv->devid_override = 0;
|
priv->devid_override = false;
|
||||||
|
|
||||||
dev_warn(priv->dev, "using basic SPROM\n");
|
dev_warn(priv->dev, "using basic SPROM\n");
|
||||||
} else {
|
} else {
|
||||||
@ -696,6 +695,7 @@ static int ssb_fbs_probe(struct platform_device *pdev)
|
|||||||
struct device_node *node = dev->of_node;
|
struct device_node *node = dev->of_node;
|
||||||
struct ssb_fbs *priv;
|
struct ssb_fbs *priv;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
u8 mac[ETH_ALEN];
|
||||||
|
|
||||||
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
|
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
|
||||||
if (!priv)
|
if (!priv)
|
||||||
@ -708,18 +708,18 @@ static int ssb_fbs_probe(struct platform_device *pdev)
|
|||||||
of_property_read_u32(node, "pci-bus", &priv->pci_bus);
|
of_property_read_u32(node, "pci-bus", &priv->pci_bus);
|
||||||
of_property_read_u32(node, "pci-dev", &priv->pci_dev);
|
of_property_read_u32(node, "pci-dev", &priv->pci_dev);
|
||||||
|
|
||||||
of_get_mac_address(node, priv->mac);
|
of_get_mac_address(node, mac);
|
||||||
if (is_valid_ether_addr(priv->mac)) {
|
if (is_valid_ether_addr(mac)) {
|
||||||
dev_info(dev, "mtd mac %pM\n", priv->mac);
|
dev_info(dev, "mtd mac %pM\n", mac);
|
||||||
} else {
|
} else {
|
||||||
random_ether_addr(priv->mac);
|
random_ether_addr(mac);
|
||||||
dev_info(dev, "random mac %pM\n", priv->mac);
|
dev_info(dev, "random mac %pM\n", mac);
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(priv->sprom.il0mac, priv->mac, ETH_ALEN);
|
memcpy(priv->sprom.il0mac, mac, ETH_ALEN);
|
||||||
memcpy(priv->sprom.et0mac, priv->mac, ETH_ALEN);
|
memcpy(priv->sprom.et0mac, mac, ETH_ALEN);
|
||||||
memcpy(priv->sprom.et1mac, priv->mac, ETH_ALEN);
|
memcpy(priv->sprom.et1mac, mac, ETH_ALEN);
|
||||||
memcpy(priv->sprom.et2mac, priv->mac, ETH_ALEN);
|
memcpy(priv->sprom.et2mac, mac, ETH_ALEN);
|
||||||
|
|
||||||
spin_lock_irqsave(&ssb_fbs_lock, flags);
|
spin_lock_irqsave(&ssb_fbs_lock, flags);
|
||||||
list_add(&priv->list, &ssb_fbs_list);
|
list_add(&priv->list, &ssb_fbs_list);
|
||||||
|
Loading…
Reference in New Issue
Block a user