Skip to content

Commit 959871c

Browse files
committed
WiiSD: rename cmd types. they are not related to sd spec cmd types
for example GO_IDLE(BC), SEND_IF_COND(BCR) and APP_CMD(AC) all use type 3 (TRANSFER)
1 parent ff53c4a commit 959871c

1 file changed

Lines changed: 27 additions & 27 deletions

File tree

‎libogc/wiisd.c‎

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,11 @@
7676
#define IOCTL_SDIO_GETOCR 0x0C
7777
#define IOCTL_SDIO_READDATA 0x0D
7878
#define IOCTL_SDIO_WRITEDATA 0x0E
79-
80-
#define SDIOCMD_TYPE_BC 1
81-
#define SDIOCMD_TYPE_BCR 2
82-
#define SDIOCMD_TYPE_AC 3
83-
#define SDIOCMD_TYPE_ADTC 4
79+
80+
#define SDIOCMD_TYPE_NODATA 0
81+
#define SDIOCMD_TYPE_READ 1
82+
#define SDIOCMD_TYPE_WRITE 2
83+
#define SDIOCMD_TYPE_TRANSFER 3
8484

8585
#define SDIO_RESPONSE_NONE 0
8686
#define SDIO_RESPONSE_R1 1
@@ -184,12 +184,12 @@ static s32 __sdio_sendcommandimpl(u32 cmd,u32 cmd_type,u32 rsp_type,u32 arg,u32
184184

185185
return ret;
186186
}
187-
//There is an IOS bug where it doesn't enable the DMA interrupt on cmd_type SDIOCMD_TYPE_BC
187+
//There is an IOS bug where it doesn't enable the DMA interrupt on cmd_type SDIOCMD_TYPE_READ
188188
//this makes it so if a buffer crosses a 4k boundary it will hang
189189
#define __sdio_sendcommand(cmd, cmd_type, rsp_type,arg, blk_cnt, blk_size, buffer, reply, rlen) \
190190
({ \
191-
_Static_assert((cmd_type) != SDIOCMD_TYPE_BC || ((blk_cnt)*(blk_size) <= 0x1000 && (blk_cnt)*(blk_size) <= __alignof__(buffer)), \
192-
"SDIOCMD_TYPE_BC transfer may cross a 4K boundary: align the buffer"); \
191+
_Static_assert((cmd_type) != SDIOCMD_TYPE_READ || ((blk_cnt)*(blk_size) <= 0x1000 && (blk_cnt)*(blk_size) <= __alignof__(buffer)), \
192+
"SDIOCMD_TYPE_READ transfer may cross a 4K boundary: align the buffer"); \
193193
__sdio_sendcommandimpl(cmd, cmd_type, rsp_type,arg, blk_cnt, blk_size, buffer, reply, rlen); \
194194
})
195195

@@ -305,7 +305,7 @@ static s32 __sd0_getstatus(void)
305305
s32 ret;
306306
u32 status = 0;
307307

308-
ret = __sdio_sendcommand(SDIO_CMD_SENDSTATUS,SDIOCMD_TYPE_AC,SDIO_RESPONSE_R1,(__sd0_rca<<16),0,0,NULL,&status,sizeof(u32));
308+
ret = __sdio_sendcommand(SDIO_CMD_SENDSTATUS,SDIOCMD_TYPE_TRANSFER,SDIO_RESPONSE_R1,(__sd0_rca<<16),0,0,NULL,&status,sizeof(u32));
309309
if(ret<0) return ret;
310310

311311
return status;
@@ -317,7 +317,7 @@ static s32 __sd0_getrca(void)
317317
s32 ret;
318318
u32 rca;
319319

320-
ret = __sdio_sendcommand(SDIO_CMD_SENDRCA,0,SDIO_RESPONSE_R5,0,0,0,NULL,&rca,sizeof(rca));
320+
ret = __sdio_sendcommand(SDIO_CMD_SENDRCA,SDIOCMD_TYPE_NODATA,SDIO_RESPONSE_R5,0,0,0,NULL,&rca,sizeof(rca));
321321
if(ret<0) return ret;
322322

