/** * hns_ppe_init - init ppe device * @dsaf_dev: dasf device * retuen 0 - success , negative --fail */ int hns_ppe_init(struct dsaf_device *dsaf_dev) { int i, k; int ret; for (i = 0; i < HNS_PPE_COM_NUM; i++) { ret = hns_ppe_common_get_cfg(dsaf_dev, i); if (ret) goto get_ppe_cfg_fail; ret = hns_rcb_common_get_cfg(dsaf_dev, i); if (ret) goto get_rcb_cfg_fail; hns_ppe_get_cfg(dsaf_dev->ppe_common[i]); hns_rcb_get_cfg(dsaf_dev->rcb_common[i]); } for (i = 0; i < HNS_PPE_COM_NUM; i++) hns_ppe_reset_common(dsaf_dev, i); return 0; get_rcb_cfg_fail: hns_ppe_common_free_cfg(dsaf_dev, i); get_ppe_cfg_fail: for (k = i - 1; k >= 0; k--) { hns_rcb_common_free_cfg(dsaf_dev, k); hns_ppe_common_free_cfg(dsaf_dev, k); } return ret; }
void hns_ppe_uninit(struct dsaf_device *dsaf_dev) { u32 i; for (i = 0; i < HNS_PPE_COM_NUM; i++) { if (dsaf_dev->ppe_common[i]) hns_ppe_uninit_ex(dsaf_dev->ppe_common[i]); hns_rcb_common_free_cfg(dsaf_dev, i); hns_ppe_common_free_cfg(dsaf_dev, i); } }