diff options
Diffstat (limited to 'drivers/cdrom/viocd.c')
| -rw-r--r-- | drivers/cdrom/viocd.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/cdrom/viocd.c b/drivers/cdrom/viocd.c index fcca26c89bbc..38dd9ffbe8bc 100644 --- a/drivers/cdrom/viocd.c +++ b/drivers/cdrom/viocd.c | |||
| @@ -488,6 +488,20 @@ static int viocd_packet(struct cdrom_device_info *cdi, | |||
| 488 | & (CDC_DVD_RAM | CDC_RAM)) != 0; | 488 | & (CDC_DVD_RAM | CDC_RAM)) != 0; |
| 489 | } | 489 | } |
| 490 | break; | 490 | break; |
| 491 | case GPCMD_GET_CONFIGURATION: | ||
| 492 | if (cgc->cmd[3] == CDF_RWRT) { | ||
| 493 | struct rwrt_feature_desc *rfd = (struct rwrt_feature_desc *)(cgc->buffer + sizeof(struct feature_header)); | ||
| 494 | |||
| 495 | if ((buflen >= | ||
| 496 | (sizeof(struct feature_header) + sizeof(*rfd))) && | ||
| 497 | (cdi->ops->capability & ~cdi->mask | ||
| 498 | & (CDC_DVD_RAM | CDC_RAM))) { | ||
| 499 | rfd->feature_code = cpu_to_be16(CDF_RWRT); | ||
| 500 | rfd->curr = 1; | ||
| 501 | ret = 0; | ||
| 502 | } | ||
| 503 | } | ||
| 504 | break; | ||
| 491 | default: | 505 | default: |
| 492 | if (cgc->sense) { | 506 | if (cgc->sense) { |
| 493 | /* indicate Unknown code */ | 507 | /* indicate Unknown code */ |
