| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (c) 2014-2015 Hisilicon Limited. |
|---|
| 3 | | - * |
|---|
| 4 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 5 | | - * it under the terms of the GNU General Public License as published by |
|---|
| 6 | | - * the Free Software Foundation; either version 2 of the License, or |
|---|
| 7 | | - * (at your option) any later version. |
|---|
| 8 | 4 | */ |
|---|
| 9 | 5 | |
|---|
| 10 | 6 | #include "hns_dsaf_mac.h" |
|---|
| .. | .. |
|---|
| 334 | 330 | * hns_dsaf_srst_chns - reset dsaf channels |
|---|
| 335 | 331 | * @dsaf_dev: dsaf device struct pointer |
|---|
| 336 | 332 | * @msk: xbar channels mask value: |
|---|
| 333 | + * @dereset: false - request reset , true - drop reset |
|---|
| 334 | + * |
|---|
| 337 | 335 | * bit0-5 for xge0-5 |
|---|
| 338 | 336 | * bit6-11 for ppe0-5 |
|---|
| 339 | 337 | * bit12-17 for roce0-5 |
|---|
| 340 | 338 | * bit18-19 for com/dfx |
|---|
| 341 | | - * @enable: false - request reset , true - drop reset |
|---|
| 342 | 339 | */ |
|---|
| 343 | 340 | static void |
|---|
| 344 | 341 | hns_dsaf_srst_chns(struct dsaf_device *dsaf_dev, u32 msk, bool dereset) |
|---|
| .. | .. |
|---|
| 357 | 354 | * hns_dsaf_srst_chns - reset dsaf channels |
|---|
| 358 | 355 | * @dsaf_dev: dsaf device struct pointer |
|---|
| 359 | 356 | * @msk: xbar channels mask value: |
|---|
| 357 | + * @dereset: false - request reset , true - drop reset |
|---|
| 358 | + * |
|---|
| 360 | 359 | * bit0-5 for xge0-5 |
|---|
| 361 | 360 | * bit6-11 for ppe0-5 |
|---|
| 362 | 361 | * bit12-17 for roce0-5 |
|---|
| 363 | 362 | * bit18-19 for com/dfx |
|---|
| 364 | | - * @enable: false - request reset , true - drop reset |
|---|
| 365 | 363 | */ |
|---|
| 366 | 364 | static void |
|---|
| 367 | 365 | hns_dsaf_srst_chns_acpi(struct dsaf_device *dsaf_dev, u32 msk, bool dereset) |
|---|
| .. | .. |
|---|
| 620 | 618 | /** |
|---|
| 621 | 619 | * hns_mac_config_sds_loopback - set loop back for serdes |
|---|
| 622 | 620 | * @mac_cb: mac control block |
|---|
| 623 | | - * retuen 0 == success |
|---|
| 621 | + * @en: enable or disable |
|---|
| 622 | + * return 0 == success |
|---|
| 624 | 623 | */ |
|---|
| 625 | 624 | static int hns_mac_config_sds_loopback(struct hns_mac_cb *mac_cb, bool en) |
|---|
| 626 | 625 | { |
|---|
| .. | .. |
|---|
| 674 | 673 | dsaf_set_field(origin, 1ull << 10, 10, en); |
|---|
| 675 | 674 | dsaf_write_syscon(mac_cb->serdes_ctrl, reg_offset, origin); |
|---|
| 676 | 675 | } else { |
|---|
| 677 | | - u8 *base_addr = (u8 *)mac_cb->serdes_vaddr + |
|---|
| 676 | + u8 __iomem *base_addr = mac_cb->serdes_vaddr + |
|---|
| 678 | 677 | (mac_cb->mac_id <= 3 ? 0x00280000 : 0x00200000); |
|---|
| 679 | 678 | dsaf_set_reg_field(base_addr, reg_offset, 1ull << 10, 10, en); |
|---|
| 680 | 679 | } |
|---|
| .. | .. |
|---|
| 762 | 761 | return (void *)misc_op; |
|---|
| 763 | 762 | } |
|---|
| 764 | 763 | |
|---|
| 765 | | -static int hns_dsaf_dev_match(struct device *dev, void *fwnode) |
|---|
| 766 | | -{ |
|---|
| 767 | | - return dev->fwnode == fwnode; |
|---|
| 768 | | -} |
|---|
| 769 | | - |
|---|
| 770 | 764 | struct |
|---|
| 771 | 765 | platform_device *hns_dsaf_find_platform_device(struct fwnode_handle *fwnode) |
|---|
| 772 | 766 | { |
|---|
| 773 | 767 | struct device *dev; |
|---|
| 774 | 768 | |
|---|
| 775 | | - dev = bus_find_device(&platform_bus_type, NULL, |
|---|
| 776 | | - fwnode, hns_dsaf_dev_match); |
|---|
| 769 | + dev = bus_find_device_by_fwnode(&platform_bus_type, fwnode); |
|---|
| 777 | 770 | return dev ? to_platform_device(dev) : NULL; |
|---|
| 778 | 771 | } |
|---|