Sono bloccato per gli ultimi 3 giorni ad un certo punto.
Sto lavorando sul driver del dispositivo Eink con chipset qualcomm msm8960.
Scenario:
Nel file: kernel / arch / arm / mach-msm / devices-8960.c
Non riesco a verificare le use of spidm_channels" and "spidm_crci"
voci corrispondenti. (Msm8960 pro) (copiato da un codice di riferimento) Come verificare se i valori di corrispondenti start and end
sono corretti ?? Ho una scheda tecnica per msm ma non riesco a trovare alcun riferimento.
Ho aggiunto il seguente codice per creare una nuova risorsa gsbi nel file come:
static struct resource resources_qup_spi_gsbi9[] = {
{
.name = "spi_base",
.start = MSM_GSBI9_QUP_PHYS,
.end = MSM_GSBI9_QUP_PHYS + SZ_4K - 1,
.flags = IORESOURCE_MEM,
},
{
.name = "gsbi_base",
.start = MSM_GSBI9_PHYS,
.end = MSM_GSBI9_PHYS + 4 - 1,
.flags = IORESOURCE_MEM,
},
{
.name = "spi_irq_in",
.start = GSBI9_QUP_IRQ,
.end = GSBI9_QUP_IRQ,
.flags = IORESOURCE_IRQ,
},
{
.name = "spidm_channels",
.start = 3,
.end = 4,
.flags = IORESOURCE_DMA,
},
{
.name = "spidm_crci",
.start = 12,
.end = 13,
.flags = IORESOURCE_DMA,
},
};
La ragione per avere questo dubbio è che la nostra operazione DMA non riesce con l'errore: dai registri:
<6>[ 0.764932] wait_for_ready: I/F Ready.^M
<7>[ 0.765176] s1d13522_ spi9.0: setup mode 0, 16 bits/w, 51200000 Hz max --> 0^M
<3>[ 1.756630] spi_qsd spi_qsd.9: msm_spi_process_transfer: SPI transaction timeout^M
e quindi se proviamo a eseguire un'altra operazione DMA, viene visualizzato il seguente errore:
<3>[ 6.773355] s1d13522if_cmd: wait_for_ready: I/F busy bit stuck^M
<7>[ 6.775400] s1d13522_ spi9.0: setup mode 0, 16 bits/w, 51200000 Hz max --> 0^M
<4>[ 6.775583] ------------[ cut here ]------------^M
<4>[ 6.775614] WARNING: at /home/anshul_10605816/hip_mirror_2330_code/kernel /lib/list_debug.c:32 __list_add+0x58/0x78()^M
<4>[ 6.775644] list_add corruption. prev->next should be next (c0d5124c), but was 00100100. (prev=edf643b8).^M
<4>[ 6.775675] Modules linked in:^M
<4>[ 6.775766] [<c00149b8>] (unwind_backtrace+0x0/0x11c) from [<c007c818>] (warn_slowpath_common+0x4c/0x64)^M
<4>[ 6.775827] [<c007c818>] (warn_slowpath_common+0x4c/0x64) from [<c007c8b0>] (warn_slowpath_fmt+0x2c/0x3c)^M
<4>[ 6.775888] [<c007c8b0>] (warn_slowpath_fmt+0x2c/0x3c) from [<c02a9538>] (__list_add+0x58/0x78)^M
<4>[ 6.775919] [<c02a9538>] (__list_add+0x58/0x78) from [<c001e3d4>] (start_ready_cmd+0x84/0x13c)^M
<4>[ 6.775980] [<c001e3d4>] (start_ready_cmd+0x84/0x13c) from [<c001e704>] (msm_dmov_enqueue_cmd_ext_work+0x148/0x284)^M
<4>[ 6.776041] [<c001e704>] (msm_dmov_enqueue_cmd_ext_work+0x148/0x284) from [<c0094e0c>] (process_one_work+0x27c/0x484)^M
<4>[ 6.776072] [<c0094e0c>] (process_one_work+0x27c/0x484) from [<c0095224>] (worker_thread+0x210/0x3b0)^M
<4>[ 6.776133] [<c0095224>] (worker_thread+0x210/0x3b0) from [<c00990c0>] (kthread+0x80/0x8c)^M
<4>[ 6.776194] [<c00990c0>] (kthread+0x80/0x8c) from [<c000f108>] (kernel_thread_exit+0x0/0x8)^M
<4>[ 6.776224] ---[ end trace da227214a82491b8 ]---^M
<3>[ 11.766732] spi_qsd spi_qsd.9: msm_spi_process_transfer: SPI transaction timeout^M
Qualsiasi aiuto sarebbe molto apprezzato.
Se sono necessarie ulteriori informazioni sul codice, faccelo sapere.