On 29 September 2014 00:21, Brian Norris <computersforpeace@xxxxxxxxx> wrote: > (Honestly, some of this name-matching / ID-matching stuff confuses me; > there is at least one too many ways to choose a flash device for this > driver.) It's not that complex once you track it. It's just ugly to tracks because of different structs, function calls and code locations. 1) All m25p80 users (arch code, SPI drivers, etc.) register struct spi_board_info that contains "modalias". It it used to match a driver to load. In most (?) cases modalias is set to "m25p80" 2) Some m25p80 users decided to put a flash device name (e.g. "at25fs010", "mx25l2005a", "m25p05", "w25x10") as modalias of the struct spi_board_info. I think they are affected by the recent m25p80 change to use spi-not framework. 3) Other m25p80 users provide flash device name (e.g. "at25fs010", "mx25l2005a", "m25p05", "w25x10") using platform_data in the struct spi_board_info. It points to the struct flash_platform_data with "name" and "type" properties. It seems to me that "name" is never used. My idea for fixing this: 1) Always use "m25p80" modalias (for m25p80 compatible hw). This will make m25p80 driver work without this huge id_table 2) Do not use "name" nor "type" in the struct flash_platform_data if the flash supports JEDEC 3) If the flash is m25p80 compatible, but doesn't support JEDEC, let's use "type" to let m25p80 work. -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html