高通modem和linux区别,qualcomm qmi(modem-linux通信)

*参考文档:     搜索modem qmi       qmi-qualcomm

*    http://wenku.baidu.com/link?url=WtNOI1ojokVsXT3LiWmCRg6IAyNRm5U_rwq_-Os_C_aDnZBtjtTNMKTANv-RpyP_-A2BRXgOlbQMu5Bcg_yMJZfYCe6WOf_9MkvH2VSppI7

*

/*********************************************

****qmi通信的双方的角色及位置如下

*********************************************

****qmux server               qmux client****

****   modem                     linux*******

****   AMSS                      linux*******

**********************************************/

nv6873(QMI Port Config List)项可以配置qmi port (QMI Port Config List)如下图:通过QXDM读取

0818b9ca8b590ca3270a3433284dd417.png modem 侧的代码:

qmux_state[ ],qmi_ctl_cfg[ ]

ds_qmux.c中会调用qmuxi_set_default_port_configuration函数来设置默认的qmi口

qmux_state.io.port_info.sio_port/default_ep_id/qmi_stream/frame_mode (这四个成员跟nv里的值对应)

RUNTIME Device Mapper(RDM)

qmi_ctl_cfg.cbs.recv = qmi_ctil_recv(),此函数接收client(linux端)传送过来的数据

每个qmi service创建两个信号list:client transations single list 和 command buffer single list,

他们都包含在qmi_common_client_state_type结构体中(.qmi_transaction_type和.qmi_cmd_buf_type结构体)

所有的qmi services都会执行q_init函数来完成下图任务

0818b9ca8b590ca3270a3433284dd417.png

qmi_transaction_s = q_get( struct q_type );

qmi_transaction_s.cmd_list[]中有许多命令,  这里先将qmi通信理解为cmd集合吧。。

linux侧发送qmi的代码为qmi_client_send_msg_sync((qmi_client_type) clnt,

QMI_TMD_SET_MITIGATION_LEVEL_REQ_V01,

&data_req, sizeof(data_req),

&data_resp, sizeof(data_resp), 0);

每个qmi service都有几个指定的状态 ,用特定的结构体表示,如下图

0818b9ca8b590ca3270a3433284dd417.png

定义格式如下:

typedef struct {   uint16                           num_qmi_instances;  /*Not used at the moment. May be used in the future*/   qmi_ati_client_state_ptr_type    client[ATI_MAX_CLIDS]; } qmi_ati_state_type;                                           SIO接收到数据后:qmuxi_sio_rx_cb()会被调用,它不处理信息,只是将所有的信息转发给不同的命令处理函数*handler,如下 dcc_set_cmd_handler dcc_set_sig_handler等 1 当AMSS QMUX 接收到数据后from SIO,用qmuxi_process_rx_sig为每个instance来查看其qmux_s->io.rx_wm是否有数据需要处理 没有数据的话会在QXDM的log中打印:ds_qmux.c 01757 no pending command on QMUX link 1/2/3 2 qmuxi_process_msg

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值