Re: [RFC PATCH 07/21] pci/tdisp: Introduce tsm module

Alexey Kardashevskiy
2024-09-02T07:27:08Z

On 2/9/24 16:50, Aneesh Kumar K.V wrote:
>
> ...
>
>> +static int tsm_dev_connect(struct tsm_dev *tdev, void *private_data, unsigned int val)
>> +{
>> + int ret;
>> +
>> + if (WARN_ON(!tsm.ops->dev_connect))
>> + return -EPERM;
>> +
>> + tdev->ide_pre = val == 2;
>> + if (tdev->ide_pre)
>> + tsm_set_sel_ide(tdev);
>> +
>> + mutex_lock(&tdev->spdm_mutex);
>> + while (1) {
>> + ret = tsm.ops->dev_connect(tdev, tsm.private_data);
>> + if (ret <= 0)
>> + break;
>> +
>> + ret = spdm_forward(&tdev->spdm, ret);
>> + if (ret < 0)
>> + break;
>> + }
>> + mutex_unlock(&tdev->spdm_mutex);
>> +
>> + if (!tdev->ide_pre)
>> + ret = tsm_set_sel_ide(tdev);
>> +
>> + tdev->connected = (ret == 0);
>> +
>> + return ret;
>> +}
>> +
>
> I was expecting the DEV_CONNECT to happen in tsm_dev_init in
> tsm_alloc_device(). Can you describe how the sysfs file is going to be
> used? I didn't find details regarding that in the cover letter
> workflow section.

Until I figure out the cooperation with the host-based CMA from Lukas, I
do not automatically enable IDE. Instead, the operator needs to enable
IDE manually:

sudo bash -c 'echo 2 > /sys/bus/pci/devices/0000:e1:00.0/tsm_dev_connect'

where e1:00.0 is physical function 0 of the device; or "echo 0" to
disable the IDE encryption. Why "2" is different from "1" - this is a
leftover from debugging. Thanks,

>
> -aneesh

--
Alexey