lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-id: <5715FF1B.80402@samsung.com>
Date:	Tue, 19 Apr 2016 18:49:15 +0900
From:	Jaehoon Chung <jh80.chung@...sung.com>
To:	Olliver Schinagl <oliver@...inagl.nl>,
	Ulf Hansson <ulf.hansson@...aro.org>
Cc:	Maxime Ripard <maxime.ripard@...e-electrons.com>,
	Chen-Yu Tsai <wens@...e.org>,
	Venu Byravarasu <vbyravarasu@...dia.com>,
	Adrian Hunter <adrian.hunter@...el.com>,
	Michal Hocko <mhocko@...e.com>,
	Lars-Peter Clausen <lars@...afoo.de>,
	Sudeep Holla <Sudeep.Holla@....com>,
	Sergei Shtylyov <sergei.shtylyov@...entembedded.com>,
	Wolfram Sang <wsa+renesas@...g-engineering.com>,
	Wenkai Du <wenkai.du@...el.com>,
	Chaotian Jing <chaotian.jing@...iatek.com>,
	Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>,
	Hans de Goede <hdegoede@...hat.com>,
	Michal Suchanek <hramrach@...il.com>,
	linux-mmc <linux-mmc@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"linux-arm-kernel@...ts.infradead.org" 
	<linux-arm-kernel@...ts.infradead.org>
Subject: Re: [PATCH 1/2] mmc: core: Improve marking broken HPI through
 devicetree

Hi

On 04/19/2016 06:42 PM, Olliver Schinagl wrote:
> Hi Ulf,
> 
> On 19-04-16 11:29, Ulf Hansson wrote:
>> On 19 April 2016 at 09:12, Olliver Schinagl <oliver@...inagl.nl> wrote:
>>> In patch 81f8a7be66 Hans de Goede added a patch to allow marking an mmc
>>> device as to having an broken HPI implementation. After talking some
>>> with Hans, we now think it is actually the mmc controller that can be
>>> broken and not support broken HPI's.
>> I don't want us to invent a DT binding for something you *think* is a
>> HW controller issue.
>>
>> Have you really excluded that this isn't a software issue? Me
>> personally haven't been using HPI that much so I can't really tell
>> about the code robustness from the mmc core (mmc protocol point of
>> view).
> Well this patch goes hand in hand so to speak with the broken-hpi patch introduced by him, he did most of the investigation. We just discussed how to handle it and asked me to cook up the patch.

I didn't understand why add this property. Is this same patch?

commit 81f8a7be6642b4c26ab681b2e0f4c4120a6de1b0
Author: Hans de Goede <hdegoede@...hat.com>
Date:   Wed Apr 1 17:26:23 2015 +0200

    mmc: Add support for marking hpi as broken through devicetree

    The eMMC on a tablet I've will stop working / communicating as soon as
    the kernel executes:

                mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
                                EXT_CSD_HPI_MGMT, 1,
                                card->ext_csd.generic_cmd6_time);

    There seems to be no way to reliable identify eMMC-s which have a broken
    hpi implementation, but at least for eMMC's which are soldered onto a board
    we can work around this by specifying that hpi is broken in devicetree.

> 
> @hans, what do you think?
>>
>> Kind regards
>> Uffe
>>
>>> This patch adds a new capability, mmc-broken-hpi, which allows us to
>>> mark a broken hpi implementation on the host level.
>>>
>>> Signed-off-by: Olliver Schinagl <oliver@...inagl.nl>
>>> ---
>>>   drivers/mmc/core/host.c  | 2 ++
>>>   drivers/mmc/core/mmc.c   | 2 +-
>>>   include/linux/mmc/host.h | 1 +
>>>   3 files changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
>>> index 6e4c55a..9b63b36 100644
>>> --- a/drivers/mmc/core/host.c
>>> +++ b/drivers/mmc/core/host.c
>>> @@ -270,6 +270,8 @@ int mmc_of_parse(struct mmc_host *host)
>>>                  host->caps |= MMC_CAP_HW_RESET;
>>>          if (of_property_read_bool(np, "cap-sdio-irq"))
>>>                  host->caps |= MMC_CAP_SDIO_IRQ;
>>> +       if (of_property_read_bool(np, "mmc-broken-hpi"))
>>> +               host->caps |= MMC_CAP_BROKEN_HPI;
>>>          if (of_property_read_bool(np, "full-pwr-cycle"))
>>>                  host->caps2 |= MMC_CAP2_FULL_PWR_CYCLE;
>>>          if (of_property_read_bool(np, "keep-power-in-suspend"))
>>> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
>>> index 4dbe3df..9a19562 100644
>>> --- a/drivers/mmc/core/mmc.c
>>> +++ b/drivers/mmc/core/mmc.c
>>> @@ -1592,7 +1592,7 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
>>>          /*
>>>           * Enable HPI feature (if supported)
>>>           */
>>> -       if (card->ext_csd.hpi) {
>>> +       if (card->ext_csd.hpi && !(host->caps & MMC_CAP_BROKEN_HPI)) {
>>>                  err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
>>>                                  EXT_CSD_HPI_MGMT, 1,
>>>                                  card->ext_csd.generic_cmd6_time);
>>> diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
>>> index 8dd4d29..20f758e 100644
>>> --- a/include/linux/mmc/host.h
>>> +++ b/include/linux/mmc/host.h
>>> @@ -264,6 +264,7 @@ struct mmc_host {
>>>   #define MMC_CAP_DRIVER_TYPE_A  (1 << 23)       /* Host supports Driver Type A */
>>>   #define MMC_CAP_DRIVER_TYPE_C  (1 << 24)       /* Host supports Driver Type C */
>>>   #define MMC_CAP_DRIVER_TYPE_D  (1 << 25)       /* Host supports Driver Type D */
>>> +#define MMC_CAP_BROKEN_HPI     (1 << 29)       /* Host support for HPI is broken */
>>>   #define MMC_CAP_CMD23          (1 << 30)       /* CMD23 supported. */
>>>   #define MMC_CAP_HW_RESET       (1 << 31)       /* Hardware reset */
>>>
>>> -- 
>>> 2.8.0.rc3
>>>
> 
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