Skip to content
  • Pantelis Antoniou's avatar
    mmc: Split mmc struct, rework mmc initialization (v2) · 93bfd616
    Pantelis Antoniou authored
    
    
    The way that struct mmc was implemented was a bit of a mess;
    configuration and internal state all jumbled up in a single structure.
    
    On top of that the way initialization is done with mmc_register leads
    to a lot of duplicated code in drivers.
    
    Typically the initialization got something like this in every driver.
    
    	struct mmc *mmc = malloc(sizeof(struct mmc));
    	memset(mmc, 0, sizeof(struct mmc);
    	/* fill in fields of mmc struct */
    	/* store private data pointer */
    	mmc_register(mmc);
    
    By using the new mmc_create call one just passes an mmc config struct
    and an optional private data pointer like this:
    
    	struct mmc = mmc_create(&cfg, priv);
    
    All in tree drivers have been updated to the new form, and expect
    mmc_register to go away before long.
    
    Changes since v1:
    
    * Use calloc instead of manually calling memset.
    * Mark mmc_register as deprecated.
    
    Signed-off-by: default avatarPantelis Antoniou <panto@antoniou-consulting.com>
    93bfd616