From: <he...@us...> - 2005-04-25 19:30:28
|
Update of /cvsroot/gc-linux/linux/include/linux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23915/include/linux Modified Files: exi.h Log Message: An exi select while a channel is already selected could be now a "expected" case, and not a bug, in some particular scenarios. (This may happen when called directly from interrupt context, without any provision, like the in the RTC driver case). The select primitive now returns an error if the channel is already busy, otherwise succeeds like before. Index: exi.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/linux/exi.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- exi.h 20 Mar 2005 17:10:39 -0000 1.10 +++ exi.h 25 Apr 2005 19:29:43 -0000 1.11 @@ -237,7 +237,7 @@ extern u32 exi_get_id(struct exi_channel *exi_channel, unsigned int device, unsigned int freq); -void exi_select(struct exi_device *exi_device); +int exi_select(struct exi_device *exi_device); void exi_deselect(struct exi_channel *exi_channel); void exi_transfer(struct exi_channel *exi_channel, void *data, size_t len, int opcode); @@ -293,11 +293,11 @@ exi_hw_exit(); } -static inline void exi_lite_select(int channel, int device, int freq) +static inline int exi_lite_select(int channel, int device, int freq) { struct exi_channel *exi_channel = to_exi_channel(channel); struct exi_device *exi_device = exi_get_exi_device(exi_channel, device); - exi_select(exi_device); + return exi_select(exi_device); } static inline void exi_lite_deselect(int channel) |