Lines Matching refs:pd

183 	struct dsa_chip_data *pd = ds->pd;  in dsa_switch_setup_one()  local
194 name = pd->port_names[i]; in dsa_switch_setup_one()
292 ret = dsa_slave_create(ds, parent, i, pd->port_names[i]); in dsa_switch_setup_one()
295 index, i, pd->port_names[i]); in dsa_switch_setup_one()
338 struct dsa_chip_data *pd = dst->pd->chip + index; in dsa_switch_setup() local
347 drv = dsa_switch_probe(host_dev, pd->sw_addr, &name); in dsa_switch_setup()
366 ds->pd = pd; in dsa_switch_setup()
440 for (i = 0; i < dst->pd->nr_chips; i++) { in dsa_link_poll_work()
514 static int dsa_of_setup_routing_table(struct dsa_platform_data *pd, in dsa_of_setup_routing_table() argument
538 if (link_sw_addr >= pd->nr_chips) in dsa_of_setup_routing_table()
543 cd->rtable = kmalloc_array(pd->nr_chips, sizeof(s8), in dsa_of_setup_routing_table()
549 memset(cd->rtable, -1, pd->nr_chips * sizeof(s8)); in dsa_of_setup_routing_table()
557 static void dsa_of_free_platform_data(struct dsa_platform_data *pd) in dsa_of_free_platform_data() argument
562 for (i = 0; i < pd->nr_chips; i++) { in dsa_of_free_platform_data()
565 kfree(pd->chip[i].port_names[port_index]); in dsa_of_free_platform_data()
568 kfree(pd->chip[i].rtable); in dsa_of_free_platform_data()
570 kfree(pd->chip); in dsa_of_free_platform_data()
579 struct dsa_platform_data *pd; in dsa_of_probe() local
603 pd = kzalloc(sizeof(*pd), GFP_KERNEL); in dsa_of_probe()
604 if (!pd) in dsa_of_probe()
607 dev->platform_data = pd; in dsa_of_probe()
608 pd->of_netdev = ethernet_dev; in dsa_of_probe()
609 pd->nr_chips = of_get_available_child_count(np); in dsa_of_probe()
610 if (pd->nr_chips > DSA_MAX_SWITCHES) in dsa_of_probe()
611 pd->nr_chips = DSA_MAX_SWITCHES; in dsa_of_probe()
613 pd->chip = kcalloc(pd->nr_chips, sizeof(struct dsa_chip_data), in dsa_of_probe()
615 if (!pd->chip) { in dsa_of_probe()
623 cd = &pd->chip[chip_index]; in dsa_of_probe()
662 pd->nr_chips > 1) { in dsa_of_probe()
663 ret = dsa_of_setup_routing_table(pd, cd, in dsa_of_probe()
677 dsa_of_free_platform_data(pd); in dsa_of_probe()
679 kfree(pd); in dsa_of_probe()
686 struct dsa_platform_data *pd = dev->platform_data; in dsa_of_remove() local
691 dsa_of_free_platform_data(pd); in dsa_of_remove()
692 kfree(pd); in dsa_of_remove()
706 struct device *parent, struct dsa_platform_data *pd) in dsa_setup_dst() argument
710 dst->pd = pd; in dsa_setup_dst()
715 for (i = 0; i < pd->nr_chips; i++) { in dsa_setup_dst()
718 ds = dsa_switch_setup(dst, i, parent, pd->chip[i].host_dev); in dsa_setup_dst()
750 struct dsa_platform_data *pd = pdev->dev.platform_data; in dsa_probe() local
763 pd = pdev->dev.platform_data; in dsa_probe()
766 if (pd == NULL || (pd->netdev == NULL && pd->of_netdev == NULL)) in dsa_probe()
769 if (pd->of_netdev) { in dsa_probe()
770 dev = pd->of_netdev; in dsa_probe()
773 dev = dev_to_net_device(pd->netdev); in dsa_probe()
795 dsa_setup_dst(dst, dev, &pdev->dev, pd); in dsa_probe()
814 for (i = 0; i < dst->pd->nr_chips; i++) { in dsa_remove_dst()
865 for (i = 0; i < dst->pd->nr_chips; i++) { in dsa_suspend()
881 for (i = 0; i < dst->pd->nr_chips; i++) { in dsa_resume()