diff options
Diffstat (limited to 'drivers/rtc/rtc-dev.c')
| -rw-r--r-- | drivers/rtc/rtc-dev.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c index 212b16edafc..37c3cc1b3dd 100644 --- a/drivers/rtc/rtc-dev.c +++ b/drivers/rtc/rtc-dev.c | |||
| @@ -154,19 +154,7 @@ static long rtc_dev_ioctl(struct file *file, | |||
| 154 | if (err) | 154 | if (err) |
| 155 | goto done; | 155 | goto done; |
| 156 | 156 | ||
| 157 | /* try the driver's ioctl interface */ | 157 | /* |
| 158 | if (ops->ioctl) { | ||
| 159 | err = ops->ioctl(rtc->dev.parent, cmd, arg); | ||
| 160 | if (err != -ENOIOCTLCMD) { | ||
| 161 | mutex_unlock(&rtc->ops_lock); | ||
| 162 | return err; | ||
| 163 | } | ||
| 164 | } | ||
| 165 | |||
| 166 | /* if the driver does not provide the ioctl interface | ||
| 167 | * or if that particular ioctl was not implemented | ||
| 168 | * (-ENOIOCTLCMD), we will try to emulate here. | ||
| 169 | * | ||
| 170 | * Drivers *SHOULD NOT* provide ioctl implementations | 158 | * Drivers *SHOULD NOT* provide ioctl implementations |
| 171 | * for these requests. Instead, provide methods to | 159 | * for these requests. Instead, provide methods to |
| 172 | * support the following code, so that the RTC's main | 160 | * support the following code, so that the RTC's main |
| @@ -329,7 +317,12 @@ static long rtc_dev_ioctl(struct file *file, | |||
| 329 | return err; | 317 | return err; |
| 330 | 318 | ||
| 331 | default: | 319 | default: |
| 332 | err = -ENOTTY; | 320 | /* Finally try the driver's ioctl interface */ |
| 321 | if (ops->ioctl) { | ||
| 322 | err = ops->ioctl(rtc->dev.parent, cmd, arg); | ||
| 323 | if (err == -ENOIOCTLCMD) | ||
| 324 | err = -ENOTTY; | ||
| 325 | } | ||
| 333 | break; | 326 | break; |
| 334 | } | 327 | } |
| 335 | 328 | ||
