Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: Proposal for new frontend architecture
Hi, sorry about the delay in replying.
So, to summarise. Michael's patch uses the new i2c command() call to perform
the FE identification and configuration, with the smallest number of code
changes.
Several people then replied that the problem with doing it that way is that it
depends on the devices being linux i2c devices and being in an x86-style
architecture. If that is not the case, then the suggestion is unfortunately
not useful as kernel i2c is not available/not bound to the correct adapters.
In which case you'd have to invent another non-standard device configuration
scheme yourself...
It also depends on being able to modify the i2c core, which may not be
possible for proprietary manufacturers' drivers (may be bound to a specific
kernel version, custom i2c "stack" etc).
As I see it the choices are:
1) fix v3 to work better in a non-extensible way and sort it in v4.
2) implement a "proper" way of doing it.
Option 2 requires more code changes, but, really, I doubt it would take *that*
much longer.
If v4 isn't out soon, then people are going to have to use their own
non-standard config schemes hacked onto v3, so I would have to say go with
option 2.
If its going to be out in the next month or so, then perhaps a quick fix is
the way to do it... although then we'll _still_ have to invent a better way
of doing it and code it up. This means more work in the long run, and means
we'll likely break everything twice.
Personally, I'd say go for option 2 and sort it now. It's not like projects
outwith the DVB project are gaining anything from having the frontends be
full kernel i2c drivers - which is really the point in having such a concept.
However, I'm not sure that having one card driver per PCI chipset/frontend is
going to work - look at the Hauppauge fullfeatured DVB-S 1.x card
(0x13c2/0x0000) - it has the same PCI ID with multiple possible frontends.
We'd have to support multiple frontends in that anyway, so I don't see the
problem with keeping the same drivers supporting the same cards as they do
now. For that one, there is no getting away from having:
if (frontendAfound) {... } else if (frontendBfound) { ... }
so I don't see the problem in having:
if (subsysid_a) { ... } else if (subsysid_b) { ... }
as well.
Having separate drivers for each PCIID/frontend is a stylistic change rather
than an essential improvement. It also means that when we release that
version, many end-user configurations will likely cease working (although PCI
hotplug may help somewhat here, if it is enabled). For the frontend changes,
this isn't the case as we'll be explicitly request_module()ing them (or
whatever), so it doesn't really matter if we change their names.
Although it does mean we still have some hairy bits of code in the dvb card
drivers, I would rather only have to deal with one set of refactoring tasks
at a time. IMO, this is the sort of change that should definitely be left for
v4.
Home |
Main Index |
Thread Index