linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Artur Rojek <contact@artur-rojek.eu>
To: Florian Fuchs <fuchsfl@gmail.com>
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	linux-sh@vger.kernel.org, linux-kernel@vger.kernel.org,
	Paul Cercueil <paul@crapouillou.net>
Subject: Re: [PATCH] sh: maple: fix empty port handling
Date: Sun, 16 Nov 2025 19:25:53 +0100	[thread overview]
Message-ID: <5aa7d2005114e7fc476ecdeeac8bea13@artur-rojek.eu> (raw)
In-Reply-To: <aRoPeNu7UZog0srr@lithos>

On 2025-11-16 18:52, Florian Fuchs wrote:
> On 16 Nov 13:34, Artur Rojek wrote:
>> On 2025-11-12 23:46, Florian Fuchs wrote:
>> > Hi Artur,
>> > thank you so much for fixing the DC boot on linux again!
>> > Adrian, thank you for looking at it!
>> >
>> > On 12 Nov 22:46, Artur Rojek wrote:
>> > > thanks for the patch! Can this be tested with just regular
>> > > controllers?
>> >
>> > Yes, indeed you can test it with the controller, when you compile with
>> > joystick support, like:
>> >
>> > 	CONFIG_MAPLE=y
>> > 	CONFIG_INPUT=y
>> > 	CONFIG_INPUT_JOYDEV=y
>> > 	CONFIG_INPUT_EVDEV=y
>> > 	CONFIG_INPUT_JOYSTICK=y
>> > 	CONFIG_JOYSTICK_MAPLE=y
>> >
>> > You should not put a VMU in though, as thats currently broken (I have a
>> > patch ready).
>> >
>> > Then you can directly read from the evdev and listen for the button
>> > presses:
>> > 	bash-5.3# cat /dev/input/event2 | xxd
>> >
>> > You need to press a button for 20-30 times, as it seems to buffer the
>> > events and outputs it in batches.
>> >
>> > Then, you should see the following outputs for the buttons:
>> >
>> > Button A:
>> > 	00000000: 7800 0000 94c3 0d00 0100 3001 0000 0000  x.........0.....
>> > Button B:
>> > 	000001e0: 7800 0000 94c3 0d00 0100 3101 0100 0000  x.........1....
>> > Button X:
>> > 	000003b0: 7800 0000 94c3 0d00 0100 3301 0100 0000  x.........3.....
>> > Button Y:
>> > 	00000900: 7800 0000 94c3 0d00 0100 3401 0100 0000  x.........4.....
>> >
>> > The Joystick should be detected like this:
>> > 	/ # dmesg|grep maple
>> > 	maple: bus core now registered
>> > 	maple (null): detected Dreamcast Controller: function 0x1: at (2, 0)
>> > 	maple (null): no driver found
>> > 	input: Dreamcast Controller as /devices/maple/2:00.1/input/input2
>> >
>> > Another indicator is the dmesg log for empty ports:
>> > 	maple (null): no devices to port 3
>> >
>> > These messages were previously not there, as the empty ports were never
>> > detected.
>> 
>> Hey Florian,
>> 
>> Before applying this patch, no input on a maple port is being 
>> registered
>> until all 4 maple ports are populated (in my case by four 
>> controllers).
>> Once all 4 are plugged in, I can register input on either of them by
>> cat-ing their respective char devs.
>> 
>> After applying the patch, I confirm that input can be read immediately
>> for the present devices, even if the other ports are unpopulated.
>> 
>> However, this patch also breaks hotplug on maple ports - I can no 
>> longer
>> plug in additional controllers at runtime and have them show up.
>> 
>> I think we need to hold off on this patch until the hotplug issue is
>> addressed.
>> 
> 
> Thank you for taking the time to test it! And sorry for the obvious 
> issue,
> I think my testing was wrong as I just removed and plugged in an 
> already
> registered device, and missed it with a new one.

No worries. Thanks for looking into this - appreciated!

On a side note, with your patch, after the initial disabling of unused
ports, new maple codes (in maple_dma_handler) arrive only for the first
and second port (and even despite MAPLE_RESPONSE_DEVINFO, no new devices
are detected). The remaining two ports don't generate any codes at all
on hotplug attempts.

I don't know Maple bus to tell if this is normal or not, but make sure
you test hotplug on all four ports.

Cheers,
Artur

> 
> Regards,
> Florian

  reply	other threads:[~2025-11-16 18:26 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-12 19:04 [PATCH] sh: maple: fix empty port handling Florian Fuchs
2025-11-12 21:31 ` John Paul Adrian Glaubitz
2025-11-12 21:46   ` Artur Rojek
2025-11-12 22:46     ` Florian Fuchs
2025-11-16 12:34       ` Artur Rojek
2025-11-16 17:52         ` Florian Fuchs
2025-11-16 18:25           ` Artur Rojek [this message]
2026-04-12  7:29         ` John Paul Adrian Glaubitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5aa7d2005114e7fc476ecdeeac8bea13@artur-rojek.eu \
    --to=contact@artur-rojek.eu \
    --cc=dalias@libc.org \
    --cc=fuchsfl@gmail.com \
    --cc=glaubitz@physik.fu-berlin.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=paul@crapouillou.net \
    --cc=ysato@users.sourceforge.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).