On Tue, Feb 02, 2016 at 08:06:11PM +0100, Mark Kettenis wrote:
> The Bay Trail SoC SD controller for the SD card slot doesn't use the
> Card Detect bit in the standard register.  Instead there is a separate
> gpio that signals the presence of a card in the slot.  The diff below
> introduces a function pointer in the sdhc softc that, if non-NULL,
> gets called instead of checking the bit in the standard register.
> 
> ok?

ok
> 
> 
> Index: sdhc.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/sdmmc/sdhc.c,v
> retrieving revision 1.41
> diff -u -p -r1.41 sdhc.c
> --- sdhc.c    11 Jan 2016 06:54:53 -0000      1.41
> +++ sdhc.c    2 Feb 2016 18:57:57 -0000
> @@ -381,6 +381,10 @@ int
>  sdhc_card_detect(sdmmc_chipset_handle_t sch)
>  {
>       struct sdhc_host *hp = sch;
> +
> +     if (hp->sc->sc_card_detect)
> +             return hp->sc->sc_card_detect(hp->sc);
> +
>       return ISSET(HREAD4(hp, SDHC_PRESENT_STATE), SDHC_CARD_INSERTED) ?
>           1 : 0;
>  }
> Index: sdhcvar.h
> ===================================================================
> RCS file: /cvs/src/sys/dev/sdmmc/sdhcvar.h,v
> retrieving revision 1.6
> diff -u -p -r1.6 sdhcvar.h
> --- sdhcvar.h 31 Jul 2011 16:55:01 -0000      1.6
> +++ sdhcvar.h 2 Feb 2016 18:57:57 -0000
> @@ -28,6 +28,8 @@ struct sdhc_softc {
>       struct sdhc_host **sc_host;
>       int sc_nhosts;
>       u_int sc_flags;
> +
> +     int (*sc_card_detect)(struct sdhc_softc *);
>  };
>  
>  /* Host controller functions called by the attachment driver. */
> 

Reply via email to