Re: [PATCH] mmc: mmc_add_card(): fix missing break in switch statement

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

 



On Wed, May 04, 2011 at 10:06:20PM +0530, Prashanth Bhat wrote:
> On Wednesday 04 May 2011 04:53 PM, Michał Mirosław wrote:
> >On Tue, May 03, 2011 at 05:00:03PM +0530, Prashanth Bhat wrote:
> >>To be more specific, I would think that the code change required in
> >>include/linux/mmc/card.h is:
> >>
> >>#define mmc_card_mmc(c)         ((c)->type == MMC_TYPE_MMC)
> >>- #define mmc_card_sd(c)          ((c)->type == MMC_TYPE_SD)
> >>- #define mmc_card_sdio(c)        ((c)->type == MMC_TYPE_SDIO)
> >>
> >>+ #define mmc_card_sd(c)          ((c)->type == MMC_TYPE_SD ||
> >>(c)->type == MMC_TYPE_SD_COMBO)
> >>+ #define mmc_card_sdio(c)        ((c)->type == MMC_TYPE_SDIO ||
> >>(c)->type == MMC_TYPE_SD_COMBO)
> >You can actually use (c->type&  MMC_TYPE_SD) and (c->type&  MMC_TYPE_SDIO).
> >Unless there will be more types of SD cards (unlikely) this way
> >will generate less code on average.
> Interesting coincidence that the value of MMC_TYPE_SD and
> MMC_TYPE_SDIO and MMC_TYPE_SD_COMBO have the relationship that
> SD_COMBO is the bitwise OR of the other two. However, this seems to
> be more of a coincidence than intentional. The #defines were clearly
> meant to be numeric values rather than bit-masks.
> 
> #define MMC_TYPE_MMC            0               /* MMC card */
> #define MMC_TYPE_SD             1               /* SD card */
> #define MMC_TYPE_SDIO           2               /* SDIO card */
> #define MMC_TYPE_SD_COMBO       3               /* SD combo (IO+mem) card */
> 
> 
> Using the bit-mask approach therefore doesn't feel like the natural
> way to me. Perhaps the #defines could be changed to
> 
> #define MMC_TYPE_MMC            (1 << 0)               /* MMC card */
> #define MMC_TYPE_SD               (1 << 1)               /* SD card */
> #define MMC_TYPE_SDIO            (1 << 2)               /* SDIO card */
> #define MMC_TYPE_SD_COMBO       (MMC_TYPE_SD | MMC_TYPE_SDIO)    /*
> SD combo (IO+mem) card */

Since MMC == !SD && !SDIO, then MMC_TYPE_MMC bit would carry redundant
information.

Best Regards,
Michał Mirosław

PS. Please do not top-post.
--
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