On 02/01/2018 05:56 PM, Wang, Haiyue wrote:
On 2018-02-02 04:32, Corey Minyard wrote:
+static void kcs_bmc_handle_cmd(struct kcs_bmc *kcs_bmc)
+{
+ u8 cmd;
+
+ set_state(kcs_bmc, WRITE_STATE);
+ write_data(kcs_bmc, KCS_ZERO_DATA);
+
+ cmd = read_data(kcs_bmc);
+ switch (cmd) {
+ case KCS_CMD_WRITE_START:
+ if (kcs_bmc->phase != KCS_PHASE_IDLE &&
+ kcs_bmc->phase != KCS_PHASE_ERROR) {
+ kcs_force_abort(kcs_bmc);
+ break;
+ }
+
The spec says you can do a write start basically any time and the
state machine starts over. I know I kind of went back and forth on
this in my previous email, but what you had before is correct, I think.
So change it to the bellowing code is OK now? :-)
+ case KCS_CMD_WRITE_START:
+ kcs_bmc->data_in_avail = false;
+ kcs_bmc->data_in_idx = 0;
+ kcs_bmc->phase = KCS_PHASE_WRITE;
+ kcs_bmc->error = KCS_NO_ERROR;
+ break;
Yes, that should be good. Sorry about the confusion.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openipmi-developer mailing list
Openipmi-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer