Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 366604
b: refs/heads/master
c: dfbf021
h: refs/heads/master
v: v3
  • Loading branch information
Mauro Carvalho Chehab committed Mar 21, 2013
1 parent 5da8d7f commit 7a03360
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 347d8f1fa69f4dd021f1ca3d69e1527d95f185e0
refs/heads/master: dfbf021c9e6c9de2296eae7b4e89148e7f68b28e
56 changes: 56 additions & 0 deletions trunk/drivers/media/common/siano/smscoreapi.c
Original file line number Diff line number Diff line change
Expand Up @@ -824,6 +824,57 @@ static int smscore_init_ir(struct smscore_device_t *coredev)
return 0;
}

/**
* configures device features according to board configuration structure.
*
* @param coredev pointer to a coredev object returned by
* smscore_register_device
*
* @return 0 on success, <0 on error.
*/
int smscore_configure_board(struct smscore_device_t *coredev)
{
struct sms_board *board;

board = sms_get_board(coredev->board_id);
if (!board) {
sms_err("no board configuration exist.");
return -EINVAL;
}

if (board->mtu) {
struct SmsMsgData_ST MtuMsg;
sms_debug("set max transmit unit %d", board->mtu);

MtuMsg.xMsgHeader.msgSrcId = 0;
MtuMsg.xMsgHeader.msgDstId = HIF_TASK;
MtuMsg.xMsgHeader.msgFlags = 0;
MtuMsg.xMsgHeader.msgType = MSG_SMS_SET_MAX_TX_MSG_LEN_REQ;
MtuMsg.xMsgHeader.msgLength = sizeof(MtuMsg);
MtuMsg.msgData[0] = board->mtu;

smsendian_handle_tx_message((struct SmsMsgHdr_ST *)&MtuMsg);
coredev->sendrequest_handler(coredev->context, &MtuMsg,
sizeof(MtuMsg));
}

if (board->crystal) {
struct SmsMsgData_ST CrysMsg;
sms_debug("set crystal value %d", board->crystal);

SMS_INIT_MSG(&CrysMsg.xMsgHeader,
MSG_SMS_NEW_CRYSTAL_REQ,
sizeof(CrysMsg));
CrysMsg.msgData[0] = board->crystal;

smsendian_handle_tx_message((struct SmsMsgHdr_S *)&CrysMsg);
coredev->sendrequest_handler(coredev->context, &CrysMsg,
sizeof(CrysMsg));
}

return 0;
}

/**
* sets initial device mode and notifies client hotplugs that device is ready
*
Expand All @@ -840,6 +891,11 @@ int smscore_start_device(struct smscore_device_t *coredev)
sms_info("set device mode faile , rc %d", rc);
return rc;
}
rc = smscore_configure_board(coredev);
if (rc < 0) {
sms_info("configure board failed , rc %d", rc);
return rc;
}

kmutex_lock(&g_smscore_deviceslock);

Expand Down

0 comments on commit 7a03360

Please sign in to comment.