323323
__sd0_rca = (u16)(rca>>16);
@@ -328,7 +328,7 @@ static s32 __sd0_select(void)
328328
{
329329
s32 ret;
330330

331-
ret = __sdio_sendcommand(SDIO_CMD_SELECT,SDIOCMD_TYPE_AC,SDIO_RESPONSE_R1B,(__sd0_rca<<16),0,0,NULL,NULL,0);
331+
ret = __sdio_sendcommand(SDIO_CMD_SELECT,SDIOCMD_TYPE_TRANSFER,SDIO_RESPONSE_R1B,(__sd0_rca<<16),0,0,NULL,NULL,0);
332332

333333
return ret;
334334
}
@@ -337,7 +337,7 @@ static s32 __sd0_deselect(void)
337337
{
338338
s32 ret;
339339

340-
ret = __sdio_sendcommand(SDIO_CMD_DESELECT,SDIOCMD_TYPE_AC,SDIO_RESPONSE_R1B,0,0,0,NULL,NULL,0);
340+
ret = __sdio_sendcommand(SDIO_CMD_DESELECT,SDIOCMD_TYPE_TRANSFER,SDIO_RESPONSE_R1B,0,0,0,NULL,NULL,0);
341341

342342
return ret;
343343
}
@@ -346,7 +346,7 @@ static s32 __sd0_setblocklength(u32 blk_len)
346346
{
347347
s32 ret;
348348

349-
ret = __sdio_sendcommand(SDIO_CMD_SETBLOCKLEN,SDIOCMD_TYPE_AC,SDIO_RESPONSE_R1,blk_len,0,0,NULL,NULL,0);
349+
ret = __sdio_sendcommand(SDIO_CMD_SETBLOCKLEN,SDIOCMD_TYPE_TRANSFER,SDIO_RESPONSE_R1,blk_len,0,0,NULL,NULL,0);
350350

351351
return ret;
352352
}
@@ -359,10 +359,10 @@ static s32 __sd0_setbuswidth(u32 bus_width)
359359
val = 0x0000;
360360
if(bus_width==4) val = 0x0002;
361361

362-
ret = __sdio_sendcommand(SDIO_CMD_APPCMD,SDIOCMD_TYPE_AC,SDIO_RESPONSE_R1,(__sd0_rca<<16),0,0,NULL,NULL,0);
362+
ret = __sdio_sendcommand(SDIO_CMD_APPCMD,SDIOCMD_TYPE_TRANSFER,SDIO_RESPONSE_R1,(__sd0_rca<<16),0,0,NULL,NULL,0);
363363
if(ret<0) return ret;
364364

365-
ret = __sdio_sendcommand(SDIO_ACMD_SETBUSWIDTH,SDIOCMD_TYPE_AC,SDIO_RESPONSE_R1,val,0,0,NULL,NULL,0);
365+
ret = __sdio_sendcommand(SDIO_ACMD_SETBUSWIDTH,SDIOCMD_TYPE_TRANSFER,SDIO_RESPONSE_R1,val,0,0,NULL,NULL,0);
366366
if(ret<0) return ret;
367367

368368
return __sdio_setbuswidth(bus_width==4, SDIOHCR_HOSTCONTROL_4BIT);
@@ -372,7 +372,7 @@ static s32 __sd0_getcsd(void)
372372
{
373373
s32 ret;
374374

375-
ret = __sdio_sendcommand(SDIO_CMD_SENDCSD,SDIOCMD_TYPE_AC,SDIO_RESPONSE_R2,(__sd0_rca<<16),0,0,NULL,__sd0_csd,sizeof(__sd0_csd));
375+
ret = __sdio_sendcommand(SDIO_CMD_SENDCSD,SDIOCMD_TYPE_TRANSFER,SDIO_RESPONSE_R2,(__sd0_rca<<16),0,0,NULL,__sd0_csd,sizeof(__sd0_csd));
376376

377377
return ret;
378378
}
@@ -381,7 +381,7 @@ static s32 __sd0_getcid(void)
381381
{
382382
s32 ret;
383383

384-
ret = __sdio_sendcommand(SDIO_CMD_ALL_SENDCID,0,SDIO_RESPONSE_R2,(__sd0_rca<<16),0,0,NULL,__sd0_cid,sizeof(__sd0_cid));
384+
ret = __sdio_sendcommand(SDIO_CMD_ALL_SENDCID,SDIOCMD_TYPE_NODATA,SDIO_RESPONSE_R2,(__sd0_rca<<16),0,0,NULL,__sd0_cid,sizeof(__sd0_cid));
385385

386386
return ret;
387387
}
@@ -440,18 +440,18 @@ static bool __sd0_initio(void)
440440
if(ret < 0) goto fail;
441441

