Skip to content

Commit 12aa54a

Browse files
authored
Merge pull request #97 from BlueSCSI/InitiatorMode_WiFi_Fix
Initiator Mode: Disable LED on Pico W, it's causing issues for an unk…
2 parents d790a84 + 93d7736 commit 12aa54a

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

lib/BlueSCSI_platform_RP2040/BlueSCSI_platform_gpio.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@
5959
#define LED_ON() platform_network_supported() ? cyw43_gpio_set(&cyw43_state, 0, true) : sio_hw->gpio_set = 1 << LED_PIN
6060
#define LED_OFF() platform_network_supported() ? cyw43_gpio_set(&cyw43_state, 0, false) : sio_hw->gpio_clr = 1 << LED_PIN
6161

62+
#define STANDARD_LED_ON sio_hw->gpio_set = 1 << LED_PIN
63+
#define STANDARD_LED_OFF sio_hw->gpio_clr = 1 << LED_PIN
64+
65+
#define W_LED_ON cyw43_gpio_set(&cyw43_state, 0, true)
66+
#define W_LED_OFF cyw43_gpio_set(&cyw43_state, 0, false)
67+
6268
// SDIO and SPI block
6369
#define SD_SPI_SCK 10
6470
#define SDIO_CLK 10

src/BlueSCSI.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,7 @@ extern "C" void bluescsi_main_loop(void)
676676
platform_network_poll();
677677

678678
#ifdef PLATFORM_HAS_INITIATOR_MODE
679-
if (platform_is_initiator_mode_enabled())
679+
if (unlikely(platform_is_initiator_mode_enabled()))
680680
{
681681
scsiInitiatorMainLoop();
682682
save_logfile();

src/BlueSCSI_initiator.cpp

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,15 @@ static void scsiInitiatorUpdateLed()
100100

101101
if (phase <= duty)
102102
{
103-
LED_ON();
103+
if (!platform_network_supported()) {
104+
STANDARD_LED_ON;
105+
}
104106
}
105107
else
106108
{
107-
LED_OFF();
109+
if (!platform_network_supported()) {
110+
STANDARD_LED_OFF;
111+
}
108112
}
109113
}
110114

@@ -143,7 +147,10 @@ void scsiInitiatorMainLoop()
143147

144148
uint8_t inquiry_data[36];
145149

146-
LED_ON();
150+
if (!platform_network_supported()) {
151+
STANDARD_LED_ON;
152+
}
153+
147154
bool startstopok =
148155
scsiTestUnitReady(g_initiator_state.target_id) &&
149156
scsiStartStopUnit(g_initiator_state.target_id, true);
@@ -155,7 +162,10 @@ void scsiInitiatorMainLoop()
155162

156163
bool inquiryok = startstopok &&
157164
scsiInquiry(g_initiator_state.target_id, inquiry_data);
158-
LED_OFF();
165+
166+
if (!platform_network_supported()) {
167+
STANDARD_LED_OFF;
168+
}
159169

160170
uint64_t total_bytes = 0;
161171
if (readcapok)
@@ -252,7 +262,10 @@ void scsiInitiatorMainLoop()
252262
{
253263
scsiStartStopUnit(g_initiator_state.target_id, false);
254264
log("Finished imaging drive with id ", g_initiator_state.target_id);
255-
LED_OFF();
265+
266+
if (!platform_network_supported()) {
267+
STANDARD_LED_OFF;
268+
}
256269

257270
if (g_initiator_state.sectorcount != g_initiator_state.sectorcount_all)
258271
{

0 commit comments

Comments
 (0)