Re: writable mmc profiles actually are writable

Pat LaVarre
2003-10-09T23:01:29Z

> > Before now, I did not know I could find any
> > one place in the kernel source to tweak CDC
> > decisions. To my confused newbie eye,
> > ide-cd.c and sr.c appeared coded
> > independently to fetch mode page x2A
> > Capabilities and neglect op x46 ...
>
> The ->generic_packet() hook and
> cdrom_generic_command was invented to solve
> this code duplication.

News to me, thanks.

> So in cdrom.c you just setup the cgc as
> needed, and pass it down to ide-cd or sr. See
> cdrom_mode_sense() for one of the many
> examples ...
> ...
> The idea ... make CDC_DVD_RAM really be the
> hardware type indication and not the pseudo
> randomly writable flag that it is now ...
> ...
> please proceed ...

Will do, now diff'ing against 2.6.0-test7.

> > > I haven't yet had to deal with dvd+rw or
> > > ddcd_rw (is this like mtr?
> >
> > Sorry I do not know mtr.
>
> mt rainier, different in spirit

Eh? Different in spirit than what & how?

> mt rainier, different in spirit but allows the same 2kb
> writes and handles the rest in hardware.

Ah. Yes some of the buzz re Mt Rainier has reached me before now. But
I had not heard that writes work well unless actually aligned to more
like 64 KiB boundaries. I had only heard that the hardware tolerated
misaligned writes, not that misaligned writes work well.

> > mo and dvd-ram have been supported for a long
> > > time and should be set with CDC_DVD_RAM,
> >
> > ... CDC_MO_DRIVE appears only drivers/ide/ not in
> > drivers/scsi/. Weakly I conclude mo doesn't
> > work the same in atapi and usb-storage.
>
> IIRC, scsi mo drives are handled by sd, not sr.

Cluelessly I wonder. I see if scsi mo works via scsi/sd.c, it works
without benefit of CDC_MO_DRIVE, which makes me wonder why drivers/ide
has a use for CDC_MO_DRIVE. If I hear no reply, I will assume grep
CDC_MO_DRIVE drivers/ide/* would answer my question for me. I have no
mo drive, so I do not find the question compelling.

> > > the disk profiles aren't driven by ide-cd or
> > > sr.
> >
> > In drivers/scsi/sr.c I find: ...
> > In drivers/ide/ide-cd.c I find:
> > ...mask |= CDC_DVD_RAM;
>
> ->mask is an inverted capability mask, so if you set
> CDC_DVD_RAM you mask that capability.

Ouch, that detail I actually did know already.

Sorry I was unclear.

I meant to say I find a default of & CDC_DVD_RAM == 0 and then the |= to
1 executed only conditionally e.g. sr.c:

... [fetch mode page x2A Capabilities] ...
...
if ((buffer[n + 3] & 0x20) == 0) {
/* can't write DVD-RAM media */
cd->cdi.mask |= CDC_DVD_RAM;
} else {
cd->device->writeable = 1;
}

In my newbie ignorance, that made me guess that sr_mod.ko, not cdrom.ko,
was deciding whether my usb-storage.ko drive was writable.

Pat LaVarre