Re: [PATCH v3 1/3] i2c: core: add managed function for adding i2c adapters

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

 



On 2021/3/23 0:35, Andy Shevchenko wrote:
> On Mon, Mar 22, 2021 at 07:10:11PM +0800, Yicong Yang wrote:
>> Some I2C controller drivers will only unregister the I2C
>> adapter in their .remove() callback, which can be done
>> by simply using a managed variant to add the I2C adapter.
>>
>> So add the managed functions for adding the I2C adapter.
> 
> ...
> 
>> +static void devm_i2c_del_adapter(struct device *dev, void *ptr);
> 
> Can we instead of forward declaration simply move below to be after
> devm_i2c_del_adapter()?

i just want to put the devm variant near i2c_add_adapter, i'll address
this if it's unnecessary.

Thanks,
Yicong

> 
>> +/**
>> + * devm_i2c_add_adapter - device-managed variant of i2c_add_adapter()
>> + * @dev: managing device for adding this I2C adapter
>> + * @adapter: the adapter to add
>> + * Context: can sleep
>> + *
>> + * Add adapter with dynamic bus number, same with i2c_add_adapter()
>> + * but the adapter will be auto deleted on driver detach.
>> + */
>> +int devm_i2c_add_adapter(struct device *dev, struct i2c_adapter *adapter)
>> +{
>> +	struct i2c_adapter **ptr;
>> +	int ret;
>> +
>> +	ptr = devres_alloc(devm_i2c_del_adapter, sizeof(*ptr), GFP_KERNEL);
>> +	if (!ptr)
>> +		return -ENOMEM;
>> +
>> +	ret = i2c_add_adapter(adapter);
>> +	if (!ret) {
>> +		*ptr = adapter;
>> +		devres_add(dev, ptr);
>> +	} else {
>> +		devres_free(ptr);
>> +	}
>> +
>> +	return ret;
>> +}
> 




[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux