diff for duplicates of <871su52th2.fsf@kamboji.qca.qualcomm.com> diff --git a/a/1.txt b/N1/1.txt index 7f3c93a..593883b 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -14,23 +14,23 @@ >> + u32 addr, *cmd_credits; >> + unsigned long timeout; >> + ->> + cmd_credits = kzalloc(sizeof(*cmd_credits), GFP_KERNEL); +>> + cmd_credits =3D kzalloc(sizeof(*cmd_credits), GFP_KERNEL); >> + if (!cmd_credits) { ->> + ret = -ENOMEM; +>> + ret =3D -ENOMEM; >> + goto err; >> + } >> + >> + /* Read the counter register to get the command credits */ ->> + addr = MBOX_COUNT_DEC_ADDRESS + ATH10K_HIF_MBOX_NUM_MAX * 4; +>> + addr =3D MBOX_COUNT_DEC_ADDRESS + ATH10K_HIF_MBOX_NUM_MAX * 4; >> + ->> + timeout = jiffies + BMI_COMMUNICATION_TIMEOUT_HZ; +>> + timeout =3D jiffies + BMI_COMMUNICATION_TIMEOUT_HZ; >> + while (time_before(jiffies, timeout) && !*cmd_credits) { >> + /* Hit the credit counter with a 4-byte access, the first byte >> + * read will hit the counter and cause a decrement, while the >> + * remaining 3 bytes has no effect. The rationale behind this >> + * is to make all HIF accesses 4-byte aligned. >> + */ ->> + ret = ath10k_sdio_read_write_sync(ar, addr, +>> + ret =3D ath10k_sdio_read_write_sync(ar, addr, >> + (u8 *)cmd_credits, >> + sizeof(*cmd_credits), >> + HIF_RD_SYNC_BYTE_INC); @@ -44,12 +44,12 @@ >> + /* The counter is only 8 bits. >> + * Ignore anything in the upper 3 bytes >> + */ ->> + *cmd_credits &= 0xFF; +>> + *cmd_credits &=3D 0xFF; >> + } >> + >> + if (!*cmd_credits) { >> + ath10k_warn(ar, "bmi communication timeout\n"); ->> + ret = -ETIMEDOUT; +>> + ret =3D -ETIMEDOUT; >> + goto err_free; >> + } >> + @@ -68,9 +68,5 @@ Also I'm worried about endianness. We are reading from the device directly to an u32 variable and not converting the bytes. Is the MMC subsystem doing the conversion, I guess not? --- -Kalle Valo -_______________________________________________ -ath10k mailing list -ath10k@lists.infradead.org -http://lists.infradead.org/mailman/listinfo/ath10k +--=20 +Kalle Valo= diff --git a/a/content_digest b/N1/content_digest index 659a200..71c5557 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -25,23 +25,23 @@ ">> +\tu32 addr, *cmd_credits;\n" ">> +\tunsigned long timeout;\n" ">> +\n" - ">> +\tcmd_credits = kzalloc(sizeof(*cmd_credits), GFP_KERNEL);\n" + ">> +\tcmd_credits =3D kzalloc(sizeof(*cmd_credits), GFP_KERNEL);\n" ">> +\tif (!cmd_credits) {\n" - ">> +\t\tret = -ENOMEM;\n" + ">> +\t\tret =3D -ENOMEM;\n" ">> +\t\tgoto err;\n" ">> +\t}\n" ">> +\n" ">> +\t/* Read the counter register to get the command credits */\n" - ">> +\taddr = MBOX_COUNT_DEC_ADDRESS + ATH10K_HIF_MBOX_NUM_MAX * 4;\n" + ">> +\taddr =3D MBOX_COUNT_DEC_ADDRESS + ATH10K_HIF_MBOX_NUM_MAX * 4;\n" ">> +\n" - ">> +\ttimeout = jiffies + BMI_COMMUNICATION_TIMEOUT_HZ;\n" + ">> +\ttimeout =3D jiffies + BMI_COMMUNICATION_TIMEOUT_HZ;\n" ">> +\twhile (time_before(jiffies, timeout) && !*cmd_credits) {\n" ">> +\t\t/* Hit the credit counter with a 4-byte access, the first byte\n" ">> +\t\t * read will hit the counter and cause a decrement, while the\n" ">> +\t\t * remaining 3 bytes has no effect. The rationale behind this\n" ">> +\t\t * is to make all HIF accesses 4-byte aligned.\n" ">> +\t\t */\n" - ">> +\t\tret = ath10k_sdio_read_write_sync(ar, addr,\n" + ">> +\t\tret =3D ath10k_sdio_read_write_sync(ar, addr,\n" ">> +\t\t\t\t\t\t (u8 *)cmd_credits,\n" ">> +\t\t\t\t\t\t sizeof(*cmd_credits),\n" ">> +\t\t\t\t\t\t HIF_RD_SYNC_BYTE_INC);\n" @@ -55,12 +55,12 @@ ">> +\t\t/* The counter is only 8 bits.\n" ">> +\t\t * Ignore anything in the upper 3 bytes\n" ">> +\t\t */\n" - ">> +\t\t*cmd_credits &= 0xFF;\n" + ">> +\t\t*cmd_credits &=3D 0xFF;\n" ">> +\t}\n" ">> +\n" ">> +\tif (!*cmd_credits) {\n" ">> +\t\tath10k_warn(ar, \"bmi communication timeout\\n\");\n" - ">> +\t\tret = -ETIMEDOUT;\n" + ">> +\t\tret =3D -ETIMEDOUT;\n" ">> +\t\tgoto err_free;\n" ">> +\t}\n" ">> +\n" @@ -79,11 +79,7 @@ "directly to an u32 variable and not converting the bytes. Is the MMC\n" "subsystem doing the conversion, I guess not?\n" "\n" - "-- \n" - "Kalle Valo\n" - "_______________________________________________\n" - "ath10k mailing list\n" - "ath10k@lists.infradead.org\n" - http://lists.infradead.org/mailman/listinfo/ath10k + "--=20\n" + Kalle Valo= -f1a8c83865397115387328956b93aaae4c9ec0d24033bfc735ec416429af9126 +de63f68d32f435409e49145e710737a1f3785b87a377b6165e2d318b34810942
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.