Commit 3c0b8d1c authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'hsi-for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi

Pull HSI updates from Sebastian Reichel:
 "nokia-modem: add N950 and N9 support"

* tag 'hsi-for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
  HSI: ssi-protocol: Use handshake logic from n950
  HSI: nokia-modem: add n950 and n9 support
parents 9cc984e4 87d99063
...@@ -7,6 +7,8 @@ properties are needed by the Nokia modem HSI client: ...@@ -7,6 +7,8 @@ properties are needed by the Nokia modem HSI client:
Required properties: Required properties:
- compatible: Should be one of - compatible: Should be one of
"nokia,n900-modem" "nokia,n900-modem"
"nokia,n950-modem"
"nokia,n9-modem"
- hsi-channel-names: Should contain the following strings - hsi-channel-names: Should contain the following strings
"mcsaab-control" "mcsaab-control"
"speech-control" "speech-control"
...@@ -15,11 +17,11 @@ Required properties: ...@@ -15,11 +17,11 @@ Required properties:
- gpios: Should provide a GPIO handler for each GPIO listed in - gpios: Should provide a GPIO handler for each GPIO listed in
gpio-names gpio-names
- gpio-names: Should contain the following strings - gpio-names: Should contain the following strings
"cmt_apeslpx" "cmt_apeslpx" (for n900, n950, n9)
"cmt_rst_rq" "cmt_rst_rq" (for n900, n950, n9)
"cmt_en" "cmt_en" (for n900, n950, n9)
"cmt_rst" "cmt_rst" (for n900)
"cmt_bsi" "cmt_bsi" (for n900)
- interrupts: Should be IRQ handle for modem's reset indication - interrupts: Should be IRQ handle for modem's reset indication
Example: Example:
......
...@@ -281,6 +281,8 @@ static int nokia_modem_remove(struct device *dev) ...@@ -281,6 +281,8 @@ static int nokia_modem_remove(struct device *dev)
#ifdef CONFIG_OF #ifdef CONFIG_OF
static const struct of_device_id nokia_modem_of_match[] = { static const struct of_device_id nokia_modem_of_match[] = {
{ .compatible = "nokia,n900-modem", }, { .compatible = "nokia,n900-modem", },
{ .compatible = "nokia,n950-modem", },
{ .compatible = "nokia,n9-modem", },
{}, {},
}; };
MODULE_DEVICE_TABLE(of, nokia_modem_of_match); MODULE_DEVICE_TABLE(of, nokia_modem_of_match);
......
...@@ -521,13 +521,7 @@ static void ssip_start_rx(struct hsi_client *cl) ...@@ -521,13 +521,7 @@ static void ssip_start_rx(struct hsi_client *cl)
* high transition. Therefore we need to ignore the sencond UP event. * high transition. Therefore we need to ignore the sencond UP event.
*/ */
if ((ssi->main_state != ACTIVE) || (ssi->recv_state == RECV_READY)) { if ((ssi->main_state != ACTIVE) || (ssi->recv_state == RECV_READY)) {
if (ssi->main_state == INIT) { spin_unlock(&ssi->lock);
ssi->main_state = HANDSHAKE;
spin_unlock(&ssi->lock);
ssip_send_bootinfo_req_cmd(cl);
} else {
spin_unlock(&ssi->lock);
}
return; return;
} }
ssip_set_rxstate(ssi, RECV_READY); ssip_set_rxstate(ssi, RECV_READY);
...@@ -671,6 +665,7 @@ static void ssip_rx_bootinforeq(struct hsi_client *cl, u32 cmd) ...@@ -671,6 +665,7 @@ static void ssip_rx_bootinforeq(struct hsi_client *cl, u32 cmd)
ssip_error(cl); ssip_error(cl);
/* Fall through */ /* Fall through */
case INIT: case INIT:
case HANDSHAKE:
spin_lock(&ssi->lock); spin_lock(&ssi->lock);
ssi->main_state = HANDSHAKE; ssi->main_state = HANDSHAKE;
if (!ssi->waketest) { if (!ssi->waketest) {
...@@ -688,9 +683,6 @@ static void ssip_rx_bootinforeq(struct hsi_client *cl, u32 cmd) ...@@ -688,9 +683,6 @@ static void ssip_rx_bootinforeq(struct hsi_client *cl, u32 cmd)
msg->complete = ssip_release_cmd; msg->complete = ssip_release_cmd;
hsi_async_write(cl, msg); hsi_async_write(cl, msg);
break; break;
case HANDSHAKE:
/* Ignore */
break;
default: default:
dev_dbg(&cl->device, "Wrong state M(%d)\n", ssi->main_state); dev_dbg(&cl->device, "Wrong state M(%d)\n", ssi->main_state);
break; break;
...@@ -939,9 +931,11 @@ static int ssip_pn_open(struct net_device *dev) ...@@ -939,9 +931,11 @@ static int ssip_pn_open(struct net_device *dev)
ssi->waketest = 1; ssi->waketest = 1;
ssi_waketest(cl, 1); /* FIXME: To be removed */ ssi_waketest(cl, 1); /* FIXME: To be removed */
} }
ssi->main_state = INIT; ssi->main_state = HANDSHAKE;
spin_unlock_bh(&ssi->lock); spin_unlock_bh(&ssi->lock);
ssip_send_bootinfo_req_cmd(cl);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment