Hi,

On Mon, Jan 30, 2017 at 12:55 AM, Stefan Wahren <stefan.wahren@i2se.com> wrote:
> Hi Ksenija,
>
>> Ksenija Stanojevic <ksenija.stanojevic@gmail.com> hat am 29. Januar 2017 um 19:04 geschrieben:
>>
>>
>> Add 4-wire/5-wire touchscreen controller.
>
> i compiled all 3 driver as a module and kept the devicetree for the Olinuxino iMX233 [1] as it is (no touchscreen). After booting all 3 driver are loaded:
> where
> Module                  Size  Used by
> mxs_lradc_adc          11000  0
> industrialio_triggered_buffer     2628  1 mxs_lradc_adc
> kfifo_buf               3337  1 industrialio_triggered_buffer
> mxs_lradc_ts            4192  0
> mxs_lradc               4402  0
> mfd_core                4612  1 mxs_lradc
>
> But the touchscreen driver threw this error:
>
> [  427.230000] mxs-lradc-ts: probe of mxs-lradc-ts failed with error -22

I think it should be like that. In earlier versions module wouldn't load if there was no touchscreen device (it was done in the mfd part). But Lee suggested that it there is no device it should fail in the touchscreen driver.

> I didn't expect this behavior. I expect that the touchscreen driver notice that there isn't a touchscreen property and abort probing silently. Also i didn't expected that the driver is still loaded in case of a probe error.

Well module can be loaded if probe fails see __driver_attach [1] . But in order that driver won't load in case of probe error I think init function should be changed somehow, unregistered driver in case of error but I'm not sure how...

> Btw shouldn't be the mxs_lradc_adc "Used by" mxs_lradc?
>
> Because "modprobe -r mxs_lradc" doesn't unload mxs_lradc_adc.

both adc and touchscreen driver can't load if mfd part is not loaded but in order to be listed in Used by column and unload if mfd part is unloaded I think that they need to use symbols from the mfd part.

[1] http://lxr.free-electrons.com/source/drivers/base/dd.c#L731