442442
// standard SDHC initialization process
443-
ret = __sdio_sendcommand(SDIO_CMD_GOIDLE, 0, 0, 0, 0, 0, NULL, NULL, 0);
443+
ret = __sdio_sendcommand(SDIO_CMD_GOIDLE, SDIOCMD_TYPE_NODATA, 0, 0, 0, 0, NULL, NULL, 0);
444444
if(ret < 0) goto fail;
445-
ret = __sdio_sendcommand(SDIO_CMD_SENDIFCOND, 0, SDIO_RESPONSE_R6, 0x1aa, 0, 0, NULL, &resp, sizeof(resp));
445+
ret = __sdio_sendcommand(SDIO_CMD_SENDIFCOND, SDIOCMD_TYPE_NODATA, SDIO_RESPONSE_R6, 0x1aa, 0, 0, NULL, &resp, sizeof(resp));
446446
if(ret < 0) goto fail;
447447
if((resp.rsp_fields[0] & 0xff) != 0xaa) goto fail;
448448

449449
tries = 10;
450450
while(tries-- > 0)
451451
{
452-
ret = __sdio_sendcommand(SDIO_CMD_APPCMD, SDIOCMD_TYPE_AC,SDIO_RESPONSE_R1,0,0,0,NULL,NULL,0);
452+
ret = __sdio_sendcommand(SDIO_CMD_APPCMD, SDIOCMD_TYPE_TRANSFER,SDIO_RESPONSE_R1,0,0,0,NULL,NULL,0);
453453
if(ret < 0) goto fail;
454-
ret = __sdio_sendcommand(SDIO_ACMD_SENDOPCOND, 0, SDIO_RESPONSE_R3, 0x40300000, 0, 0, NULL, &resp, sizeof(resp));
454+
ret = __sdio_sendcommand(SDIO_ACMD_SENDOPCOND, SDIOCMD_TYPE_NODATA, SDIO_RESPONSE_R3, 0x40300000, 0, 0, NULL, &resp, sizeof(resp));
455455
if(ret < 0) goto fail;
456456
if(resp.rsp_fields[0] & (1 << 31)) break;
457457

@@ -494,14 +494,14 @@ static bool __sd0_initio(void)
494494
}
495495

