/linux-6.1.9/drivers/net/wwan/t7xx/ |
D | t7xx_pci.c | 61 static void t7xx_dev_set_sleep_capability(struct t7xx_pci_dev *t7xx_dev, bool enable) in t7xx_dev_set_sleep_capability() argument 63 void __iomem *ctrl_reg = IREG_BASE(t7xx_dev) + T7XX_PCIE_MISC_CTRL; in t7xx_dev_set_sleep_capability() 76 static int t7xx_wait_pm_config(struct t7xx_pci_dev *t7xx_dev) in t7xx_wait_pm_config() argument 83 IREG_BASE(t7xx_dev) + T7XX_PCIE_RESOURCE_STATUS); in t7xx_wait_pm_config() 85 dev_err(&t7xx_dev->pdev->dev, "PM configuration timed out\n"); in t7xx_wait_pm_config() 90 static int t7xx_pci_pm_init(struct t7xx_pci_dev *t7xx_dev) in t7xx_pci_pm_init() argument 92 struct pci_dev *pdev = t7xx_dev->pdev; in t7xx_pci_pm_init() 94 INIT_LIST_HEAD(&t7xx_dev->md_pm_entities); in t7xx_pci_pm_init() 95 mutex_init(&t7xx_dev->md_pm_entity_mtx); in t7xx_pci_pm_init() 96 spin_lock_init(&t7xx_dev->md_pm_lock); in t7xx_pci_pm_init() [all …]
|
D | t7xx_mhccif.c | 32 static void t7xx_mhccif_clear_interrupts(struct t7xx_pci_dev *t7xx_dev, u32 mask) in t7xx_mhccif_clear_interrupts() argument 34 void __iomem *mhccif_pbase = t7xx_dev->base_addr.mhccif_rc_base; in t7xx_mhccif_clear_interrupts() 39 t7xx_mhccif_read_sw_int_sts(t7xx_dev); in t7xx_mhccif_clear_interrupts() 41 t7xx_pcie_mac_clear_int_status(t7xx_dev, MHCCIF_INT); in t7xx_mhccif_clear_interrupts() 46 struct t7xx_pci_dev *t7xx_dev = data; in t7xx_mhccif_isr_thread() local 50 iowrite32(val, IREG_BASE(t7xx_dev) + DISABLE_ASPM_LOWPWR); in t7xx_mhccif_isr_thread() 52 int_status = t7xx_mhccif_read_sw_int_sts(t7xx_dev); in t7xx_mhccif_isr_thread() 54 int ret = t7xx_pci_mhccif_isr(t7xx_dev); in t7xx_mhccif_isr_thread() 57 dev_err(&t7xx_dev->pdev->dev, "PCI MHCCIF ISR failure: %d", ret); in t7xx_mhccif_isr_thread() 60 t7xx_mhccif_clear_interrupts(t7xx_dev, int_status); in t7xx_mhccif_isr_thread() [all …]
|
D | t7xx_modem_ops.c | 64 static unsigned int t7xx_get_interrupt_status(struct t7xx_pci_dev *t7xx_dev) in t7xx_get_interrupt_status() argument 66 return t7xx_mhccif_read_sw_int_sts(t7xx_dev) & D2H_SW_INT_MASK; in t7xx_get_interrupt_status() 79 int t7xx_pci_mhccif_isr(struct t7xx_pci_dev *t7xx_dev) in t7xx_pci_mhccif_isr() argument 81 struct t7xx_modem *md = t7xx_dev->md; in t7xx_pci_mhccif_isr() 89 dev_err_ratelimited(&t7xx_dev->pdev->dev, in t7xx_pci_mhccif_isr() 95 int_sta = t7xx_get_interrupt_status(t7xx_dev); in t7xx_pci_mhccif_isr() 112 mask = t7xx_mhccif_mask_get(t7xx_dev); in t7xx_pci_mhccif_isr() 123 static void t7xx_clr_device_irq_via_pcie(struct t7xx_pci_dev *t7xx_dev) in t7xx_clr_device_irq_via_pcie() argument 125 struct t7xx_addr_base *pbase_addr = &t7xx_dev->base_addr; in t7xx_clr_device_irq_via_pcie() 135 void t7xx_clear_rgu_irq(struct t7xx_pci_dev *t7xx_dev) in t7xx_clear_rgu_irq() argument [all …]
|
D | t7xx_pcie_mac.c | 82 static int t7xx_pcie_mac_atr_cfg(struct t7xx_pci_dev *t7xx_dev, struct t7xx_atr_config *cfg) in t7xx_pcie_mac_atr_cfg() argument 84 struct device *dev = &t7xx_dev->pdev->dev; in t7xx_pcie_mac_atr_cfg() 85 void __iomem *pbase = IREG_BASE(t7xx_dev); in t7xx_pcie_mac_atr_cfg() 135 void t7xx_pcie_mac_atr_init(struct t7xx_pci_dev *t7xx_dev) in t7xx_pcie_mac_atr_init() argument 142 t7xx_pcie_mac_atr_tables_dis(IREG_BASE(t7xx_dev), i); in t7xx_pcie_mac_atr_init() 146 cfg.src_addr = pci_resource_start(t7xx_dev->pdev, T7XX_PCIE_REG_BAR); in t7xx_pcie_mac_atr_init() 152 t7xx_pcie_mac_atr_tables_dis(IREG_BASE(t7xx_dev), cfg.port); in t7xx_pcie_mac_atr_init() 153 t7xx_pcie_mac_atr_cfg(t7xx_dev, &cfg); in t7xx_pcie_mac_atr_init() 155 t7xx_dev->base_addr.pcie_dev_reg_trsl_addr = T7XX_PCIE_REG_TRSL_ADDR_CHIP; in t7xx_pcie_mac_atr_init() 166 t7xx_pcie_mac_atr_tables_dis(IREG_BASE(t7xx_dev), cfg.port); in t7xx_pcie_mac_atr_init() [all …]
|
D | t7xx_pcie_mac.h | 21 #define IREG_BASE(t7xx_dev) ((t7xx_dev)->base_addr.pcie_mac_ireg_base) argument 23 void t7xx_pcie_mac_interrupts_en(struct t7xx_pci_dev *t7xx_dev); 24 void t7xx_pcie_mac_interrupts_dis(struct t7xx_pci_dev *t7xx_dev); 25 void t7xx_pcie_mac_atr_init(struct t7xx_pci_dev *t7xx_dev); 26 void t7xx_pcie_mac_clear_int(struct t7xx_pci_dev *t7xx_dev, enum t7xx_int int_type); 27 void t7xx_pcie_mac_set_int(struct t7xx_pci_dev *t7xx_dev, enum t7xx_int int_type); 28 void t7xx_pcie_mac_clear_int_status(struct t7xx_pci_dev *t7xx_dev, enum t7xx_int int_type); 29 void t7xx_pcie_set_mac_msix_cfg(struct t7xx_pci_dev *t7xx_dev, unsigned int irq_count);
|
D | t7xx_pci.h | 104 int (*suspend)(struct t7xx_pci_dev *t7xx_dev, void *entity_param); 105 void (*suspend_late)(struct t7xx_pci_dev *t7xx_dev, void *entity_param); 106 void (*resume_early)(struct t7xx_pci_dev *t7xx_dev, void *entity_param); 107 int (*resume)(struct t7xx_pci_dev *t7xx_dev, void *entity_param); 112 void t7xx_pci_disable_sleep(struct t7xx_pci_dev *t7xx_dev); 113 void t7xx_pci_enable_sleep(struct t7xx_pci_dev *t7xx_dev); 114 int t7xx_pci_sleep_disable_complete(struct t7xx_pci_dev *t7xx_dev); 115 int t7xx_pci_pm_entity_register(struct t7xx_pci_dev *t7xx_dev, struct md_pm_entity *pm_entity); 116 int t7xx_pci_pm_entity_unregister(struct t7xx_pci_dev *t7xx_dev, struct md_pm_entity *pm_entity); 117 void t7xx_pci_pm_init_late(struct t7xx_pci_dev *t7xx_dev); [all …]
|
D | t7xx_modem_ops.h | 67 struct t7xx_pci_dev *t7xx_dev; member 81 int t7xx_md_reset(struct t7xx_pci_dev *t7xx_dev); 82 int t7xx_md_init(struct t7xx_pci_dev *t7xx_dev); 83 void t7xx_md_exit(struct t7xx_pci_dev *t7xx_dev); 84 void t7xx_clear_rgu_irq(struct t7xx_pci_dev *t7xx_dev); 85 int t7xx_acpi_fldr_func(struct t7xx_pci_dev *t7xx_dev); 86 int t7xx_pci_mhccif_isr(struct t7xx_pci_dev *t7xx_dev);
|
D | t7xx_mhccif.h | 30 void t7xx_mhccif_mask_set(struct t7xx_pci_dev *t7xx_dev, u32 val); 31 void t7xx_mhccif_mask_clr(struct t7xx_pci_dev *t7xx_dev, u32 val); 32 u32 t7xx_mhccif_mask_get(struct t7xx_pci_dev *t7xx_dev); 33 void t7xx_mhccif_init(struct t7xx_pci_dev *t7xx_dev); 34 u32 t7xx_mhccif_read_sw_int_sts(struct t7xx_pci_dev *t7xx_dev); 35 void t7xx_mhccif_h2d_swint_trigger(struct t7xx_pci_dev *t7xx_dev, u32 channel);
|
D | t7xx_netdev.c | 301 static void init_md_status_notifier(struct t7xx_pci_dev *t7xx_dev) in init_md_status_notifier() argument 303 struct t7xx_ccmni_ctrl *ctlb = t7xx_dev->ccmni_ctlb; in init_md_status_notifier() 311 t7xx_fsm_notifier_register(t7xx_dev->md, md_status_notifier); in init_md_status_notifier() 314 static void t7xx_ccmni_recv_skb(struct t7xx_pci_dev *t7xx_dev, struct sk_buff *skb) in t7xx_ccmni_recv_skb() argument 324 ccmni = t7xx_dev->ccmni_ctlb->ccmni_inst[netif_id]; in t7xx_ccmni_recv_skb() 369 static void t7xx_ccmni_queue_state_notify(struct t7xx_pci_dev *t7xx_dev, in t7xx_ccmni_queue_state_notify() argument 372 struct t7xx_ccmni_ctrl *ctlb = t7xx_dev->ccmni_ctlb; in t7xx_ccmni_queue_state_notify() 378 dev_warn(&t7xx_dev->pdev->dev, "No netdev registered yet\n"); in t7xx_ccmni_queue_state_notify() 388 int t7xx_ccmni_init(struct t7xx_pci_dev *t7xx_dev) in t7xx_ccmni_init() argument 390 struct device *dev = &t7xx_dev->pdev->dev; in t7xx_ccmni_init() [all …]
|
D | t7xx_hif_dpmaif.c | 65 t7xx_pcie_mac_set_int(dpmaif_ctrl->t7xx_dev, isr_para->pcie_int); in t7xx_dpmaif_enable_irq() 76 t7xx_pcie_mac_clear_int(dpmaif_ctrl->t7xx_dev, isr_para->pcie_int); in t7xx_dpmaif_disable_irq() 96 t7xx_pcie_mac_clear_int_status(dpmaif_ctrl->t7xx_dev, isr_para->pcie_int); in t7xx_dpmaif_irq_cb() 154 t7xx_pcie_mac_clear_int(dpmaif_ctrl->t7xx_dev, isr_para->pcie_int); in t7xx_dpmaif_isr_handler() 156 t7xx_pcie_mac_set_int(dpmaif_ctrl->t7xx_dev, isr_para->pcie_int); in t7xx_dpmaif_isr_handler() 178 struct t7xx_pci_dev *t7xx_dev = dpmaif_ctrl->t7xx_dev; in t7xx_dpmaif_register_pcie_irq() local 188 t7xx_pcie_mac_clear_int(t7xx_dev, int_type); in t7xx_dpmaif_register_pcie_irq() 190 t7xx_dev->intr_handler[int_type] = t7xx_dpmaif_isr_handler; in t7xx_dpmaif_register_pcie_irq() 191 t7xx_dev->intr_thread[int_type] = NULL; in t7xx_dpmaif_register_pcie_irq() 192 t7xx_dev->callback_param[int_type] = isr_para; in t7xx_dpmaif_register_pcie_irq() [all …]
|
D | t7xx_state_monitor.c | 118 struct device *dev = &ctl->md->t7xx_dev->pdev->dev; in fsm_flush_event_cmd_qs() 172 struct device *dev = &ctl->md->t7xx_dev->pdev->dev; in fsm_routine_exception() 191 t7xx_pci_pm_exp_detected(ctl->md->t7xx_dev); in fsm_routine_exception() 214 return t7xx_md_reset(ctl->md->t7xx_dev); in fsm_stopped_handler() 229 struct t7xx_pci_dev *t7xx_dev; in fsm_routine_stopping() local 239 t7xx_dev = ctl->md->t7xx_dev; in fsm_routine_stopping() 246 t7xx_mhccif_h2d_swint_trigger(t7xx_dev, H2D_CH_DRM_DISABLE_AP); in fsm_routine_stopping() 250 err = t7xx_acpi_fldr_func(t7xx_dev); in fsm_routine_stopping() 252 t7xx_mhccif_h2d_swint_trigger(t7xx_dev, H2D_CH_DEVICE_RESET); in fsm_routine_stopping() 290 dev = &md->t7xx_dev->pdev->dev; in fsm_routine_starting() [all …]
|
D | t7xx_port_proxy.c | 134 struct t7xx_fsm_ctl *ctl = port->t7xx_dev->md->fsm_ctl; in t7xx_port_get_queue_no() 203 md_ctrl = port->t7xx_dev->md->md_ctrl[path_id]; in t7xx_port_send_raw_skb() 257 struct t7xx_fsm_ctl *ctl = port->t7xx_dev->md->fsm_ctl; in t7xx_port_send_skb() 312 static struct t7xx_port *t7xx_port_proxy_find_port(struct t7xx_pci_dev *t7xx_dev, in t7xx_port_proxy_find_port() argument 315 struct port_proxy *port_prox = t7xx_dev->md->port_prox; in t7xx_port_proxy_find_port() 345 struct t7xx_pci_dev *t7xx_dev = queue->md_ctrl->t7xx_dev; in t7xx_port_proxy_recv_skb() local 346 struct t7xx_fsm_ctl *ctl = t7xx_dev->md->fsm_ctl; in t7xx_port_proxy_recv_skb() 359 port = t7xx_port_proxy_find_port(t7xx_dev, queue, channel); in t7xx_port_proxy_recv_skb() 419 port->t7xx_dev = md->t7xx_dev; in t7xx_proxy_init_all_ports() 420 port->dev = &md->t7xx_dev->pdev->dev; in t7xx_proxy_init_all_ports() [all …]
|
D | t7xx_netdev.h | 42 struct t7xx_pci_dev *t7xx_dev; member 52 int t7xx_ccmni_init(struct t7xx_pci_dev *t7xx_dev); 53 void t7xx_ccmni_exit(struct t7xx_pci_dev *t7xx_dev);
|
D | t7xx_hif_cldma.c | 541 t7xx_pcie_mac_set_int(md_ctrl->t7xx_dev, md_ctrl->hw_info.phy_interrupt_id); in t7xx_cldma_enable_irq() 546 t7xx_pcie_mac_clear_int(md_ctrl->t7xx_dev, md_ctrl->hw_info.phy_interrupt_id); in t7xx_cldma_disable_irq() 936 t7xx_pci_disable_sleep(md_ctrl->t7xx_dev); in t7xx_cldma_send_skb() 958 if (!t7xx_pci_sleep_disable_complete(md_ctrl->t7xx_dev)) { in t7xx_cldma_send_skb() 975 if (!t7xx_pci_sleep_disable_complete(md_ctrl->t7xx_dev)) { in t7xx_cldma_send_skb() 990 t7xx_pci_enable_sleep(md_ctrl->t7xx_dev); in t7xx_cldma_send_skb() 1063 struct t7xx_addr_base *pbase = &md_ctrl->t7xx_dev->base_addr; in t7xx_hw_info_init() 1086 int t7xx_cldma_alloc(enum cldma_id hif_id, struct t7xx_pci_dev *t7xx_dev) in t7xx_cldma_alloc() argument 1088 struct device *dev = &t7xx_dev->pdev->dev; in t7xx_cldma_alloc() 1095 md_ctrl->t7xx_dev = t7xx_dev; in t7xx_cldma_alloc() [all …]
|
D | t7xx_hif_dpmaif.h | 169 void (*state_notify)(struct t7xx_pci_dev *t7xx_dev, 171 void (*recv_skb)(struct t7xx_pci_dev *t7xx_dev, struct sk_buff *skb); 176 struct t7xx_pci_dev *t7xx_dev; member 198 struct dpmaif_ctrl *t7xx_dpmaif_hif_init(struct t7xx_pci_dev *t7xx_dev,
|
D | t7xx_hif_dpmaif_tx.c | 125 cb->state_notify(dpmaif_ctrl->t7xx_dev, DMPAIF_TXQ_STATE_IRQ, txq->index); in t7xx_dpmaif_release_tx_buffer() 170 t7xx_pci_disable_sleep(dpmaif_ctrl->t7xx_dev); in t7xx_dpmaif_tx_done() 171 if (t7xx_pci_sleep_disable_complete(dpmaif_ctrl->t7xx_dev)) { in t7xx_dpmaif_tx_done() 187 t7xx_pci_enable_sleep(dpmaif_ctrl->t7xx_dev); in t7xx_dpmaif_tx_done() 312 cb->state_notify(dpmaif_ctrl->t7xx_dev, DMPAIF_TXQ_STATE_FULL, txq->index); in t7xx_dpmaif_add_skb_to_ring() 432 if (!t7xx_pci_sleep_disable_complete(dpmaif_ctrl->t7xx_dev)) in t7xx_do_tx_hw_push() 468 t7xx_pci_disable_sleep(dpmaif_ctrl->t7xx_dev); in t7xx_dpmaif_tx_hw_push_thread() 470 t7xx_pci_enable_sleep(dpmaif_ctrl->t7xx_dev); in t7xx_dpmaif_tx_hw_push_thread() 515 cb->state_notify(dpmaif_ctrl->t7xx_dev, DMPAIF_TXQ_STATE_FULL, txq_number); in t7xx_dpmaif_tx_send_skb()
|
D | t7xx_hif_cldma.h | 90 struct t7xx_pci_dev *t7xx_dev; member 113 int t7xx_cldma_alloc(enum cldma_id hif_id, struct t7xx_pci_dev *t7xx_dev);
|
D | t7xx_port_ctrl_msg.c | 60 struct device *dev = &ctl->md->t7xx_dev->pdev->dev; in fsm_ee_message_handler() 129 struct device *dev = &md->t7xx_dev->pdev->dev; in t7xx_port_enum_msg_handler() 161 struct t7xx_fsm_ctl *ctl = port->t7xx_dev->md->fsm_ctl; in control_msg_handler()
|
D | t7xx_hif_dpmaif_rx.c | 109 cb->recv_skb(hif_ctrl->t7xx_dev, skb); in t7xx_dpmaif_net_rx_push_thread() 928 t7xx_pci_disable_sleep(dpmaif_ctrl->t7xx_dev); in t7xx_dpmaif_rxq_work() 929 if (t7xx_pci_sleep_disable_complete(dpmaif_ctrl->t7xx_dev)) in t7xx_dpmaif_rxq_work() 932 t7xx_pci_enable_sleep(dpmaif_ctrl->t7xx_dev); in t7xx_dpmaif_rxq_work() 1142 t7xx_pci_disable_sleep(dpmaif_ctrl->t7xx_dev); in t7xx_dpmaif_bat_release_work() 1146 if (t7xx_pci_sleep_disable_complete(dpmaif_ctrl->t7xx_dev)) { in t7xx_dpmaif_bat_release_work() 1151 t7xx_pci_enable_sleep(dpmaif_ctrl->t7xx_dev); in t7xx_dpmaif_bat_release_work()
|
D | t7xx_port.h | 103 struct t7xx_pci_dev *t7xx_dev; member
|
D | t7xx_port_wwan.c | 67 ctl = port_private->t7xx_dev->md->fsm_ctl; in t7xx_port_ctrl_tx()
|