Re: Synchronization between ISR and IST - I2C Based device

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance



and in this case that MUST be a single instance driver for the dual
channel device.

No. That is what I am trying to point. It is possible and not very
difficult to have a driver instance for each device, provided the driver is
prepared to this situation.

It's vastly more complicated to implement a driver such that it uses shared
global data and synchronization mechanisms for a single IST. In this case
there MUST be only one IST as THAT is what MUST make the determination of
which specific channel caused the interrupt as the ISR can't do that. So
trying to create 2 driver instances with a single IST just complicates the
driver implementation. And in the end that approach does not add anything
beyond what a simple IOCTL that sets the channel number for an open context
gives you. So, yes, it is possible to implement it as multiple driver
instances but it would be a complete waste of time and effort to do so and
dramatically increase your development time and costs.



--
Steve Maillet
EmbeddedFusion
www.EmbeddedFusion.com
smaillet at EmbeddedFusion dot com


.



Relevant Pages

  • [PATCH] 2.6.22 - Documentation Cleanup
    ... To allow flexibilty for each cpu type and board, ... dma code can be given an dma ordering structure which ... allows the order of channel search to be specified, ... like above are usually useful in midlayer driver (e.g. libata core ...
    (Linux-Kernel)
  • [PATCH][RFC] Remove support for the orphaned, obsolete Digi EPCA driver.
    ... "NOTE: This driver is obsolete. ... Digi provides a 2.6 driver at ... -static void globalwinon(struct channel *ch); ...
    (Linux-Kernel)
  • [PATCH][RFC] Remove "obsolete" digiepca content.
    ... -NOTE: This driver is obsolete. ... In other words a PCI card in slot 3 will always have higher device ... This structure is NOT used to overlay the cards physical channel ... -static void globalwinon; ...
    (Linux-Kernel)
  • [PATCH] DIGIEPCA: Remove long-obsolete digiepca driver.
    ... -NOTE: This driver is obsolete. ... In other words a PCI card in slot 3 will always have higher device ... This structure is NOT used to overlay the cards physical channel ... -static void globalwinon; ...
    (Linux-Kernel)
  • Re: [PATCH] 2.6.22 - Documentation Cleanup
    ... comments below, new patch coming separately. ... dma code can be given an dma ordering structure which ... allows the order of channel search to be specified, ... The driver ...
    (Linux-Kernel)