|From the initial code review:
|The main thing you need to do is to implement all the controls using the
|control framework (see Documentation/video4linux/v4l2-controls.txt).
|Most drivers are by now converted to the control framework, so you will
|find many examples of how to do this in drivers/media/radio.
|The sysfs stuff should be replaced by controls as well. A lot of the RDS
|support is now available as controls (although there may well be some
|missing features, but that is easy enough to add). Since the RDS data is
|actually read() from the device I am not sure whether the RDS
|properties/controls should be there at all.
|Correct Coding Style, as this driver also violates several Style
|rules, and do evil tricks, like returning from a function inside a
|Finally this driver should probably be split up into two parts: one
|v4l2_subdev-based core driver and one platform driver. See e.g.
|radio-si4713/si4713-i2c.c as a good example. But I would wait with that
|until the rest of the driver is cleaned up. Then I have a better idea of
|whether this is necessary or not.