Skip to content
  • Erico Nunes's avatar
    i2c: dev: switch from register_chrdev to cdev API · d6760b14
    Erico Nunes authored
    
    
    i2c-dev had never moved away from the older register_chrdev interface to
    implement its char device registration. The register_chrdev API has the
    limitation of enabling only up to 256 i2c-dev busses to exist.
    
    Large platforms with lots of i2c devices (i.e. pluggable transceivers)
    with dedicated busses may have to exceed that limit.
    In particular, there are also platforms making use of the i2c bus
    multiplexing API, which instantiates a virtual bus for each possible
    multiplexed selection.
    
    This patch removes the register_chrdev usage and replaces it with the
    less old cdev API, which takes away the 256 i2c-dev bus limitation.
    It should not have any other impact for i2c bus drivers or user space.
    
    This patch has been tested on qemu x86 and qemu powerpc platforms with
    the aid of a module which adds and removes 5000 virtual i2c busses, as
    well as validated on an existing powerpc hardware platform which makes
    use of the i2c bus multiplexing API.
    i2c-dev busses with device minor numbers larger than 256 have also been
    validated to work with the existing i2c-tools.
    
    Signed-off-by: default avatarErico Nunes <erico.nunes@datacom.ind.br>
    [wsa: kept includes sorted]
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    d6760b14