Re: [PATCH] [09051_49] Siano: smscore - upgrade firmware loading engine

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

 



Em Tue, 19 May 2009 11:01:22 -0700 (PDT)
Uri Shkolnik <urishk@xxxxxxxxx> escreveu:

> 
> > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > >
> > 
> > 
> > 
> > This patch should not be merged in its current form.
> > 
> > Linux kernel driver development shall be against the
> > current -rc
> > kernel, and there is no need to reinvent the
> > "REQUEST_FIRMWARE"
> > mechanism.
> > 
> > Furthermore, the changeset introduces more bits of this
> > "SMS_HOSTLIB_SUBSYS" -- this requires a binary library
> > present on the
> > host system.  This completely violates the "no
> > multiple APIs in
> > kernel" and "no proprietary APIs in kernel" guidelines.
> > 
> > Uri, what are your plans for this?
> > 
> > Regards,
> > 
> > Mike
> > 
> 
> Mike,
> 
> Per discussion with other members of the community, backport are welcome at LinuxTV mercurial (true they are not pass through when up-streaming to the kernel git, but that is per current kernel version anyway ...). 

It is ok to add backport support, but the above seems a little dirty: or you
check for a kernel version or for a #define'd symbol. You can add some #defines
and let v4l/scripts/make_config.pl to evaluate it depending on some kernel .h
file.

> Regarding the REQUEST_FIRMWARE - with most older kernels, and with some new (I even have such 2.6.27 case), that is the only option available, Please check Motorola (opensource.motorola.com) and Google Android for external examples. Second issue is that when you are using interface like SPI, the hotplug mechanism is degenerated or simply voided. So we can either decide we support only x86 based machines, but if I'm not wrong, I can see lots of TI OMAP (and other ARM) activity lately, so, we may decide to support REQUEST_FIRMWARE...  

I'm not sure how this is is done on external trees, but we shouldn't do it in
kernel. With embedded devices in mind, kernel already supports a way where the firmware
binary is linked inside the driver and the request_firmware() call is converted
on just a register load. So (except due to backport issues), this is not needed.

> 
> Regarding SMS_HOSTLIB_SUBSYS, since it's not defined its... undefined...
> The patch replace '#if 0' with '#ifdef SMS_HOSTLIB_SUBSYS' (which is... undefined), so actually no "harm" done, but it make the life of Siano's engineers, and various other who use patches and merges, easier when looking at the code (IMHO strings are better than magic numbers). I simply don't see what's wrong with that.

While keeping backports are ok, I agree with Michael about this: any support
for an external API should be removed.

If the issue here is to allow your engineers to sync your internal code with
Linux driver, I suggest you to have those if's on your internal tree, and use a
script like v4l/scripts/gentree.pl [1] to remove those symbols before submitting us
any patch.

Btw, why do you need a proprietary API? If it is due to the lack of some DVB
features, let's add it into DVBv5.

[1] gentree.pl is the script I use here to sync our out-of-tree v4l-dvb
mercurial tree with -git. It basically evaluates kernel versions
and removes or inserts code based on some compatibility defines we have. For example:

my %defs = (
        'I2C_CLASS_TV_ANALOG' => 1,
        'NEED_SOUND_DRIVER_H' => 0,
);

Will make it to include any code with:

#ifdef I2C_CLASS_TV_ANALOG
	<some code to be included>
#endif

and remove any code inside:

#ifdef NEED_SOUND_DRIVER_H
	<some code to be excluded>
#endif

You can even have nested if's inside the code.



Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux