On Tue, Nov 20, 2018 at 10:34 AM Krzysztof Kozlowski <krzk@xxxxxxxxxx> wrote: > On Fri, 16 Nov 2018 at 00:23, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: [Me] > > Even if the slot GPIO core discards the inversion > > semantics on the GPIO lines we take special care to > > specify them right. > > static struct s3c24xx_mci_pdata mini2440_mmc_cfg __initdata = { > > - .gpio_detect = S3C2410_GPG(8), > > - .gpio_wprotect = S3C2410_GPH(8), > > - .wprotect_invert = 1, > > You missed to address one comment from my previous email - what about > wprotect_invert? It seems it is gone after your changes. Sorry about not adressing it. So this is especially confusing. In platform data wprotect_invert is specified, and in the driver this is handled like so: if (pdata->wprotect_invert) mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH; Since the slot GPIO totally ignores the inversion flag on the gpio descriptor (by reading the "raw" gpio value), we indeed need to keep passing this as of now. I am planning to get rid if the host caps for "RO_ACTIVE_HIGH" etc at a later point. I'll fix the patch. Yours, Linus Walleij