496496
if(CCC & (1 << 10)) {
497-
ret = __sdio_sendcommand(SDIO_CMD_SWITCHFUNC, SDIOCMD_TYPE_BC, SDIO_RESPONSE_R1, 0x00fffff0, 1, sizeof(sd0_functions), sd0_functions, NULL, 0);
497+
ret = __sdio_sendcommand(SDIO_CMD_SWITCHFUNC, SDIOCMD_TYPE_READ, SDIO_RESPONSE_R1, 0x00fffff0, 1, sizeof(sd0_functions), sd0_functions, NULL, 0);
498498
if(ret<0) {
499499
__sd0_deselect();
500500
return false;
501501
}
502502

503503
if(((u16*)sd0_functions)[6] & (1 << 1)) {
504-
ret = __sdio_sendcommand(SDIO_CMD_SWITCHFUNC, SDIOCMD_TYPE_BC, SDIO_RESPONSE_R1, 0x80fffff1, 1, sizeof(sd0_functions), sd0_functions, NULL, 0);
504+
ret = __sdio_sendcommand(SDIO_CMD_SWITCHFUNC, SDIOCMD_TYPE_READ, SDIO_RESPONSE_R1, 0x80fffff1, 1, sizeof(sd0_functions), sd0_functions, NULL, 0);
505505
if(ret<0) {
506506
__sd0_deselect();
507507
return false;
@@ -600,7 +600,7 @@ static bool sdio_ReadSectors(sec_t sector, sec_t numSectors,void* buffer)
600600
else blk_off = sector;
601601
if(numSectors > 8)secs_to_read = 8;
602602
else secs_to_read = numSectors;
603-
ret = __sdio_sendcommand(SDIO_CMD_READMULTIBLOCK,SDIOCMD_TYPE_AC,SDIO_RESPONSE_R1,blk_off,secs_to_read,PAGE_SIZE512,rw_buffer,NULL,0);
603+
ret = __sdio_sendcommand(SDIO_CMD_READMULTIBLOCK,SDIOCMD_TYPE_TRANSFER,SDIO_RESPONSE_R1,blk_off,secs_to_read,PAGE_SIZE512,rw_buffer,NULL,0);
604604
if(ret>=0) {
605605
memcpy(ptr,rw_buffer,PAGE_SIZE512*secs_to_read);
606606
ptr += PAGE_SIZE512*secs_to_read;
@@ -611,7 +611,7 @@ static bool sdio_ReadSectors(sec_t sector, sec_t numSectors,void* buffer)
611611
}
612612
} else {
613613
if(__sd0_sdhc == 0) sector *= PAGE_SIZE512;
614-
ret = __sdio_sendcommand(SDIO_CMD_READMULTIBLOCK,SDIOCMD_TYPE_AC,SDIO_RESPONSE_R1,sector,numSectors,PAGE_SIZE512,buffer,NULL,0);
614+
ret = __sdio_sendcommand(SDIO_CMD_READMULTIBLOCK,SDIOCMD_TYPE_TRANSFER,SDIO_RESPONSE_R1,sector,numSectors,PAGE_SIZE512,buffer,NULL,0);
615615
}
616616

617617
__sd0_deselect();
@@ -640,7 +640,7 @@ static bool sdio_WriteSectors(sec_t sector, sec_t numSectors,const void* buffer)
640640
if(numSectors > 8)secs_to_write = 8;
641641
else secs_to_write = numSectors;
642642
memcpy(rw_buffer,ptr,PAGE_SIZE512*secs_to_write);
643-
ret = __sdio_sendcommand(SDIO_CMD_WRITEMULTIBLOCK,SDIOCMD_TYPE_AC,SDIO_RESPONSE_R1,blk_off,secs_to_write,PAGE_SIZE512,rw_buffer,NULL,0);
643+
ret = __sdio_sendcommand(SDIO_CMD_WRITEMULTIBLOCK,SDIOCMD_TYPE_TRANSFER,SDIO_RESPONSE_R1,blk_off,secs_to_write,PAGE_SIZE512,rw_buffer,NULL,0);
644644
if(ret>=0) {
645645
ptr += PAGE_SIZE512*secs_to_write;
646646
sector+=secs_to_write;
@@ -650,7 +650,7 @@ static bool sdio_WriteSectors(sec_t sector, sec_t numSectors,const void* buffer)
650650
}
651651
} else {
652652
if(__sd0_sdhc == 0) sector *= PAGE_SIZE512;
653-
ret = __sdio_sendcommand(SDIO_CMD_WRITEMULTIBLOCK,SDIOCMD_TYPE_AC,SDIO_RESPONSE_R1,sector,numSectors,PAGE_SIZE512,(char *)buffer,NULL,0);
653+
ret = __sdio_sendcommand(SDIO_CMD_WRITEMULTIBLOCK,SDIOCMD_TYPE_TRANSFER,SDIO_RESPONSE_R1,sector,numSectors,PAGE_SIZE512,(char *)buffer,NULL,0);
654654
}
655655

656656
__sd0_deselect();

0 commit comments

Comments
 (0)