Re: mmc: eMMC BKOPS status handling lock for non urgent case

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux