Hi,

seen this a bit late..., one question:

On Friday 22 October 2010 16:43:55 Alan Cox wrote:
> From: Sreedhara DS <[email protected]>
> 
> This driver implements ioctl and interfaces with intel scu ipc driver. It
> is used to access pmic/msic registers from user space and firmware update
> utility.
Why is an ioctl used for updating the firmware?
Why isn't request_firmware(..) via:
/lib/firmware/...
used?
Then the firmware could be maintained here:
http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=summary
and no further userspace tools for firmware updating are needed.

Thanks,

   Thomas
> 
> Signed-off-by: Sreedhara DS <[email protected]>
> [Extensive clean up and debug]
> Signed-off-by: Alan Cox <[email protected]>
...
> +/**
> + *   scu_ipc_ioctl           -       control ioctls for the SCU
> + *   @fp: file handle of the SCU device
> + *   @cmd: ioctl coce
> + *   @arg: pointer to user passed structure
> + *
> + *   Support the I/O and firmware flashing interfaces of the SCU
> + */
> +static long scu_ipc_ioctl(struct file *fp, unsigned int cmd,
> +                                                     unsigned long arg)
> +{
> +     int ret;
> +     struct scu_ipc_data  data;
> +     void __user *argp = (void __user *)arg;
> +
> +     if (!capable(CAP_SYS_RAWIO))
> +             return -EPERM;
> +
> +     if (cmd == INTE_SCU_IPC_FW_UPDATE) {
> +                     u8 *fwbuf = kmalloc(MAX_FW_SIZE, GFP_KERNEL);
> +                     if (fwbuf == NULL)
> +                             return -ENOMEM;
> +                     if (copy_from_user(fwbuf, (u8 *)arg, MAX_FW_SIZE)) {
> +                             kfree(fwbuf);
> +                             return -EFAULT;
> +                     }
> +                     ret = intel_scu_ipc_fw_update(fwbuf, MAX_FW_SIZE);
> +                     kfree(fwbuf);
> +                     return ret;
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" 
in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to