| /linux/drivers/net/ethernet/huawei/hinic3/ |
| H A D | hinic3_hwdev.c | 48 static int hinic3_comm_aeqs_init(struct hinic3_hwdev *hwdev) in hinic3_comm_aeqs_init() argument 54 num_aeqs = hwdev->hwif->attr.num_aeqs; in hinic3_comm_aeqs_init() 56 dev_warn(hwdev->dev, "Adjust aeq num to %d\n", in hinic3_comm_aeqs_init() 60 err = hinic3_alloc_irqs(hwdev, num_aeqs, aeq_msix_entries, in hinic3_comm_aeqs_init() 63 dev_err(hwdev->dev, "Failed to alloc aeq irqs, num_aeqs: %u\n", in hinic3_comm_aeqs_init() 69 dev_warn(hwdev->dev, "Adjust aeq num to %u\n", in hinic3_comm_aeqs_init() 74 err = hinic3_aeqs_init(hwdev, num_aeqs, aeq_msix_entries); in hinic3_comm_aeqs_init() 76 dev_err(hwdev->dev, "Failed to init aeqs\n"); in hinic3_comm_aeqs_init() 84 hinic3_free_irq(hwdev, aeq_msix_entries[i].vector); in hinic3_comm_aeqs_init() 89 static int hinic3_comm_ceqs_init(struct hinic3_hwdev *hwdev) in hinic3_comm_ceqs_init() argument [all …]
|
| H A D | hinic3_nic_cfg.c | 16 static int hinic3_feature_nego(struct hinic3_hwdev *hwdev, u8 opcode, in hinic3_feature_nego() argument 23 feature_nego.func_id = hinic3_global_func_id(hwdev); in hinic3_feature_nego() 32 err = hinic3_send_mbox_to_mgmt(hwdev, MGMT_MOD_L2NIC, in hinic3_feature_nego() 35 dev_err(hwdev->dev, "Failed to negotiate nic feature, err:%d, status: 0x%x\n", in hinic3_feature_nego() 49 return hinic3_feature_nego(nic_dev->hwdev, MGMT_MSG_CMD_OP_GET, in hinic3_get_nic_feature_from_hw() 55 return hinic3_feature_nego(nic_dev->hwdev, MGMT_MSG_CMD_OP_SET, in hinic3_set_nic_feature_to_hw() 65 static int hinic3_set_rx_lro(struct hinic3_hwdev *hwdev, u8 ipv4_en, u8 ipv6_en, in hinic3_set_rx_lro() argument 72 lro_cfg.func_id = hinic3_global_func_id(hwdev); in hinic3_set_rx_lro() 81 err = hinic3_send_mbox_to_mgmt(hwdev, MGMT_MOD_L2NIC, in hinic3_set_rx_lro() 86 dev_err(hwdev->dev, "Failed to set lro offload, err: %d, status: 0x%x\n", in hinic3_set_rx_lro() [all …]
|
| H A D | hinic3_hw_comm.c | 12 static int hinic3_get_interrupt_cfg(struct hinic3_hwdev *hwdev, in hinic3_get_interrupt_cfg() argument 19 msix_cfg.func_id = hinic3_global_func_id(hwdev); in hinic3_get_interrupt_cfg() 25 err = hinic3_send_mbox_to_mgmt(hwdev, MGMT_MOD_COMM, in hinic3_get_interrupt_cfg() 28 dev_err(hwdev->dev, "Failed to get interrupt config, err: %d, status: 0x%x\n", in hinic3_get_interrupt_cfg() 42 int hinic3_set_interrupt_cfg_direct(struct hinic3_hwdev *hwdev, in hinic3_set_interrupt_cfg_direct() argument 49 msix_cfg.func_id = hinic3_global_func_id(hwdev); in hinic3_set_interrupt_cfg_direct() 61 err = hinic3_send_mbox_to_mgmt(hwdev, MGMT_MOD_COMM, in hinic3_set_interrupt_cfg_direct() 64 dev_err(hwdev->dev, in hinic3_set_interrupt_cfg_direct() 73 int hinic3_set_interrupt_cfg(struct hinic3_hwdev *hwdev, in hinic3_set_interrupt_cfg() argument 81 err = hinic3_get_interrupt_cfg(hwdev, &temp_info); in hinic3_set_interrupt_cfg() [all …]
|
| H A D | hinic3_hw_cfg.c | 13 static void hinic3_parse_pub_res_cap(struct hinic3_hwdev *hwdev, in hinic3_parse_pub_res_cap() argument 22 static void hinic3_parse_l2nic_res_cap(struct hinic3_hwdev *hwdev, in hinic3_parse_l2nic_res_cap() argument 33 static void hinic3_parse_dev_cap(struct hinic3_hwdev *hwdev, in hinic3_parse_dev_cap() argument 37 struct hinic3_dev_cap *cap = &hwdev->cfg_mgmt->cap; in hinic3_parse_dev_cap() 40 hinic3_parse_pub_res_cap(hwdev, cap, dev_cap, type); in hinic3_parse_dev_cap() 43 if (hinic3_support_nic(hwdev)) in hinic3_parse_dev_cap() 44 hinic3_parse_l2nic_res_cap(hwdev, cap, dev_cap, type); in hinic3_parse_dev_cap() 47 static int get_cap_from_fw(struct hinic3_hwdev *hwdev, in get_cap_from_fw() argument 54 dev_cap.func_id = hinic3_global_func_id(hwdev); in get_cap_from_fw() 58 err = hinic3_send_mbox_to_mgmt(hwdev, MGMT_MOD_CFGM, in get_cap_from_fw() [all …]
|
| H A D | hinic3_eqs.c | 106 int hinic3_aeq_register_cb(struct hinic3_hwdev *hwdev, in hinic3_aeq_register_cb() argument 112 aeqs = hwdev->aeqs; in hinic3_aeq_register_cb() 119 void hinic3_aeq_unregister_cb(struct hinic3_hwdev *hwdev, in hinic3_aeq_unregister_cb() argument 124 aeqs = hwdev->aeqs; in hinic3_aeq_unregister_cb() 131 int hinic3_ceq_register_cb(struct hinic3_hwdev *hwdev, in hinic3_ceq_register_cb() argument 137 ceqs = hwdev->ceqs; in hinic3_ceq_register_cb() 144 void hinic3_ceq_unregister_cb(struct hinic3_hwdev *hwdev, in hinic3_ceq_unregister_cb() argument 149 ceqs = hwdev->ceqs; in hinic3_ceq_unregister_cb() 174 hinic3_hwif_write_reg(eq->hwdev->hwif, addr, val); in set_eq_cons_idx() 185 struct hinic3_hwdev *hwdev = ceqs->hwdev; in ceq_event_handler() local [all …]
|
| H A D | hinic3_mbox.c | 85 struct hinic3_hwdev *hwdev = mbox->hwdev; in get_mbox_msg_desc() local 90 } else if (HINIC3_IS_VF(hwdev)) { in get_mbox_msg_desc() 93 if (src_func_id != hinic3_pf_id_of_vf(hwdev) || !msg_ch) in get_mbox_msg_desc() 149 dev_err(mbox->hwdev->dev, in mbox_segment_valid() 153 dev_err(mbox->hwdev->dev, in mbox_segment_valid() 190 void hinic3_mbox_func_aeqe_handler(struct hinic3_hwdev *hwdev, u8 *header, in hinic3_mbox_func_aeqe_handler() argument 199 mbox = hwdev->mbox; in hinic3_mbox_func_aeqe_handler() 204 dev_err(mbox->hwdev->dev, in hinic3_mbox_func_aeqe_handler() 212 static int init_mbox_dma_queue(struct hinic3_hwdev *hwdev, in init_mbox_dma_queue() argument 222 mq->dma_buf_vaddr = dma_alloc_coherent(hwdev->dev, size, in init_mbox_dma_queue() [all …]
|
| H A D | hinic3_rss.c | 24 static int hinic3_rss_cfg(struct hinic3_hwdev *hwdev, u8 rss_en, u16 num_qps) in hinic3_rss_cfg() argument 30 rss_cfg.func_id = hinic3_global_func_id(hwdev); in hinic3_rss_cfg() 37 err = hinic3_send_mbox_to_mgmt(hwdev, MGMT_MOD_L2NIC, in hinic3_rss_cfg() 40 dev_err(hwdev->dev, "Failed to set rss cfg, err: %d, status: 0x%x\n", in hinic3_rss_cfg() 95 static int hinic3_rss_set_indir_tbl(struct hinic3_hwdev *hwdev, in hinic3_rss_set_indir_tbl() argument 104 cmd_buf = hinic3_alloc_cmd_buf(hwdev); in hinic3_rss_set_indir_tbl() 106 dev_err(hwdev->dev, "Failed to allocate cmd buf\n"); in hinic3_rss_set_indir_tbl() 119 err = hinic3_cmdq_direct_resp(hwdev, MGMT_MOD_L2NIC, in hinic3_rss_set_indir_tbl() 123 dev_err(hwdev->dev, "Failed to set rss indir table\n"); in hinic3_rss_set_indir_tbl() 127 hinic3_free_cmd_buf(hwdev, cmd_buf); in hinic3_rss_set_indir_tbl() [all …]
|
| H A D | hinic3_nic_io.c | 211 struct hinic3_hwdev *hwdev = nic_dev->hwdev; in hinic3_init_nic_io() local 221 err = hinic3_set_func_svc_used_state(hwdev, COMM_FUNC_SVC_T_NIC, 1); in hinic3_init_nic_io() 223 dev_err(hwdev->dev, "Failed to set function svc used state\n"); in hinic3_init_nic_io() 229 dev_err(hwdev->dev, "Failed to init function table\n"); in hinic3_init_nic_io() 237 dev_err(hwdev->dev, "Failed to get nic features\n"); in hinic3_init_nic_io() 243 dev_dbg(hwdev->dev, "nic features: 0x%llx\n\n", nic_io->feature_cap); in hinic3_init_nic_io() 248 hinic3_set_func_svc_used_state(hwdev, COMM_FUNC_SVC_T_NIC, 0); in hinic3_init_nic_io() 260 hinic3_set_func_svc_used_state(nic_dev->hwdev, COMM_FUNC_SVC_T_NIC, 0); in hinic3_free_nic_io() 268 struct hinic3_hwdev *hwdev = nic_dev->hwdev; in hinic3_init_nicio_res() local 272 nic_io->max_qps = hinic3_func_max_qnum(hwdev); in hinic3_init_nicio_res() [all …]
|
| H A D | hinic3_hwif.c | 96 struct hinic3_hwdev *hwdev = priv_data; in check_hwif_ready_handler() local 99 attr1 = hinic3_hwif_read_reg(hwdev->hwif, HINIC3_CSR_FUNC_ATTR1_ADDR); in check_hwif_ready_handler() 105 static int wait_hwif_ready(struct hinic3_hwdev *hwdev) in wait_hwif_ready() argument 107 return hinic3_wait_for_timeout(hwdev, check_hwif_ready_handler, in wait_hwif_ready() 135 static int init_hwif_attr(struct hinic3_hwdev *hwdev) in init_hwif_attr() argument 140 hwif = hwdev->hwif; in init_hwif_attr() 164 dev_err(hwdev->dev, "Ceq num cfg in fw is zero\n"); in init_hwif_attr() 169 dev_err(hwdev->dev, in init_hwif_attr() 206 static void hinic3_set_ppf(struct hinic3_hwdev *hwdev) in hinic3_set_ppf() argument 208 struct hinic3_hwif *hwif = hwdev->hwif; in hinic3_set_ppf() [all …]
|
| H A D | hinic3_cmdq.c | 119 struct hinic3_cmd_buf *hinic3_alloc_cmd_buf(struct hinic3_hwdev *hwdev) in hinic3_alloc_cmd_buf() argument 124 cmdqs = hwdev->cmdqs; in hinic3_alloc_cmd_buf() 133 dev_err(hwdev->dev, "Failed to allocate cmdq cmd buf from the pool\n"); in hinic3_alloc_cmd_buf() 148 void hinic3_free_cmd_buf(struct hinic3_hwdev *hwdev, in hinic3_free_cmd_buf() argument 156 cmdqs = hwdev->cmdqs; in hinic3_free_cmd_buf() 163 struct hinic3_hwdev *hwdev) in cmdq_clear_cmd_buf() argument 166 hinic3_free_cmd_buf(hwdev, cmd_info->buf_in); in cmdq_clear_cmd_buf() 228 cmdq_clear_cmd_buf(&cmdq->cmd_infos[ci], cmdq->hwdev); in cmdq_sync_cmd_handler() 232 void hinic3_cmdq_ceq_handler(struct hinic3_hwdev *hwdev, __le32 ceqe_data) in hinic3_cmdq_ceq_handler() argument 235 struct hinic3_cmdqs *cmdqs = hwdev->cmdqs; in hinic3_cmdq_ceq_handler() [all …]
|
| H A D | hinic3_hw_comm.h | 24 int hinic3_set_interrupt_cfg_direct(struct hinic3_hwdev *hwdev, 26 int hinic3_set_interrupt_cfg(struct hinic3_hwdev *hwdev, 28 int hinic3_func_reset(struct hinic3_hwdev *hwdev, u16 func_id, u64 reset_flag); 30 int hinic3_get_comm_features(struct hinic3_hwdev *hwdev, u64 *s_feature, 32 int hinic3_set_comm_features(struct hinic3_hwdev *hwdev, u64 *s_feature, 34 int hinic3_get_global_attr(struct hinic3_hwdev *hwdev, 36 int hinic3_set_func_svc_used_state(struct hinic3_hwdev *hwdev, u16 svc_type, 38 int hinic3_set_dma_attr_tbl(struct hinic3_hwdev *hwdev, u8 entry_idx, u8 st, 41 int hinic3_set_wq_page_size(struct hinic3_hwdev *hwdev, u16 func_idx, 43 int hinic3_set_cmdq_depth(struct hinic3_hwdev *hwdev, u16 cmdq_depth); [all …]
|
| H A D | hinic3_hwif.h | 78 #define HINIC3_FUNC_TYPE(hwdev) ((hwdev)->hwif->attr.func_type) argument 79 #define HINIC3_IS_PF(hwdev) \ argument 80 (HINIC3_FUNC_TYPE(hwdev) == HINIC3_FUNC_TYPE_PF) 81 #define HINIC3_IS_VF(hwdev) \ argument 82 (HINIC3_FUNC_TYPE(hwdev) == HINIC3_FUNC_TYPE_VF) 90 int hinic3_alloc_db_addr(struct hinic3_hwdev *hwdev, void __iomem **db_base, 92 void hinic3_free_db_addr(struct hinic3_hwdev *hwdev, const u8 __iomem *db_base); 98 int hinic3_init_hwif(struct hinic3_hwdev *hwdev); 99 void hinic3_free_hwif(struct hinic3_hwdev *hwdev); 101 void hinic3_set_msix_state(struct hinic3_hwdev *hwdev, u16 msix_idx, [all …]
|
| H A D | hinic3_nic_cfg.h | 78 int hinic3_set_rx_lro_state(struct hinic3_hwdev *hwdev, u8 lro_en, 80 int hinic3_set_rx_vlan_offload(struct hinic3_hwdev *hwdev, u8 en); 81 int hinic3_set_vlan_filter(struct hinic3_hwdev *hwdev, u32 vlan_filter_ctrl); 86 int hinic3_get_default_mac(struct hinic3_hwdev *hwdev, u8 *mac_addr); 87 int hinic3_set_mac(struct hinic3_hwdev *hwdev, const u8 *mac_addr, u16 vlan_id, 89 int hinic3_del_mac(struct hinic3_hwdev *hwdev, const u8 *mac_addr, u16 vlan_id, 91 int hinic3_update_mac(struct hinic3_hwdev *hwdev, const u8 *old_mac, 94 int hinic3_set_ci_table(struct hinic3_hwdev *hwdev, 96 int hinic3_flush_qps_res(struct hinic3_hwdev *hwdev); 97 int hinic3_force_drop_tx_pkt(struct hinic3_hwdev *hwdev); [all …]
|
| H A D | hinic3_lld.c | 35 static bool hinic3_adev_svc_supported(struct hinic3_hwdev *hwdev, in hinic3_adev_svc_supported() argument 40 return hinic3_support_nic(hwdev); in hinic3_adev_svc_supported() 56 static struct hinic3_adev *hinic3_add_one_adev(struct hinic3_hwdev *hwdev, in hinic3_add_one_adev() argument 69 hadev->adev.id = hwdev->dev_id; in hinic3_add_one_adev() 70 hadev->adev.dev.parent = hwdev->dev; in hinic3_add_one_adev() 73 hadev->hwdev = hwdev; in hinic3_add_one_adev() 77 dev_err(hwdev->dev, "failed init adev %s %u\n", in hinic3_add_one_adev() 78 svc_name, hwdev->dev_id); in hinic3_add_one_adev() 85 dev_err(hwdev->dev, "failed to add adev %s %u\n", in hinic3_add_one_adev() 86 svc_name, hwdev->dev_id); in hinic3_add_one_adev() [all …]
|
| H A D | hinic3_main.c | 81 struct hinic3_hwdev *hwdev = nic_dev->hwdev; in hinic3_alloc_txrxqs() local 86 dev_err(hwdev->dev, "Failed to alloc txqs\n"); in hinic3_alloc_txrxqs() 92 dev_err(hwdev->dev, "Failed to alloc rxqs\n"); in hinic3_alloc_txrxqs() 98 dev_err(hwdev->dev, "Failed to init_intr_coalesce\n"); in hinic3_alloc_txrxqs() 127 dev_info(nic_dev->hwdev->dev, in hinic3_periodic_work_handler() 136 struct hinic3_hwdev *hwdev) in hinic3_init_nic_dev() argument 139 struct pci_dev *pdev = hwdev->pdev; in hinic3_init_nic_dev() 143 nic_dev->hwdev = hwdev; in hinic3_init_nic_dev() 153 nic_dev->nic_svc_cap = hwdev->cfg_mgmt->cap.nic_svc_cap; in hinic3_init_nic_dev() 157 dev_err(hwdev->dev, "Failed to initialize nic workqueue\n"); in hinic3_init_nic_dev() [all …]
|
| H A D | hinic3_wq.c | 14 static int wq_init_wq_block(struct hinic3_hwdev *hwdev, struct hinic3_wq *wq) in wq_init_wq_block() argument 27 dev_err(hwdev->dev, "wq num_pages exceed limit: %lu\n", in wq_init_wq_block() 32 wq->wq_block_vaddr = dma_alloc_coherent(hwdev->dev, in wq_init_wq_block() 45 static int wq_alloc_pages(struct hinic3_hwdev *hwdev, struct hinic3_wq *wq) in wq_alloc_pages() argument 49 err = hinic3_queue_pages_alloc(hwdev, &wq->qpages, 0); in wq_alloc_pages() 53 err = wq_init_wq_block(hwdev, wq); in wq_alloc_pages() 55 hinic3_queue_pages_free(hwdev, &wq->qpages); in wq_alloc_pages() 62 static void wq_free_pages(struct hinic3_hwdev *hwdev, struct hinic3_wq *wq) in wq_free_pages() argument 65 dma_free_coherent(hwdev->dev, in wq_free_pages() 70 hinic3_queue_pages_free(hwdev, &wq->qpages); in wq_free_pages() [all …]
|
| H A D | hinic3_eqs.h | 48 struct hinic3_hwdev *hwdev; member 73 typedef void (*hinic3_aeq_event_cb)(struct hinic3_hwdev *hwdev, u8 *data, 77 struct hinic3_hwdev *hwdev; member 91 typedef void (*hinic3_ceq_event_cb)(struct hinic3_hwdev *hwdev, 95 struct hinic3_hwdev *hwdev; member 105 int hinic3_aeqs_init(struct hinic3_hwdev *hwdev, u16 num_aeqs, 107 void hinic3_aeqs_free(struct hinic3_hwdev *hwdev); 108 int hinic3_aeq_register_cb(struct hinic3_hwdev *hwdev, 111 void hinic3_aeq_unregister_cb(struct hinic3_hwdev *hwdev, 113 int hinic3_ceqs_init(struct hinic3_hwdev *hwdev, u16 num_ceqs, [all …]
|
| /linux/drivers/net/ethernet/huawei/hinic/ |
| H A D | hinic_hw_dev.c | 51 static int parse_capability(struct hinic_hwdev *hwdev, in parse_capability() argument 54 struct hinic_cap *nic_cap = &hwdev->nic_cap; in parse_capability() 57 if (!HINIC_IS_VF(hwdev->hwif) && dev_cap->intr_type != INTR_MSIX_TYPE) in parse_capability() 60 num_aeqs = HINIC_HWIF_NUM_AEQS(hwdev->hwif); in parse_capability() 61 num_ceqs = HINIC_HWIF_NUM_CEQS(hwdev->hwif); in parse_capability() 62 num_irqs = HINIC_HWIF_NUM_IRQS(hwdev->hwif); in parse_capability() 70 if (!HINIC_IS_VF(hwdev->hwif)) in parse_capability() 78 if (!HINIC_IS_VF(hwdev->hwif)) { in parse_capability() 83 hwdev->port_id = dev_cap->port_id; in parse_capability() 96 struct hinic_hwdev *hwdev = &pfhwdev->hwdev; in get_capability() local [all …]
|
| H A D | hinic_port.c | 37 struct hinic_hwdev *hwdev = nic_dev->hwdev; in change_mac() local 39 struct hinic_hwif *hwif = hwdev->hwif; in change_mac() 54 err = hinic_port_msg_cmd(hwdev, cmd, &port_mac_cmd, in change_mac() 116 struct hinic_hwdev *hwdev = nic_dev->hwdev; in hinic_port_get_mac() local 118 struct hinic_hwif *hwif = hwdev->hwif; in hinic_port_get_mac() 125 err = hinic_port_msg_cmd(hwdev, HINIC_PORT_CMD_GET_MAC, in hinic_port_get_mac() 147 struct hinic_hwdev *hwdev = nic_dev->hwdev; in hinic_port_set_mtu() local 149 struct hinic_hwif *hwif = hwdev->hwif; in hinic_port_set_mtu() 157 err = hinic_port_msg_cmd(hwdev, HINIC_PORT_CMD_CHANGE_MTU, in hinic_port_set_mtu() 178 struct hinic_hwdev *hwdev = nic_dev->hwdev; in hinic_port_add_vlan() local [all …]
|
| H A D | hinic_sriov.c | 29 static int hinic_set_mac(struct hinic_hwdev *hwdev, const u8 *mac_addr, in hinic_set_mac() argument 40 err = hinic_port_msg_cmd(hwdev, HINIC_PORT_CMD_SET_MAC, &mac_info, in hinic_set_mac() 44 …dev_err(&hwdev->func_to_io.hwif->pdev->dev, "Failed to set MAC, err: %d, status: 0x%x, out size: 0… in hinic_set_mac() 52 static void hinic_notify_vf_link_status(struct hinic_hwdev *hwdev, u16 vf_id, in hinic_notify_vf_link_status() argument 55 struct vf_data_storage *vf_infos = hwdev->func_to_io.vf_infos; in hinic_notify_vf_link_status() 62 link.func_id = hinic_glb_pf_vf_offset(hwdev->hwif) + vf_id; in hinic_notify_vf_link_status() 63 err = hinic_mbox_to_vf(hwdev, HINIC_MOD_L2NIC, in hinic_notify_vf_link_status() 68 dev_err(&hwdev->hwif->pdev->dev, in hinic_notify_vf_link_status() 76 void hinic_notify_all_vfs_link_changed(struct hinic_hwdev *hwdev, in hinic_notify_all_vfs_link_changed() argument 79 struct hinic_func_to_io *nic_io = &hwdev->func_to_io; in hinic_notify_all_vfs_link_changed() [all …]
|
| H A D | hinic_hw_mbox.c | 186 static bool check_func_id(struct hinic_hwdev *hwdev, u16 src_func_idx, in check_func_id() argument 192 dev_warn(&hwdev->hwif->pdev->dev, in check_func_id() 201 dev_warn(&hwdev->hwif->pdev->dev, in check_func_id() 210 bool hinic_mbox_check_func_id_8B(struct hinic_hwdev *hwdev, u16 func_idx, in hinic_mbox_check_func_id_8B() argument 213 return check_func_id(hwdev, func_idx, buf_in, in_size, in hinic_mbox_check_func_id_8B() 224 int hinic_register_pf_mbox_cb(struct hinic_hwdev *hwdev, in hinic_register_pf_mbox_cb() argument 228 struct hinic_mbox_func_to_func *func_to_func = hwdev->func_to_func; in hinic_register_pf_mbox_cb() 247 int hinic_register_vf_mbox_cb(struct hinic_hwdev *hwdev, in hinic_register_vf_mbox_cb() argument 251 struct hinic_mbox_func_to_func *func_to_func = hwdev->func_to_func; in hinic_register_vf_mbox_cb() 268 void hinic_unregister_pf_mbox_cb(struct hinic_hwdev *hwdev, in hinic_unregister_pf_mbox_cb() argument [all …]
|
| /linux/drivers/gpu/drm/arm/ |
| H A D | malidp_hw.c | 270 static int malidp500_query_hw(struct malidp_hw_device *hwdev) in malidp500_query_hw() argument 272 u32 conf = malidp_hw_read(hwdev, MALIDP500_CONFIG_ID); in malidp500_query_hw() 276 hwdev->min_line_size = 2; in malidp500_query_hw() 277 hwdev->max_line_size = SZ_2K * ln_size_mult; in malidp500_query_hw() 278 hwdev->rotation_memory[0] = SZ_1K * 64 * ln_size_mult; in malidp500_query_hw() 279 hwdev->rotation_memory[1] = 0; /* no second rotation memory bank */ in malidp500_query_hw() 284 static void malidp500_enter_config_mode(struct malidp_hw_device *hwdev) in malidp500_enter_config_mode() argument 288 malidp_hw_setbits(hwdev, MALIDP500_DC_CONFIG_REQ, MALIDP500_DC_CONTROL); in malidp500_enter_config_mode() 290 status = malidp_hw_read(hwdev, hwdev->hw->map.dc_base + MALIDP_REG_STATUS); in malidp500_enter_config_mode() 303 static void malidp500_leave_config_mode(struct malidp_hw_device *hwdev) in malidp500_leave_config_mode() argument [all …]
|
| H A D | malidp_hw.h | 147 int (*query_hw)(struct malidp_hw_device *hwdev); 152 void (*enter_config_mode)(struct malidp_hw_device *hwdev); 157 void (*leave_config_mode)(struct malidp_hw_device *hwdev); 162 bool (*in_config_mode)(struct malidp_hw_device *hwdev); 171 void (*set_config_valid)(struct malidp_hw_device *hwdev, u8 value); 177 void (*modeset)(struct malidp_hw_device *hwdev, struct videomode *m); 183 int (*rotmem_required)(struct malidp_hw_device *hwdev, u16 w, u16 h, 186 int (*se_set_scaling_coeffs)(struct malidp_hw_device *hwdev, 190 long (*se_calc_mclk)(struct malidp_hw_device *hwdev, 203 int (*enable_memwrite)(struct malidp_hw_device *hwdev, dma_addr_t *addrs, [all …]
|
| H A D | malidp_drv.c | 45 static void malidp_write_gamma_table(struct malidp_hw_device *hwdev, in malidp_write_gamma_table() argument 56 malidp_hw_write(hwdev, gamma_write_mask, in malidp_write_gamma_table() 57 hwdev->hw->map.coeffs_base + MALIDP_COEF_TABLE_ADDR); in malidp_write_gamma_table() 59 malidp_hw_write(hwdev, data[i], in malidp_write_gamma_table() 60 hwdev->hw->map.coeffs_base + in malidp_write_gamma_table() 68 struct malidp_hw_device *hwdev = malidp->dev; in malidp_atomic_commit_update_gamma() local 74 malidp_hw_clearbits(hwdev, in malidp_atomic_commit_update_gamma() 83 malidp_write_gamma_table(hwdev, mc->gamma_coeffs); in malidp_atomic_commit_update_gamma() 85 malidp_hw_setbits(hwdev, MALIDP_DISP_FUNC_GAMMA, in malidp_atomic_commit_update_gamma() 95 struct malidp_hw_device *hwdev = malidp->dev; in malidp_atomic_commit_update_coloradj() local [all …]
|
| /linux/drivers/hwmon/ |
| H A D | hwmon.c | 133 struct hwmon_device *hwdev = to_hwmon_device(dev); in hwmon_dev_release() local 135 if (hwdev->group.attrs) in hwmon_dev_release() 136 hwmon_free_attrs(hwdev->group.attrs); in hwmon_dev_release() 137 kfree(hwdev->groups); in hwmon_dev_release() 138 kfree(hwdev->label); in hwmon_dev_release() 139 kfree(hwdev); in hwmon_dev_release() 166 struct hwmon_device *hwdev = to_hwmon_device(tdata->dev); in hwmon_thermal_get_temp() local 170 guard(mutex)(&hwdev->lock); in hwmon_thermal_get_temp() 172 ret = hwdev->chip->ops->read(tdata->dev, hwmon_temp, hwmon_temp_input, in hwmon_thermal_get_temp() 185 struct hwmon_device *hwdev = to_hwmon_device(tdata->dev); in hwmon_thermal_set_trips() local [all …]
|