Hello, Am 12.09.2014 um 04:45 schrieb Jaehoon Chung: > Hi, > > On 09/08/2014 05:15 PM, Markus Niebel wrote: >> Hello Jaehoon Chung >> >>>> Hello, >>>> >>>> experimenting with the current BKOPS code we found, that when triggering from BKOPS_LEVEL 1, >>>> the status stored with mmc_card_set_doing_bkops is never reset preventing BKOPS from working. >>> In now, bkops is working for upper case than LEVEL_2 (urgent case). >>> Patch of LEVEL_1's case has sent at mailing, maybe you can found it. >> >> I will look for it. >> >>> >>>> >>>> Since I'm not an expert in the mmc subsystem I ask for a hint where to look for completion >>>> and implement proper status reset. >>> >>> Could you explain to me more? >> >> If starting BKOPS with BKOPS_LEVEL 1 a switch (CMD6) without wait for completion (status polling) >> is issued an a status variable is set. I did'nt find a place where this status is reset. > > You means when BKOPS_LEVEL_1 is set, this status didn't reset anywhere, right? > I didn't know why this value needs to reset. > Before starting BKOPS, always read the bkops-status from card's ext_csd register. > Then it should be re-assigned to the new status value. > > we didn't refer to bkops-status for starting bkops or not. > in drivers/mmc/core/core.c: void mmc_start_bkops(struct mmc_card *card, bool from_exception) a driver internal status is checked with mmc_card_doing_bkops(card) and in case the state is set nothing will be done At the end of the function the state is set with mmc_card_set_doing_bkops(card) for the non urgent case The state is only reset from mmc_stop_bkops which is only called from _mmc_suspend > Best Regards, > Jaehoon Chung Best Regards, Markus Niebel -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html