When I insmod, why is it registered as Builtin?

Hi, I tested to sensor bring-up in Xavier.

At first, For the convenience of development, I separated a few drivers into modules.

For example,

max9295 / max9296 / 2g1 sensor(our testing sensor)

So, I modified to makefile for building the modules from these.
Like this,

#obj-$(CONFIG_I2C_IOEXPANDER_DESER_MAX9296) += max9296.o
obj-m += max9296.o
#obj-$(CONFIG_I2C_IOEXPANDER_SER_MAX9295) += max9295.o
obj-m += max9295.o

After building, I did it like that in xavier.

$ sudo insmod max9296.ko
$ sudo insmod max9295.ko
$ lsmod
Module                  Size  Used by
max9295                 9593  0
max9296                14671  0
$ sudo rmmod max9296
rmmod: ERROR: Module max9296 is builtin.

So, Why is it registered as Builtin?

And, Secondly
When I register a sensor as module, which is using it used? Can I turn off this?

$sudo insmod 2g1.ko
Module                  Size  Used by
2g1                    19294  1
$ sudo rmmod s5k2g1
rmmod: ERROR: Module s5k2g1 is in use

I think, in the tegracam_v4l2subdev_register function, uses a sensor, is it correct?
if it correct, How should I proceed if I want to do rmod?

Thank you.

hello jonha.lee,

may I know which Jetpack release you’re working with, since there’s known issue to unload the modules.
you may keep using sensor driver as built-in drivers,
we’re target to support loadable kernel module starting from next public release, (i.e. l4t-r32.3).

Hi JerryChang
Thank you for your answer.

I used to JETPACK 4.2.2[REV.1] from SDK Manager in ubuntu.

BSP_VERSION is R32.2.1

thank you.