:) simple process synchronization! refer to any elementary OS book ----- Original Message ----- From: "Shiv Garg" <shivg@samsung.com> To: <kernelnewbies@nl.linux.org> Sent: Thursday, July 01, 2004 3:54 PM Subject: init_completion, down(mutex) related question > Hello All, > I am new to the Linux Kernel programming, and still learning the OS > concepts. (but project deadlines don't consider it u know ;-) > Can anyone explain why do we write driver code like this : > static void s3c24a0_ac97_write(struct ac97_codec *codec, u8 reg, u16 > val) > { > down(&CAR_mutex); > init_completion(&CAR_completion); > > AC_CODEC_CMD = AC_CMD_ADDR(reg) | AC_CMD_DATA(val); > > wait_for_completion(&CAR_completion); > up(&CAR_mutex); > } > > why it cant be written as > static void s3c24a0_ac97_write(struct ac97_codec *codec, u8 reg, u16 > val) > { > AC_CODEC_CMD = AC_CMD_ADDR(reg) | AC_CMD_DATA(val); > > } > what is the meaning of down,up,completion etc. > > Thanks and Regards, > Shiv Kumar Garg > Senior Software Engineer > System LSI Division > Samsung India Software Operation > 3/1 Millers Road, Bangalore > Phone: +91-80-51197777 ext 2018 > email: shivg@samsung.com > _________________________________ > Well done is better than Well said > > -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/